Агрегация каналов (Link aggregation, trunking)

Аватар пользователя Raven2000

В процессе своей работы я заменил 2 сервера на один. В итоге у меня в наличие оказалось 2 кабель канала, две сетевые карты 3com по 100мб каждая, один сервер и свитч D-Link DES-3028. И я задумал увеличить пропускную способность сервера путем создания агрегации каналов.

Содержание:

Введение

Агрегация каналов (англ. Link aggregation, trunking) или IEEE 802.3ad — технология объединения нескольких физических каналов в один логический. Это способствует не только значительному увеличению пропускной способности магистральных каналов коммутатор—коммутатор или коммутатор—сервер, но и повышению их надежности. Хотя уже существует стандарт IEEE 802.3ad, многие компании еще используют для своих продуктов патентованные или закрытые технологии.

Главное преимущество агрегации каналов в том, что радикально повышается скорость — суммируется скорость всех используемых адаптеров. В случае отказа адаптера трафик посылается следующему работающему адаптеру, без прерывания сервиса. Если же адаптер вновь начинает работать, то через него опять посылают данные.

Использование в параллель несколько Ethernet-адаптеров выглядит так. Допустим есть два адаптера Ethernet: eth0 и eth1. Их можно объединить в псевдо-Ethernet-адаптер eth3. Система распознает эти агрегированные адаптеры как один. Все агрегированные адаптеры настраиваются на один MAC-адрес, поэтому удалённые серверы обращаются с ними как с одним адаптером. eth3 можно настроить на один IP адрес, как любой Ethernet адаптер. Из-за этого программы обращаются к нему как к самому обычному адаптеру, скорость которого в два раза выше.

Для реализации на FreeBSD мы будем использовать lagg - агрегация линков и интерфейс отказоустойчивый линков. Интерфейс lagg позволяет агрегировать нескольких сетевых интерфейсов, как один виртуальный интерфейс, тем самым обеспечивается отказоустойчивость и увеличение высокоскоростной связи.
Интерфейс lagg может быть создан с помощью команды ifconfig laggN create. Вы можете использовать различные типы агрегирования протоколов, указанной с помощью параметра proto laggproto. Дочерние интерфейсы могут быть добавлены с помощью laggport child-iface option и удалены с помощью параметра -laggport child-iface option.

Типы агригации

В настоящее время драйвер поддерживает агрегирования протоколов

  • failover (по умолчанию)
  • fec
  • lacp
  • loadbalance
  • roundrobin

Протоколы определяют, какие порты используются для исходящего трафика или конкретный порт принимает входящий трафик. Состояние интерфейса используется для проверки линка является ли он активным или нет.

Режимы работы:
Failover [failover] - Это режим по умолчанию. В этом режиме один из портов является мастер портом и все данные, получаются через этот порт. В случае отказа мастер порта будет использован следующий активный порт.

Cisco® Fast EtherChannel® - Cisco FAST EtherChannel [fec] - это статическая настройка и не согласовывает агрегацию или обмена кадрами и не следить за линком. Если коммутатор поддерживает LACP, то следует использовать LACP вместо FEC.

FEC балансировка исходящий трафик через активных портов, на основе информации, заголовка хешированного протокола и принимает входящий трафик через любой активный порт. Хеш-значение включает Ethernet адреса источника и назначения и если таковые имеются то и VLAN тег, IPv4/IPv6 адреса источника и назначения.

LACP [lacp]- IEEE® 802.3ad Link Aggregation Control Protocol (LACP) и протокол маркера. LACP проведет согласования и набор агрегатных линков в одну или несколько Link Aggregated Groups (LAG). Каждый LAG состоит из портов с одинаковой скоростью и установленной full-duplex операцией. Трафик будет сбалансированным через порты в LAG с наибольшим общей скоростью, в большинстве случаев будет существовать только один LAG, который будет содержать все порты. В случае возникновения изменений в физического подключения каналов связи LACP будет быстро изменять работу к новой конфигурации.
LACP балансировка исходящего трафика через активные порты, на основе информации, заголовка по хешированному протоколу и принимает входящий трафик с любого активного порта. Хеш-значение включает Ethernet адреса источника и назначения и, если таковые имеются, VLAN тег и IPv4/IPv6 адреса источника и назначения.

Loadbalance [loadbalance] - Является псевдонимом FEC режим.

Round-robin [roundrobin] - Распространяет исходящий трафик, с помощью планировщика циклически через все активные порты и принимает входящий трафик из любого активного порта. Этот режим является нарушением кадра Ethernet и следует использовать с особой осторожностью.

None [none] - Этот протокол предназначен чтобы ничего не делать: он отключает любой трафик без отключения lagg интерфейса.

Настройка

Для начало необходимо подключить модуль есть два варианта.
1. в loader.conf добавить строчку if_lagg_load="YES" и перезагрузится или вручную подгрузить модуль.

# echo 'if_lagg_load="YES"' >> /boot/loader.conf
# reboot

Если вы хотите без перезагрузки системы то выполните следующее:
kldload if_lagg

2. или включить поддержку lagg в ядро и пересобрать его с последующей перезагрузкой

device lagg

Пример LACP

Создадим 802.3ad линк агрегирования с помощью LACP с двумя em интерфейсами:

# ifconfig lagg0 create
# ifconfig em0 up
# ifconfig em1 up
# ifconfig lagg0 laggproto lacp laggport em0 laggport em1 \
192.168.1.1 netmask 255.255.255.0

Пример Failover

Создадим отказоустойчивый режим который можно использовать для перехода на вторичный интерфейс при потери связи на основном интерфейсе. Создадим и настроим интерфейс lagg0, с em0 как основной интерфейс и em1 как дополнительный интерфейс:

# ifconfig lagg0 create
# ifconfig lagg0 up laggproto failover laggport em0 laggport em1


Интерфейс будет выглядеть следующим образом, и основные различия будут в MAC-адресе и имени устройства:
# ifconfig lagg0
lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=8<VLAN_MTU>
        ether 00:05:5d:71:8d:b8
        media: Ethernet autoselect
        status: active
        laggproto failover
        laggport: em1 flags=0<>
        laggport: em0 flags=5<MASTER,ACTIVE>


Трафик будет передано и полученных по em0. Если связь теряется на em0 то em1 становится активным линком. Если связь восстанавливается на интерфейсе мастера то снова em0 станет активным линком.

Пример Failover роуминга

В следующем примере используется активный отказоустойчивый интерфейс для настройки роуминга между проводными и беспроводными сетями, используя два сетевых устройств. И всякий раз, когда проводной master интерфейс не подключен, беспроводной интерфейс будет использоваться:

# ifconfig em0 up
# ifconfig ath0 nwid my_net up
# ifconfig lagg0 laggproto failover laggport em0 laggport ath0 \
192.168.1.1 netmask 255.255.255.0

Стартап

Настроим запуск агрегации LACP при перегрузки системы:

# echo 'ifconfig_xl0="up"' >> /etc/rc.conf
# echo 'ifconfig_xl1="up"' >> /etc/rc.conf
# echo 'cloned_interfaces="lagg0"' >> /etc/rc.conf
# echo 'ifconfig_lagg0="laggproto lacp laggport xl0 laggport xl1 192.168.0.1 netmask 255.255.255.0"' >> /etc/rc.conf
# reboot

Проверим

# ifconfig
xl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=9<RXCSUM,VLAN_MTU>
        ether 00:04:79:66:4b:ae
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active
        lagg: laggdev lagg0
xl1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=8<VLAN_MTU>
        ether 00:04:79:66:4b:ae
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active
        lagg: laggdev lagg0
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
        inet6 fe80::1 prefixlen 64 scopeid 0x3
        inet6 ::1 prefixlen 128
        inet 127.0.0.1 netmask 0xff000000
lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=8<VLAN_MTU>
        ether 00:04:79:66:4b:ae
        inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255
        media: Ethernet autoselect
        status: active
        laggproto lacp
        laggport: xl1 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>
        laggport: xl0 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>

Свитч

Настроим работу коммутатор 2го уровня D-Link DES-3028.

DES-3028:4#config lacp_port 1-2 mode active
DES-3028:4#create link_aggregation group_id 1 type lacp
DES-3028:4#config link_aggregation group_id 1 master_port 1 ports 1-2 state enable

Заключение

Смотрим systat и скорость копирования.

                    /0   /1   /2   /3   /4   /5   /6   /7   /8   /9   /10
     Load Average   |
 
                    /0%  /10  /20  /30  /40  /50  /60  /70  /80  /90  /100
root     idle: cpu0 XXXXXXXXXXXXXXXXX
root     irq19: xl1 XXXXXXXXXXXXX
ftp         proftpd XX
root     irq18: xl0 XXXX

В итоге обе сетевые карты работают, скорость определенно возрастает с нашим настроением =).

Есть ограничения в работе агрегации см. ITworld.com - Link Aggregation with 802.3ad.

  • Все порты при агрегации должны быть одного типа (CAT-5E/6, SM или MM и тп).
  • Порты должны действовать на одной скорости.
  • Агрегировать канал можно до скорости 8-гигабит/сек.
  • Свитч может поддерживать 802.3ad. (но можно и без этого если сетевые карты такой режим поддерживают)

Ссылки

Дополнительные материалы
Ваша оценка: Нет Средняя: 4.5 (19 голосов)

Вопрос по поводу поддерки

Вопрос по поводу поддерки оборудованием. Если у меня две em-ки - мне нужно, чтобы свитч держал 802.3ad или либо то либо то? Точной инфы так и не нашел по этому вопросу.

RE:Вопрос по поводу поддерки

Да вам нужно чтобы свитч поддерживал стандарт 802.3ad

Если хочешь разобраться... Так иди и разбирайся!
[ igNix.ru | Технология жизни - технологии будущего ] [ Forum.igNix.ru ]

Достаточно просто поддержки?

Достаточно просто поддержки? Или его надо конфигурить, не смотря на то, какие сетевушки стоят? Статья хороша, но сетевушки то XL, то em - не ясно, как от типа сетевушки зависит необходимость конфигурить свитч.

RE:Достаточно просто поддержки?

Необходимо cконфигурировать свитч и фри и без разницы какие типы сетевых карт стоят главное чтобы были на одной скорости.

Если хочешь разобраться... Так иди и разбирайся!
[ igNix.ru | Технология жизни - технологии будущего ] [ Forum.igNix.ru ]

После кофигурирования свитча

После кофигурирования свитча если сетевушки не сконфигурированы - связи не будет? Сервер в датацентре, пытаюсь понять, как мне максимально безболезненно это сделать. И без использовния KVM :)

RE:После кофигурирования свитча

ДА связи не будет. И сначала делаете конфигурирование фри, а потом свича. А вам в ДЦ дадут сделать агрегацию свича? Они сами то поддерживают это? На кошках бы попробовали сначала для теста.

Если хочешь разобраться... Так иди и разбирайся!
[ igNix.ru | Технология жизни - технологии будущего ] [ Forum.igNix.ru ]

Фряха после конфигурирования

Фряха после конфигурирования тоже не будет реагировать, пока свитч не настроят? В ДЦ поддерживают, обещали сделать.

RE: Фряха после конфигурирования

Когда тестил вроде реагировала.

Если хочешь разобраться... Так иди и разбирайся!
[ igNix.ru | Технология жизни - технологии будущего ] [ Forum.igNix.ru ]

Из ДЦ написали

Из ДЦ написали следующее:

Свитчи поддерживают в ДЦ AGAVA 802.3ad (link aggregation), но наши
специалисты рекомендуют не подключать сервер данным образом.

Я, честно говоря, никаких минусов, кроме необходимости настройки, не нашел. О чем они могут говорить?

RE:Из ДЦ написали

Хороший ответ прислали, понравился =) А по русски вы будете первым космонавтом у них (предположение) и они не знают о возможных косяках их свичей. И людей которые бы вам помогли в случае проблем нету или не хотят помогать (лучше для них оставить как есть чем мозг напрягать). Или хотя бы прислали обоснование их рекомендаций, а то получается "сосед сказал, что Это не катит", а что и почему не сказал =)

Если хочешь разобраться... Так иди и разбирайся!
[ igNix.ru | Технология жизни - технологии будущего ] [ Forum.igNix.ru ]

не роуминг а роутинг =))

не роуминг а роутинг =))

1. в loader.conf добавить

1. в loader.conf добавить строчку if_lagg_load="YES" и перезагрузится

Перезагружаться не обязательно, можно подгрузить модуль:

# kldload if_lagg

Настроим запуск агрегации

Настроим запуск агрегации LACP при перегрузки системы:
# echo 'ifconfig_xl0="up"' >> /etc/rc.conf
# echo 'ifconfig_xl1="up"' >> /etc/rc.conf
# echo 'cloned_interfaces="lagg0"' >> /etc/rc.conf
# echo 'ifconfig_lagg0="laggproto lacp laggport xl0 laggport xl1 192.168.0.1 netmask 255.255.255.0"' >> /etc/rc.conf
# reboot

Перезагружаться также необязательно, достаточно выполнить:
# /etc/netstart

Перевод ужасен

FEC балансировка исходящий трафик через активных портов, на основе информации, заголовка хешированного протокола и принимает входящий трафик через любой активный порт.

давайте ссылку на оригинал

RE:Перевод ужасен

Cisco® Fast EtherChannel®

Cisco Fast EtherChannel (FEC), is a static setup and does not negotiate aggregation with the peer or exchange frames to monitor the link. If the switch supports LACP then that should be used instead.

FEC balances outgoing traffic across the active ports based on hashed protocol header information and accepts incoming traffic from any active port. The hash includes the Ethernet source and destination address, and, if available, the VLAN tag, and the IPv4/IPv6 source and destination address.

Link Aggregation and Failover

Если хочешь разобраться... Так иди и разбирайся!
[ igNix.ru | Технология жизни - технологии будущего ] [ Forum.igNix.ru ]

Будет ли работать

У меня сервер ProLiant DL360G5 c 4-мя сетевыми картами: две em и две bce
Всеми интерфейсами он смотрит в коммутатор HP Procurve 2910.
Задумка такая:
Все 4 сетевухи агрегировать в lagg0. На нем поднять нессколько vlan-ов
Будет ли работать на разных сетевухах?

RE:Будет ли работать

Трудно сказать, но почему бы и нет, пробуйте =)

Если хочешь разобраться... Так иди и разбирайся!
[ igNix.ru | Технология жизни - технологии будущего ] [ Forum.igNix.ru ]

Реально ли то же самое с Wi-Fi?

Агрегация каналов Wi-Fi, есть опыт у кого нить??

RE:Реально ли то же самое с Wi-Fi?

Смотря что вы хотите получить под понятие агрегация Wi-Fi.
1. Увеличение скорости работы с локалкой через Wi-Fi точки доступа.
Это как вы представляете? одна точка==один адаптер. Вы конечно можете использовать "n", а не "a, b, g" и юзать спец. точки доступа совместно с заточенными свичами вот вам и будет увеличение скорости и передача линку между точками, но это дорого.
2. Если две точки в два порта и агрегировать на свиче см пп1 и + точки доступа не могут агрегировать у них обрезанное ПО. Они не для этого.
3. Предлагаю продолжить в форуме, если что то упустил.

Если хочешь разобраться... Так иди и разбирайся!
[ igNix.ru | Технология жизни - технологии будущего ] [ Forum.igNix.ru ]

Перезагрузка плохой тон

reboot не обязательно, достаточно

kldload if_lagg

Допиши, не всегда можно сделать ребут, да и не та система, Никсы все безребутовые системы то.

RE: reboot

Дописал ).

Если хочешь разобраться... Так иди и разбирайся!
[ igNix.ru | Технология жизни - технологии будущего ] [ Forum.igNix.ru ]

собственно если iflagg

собственно если iflagg присутствует в модулях (а в 8.2 это так) то в /boot/loader.conf добавлять его запуск не нужно... достаточно
ifconfig_lagg0="bla bla" в rc.conf if_lagg поднимится сам...

сложно

Как для новичка сложно разобраться в новых интерфейсах вместо привычного igb

Интересная статья, но начало

Интересная статья, но начало статьи, похоже, написано гугл транслейтом.

2 USB lan

превед, не запускается с самого начала i219V в гигабитном режиме, по каким-то причинам, биос не апдейтил, но что-то большие сомнения что поможет, в итоге оказались на руках две гигабитные usb30 и 3.1 сетевухи, можно ли забондить это в винде - tplink + AX88179. Свич тайгер smc8024L2 поддерживает 802.3ad.

che za hernya u vas: Ваше сообщение не прошло спам фильтр и через это не сохранено. If you feel this is in error, please report that you are blocked.

To complete this form, please complete the word verification below. pridurki

Последние статьи

Новые комментарии

Theme by Danetsoft and Danang Probo Sayekti inspired by Maksimer