четверг, 14 февраля 2013 г.

centos link teaming (bonding)

Запишу себе на будущее, чтобы не забыть.
Чтобы объединить порты линки в линуксе в один, надо сделать следующее:


Загрузить нужный модуль и настроить его. Для этого в файл /etc/modprobe.d/bonding.conf вписать
alias bond0 bonding
options bond0 miimon=100 mode=4 lacp_rate=1
Тут используется mode=4 (который обычный 802.3ad), а так их много разных режимов.
Далее надо настроить сетевухи и специальный интерфейс, который будет их объединять.
В сетевухах пишем:

ifcfg-eth0:

DEVICE=eth0
BOOTPROTO=none
NM_CONTROLLED=no
ONBOOT=yes
USERCTL=no
ETHTOOL_OPTS="speed 1000 duplex full autoneg on"
MASTER=bond0
SLAVE=yes

ifcfg-eth1:

DEVICE=eth1
BOOTPROTO=none
NM_CONTROLLED=no
ONBOOT=yes
USERCTL=no
ETHTOOL_OPTS="speed 1000 duplex full autoneg on"
MASTER=bond0
SLAVE=yes

Ключевые тут последние две строки, третья с конца (ethtool_opts) обеспечивает работу интерфейса на гигабите, а не на 100Мб, как он по умолчанию, гад такой, поднимается.

Ну и итоговый интерфейс bond0

ifcfg-bond0:

DEVICE=bond0
BOOTPROTO=dhcp
NM_CONTROLLED=no
ONBOOT=yes
USERCTL=no
Собственно тут ничего такого, просто интерфейс, который перечислен в качестве мастера физическим сетевухам и у меня тут он получает адрес автоматом.

На стороне свитча (в частности тут на циске) создаем port-channel интерфейс и аттачим к нему пару портов, куда приходят эти сетевухи.
Типа как-то так:
interface Port-channel1
 description Teamed link to centos
 switchport mode trunk
!
interface GigabitEthernet1/0/5
 description link1
 switchport mode trunk
 channel-group 1 mode active
!
interface GigabitEthernet1/0/6
 description link2
 switchport mode trunk
 channel-group 1 mode active
!
Ну вроде как и все. Просто, но тем не менее, чтобы не искать, если вдруг понадобится :)