Документация по ОС FreeBSD Воскресенье, 05.05.2024, 08:41
Приветствую Вас Гость | RSS
Меню сайта

Категории каталога
Apache [58]
DNS [25]
FTP [27]
Mail [74]
Samba [24]
Squid [46]
SSH [23]
VPN [35]
РРР [20]
Net [173]

Главная » Статьи » Сеть » Net

Агрегация каналов (Link aggregation, trunking) [2010]
В процессе своей работы я заменил 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

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. (но можно и без этого если сетевые карты такой режим поддерживают)
Ссылки



Источник: http://www.ignix.ru/public/agregatsiya-kanalov-link-aggregation-trunking
Категория: Net | Добавил: oleg (02.11.2010) | Автор: Raven2000
Просмотров: 810 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа

Beastie

Друзья сайта

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
links

Copyright MyCorp © 2024