Статья по настройке агрегированного канала на ViPNet Coordinator HW.

Агрегирование каналов — это технология, позволяющая объединить несколько физических интерфейсов в один логический. Агрегирование позволяет повысить пропускную способность и/или повысить отказоустойчивость канала связи.

В моем случае настройка агрегированных каналов производилась между ViPNet Coordinator HW 1000 (версия ПО - 4.5.6) и L3-коммутатором Eltex MES2324. Оба этих устройства поддерживают создание как статических, так и динамических групп агрегации. Динамическое агрегирование осуществляется на базе протокола LACP — открытого протокола, реализующего стандарт IEEE 802.3ad. Основной же целью агрегирования в данном случае являлось увеличение пропускной способности канала от и до Координатора.

Далее приведу пример создания одного агрегированного канала между ViPNet Coordinator HW и Eltex с применением динамических групп агрегации.

Настройка со стороны ViPNet Coordinator

Предположим, что мы хотим объединить два Ethernet-интерфейса eth0 и eth1 в составе одной группы bond1.

Для начала установим для подчиненных интерфейсов класс slave:

# inet ifconfig eth0 class slave
# inet ifconfig eth1 class slave

Далее создадим сам агрегированный интерфейс bond1:

# inet bonding add 1 mode 802.3ad slaves eth0 eth1

На текущий момент на Координаторе можно создать максимум три агрегированных интерфейса (бонда), каждый из которых также будет объединять до трех подчиненных интерфейсов.

На ViPNet Coordinator существуют следующие режимы работы агрегированных каналов: balance-rr, balance-xor, balance-tlb, 802.3ad, active-backup, broadcast. Подробнее о каждом можно прочитать в документации на криптошлюз.

Отдельно стоит отметить лишь то, что при настройке агрегированного канала по схеме Координатор<—>Коммутатор MAC-адрес, IP-адрес и порт узла отправителя не подменяются, поэтому в данном случае можно использовать режимы, опирающиеся на MAC-, IP-адреса и порты: balance-xor, balance-tlb и 802.3ad. В случае же применения схемы Координатор<—>Координатор вышеперечисленные параметры будут изменяться, поэтому при таком подклюении возможно использовать только режимы balance-rr, active-backup и broadcast.

Настроим статическую адресацию для данного интерфейса:

# inet ifconfig bond1 static
# inet ifconfig bond1 address 192.168.1.1 netmask 255.255.255.0

Зададим интервал передачи управляющих пакетов (LACPDU):

# inet ifconfig bond1 bonding lacp-rate fast

В режиме fast интервал передачи управляющих пакетов устанавливается в 1 секунду, в slow — 30 секунд.

Зададим режим выбора активного агрегатора на агрегированном интерфейсе (только для 802.3ad):

# inet ifconfig bond1 bonding ad-select bandwidth

Существует три возможных режима:

  • stable — режим, при котором первоначально выбирается агрегатор с наибольшей суммарной пропускной способностью подчиненных физических интерфейсов, а в дальнейшем выбор нового агрегатора выполняется только в случае сбоя всех подчиненных интерфейсов текущего агрегатора;
  • bandwidth — режим, при котором первоначально выбирается агрегатор с наибольшей пропускной способностью подчиненных физических интерфейсов, а в дальнейшем, при добавлении, удалении или сбое подчиненных физических интерфейсов, в агрегаторах производится перегруппировка подчиненных физических интерфейсов и выполняется выбор нового агрегатора;
  • count — режим, при котором первоначально выбирается агрегатор с наибольшим количеством подчиненных физических интерфейсов, а в дальнейшем, при добавлении, удалении или сбое подчиненных физических интерфейсов, в агрегаторах производится перегруппировка подчиненных физических интерфейсов и выполняется выбор нового агрегатора.

Далее определим алгоритм, по которому будет вычисляться хэш-функция. Именно на основании хэша будет приниматься решение о том, на какой из подчиненных интерфейсов будет направлен пакет.

inet ifconfig bond1 bonding xmit-hash-policy layer3+4

Поддерживаются следующие алгоритмы:

  • layer2 — алгоритм, при котором для хэширования используются MAC-адреса отправителя и получателя пакета;
  • layer2+3 — алгоритм, при котором для хэширования используются MAC-адреса отправителя и получателя, а также IP-адреса отправителя и получателя (для протоколов IPv4 или IPv6);
  • layer3+4 — алгоритм, при котором для хэширования используются IP-адреса отправителя и получателя, а также номера портов TCP и UDP (при наличии).

Не забудем разрешить прохождение трафика через агрегированный интерфейс:

iplir adapter add bond1 traffic on

В конце поднимем наши интерфейсы:

inet ifconfig eth0 up
inet ifconfig eth1 up
inet ifconfig bond1 up
Настройка со стороны Eltex MES2324

Теперь произведем комплементарные настройки со стороны коммутатора - создадим channel-group 1, агрегирующий Ethernet-интерфейсы gi1/0/1 и gi1/0/2.

Определим алгоритм балансировки трафика:

(config) # port-channel load-balance src-dst-mac-ip-port

Далее настроим порты коммутатора: определим скорость работы группы, для подчиненных интерфейсов зададим необходимый port-channel (группу агрегации) и таймаут для протокола LACP.

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

(config) # interface gi1/0/1
(config-if) # speed 1000
(config-if) # channel-group 1 mode auto
(config-if) # lacp timeout short
(config-if) # exit
(config) # interface gi1/0/2
(config-if) # speed 1000
(config-if) # channel-group 1 mode auto
(config-if) # lacp timeout short
(config-if) # exit
(config) # interface port-channel 1
(config-if) # speed 1000
(config-if) # exit

В конце не забудьте сохранить конфигурацию!

Проверка

Напоследок убедимся, что агрегированный канал поднялся.

На ViPNet Coordinator HW:

> inet show interface bond1

Проверка состояния bond на ViPNet Coordinator

Со стороны Eltex:

# show interfaces Port-Channel 1

Проверка состояния Port Channel на Eltex

Актуальную и более подробную информацию по настройке можно найти в соответствующей эксплуатационной документации.

Следующая запись