Cisco Nexus vPC LACP 绑定与服务器问题

网络工程 思科 转变 linux cisco-nexus 虚拟主机
2021-07-06 03:10:15

我正在配置vPC端到端直到我的服务器获得更多带宽,以下是我的场景

在此处输入图片说明

我看到一件奇怪的事情,那就是我在 N3k 交换机上配置了 vPC,然后我将 Linux 服务器配置为链路聚合802.3ad绑定,然后我重新启动服务器到目前为止一切正常,我可以看到正确的绑定配置/proc/net/bonding/bind0,我的服务器也开始 ping 但我发现我在 ping 中丢失了数据包,后来我在交换机上发现它的显示vpc已关闭,但想知道我是如何获得 ping 的?

N3k# show vpc 1


vPC status
----------------------------------------------------------------------
id   Port   Status Consistency Reason                     Active vlans
--   ----   ------ ----------- ------                     ------------
134  Po1  down*  success     success                    -

后来我做了shutno shutPort-Channel 1并立即调出VPC

N3k# show vpc 1


vPC status
----------------------------------------------------------------------
id   Port   Status Consistency Reason                     Active vlans
--   ----   ------ ----------- ------                     ------------
131  Po1  up     success     success                    10,20,30

我的 VPC 域配置

vpc domain 204
  peer-switch
  role priority 10
  peer-keepalive destination 10.29.0.51 source 10.29.0.50
  auto-recovery
  ip arp synchronize

这是我的 vPC 配置

interface Ethernet1/1
  switchport mode trunk
  switchport trunk allowed vlan 10,20,30
  spanning-tree port type edge trunk
  spanning-tree bpduguard enable
  speed 10000
  channel-group 1 mode active

interface port-channel1
  switchport mode trunk
  switchport trunk allowed vlan 10,20,30
  speed 10000
  vpc 1

这是我的 Linux 服务器配置

ifcfg-bond0

NAME=bond0
DEVICE=bond0
BOOTPROTO=none
ONBOOT=yes
BONDING_OPTS="mode=4 miimon=500 downdelay=1000 lacp_rate=1"
NM_CONTROLLED=no

ifcfg-bond0.10

NAME=bond0.10
DEVICE=bond0.10
BOOTPROTO=dhcp
VLAN=yes
ONPARENT=yes
NM_CONTROLLED=no

问题:

  1. 即使vpc在交换机上关闭服务器如何ping通
  2. 为什么我需要shut/no shutvpc 来启动 vpc?这是正常的吗?
  3. 我在同一个 vpc 集群上安装了 30 台服务器,并且都有同样的问题,每次我必须去交换机并需要做端口通道 shut/no shut
  4. 我在这里错过了什么吗?

更新 - 1

为了测试我重新启动服务器并发现服务器已启动但交换机 vpc 已关闭并且在交换机上我看到以下日志,这是一个奇怪的问题。

sw1# show logging | grep "Ethernet1/37"
    2018 Jul  9 14:28:13 sw1 %ETHPORT-5-IF_DOWN_INITIALIZING: Interface Ethernet1/37 is down (Initializing)
    2018 Jul  9 14:28:13 sw1 %ETH_PORT_CHANNEL-5-PORT_INDIVIDUAL_DOWN: individual port Ethernet1/37 is down
    2018 Jul  9 14:28:15 sw1 %ETHPORT-5-IF_DOWN_INITIALIZING: Interface Ethernet1/37 is down (Initializing)
    2018 Jul  9 14:28:18 sw1 %ETHPORT-5-SPEED: Interface Ethernet1/37, operational speed changed to 10 Gbps
    2018 Jul  9 14:28:18 sw1 %ETHPORT-5-IF_DUPLEX: Interface Ethernet1/37, operational duplex mode changed to Full
    2018 Jul  9 14:28:18 sw1 %ETHPORT-5-IF_RX_FLOW_CONTROL: Interface Ethernet1/37, operational Receive Flow Control state changed to off
    2018 Jul  9 14:28:18 sw1 %ETHPORT-5-IF_TX_FLOW_CONTROL: Interface Ethernet1/37, operational Transmit Flow Control state changed to off
    2018 Jul  9 14:28:28 sw1 %ETH_PORT_CHANNEL-4-PORT_INDIVIDUAL: port Ethernet1/37 is operationally individual
    2018 Jul  9 14:28:28 sw1 %ETHPORT-5-IF_UP: Interface Ethernet1/37 is up in mode trunk

服务器端我看到以下错误

[root@Linux ~]# tail -f /var/log/messages
Jul  9 10:45:47 s_sys@linux kernel: : [  321.299960] bond0: Warning: No 802.3ad response from the link partner for any adapters in the bond
Jul  9 10:46:11 s_sys@linux kernel: : [  345.300288] bond0: Warning: No 802.3ad response from the link partner for any adapters in the bond

我看到的 Linux 服务器端如下

[root@Linux ~]# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)

Bonding Mode: IEEE 802.3ad Dynamic link aggregation
Transmit Hash Policy: layer2 (0)
MII Status: up
MII Polling Interval (ms): 500
Up Delay (ms): 0
Down Delay (ms): 1000

802.3ad info
LACP rate: fast
Min links: 0
Aggregator selection policy (ad_select): stable
System priority: 65535
System MAC address: 6c:3b:e5:b0:7a:40
Active Aggregator Info:
    Aggregator ID: 2
    Number of ports: 2
    Actor Key: 13
    Partner Key: 32883
    Partner Mac Address: 00:23:04:ee:be:cc
2个回答

解决方案

我的天啊!问题是来自 Linux BONDING_OPTS 的downdelay=1000选项,一旦我删除一切开始工作,我重新启动服务器 10 次,每次 vpc 启动。

我不知道为什么 nexus 不喜欢downdelay=1000

现在我的配置在修复后如下所示:

NAME=bond0
DEVICE=bond0
BOOTPROTO=none
ONBOOT=yes
BONDING_OPTS="mode=4 miimon=500 lacp_rate=1"
NM_CONTROLLED=no
  • 有人可以在评论中解释为什么 downdelay 不起作用吗?

我将首先删除 lacp_rate 选项并检查绑定接口的 LACP 速率是否从fast变为slow

说明:默认情况下,交换机上的 LACP 速率很慢(30 秒),而您在服务器端将其设置为快(1 秒)。这意味着您的服务器每秒发送并期望 LACPPDU,而交换机仅每 30 秒发送一次。不匹配往往会导致问题(主要是在服务器端),它们在两端应该是相同的。您也可以在 switch 界面上将其设置为快速,lacp rate fast但建议使用默认值(慢速)并且应该适用于大多数情况 - 除非您有特殊要求。