В связи с постоянным увеличением загружености каналов, возникла необходимость в агрегировании портов между коммутирующим (ну и маршрутизирующим в том числе) оборудованием. Агрегирование каналов будем выполнять с поддержкой протокола LACP, который позволяет пропускать трафик, даже если один из физических линков выйдет из строя.
Примечание. Когда-то в построенном статическом ether-channel вышел из строя один из линков. Все было очень банально - вышел из строя один из медиаконвертеров. Ну и по закону упавшего бутерброда - на выходных, причем на стороне транспортного провайдера. Появились следующие баги - часть ресурсов не отвечает. Отловил только одну закономерность - пинговались только IP-адреса, в которых 4 байт был непарным. Долго думал, как это возможно. Но диагностировать проблему было очень трудно... Отловил ее только вызвонив админа транспортного провайдера, который и обнаружил, что с их стороны один из портов в статическом ether-channel "отвалился". Теперь стала понятной проблема с доступностью нечетных IP. Балансировка была настроена по алгоритму dst-ip, соответственно были недоступны хосты, доступ к которым шел через нерабочий канал. Все решилось заменой вышедшего из строя медиаконвертера и поглощением пива вместе с админом транспортного провайдера. Вот такая вот байка. А соль ее в том, что лучше все таки строить динамические агрегированные каналы, а не статические...
Итак, примеры построение агрегированного канала на разном оборудовании.
Примечание. Агрегирование каналов — технология, которая позволяет объединить несколько физических каналов в один логический. Такое объединение позволяет увеличивать пропускную способность и надежность канала. Агрегирование каналов может быть настроено как между двумя коммутаторами, так и между коммутатором и хостом.
В FreeBSD агрегирование каналов возможно благодаря модулю ядра lagg. Он поддерживает несколько режимов агрегирования:
Как уже оговаривалось выше, будем использовать LACP.
Для поддержки lagg необходимо пересобрать ядро с такой строкой
device lagg |
либо же добавить загрузку модуля в /boot/loader.conf:
if_lagg_load="YES" |
Загрузить модуль не перезагружая сервер можно следующей командой:
# kldload /boot/kernel/if_lagg.ko |
Проверяем, подгрузился ли модуль:
# kldstat Id Refs Address Size Name |
Модуль подгрузился. Теперь создадим агрегированный интерфейс из двух интерфейсов em0 и em1:
# ifconfig em0 up |
Для создания интерфейса во время загрузки ОС, добавим такие строки в rc.conf:
cloned_interfaces="lagg0" |
В результате получаем такой вот интерфейс:
# ifconfig lagg0 lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 |
На этом настройку на стороне сервера можно считать оконченой.
Приведу еще пример построения lagg-интерфейса и использования vlan-ов (802.1Q). Для начала необходимо создать агрегированый интерфейс:
# ifconfig em0 up |
Потом создаем виртуальные интерфейсы VLAN поверх агрегированого интерфейса с метками тегов 10 и 15:
# ifconfig vlan10 create vlan 10 vlandev lagg0 192.168.10.1 netmask 255.255.255.0 |
В результате имеем такие интерфейсы:
# ifconfig vlan10 # ifconfig vlan15 |
Для того, чтобы все это "завелось" после перезагрузки сервера, в rc.conf необходимо добавить такие строки:
cloned_interfaces="lagg0 vlan10 vlan15" ifconfig_em0="up" ifconfig_em1="up" ifconfig_lagg0="laggproto lacp laggport em0 laggport em1" ifconfig_vlan10="vlan 10 vlandev lagg0 192.168.10.1 netmask 255.255.255.0" ifconfig_vlan15="vlan 15 vlandev lagg0 192.168.15.1 netmask 255.255.255.0" |
Примечание. В некоторых случаях при использовании 802.1Q агрегированный интерфейс не работал. "Лечится" это отключением опции vlanhwtag на сетевых интерфейсах. Тоесть, в таком случае команды "поднятия" интерфейсов em0 и em1 будут следующие:
# ifconfig em0 -vlanhwtag up |
И не забываем изменения внести в rc.conf:
ifconfig_em0="-vlanhwtag up" ifconfig_em1="-vlanhwtag up" |
Агрегирование портов будем выполнять на коммутаторе Cisco Catalyst WS-C2960G-24TC-L. Агрегировать будем порты Gi0/1 и Gi0/2. Общие команды конфигурации наводить не буду. Наведу только команды, которые необходимо выполнить для агрегирования:
c2960(config)#port-channel load-balance dst-ip |
В результате этих команд мы установили режим балансировки, исходя из IP-адреса получателя (балансировка исходящего трафика в таком случае будет более равномерна) и создали интерфейс Port-channel1. Теперь все команды по конфигурированию необходимо применять к интерфейсу Port-channel 1. Эти изменения будут присвоены интерфейсам, которые входят в channel-group 1 (в нашем частном случае, это GigabitEthernet 0/1 и GigabitEthernet 0/2).
Для примера, переведем интерфейсы в режим транка и укажем, какие VLAN пропускать через этот транк:
c2960(config)#interface Port-channel 1 |
Примечание. Для того, чтобы поместить два интерфейсы в один и тот же channel-group, необходимо чтобы настройки конфигурации этих интерфейсов были идентичны. Например, если порт GigabitEthernet 0/1 будет в режиме access, а GigabitEthernet 0/2 в режиме trunk, то попытка агрегировать эти интерфейсы закончится неудачей.
OS6850-24X
Агрегирование портов будем выполнять на коммутаторе Alcatel Lucent OS6850-24X. Агрегировать будем порты Gi1/1 и Gi1/2. Команды для создания агрегированого канала следующие:
-> lacp linkagg 1 size 2 admin state enable |
В результате имеем интерфейс linkagg 1.
OmniStack LS 6224
Агрегирование портов будем выполнять на коммутаторе Alcatel OmniStack LS 6224. Агрегировать будем порты g1 и g2. Команды для создания агрегированого канала следующие:
alc6224(config)# interface range ethernet g1-2 alc6224(config-if)# channel-group 1 mode auto |
Агрегирование портов будем выполнять на коммутаторе Foxgate S9816-GS8-X2. Агрегировать будем порты Eth1/1 и Eth1/2. Команды для создания агрегированого канала следующие:
9816-sw(config)#port-group 1 |
В результате имеем в своем распоряжении интерфейс Port-Channel1.
Агрегирование портов будем выполнять на коммутаторе D-Link DES-3828. Агрегировать будем порты 1 и 2. Команды для создания агрегированого канала следующие:
DES-3800:admin#config link_aggregation algorithm ip_destination |
Агрегирование портов будем выполнять на маршрутизаторе Juniper MX80 под управлением ОС Junos. Агрегировать будем порты ge-1/0/1 и ge-1/0/2.
root@core# set chassis aggregated-devices ethernet device-count 1
[edit]
root@core# set interfaces ge-1/0/1 gigether-options 802.3ad ae0
[edit]
root@core# set interfaces ge-1/0/2 gigether-options 802.3ad ae0
[edit]
root@core# set interfaces ae0 aggregated-ether-options lacp active
[edit]
root@core# commit
commit complete |
Особенности настройки агрегации каналов в коммутаторах Edge-Core:
Агрегирование портов будем выполнять на коммутаторе Edge-Core ES3552M. Агрегировать будем порты ethernet 1/32 и ethernet 1/33.
Vty-0(config)#interface ethernet 1/32-33 Vty-0(config-if)#lacp |
Механизм распределения сетевого трафика по виртуальным каналам транка: выбор, по какому физическому каналу в виртуальном транке будет передаваться сетевой трафик, осуществляется с помощью хеш-функции на базе следующих параметров: MAC адреса получателя (MACSA), MAC адреса отправителя (MACDA), VLAN, типа пакета Ethernet и IP адреса отправителя (IPSA). Механизм расчета основывается на формуле, которая возвращает 3-хбитный индекс, указывающий на физический канал, по которому будет передан пакет.
Агрегирование портов будем выполнять на коммутаторе Eltex MES2324FB. Агрегировать будем порты 20 и 21. Команды для создания агрегированого канала следующие:
# KL-L9-SW1(config)# port-Channel load-balance src-dst-mac-ip # KL-L9-SW1(config)# interface range GigabitEthernet 1/0/20 - 21 # KL-L9-SW1(config-if-range)# channel-group 1 mode auto |
Агрегация каналов для меня
Агрегация каналов для меня интересная тема, т.к. еще не делал, хочу попробовать.
Вопросов есть несколько:
У вас со стороны провайдера одинаковое оборудование? Где-то читал что должно быть одинаковое оборудование. А у меня получается от одного прова могу взять, там cisco 3500, а от второго через мой домашний dir-320. Будет ли работать?
Вообще то протоколы для того
Вообще то протоколы для того и существуют, чтобы не зависеть от производителя. Если пояснить "на пальцах", то имеем следующее... Допустим у Вас сетевая карта от D-Link. Благодаря тому, что есть протокол 802.3 Ethernet, Ваша сетевая карта будет работать с коммутаторами D-Link, Cisco, ZyXEL, 3COM, Alcatel, etc., а не только с коммутаторами D-Link.
Также, исходя из Вашего поста, могу видеть нестыковку... LACP - это протокол 2 уровня модели OSI. Тоесть, Вы могли бы от одного провайдера завести к себе 2 физических линка и агрегировать их в один логический линк. И IP-сеть уже бы работала поверх этого агрегированного канала.
А у Вас, как я понимаю, есть два канала в Интернет от разных провайдеров. В таком случае нужно использовать не агрегирование, а балансирование (либо резервирование). Тоесть уже распределять часть трафика в один канал, а часть - в другой. Объеденить эти два канала в один - не получится. Советую ознакомиться более подробно с моделью OSI. LACP - это 2 уровень. IP-трафик - это уже 3 уровень модели OSI. Соответственно обьеденить разные уровни - ну никак не получится.
P.S. Кстати, агрегировать каналы можно только при условии, что два устройства соединяются между собой двумя (или больше) линками. Тоесть между этими устройствами и будет агрегированный канал.
Будут еще вопросы - задавайте их на форуме.
Спасибо за ответ. На счет
Спасибо за ответ.
На счет агрегации 2-х линков можно будет подумать, если не хватит скорости одного пакета от провайдера. А так, действительно правильнее использовать балансировку между каналами от разных провов.
Иногда возникают
Иногда возникают ситуации, когда перегружен линк внутри сети. Вот тогда и приходится агрегация каналов...
Re: LACP - обьединение сетевых интерфейсов с использованием ...
Привет. Делал по данной инструкции, имею d-link 3828.
Пытаюсь настроить lacp между 2-мя bsd машинами, через коммутатор.
После настройки только одна из машин имеет доступ в сеть (пингуется свич, другие девайсы в сети). На другой линк есть но пакеты не ходят.
Причем, доступ в сеть имеет только та машина, которая последней была подключена к свичу. (если изолированную машину переводключить к свичу, она станет активной, вторая "изолируется")
Не пойму никак в чем может быть дело.
Re: LACP - обьединение сетевых интерфейсов с использованием ...
Подымите тему на форуме...
Опишите схему сети, настройку интерфейсов и тд...
Re: LACP - обьединение сетевых интерфейсов с использованием ...
Спасибо
Re: LACP - обьединение сетевых интерфейсов с использованием ...
Здравствуйте!
а как можно зарегестрироваться на форуме? подтверждение никак не приходит