首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >禁用内部Intel X710 LLDP代理

禁用内部Intel X710 LLDP代理
EN

Server Fault用户
提问于 2016-05-10 22:32:51
回答 4查看 12.3K关注 0票数 6

我们做特殊的硬件配置,需要大量使用LLDP。我们有几个新的机架服务器,都使用英特尔X710 10 We网卡。自民党突然停止工作。我们的LLDP实现很简单。使用默认的TLVs在TOR (机架顶部)开关上启用LLDP。使用lldpad (CentOS 6.5)在Linux映像上启用LLDP,并使用lldptool提取邻居信息,该信息在过去曾用于数千台机器。只是,对于这些有NIC的机器来说,整件事就停止了。

使用来自交换机和服务器的数据包转储显示,帧被正确地从服务器发送到交换机,相反,交换机正确地从服务器接收帧并将TLV帧发送回服务器。然而,服务器并没有接收到TLVs的交换帧,这让我们感到头脑发热。我们在TOR上放置了使用不同NIC的其他机器,它们得到了预期的LLDP数据。

我问谷歌人..。

根据此链接的说法,这些X710s可能正在运行一个内部的LLDP代理,该代理正在从交换机拦截LLDP帧。我们看到的受影响机器上的固件是这样发生的:

代码语言:javascript
复制
# ethtool -i eth2
driver: i40e
version: 1.3.47
firmware-version: 4.53 0x80001e5d 17.0.10
bus-info: 0000:01:00.2
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: yes

禁用NIC上的内部LLDP代理的方法不起作用。尽管如此,我仍在四处寻找,但我想我有几个选择:

  1. 找到在NIC上禁用内部LLDP代理的正确方法,并使用在这些机器上提取LLDP数据的现有方法-首选。
  2. 使用NIC代理并找到从NIC中提取邻居TLVs的方法。

有没有其他人在这些卡上遇到过同样或类似的问题,如果是的话,你是如何解决问题的?

我想,如果我想使用内部代理数据,那么它将通过ethtoolsnmp公开,但到目前为止,我还没有找到一种方法来显示这些信息。

提亚

编辑记录,当我尝试在Intel论坛中概述的步骤时,我得到以下输出:

代码语言:javascript
复制
root@host (~)# find /sys/kernel/debug/
/sys/kernel/debug/
root@host (~)# mkdir /sys/kernel/debug/i40e
mkdir: cannot create directory `/sys/kernel/debug/i40e': No such file or directory
EN

回答 4

Server Fault用户

回答已采纳

发布于 2016-05-11 16:30:45

好的。所以谷歌人来找我了。下面是如何解决这个问题的方法。

结果是,为了使用调试文件系统,需要首先安装它。我们使用memfs操作系统在我们正在调优的机器上运行命令,默认情况下我们不挂载调试器。所以这个剧本给了我我需要的答案。

...and为我的用例执行了以下步骤:

代码语言:javascript
复制
root@host (~)# mount -t debugfs none /sys/kernel/debug
root@host (~)# echo lldp stop > /sys/kernel/debug/i40e/0000:01:00.2/command

屈服:

代码语言:javascript
复制
root@host (~)# lldptool -i eth2 stat
Total Frames Transmitted        = 1834
Total Discarded Frames Received = 0
Total Error Frames Received     = 0
Total Frames Received           = 1
Total Discarded TLVs            = 0
Total Unrecognized TLVs         = 0
Total Ageouts                   = 0
root@host (~)# lldptool -t -n -i eth2
Chassis ID TLV
    MAC: ec:13:db:41:63:00
Port ID TLV
    Local: 508
Time to Live TLV
    120
System Name TLV
    sw1
System Description TLV
    Juniper Networks, Inc. qfx5100-48s-6q Ethernet Switch, kernel JUNOS 13.2X51-D38, Build date: 2015-06-12 02:33:47 UTC Copyright (c) 1996-2015 Juniper Networks, Inc.
System Capabilities TLV
    System capabilities:  Bridge, Router
    Enabled capabilities: Bridge, Router
Port Description TLV
    xe-0/0/0
MAC/PHY Configuration Status TLV
    Auto-negotiation not supported and not enabled
    PMD auto-negotiation capabilities: 0x8000
    MAU type: Unknown [0x0000]
Link Aggregation TLV
    Aggregation capable
    Currently not aggregated
    Aggregated Port ID: 0
Maximum Frame Size TLV
    1514
Port VLAN ID TLV
    PVID: 1
Unidentified Org Specific TLV
    OUI: 0x009069, Subtype: 1, Info: 564633373136303530303437
VLAN Name TLV
    VID 1: Name vlan-1
LLDP-MED Capabilities TLV
    Device Type:  netcon
    Capabilities: LLDP-MED, Network Policy, Location Identification, Extended Power via MDI-PSE
End of LLDPDU TLV

其他有用的链接:

http://comments.gmane.org/gmane.linux.network/408868 https://communities.intel.com/thread/87759 https://sourceforge.net/p/e1000/mailman/message/34129092/

和我的Google 搜索

票数 9
EN

Server Fault用户

发布于 2018-11-07 06:35:46

--这是一个固件特性,可以切换到

自2017年10月13日以来,英特尔发布了他们的驱动程序2.3.6版本,该版本支持自民党使用私有标志切换处理。这是通过执行以下命令来完成的:

代码语言:javascript
复制
sudo ethtool --set-priv-flags <interface name> disable-fw-lldp on
  • 用接口名替换<interface name>。(示例- eth0)

下载英特尔的驱动程序i40eX710/ XL710版本2.3.6

安装说明(来源)

代码语言:javascript
复制
1. Move the base driver tar file to the directory of your choice. For
   example, use '/home/username/i40e' or '/usr/local/src/i40e'.

2. Untar/unzip the archive, where <x.x.x> is the version number for the
   driver tar file:
   tar zxf i40e-<x.x.x>.tar.gz

3. Change to the driver src directory, where <x.x.x> is the version number
   for the driver tar:
   cd i40e-<x.x.x>/src/

4. Compile the driver module:
   # make install
   The binary will be installed as:
   /lib/modules/<KERNEL VERSION>/updates/drivers/net/ethernet/intel/i40e/i40e.ko

   The install location listed above is the default location. This may differ
   for various Linux distributions.
   NOTE:Â To compile the driver on some kernel/arch combinations, a
   package with the development version of libelf (e.g. libelf-dev,
   libelf-devel, elfutilsl-libelf-devel) may need to be installed.

  NOTE: To gather and display additional statistics, use the
  I40E_ADD_PROBES pre-processor macro:
  #make CFLAGS_EXTRA=-DI40E_ADD_PROBES
  Please note that this additional statistics gathering can impact
  performance.

5. Load the module using the modprobe command:
   modprobe <i40e> [parameter=port1_value,port2_value]

   Make sure that any older i40e drivers are removed from the kernel before
   loading the new module:
   rmmod i40e; modprobe i40e

6. Assign an IP address to the interface by entering the following,
   where ethX is the interface name that was shown in dmesg after modprobe:

   ip address add <IP_address>/<netmask bits> dev ethX

7. Verify that the interface works. Enter the following, where IP_address
   is the IP address for another machine on the same subnet as the interface
   that is being tested:
   ping <IP_address>

这是来自英特尔的承诺的:

出发地: Dave实现私有标志disable LLDP for ethtool来禁用FW对LLDP数据包的处理。这将阻止FW消耗LLDPDU,并使它们被发送到堆栈中。FW还被配置为在链接上应用默认的DCB配置。切换此标志的值也会导致PF重置。禁用FW也将禁用DCBx。

票数 5
EN

Server Fault用户

发布于 2016-09-01 13:55:21

创建了一个init脚本,用于在机器启动时执行此操作。任何拉请求都很感激。

如果有人知道如何知道嵌入的lldp代理的状态,我们将不胜感激。这可以用一些更好的退出代码对系统进行调整。

https://github.com/timhughes/i40e-lldp-agent/

票数 4
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/775980

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档