Я хочу подключить CentOS 6.4 Linux Box с двумя сетевыми картами к Cisco 2960S, используя агрегацию портов LACP 802.3ad. Это в основном по причинам избыточности (и, надеюсь, большей пропускной способности). Мы не используем теги VLAN.
В конфигурации, указанной ниже, агрегирование ссылок работает только частично. Примерно половина сетевых хостов может пинговать и использовать ssh для Linux, тогда как другая половина не может. То же самое и с самим Linux-сервером: пинговать может только половина хостов.
Настройка связывания адаптера (или в Cisco Speech EtherChannel) не должна быть такой сложной. Но кто-нибудь знает, что здесь не так?
На стороне Linux конфигурация выглядит так:
cat /etc/modprobe.d/bond.conf
alias bond0 bonding
cat /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
ONBOOT=yes
USERCTL=no
BOOTPROTO=none
NM_CONTROLLED="no"
IPADDR=10.76.161.135
PREFIX=21
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System bond0"
BONDING_OPTS="mode=4 miimon=100 lacp_rate=1"
cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes
USERCTL=no
cat /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE="eth1"
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes
USERCTL=no
И эти команды я применил к Cisco 2960S:
sw01>enable
sw01#config term
sw01(config)#int range Gi0/13 - 14
sw01(config-if-range)#description lacp ch2
sw01(config-if-range)#channel-protocol lacp
sw01(config-if-range)#channel-group 2 mode active
Creating a port-channel interface Port-channel 2
sw01(config-if-range)#no shutdown
sw01(config-if-range)#exit
sw01(config)#interface Port-channel2
sw01(config-if)#description lacp ch2 for ssensvr03
sw01(config-if)#switchport mode access
sw01(config-if)#no shutdown
sw01(config-if)#exit
sw01>show interface description
Gi0/13 up up lacp ch2
Gi0/14 up up lacp ch2
Po2 up up lacp ch2 for svr03
sw01>show etherchannel summary
Number of channel-groups in use: 1
Number of aggregators: 1
Group Port-channel Protocol Ports
------+-------------+-----------+-----------------------------------------------
2 Po2(SU) LACP Gi0/13(P) Gi0/14(P)
sw01>show etherchannel
Group: 2
----------
Group state = L2
Ports: 2 Maxports = 16
Port-channels: 1 Max Port-channels = 16
Protocol: LACP
Minimum Links: 0
В RHEL и CentOS по умолчанию включен NetworkManager, что вызывает проблемы. Навсегда отключите его как root, чтобы соединение вашего адаптера работало правильно:
service NetworkManager stop
chkconfig NetworkManager off
chkconfig network on
service network restart
Дополнительно к этому удалите lacp_rate=1
из BONDING_OPTS
:
BONDING_OPTS="mode=4 miimon=100"
Интересно, связано ли это с тем, что вы устанавливаете Fast LACPDU (lacp_rate=1
) на стороне связи Linux, но коммутатор все еще работает в режиме Slow LACPDU по умолчанию (по умолчанию), поэтому связь не согласовывается должным образом.
Если это правильно, вы сможете либо show etherchannel 2 detail
или show lacp internal
на переключателе флажки группы каналов, вероятно, скажут SA
(Медленно активный). Если вы сделаете show lacp neigh
вы, вероятно, увидите F
на стороне Linux (Fast).
Чтобы решить эту проблему, просто удалите lacp_rate=1
от твоего BONDING_OPTS
и перезапустите.
Все остальное настроено правильно, хотя вам и не нужно alias bond0 bonding
, сетевые сценарии загрузят и настроят драйвер связывания при запуске интерфейса.