LACP

Материал из Xgu.ru

Перейти к: навигация, поиск

Link Aggregation Control Protocol (LACP) — протокол, предназначенный для объединения нескольких физических каналов в один логический в сетях Ethernet. Агрегированные каналы LACP используются как для повышения пропускной способности, так и повышения отказоустойчивости. Использование LACP в некоторых случаях позволяет обнаружить повреждённый канал, который бы при использовании обычной статической агрегации обнаружен бы не был. Описывается стандартом IEEE 802.3ad.

Содержание

[править] LACP в Linux

[править] LACP в Linux через bonding

В Linux поддержка LACP осуществляется с помощью модуля bonding, как и всякая другая агрегация на канальном уровне. Режим агрегации: 4.

Пример загрузки модуля[1]:

bonding miimon=100 mode=4 lacp_rate=1

[править] LACP в Linux через teaming

Teaming - новый механизм создания агрегированных линков в Linux, более архитектурно правильны. Состоит из ядерной части, которая реализует базовые механизмы обработки трафика, и части пространства пользователя, которая отвечает за сигнализацию и управление ядерной частью.

Необходимые опции ядра (отмечаем только те режимы коммутации, которые будем использовать):

CONFIG_NET_TEAM=m
CONFIG_NET_TEAM_MODE_BROADCAST=m
CONFIG_NET_TEAM_MODE_ROUNDROBIN=m
CONFIG_NET_TEAM_MODE_RANDOM=m
CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m
CONFIG_NET_TEAM_MODE_LOADBALANCE=m

Конфигурационный файл (/etc/network/team0.conf):

{
  "device": "team0",
  "runner": { 
    "name":"lacp",
    "active":true, 
    "fast_rate":true, 
    "tx_hash":["eth", "ipv4", "ipv6"]
  }, 
  "link_watch": {"name": "ethtool"}, 
  "ports": {
    "eth0": {},
    "eth2": {}
  }
}

Стоит заметить, что интерфейсы-порты должны быть в состоянии down, иначе агрегированный линк не запустится.

Запускаем демон teamd:

teamd -g -f /etc/network/team0.conf -d

Проверяем работу:

# teamdctl team0 state
setup:
  runner: lacp
ports:
  eth0
    link watches:
      link summary: up
      instance[link_watch_0]:
        name: ethtool
        link: up
    runner:
      aggregator ID: 2, Selected
      selected: yes
      state: current
  eth2
    link watches:
      link summary: up
      instance[link_watch_0]:
        name: ethtool
        link: up
    runner:
      aggregator ID: 2, Selected
      selected: yes
      state: current
runner:
  active: yes
  fast rate: yes

Добавляем адрес

ip link set up dev team0
ip address add X.X.X.X/X dev team0

Выключаем

teamd -t team0 -k

[править] LACP в FreeBSD

На FreeBSD (одна сторона):

# ifconfig lagg0 create 
# ifconfig lagg0 up laggproto lacp laggport fxp0 laggport fxp1

На Cisco (другая сторона):

interface FastEthernet0/1
 channel-group 1 mode active
 channel-protocol lacp
!
interface FastEthernet0/2
 channel-group 1 mode active
 channel-protocol lacp

На коммутаторе, при этом, информация о LACP-соседях должна выглядеть так:

switch# show lacp neighbor
Flags:  S - Device is requesting Slow LACPDUs
        F - Device is requesting Fast LACPDUs
        A - Device is in Active mode       P - Device is in Passive mode

Channel group 1 neighbors

Partner's information:

                  LACP port                        Oper    Port     Port
Port      Flags   Priority  Dev ID         Age     Key     Number   State
Fa0/1     SA      32768     0005.5d71.8db8  29s    0x146   0x3      0x3D
Fa0/2     SA      32768     0005.5d71.8db8  29s    0x146   0x4      0x3D

[править] Дополнительная информация

[править] Примечания

  1. Подробнее: http://backdrift.org/howtonetworkbonding
Источник — «http://xgu.ru/wiki/LACP»
На других языках