Агрегированный интерфейс
Механизм агрегирования каналов (Link Aggregation) объединяет несколько физических интерфейсов в один логический (агрегированный) интерфейс. Поведение связанных интерфейсов зависит от выбранного режима работы. В общем случае режимы обеспечивают либо горячее резервирование, либо балансировку нагрузки. Также может осуществляться мониторинг состояния канала.
Создание агрегированного интерфейса возможно только из несконфигурированных интерфейсов.
Конфигурирование
Основные настройки интерфейса
Создание агрегированного интерфейс и назначение ему IP-адрес:
set interfaces bonding <bond1> address <address | dhcp | dhcpv6>где:
<bond1> – идентификатор интерфейса агрегированных каналов, приведён в качестве примера. Имя агрегированного интерфейса должно соответствовать формату «bondN», где N - числовой идентификатор;
<address | dhcp | dhcpv6> – IP-адрес для интерфейса агрегированных каналов. IP-адрес возможно указать несколько раз как IPv4 и/или IPv6 адрес в формате <x.x.x.x/x> и/или <h:h:h:h:h:h:h:h/x>. Возможно получение адреса по протоколу DHCP и/или DHCPv6.
Установка описание для интерфейса агрегированных каналов:
set interfaces bonding <bondN> description <description>где <description> - описание группы агрегирования.
Отключение интерфейса агрегированных каналов с сохранением настроек:
set interfaces bonding <bondN> disableИнтерфейс будет переведён в состояние административного отключения (A/D).
Добавить сетевой интерфейс в состав интерфейса агрегированных каналов:
set interfaces bonding <bondN> member interface <member>где <member> - сетевой интерфейс.
Примечание
В случае, если на добавляемом интерфейсе установлен параметр hw_id_auto_pinning, то при применении настроек возникает ошибка «Cannot add interface «ethN» to bond, it has a «hw_id_auto_pinning» assigned!». Для устранения этой ошибки необходимо удалить ветку hw_id_auto_pinning на данном интерфейсе, используя команду «delete interfaces ethernet ethN hw_id_auto_pinning».
Если на добавляемом интерфейсе ранее был удалён параметр hw_id, то при применении настроек возникает ошибка «Cannot add interface «ethN» to bond, it has a «» assigned!». Для исправления этой ошибки необходимо добавить в интерфейс ethN удалённый параметр hw_id, используя команду «set interfaces ethernet ethN hw_id <xx:xx:xx:xx:xx:xx>».
Отключение генерации управления потоком Ethernet (кадров паузы):
set interfaces bonding <bondN> disable-flow-controlПередающая станция, будь то компьютер или сетевой коммутатор, может передавать данные с более высокой скоростью, чем принимающая станция способна обработать. Чтобы избежать перегрузки, принимающая сторона может использовать механизм управления потоком. Этот механизм уведомляет отправителя о необходимости приостановить передачу данных до тех пор, пока принимающая станция не будет готова их принять.
Отключение обнаружение изменений физического состояния канала связи:
set interfaces bonding <bondN> disable-link-detectС помощью данной команды возможно настроить сетевой интерфейс таким образом, чтобы он не обнаруживал изменений физического состояния канала связи, например, при отсоединении кабеля. По умолчанию установлен параметр, который фиксирует такие изменения.
Установка MAC-адреса интерфейса агрегированных каналов:
set interfaces bonding <bondN> mac <xx:xx:xx:xx:xx:xx>где <xx:xx:xx:xx:xx:xx> - MAC-адрес для интерфейса агрегированных каналов. По умолчанию используется MAC-адрес первого интерфейса, добавленного в интерфейс агрегированных каналов.
Установка значения MTU для интерфейса агрегированных каналов:
set interfaces bonding <bondN> mtu <mtu>где <mtu> - значение MTU для интерфейса агрегированных каналов. Возможно указать значение в диапазоне от «68» до «9190».
Установка значения TCP MSS:
set interfaces bonding <bondN> ip adjust-mss <mss | clamp-mss-to-pmtu>где:
<mss> - значение MSS. Возможно указать значение в диапазоне от «536» до «65535».
<clamp-mss-to-pmtu> - автоматически устанавливать MSS в нужное значение.
Поскольку обнаружение PMTU в сети Интернет работает нестабильно, иногда возникает необходимость ограничить значение TCP MSS. Это поле находится в опциях TCP в части SYN-пакета. Установив значение MSS, система сообщает удалённой стороне, что не следует отправлять пакеты размером больше этого значения.
Установка тайм-аута записи в ARP-кэш для интерфейса агрегированных каналов:
set interfaces bonding <bondN> ip arp-cache-timeout <1-86400>где <1-86400> - значение тайм-аута записи в ARP-кэш в секундах. Возможно указать значение в диапазоне от «1» до «86400». По умолчанию используется значение «30».
Отключить фильтрацию ARP на интерфейсе агрегированных каналов:
set interfaces bonding <bondN> ip disable-arp-filterЕсли параметр не установлен (по умолчанию), это позволяет иметь несколько сетевых интерфейсов в одной подсети и отвечать на ARP для каждого интерфейса в зависимости от того, будет ли ядро направлять пакет с IP-адресом ARP через этот интерфейс. Для этого необходимо использовать маршрутизацию на основе источника.
Отключить переадресацию IP на интерфейсе агрегированных каналов:
set interfaces bonding <bondN> ip disable-forwardingЕсли параметр установлен, интерфейс переходит в режим хоста, и переадресация IPv6 на этом интерфейсе отключается.
Включить направленную широковещательную пересылку на интерфейсе агрегированных каналов:
set interfaces bonding <bondN> ip enable-directed-broadcastВ случае активации данной опции, входящие пакеты направленной широковещательной рассылки IP будут перенаправляться через указанный интерфейс. В случае если данный параметр не задан (по умолчанию), входящие пакеты направленной широковещательной рассылки IP не будут передаваться.
Включить приём ARP пакетов на интерфейсе агрегированных каналов:
set interfaces bonding <bondN> ip enable-arp-acceptОпределяет поведение для ARP-пакетов, IP-записи которых ещё не присутствуют в ARP-таблице. Если эта настройка включена, то создаются новые записи в ARP-таблице. Как ответы, так и запросы типа Gratuitous ARP будут вызывать обновление ARP-таблицы, если эта настройка включена. Если в ARP-таблице уже содержится IP-адрес кадра Gratuitous ARP, то ARP-таблица будет обновлена независимо от того, включена или выключена эта настройка.
Включить анонсирование ARP пакетов на интерфейсе агрегированных каналов:
set interfaces bonding <bondN> ip enable-arp-announceЕсли параметр не задан, используется любой локальный адрес, который настроен на любом интерфейсе. Если параметр установлен, рекомендуется избегать использования локальных адресов, которые не входят в подсеть цели для данного интерфейса. Этот режим полезен, когда целевые узлы, доступные через данный интерфейс, требуют, чтобы IP-адрес источника в ARP-запросах был частью их логической сети, настроенной на принимающем интерфейсе. При генерации запроса система проверяем все подсети, включающие целевой IP-адрес, и сохраняем адрес источника, если он принадлежит такой подсети. Если подходящей подсети не найдено, система выбирает адрес источника в соответствии с правилами для уровня 2.
Включить игнорирование ARP пакетов на интерфейсе агрегированных каналов:
set interfaces bonding <bondN> ip enable-arp-ignoreДанный параметр определяет режимы отправки ответов на ARP-запросы, которые разрешают локальные целевые IP-адреса. Если параметр включён, ответ будет отправлен только в том случае, если целевой IP-адрес является локальным адресом, настроенным на входящем интерфейсе. Если параметр отключён (по умолчанию), ответ будет получен для любого локального целевого IP-адреса, настроенного на любом интерфейсе.
Включить прокси ARP на интерфейсе агрегированных каналов:
set interfaces bonding <bondN> ip enable-proxy-arpПрокси ARP позволяет интерфейсу Ethernet отвечать своим MAC-адресом на ARP-запросы IP-адресов назначения в подсетях, подключённых к другим интерфейсам системы. Последующие пакеты, отправленные на эти IP-адреса назначения, пересылаются системой соответствующим образом.
Включить прокси ARP частного VLAN на интерфейсе агрегированных каналов:
set interfaces bonding <bondN> ip proxy-arp-pvlanРазрешить ответы ARP-прокси с того же интерфейса, с которого был получен ARP-запрос или запрос на предложение. Это необходимо для поддержки функций Ethernet-коммутаторов, описанных в RFC 3069, где отдельные порты не могут напрямую связываться друг с другом, но могут связываться с вышестоящим маршрутизатором. Как указано в RFC 3069, этого можно достичь путём включения прокси-ARP.
Необязательно использовать вместе с proxy_arp.
Включить политику проверки источника по обратному пути, как указано в RFC 3704:
set interfaces bonding <bondN> ip source-validation <strict | loose | disable>где <strict | loose | disable> - режим проверки источника. Возможно указать следующие значения:
strict - каждый входящий пакет проверяется по FIB, и если интерфейс не является наилучшим обратным путем, то проверка пакета будет неудачной. По умолчанию неудачные пакеты отбрасываются.
loose - адрес источника каждого входящего пакета также проверяется по FIB, и если адрес источника не достижим ни через один интерфейс, проверка пакета будет неудачной.
disable - нет проверки источника.
В настоящее время в RFC 3704 рекомендуется включать strict режим для предотвращения подмены IP-адресов в результате DDos атак. При использовании асимметричной или другой сложной маршрутизации рекомендуется использовать loose режим.
Включить получение IPv6-адреса с помощью автоконфигурации без статического изменения (SLAAC):
set interfaces bonding <bondN> ipv6 address autoconfВ соответствии с RFC 4862, хосты IPv6 могут автоматически настраиваться при подключении к сети IPv6 с использованием протокола Neighbor Discovery Protocol (NDP) через сообщения ICMPv6 об обнаружении маршрутизатора. При первом подключении к сети хост отправляет многоадресный запрос link-local router solicitation для получения параметров конфигурации. Маршрутизаторы отвечают на этот запрос пакетом router advertisement, содержащим параметры конфигурации уровня Интернета.
Примечание
Данный метод автоматически отключает пересылку трафика IPv6 на сетевом интерфейсе.
Включить префикс EUI-64 на основе MAC адреса для IPv6 адреса интерфейса агрегированных каналов:
set interfaces bonding <bondN> ipv6 address eui64 <prefix>где <prefix> - cеть IPv6 в формате <h:h:h:h:h:h:h:h/64>.
Удалить локальный адрес IPv6 по умолчанию для интерфейса агрегированных каналов:
set interfaces bonding <bondN> ipv6 address no-default-link-local
Отключить IP переадресацию на интерфейсе агрегированных каналов:
set interfaces bonding <bondN> ipv6 disable-forwardingВ случае установки, интерфейс будет переведён в режим хоста, а переадресация IPv6 на данном интерфейсе будет отключена.
Установить значения TCP MSS:
set interfaces bonding <bondN> ipv6 adjust-mss <mss | clamp-mss-to-pmtu>где:
<mss> - значение MSS. Возможно указать значение в диапазоне от «536» до «65535».
<clamp-mss-to-pmtu> - автоматически устанавливать MSS в нужное значение.
Принимать обнаружение дублирующегося адреса:
set interfaces bonding <bondN> ipv6 accept-dad <0-2>где <0-2> - режим приёма DAD. Возможно указать следующие значения:
0 - отключить DAD;
1 - включить DAD (по умолчанию);
2 - включить DAD и отключить работу IPv6, если обнаружен дублированный MAC-адрес link-local.
Установить количество сообщений NS для отправки при выполнении DAD:
set interfaces bonding <bondN> ipv6 dup-addr-detect-transmits <n>где <n> - количество NS-сообщений. В случае установки значения «0», функция обнаружения дубликатов адресов (DAD) будет отключена. По умолчанию используется значение «1».
Разместить интерфейс агрегированных каналов в указанном экземпляре VRF:
set interfaces bonding <bondN> vrf <vrf>где <vrf> - имя экземпляра VRF.
Настройки получения адреса по DHCP(v6)
Установить идентификатор, используемый клиентом для идентификации себя DHCP сервером:
set interfaces bonding <bondN> dhcp-options client-id <description>где <description> - значение идентификатора.
В случае предоставления идентификатора пользователь обязан использовать один и тот же идентификатор во всех последующих сообщениях.
Изменить системное имя устройства, передаваемое DHCP серверу:
set interfaces bonding <bondN> dhcp-options host-name <hostname>где <hostname> - новое системное имя хоста, передаваемое DHCP серверу.
Вместо передачи реального системного имени хоста на DHCP-сервер будет передано заданное значение в качестве имени хоста.
Определить тип клиента поставщика для DHCP-сервера:
set interfaces bonding <bondN> dhcp-options vendor-class-id <vendor-id>где <vendor-id> - значение опций DHCP.
Опция «vendor-class-id» используется для запроса у сервера определенного класса опций поставщика.
Запросить у DHCP-сервера только адрес, не запрашивая шлюз по умолчанию:
set interfaces bonding <bondN> dhcp-options no-default-route
Установить значение расстояния для шлюза по умолчанию, отправляемого сервером DHCP:
set interfaces bonding <bondN> dhcp-options default-route-distance <distance>где <distance> - значение расстояния для шлюза по умолчанию. Возможно указать значение в диапазоне от «1» до «255». По умолчанию используется значение «210».
Отклонить аренду DHCP с заданного адреса или диапазона:
set interfaces bonding <bondN> dhcp-options reject <address>где <address> - IP-адрес, возможно указать несколько раз в формате <x.x.x.x> и/или <x.x.x.x/x>.
Задать уникальный идентификатор DHCP (DUID) для интерфейса агрегированных каналов:
set interfaces bonding <bondN> dhcpv6-options duid <h[[:h]...]>где <h[[:h]…]> - значение уникального идентификатора DHCP.
Уникальный идентификатор DHCP (DUID) используется системой для получения IP-адреса от сервера DHCPv6. Он состоит из двухбайтового поля типа DUID и поля идентификатора переменной длины до 128 байт. Фактическая длина DUID зависит от типа. Сервер сравнивает DUID с данными в своей базе и предоставляет системе необходимую информацию, такую как адрес, время аренды, DNS-серверы и другие параметры.
Не отправлять сообщение об освобождении при выходе:
set interfaces bonding <bondN> dhcpv6-options no-releaseДанный параметр означает, что при использовании протокола DHCP для получения IPv6-адресов адрес не будет освобождаться автоматически. Это может быть полезно, если необходимо сохранить полученный адрес после отключения интерфейса или перезагрузки. В таком случае адрес возможно будет использовать многократного при последующих операциях подключения.
Получить только параметры конфигурации, без указания адреса:
set interfaces bonding <bondN> dhcpv6-options parameters-onlyДанный параметр указывает на то, что dhcp6c обменивается с серверами только информационными параметрами конфигурации. Примером таких параметров является список адресов DNS-серверов. Это утверждение может быть полезно, если клиенту не требуются параметры конфигурации с состоянием, такие как IPv6-адреса или префиксы.
Включить функцию Rapid Commit для быстрого получения IPv6-адреса:
set interfaces bonding <bondN> dhcpv6-options rapid-commit
Запросить временный IPv6-адрес:
set interfaces bonding <bondN> dhcpv6-options temporaryЗапрашивается только временный адрес, и не создаёт партнёрство IA_NA (Identity Association for Non-temporary Addresses).
Делегирование префиксов DHCPv6 (PD)
Задать размер делегируемого префикса для экземпляра делегирования префикса на интерфейсе агрегированных каналов:
set interfaces bonding <bondN> dhcpv6-options pd <id> length <length>где:
<id> - номер экземпляра делегированного префикса. Значение должно быть больше или равно нулю.
<length> - значение размера делегируемого префикса. Возможно указать значение в диапазоне от «32» до «64». По умолчанию используется значение «64».
Указать адрес интерфейса <address>, используемый локально на интерфейсе <delegatee>, на который был делегирован префикс:
set interfaces bonding <bondN> dhcpv6-options pd <id> interface <delegatee> address <address>где:
<delegatee> - сетевой интерфейс.
<address> - значение, используемое для формирования адреса интерфейса IPv6. Значение должно быть больше нуля.
Интерфейс будет объединен с делегированным префиксом и идентификатором sla-id для формирования полного адреса интерфейса. По умолчанию используется расширенный уникальный идентификатор интерфейса (EUI-64).
Указать значение идентификатора агрегатора уровня сайта SLA <sla-id> на интерфейсе <delegatee>:
set interfaces bonding <bondN> dhcpv6-options pd <id> interface <delegatee> sla-id <id>где <id> - значение идентификатора агрегатора уровня сайта. Идентификатор должен быть положительным десятичным числом и соответствовать максимально допустимой длине идентификаторов SLA.
Настройка параметров для агрегированного интерфейса
Определить режим работы агрегированного интерфейса:
set interfaces bonding <bondN> mode <802.3ad | active-backup | broadcast | round-robin | transmit-load-balance | adaptive-load-balance | xor-hash>Возможно указать следующие режимы работы агрегированного интерфейса:
802.3ad (по умолчанию) - это стандарт IEEE, также называемый LACP (Link Aggregation Control Protocol). Он включает автоматическую настройку агрегации, поэтому требуется минимальная настройка коммутатора. Режим, при котором создаются агрегированные группы сетевых карт с одинаковой скоростью и дуплексом. При таком объединении передача задействует все каналы в активной агрегации, согласно стандарту IEEE 802.3ad. Выбор ведомого устройства для исходящего трафика производится в соответствии с хэш-политикой передачи, которая может быть изменена по сравнению со стандартной простой XOR-политикой с помощью опции hash-policy. Обеспечивает как увеличение пропускной способности, так и отказоустойчивость.
Примечание
Для использования режима 802.3ad необходимо, чтобы сетевой коммутатор поддерживал эту функцию.
active-backup - в данном режиме только один сетевой интерфейс из агрегированных будет активным. Остальные интерфейсы станут активными только в случае отказа текущего активного интерфейса. При такой политике MAC-адрес агрегированного интерфейса отображается только на активном интерфейсе, что позволяет избегать конфликтов с коммутатором. Режим обеспечивает отказоустойчивость, но не предназначен для балансировки нагрузки на подчиненных интерфейсах.
broadcast - широковещательный режим, пакеты отправляются через все подчиненные интерфейсы одновременно. Режим обеспечивает значительную отказоустойчивость.
round-robin - пакеты отправляются последовательно, начиная с первого доступного интерфейса и заканчивая последним. При выходе одного из интерфейсов из строя, оставшиеся продолжают работать. Режим применяется для балансировки нагрузки и отказоустойчивости.
transmit-load-balance - использование адаптивной балансировки нагрузки при передаче в качестве режима агрегирования. Этот режим является типом агрегирования каналов, не требующим никакой специальной поддержки коммутатором. Исходящий трафик распределяется в соответствии с текущей загрузкой (рассчитанной относительно скорости) на каждом интерфейсе Ethernet в интерфейсе агрегирования. Входящий трафик принимается текущим интерфейсом Ethernet. Если происходит сбой принимающего интерфейса Ethernet, происходит переход MAC-адреса сбойного интерфейса на другой интерфейс Ethernet.
adaptive-load-balance - использование адаптивной балансировки нагрузки в качестве режима агрегирования. В этом режиме для трафика IPv4 производятся как адаптивная балансировка нагрузки при передаче, так и балансировка нагрузки при приеме, и не требуется специальной поддержки коммутатора. Балансировка нагрузки на приём достигается с помощью согласования по протоколу ARP. Драйвер бондинга перехватывает ARP-ответы, отправленные локальной системой, и переписывает аппаратный адрес источника уникальным аппаратным адресом одного из ведомых в бондинге. Это позволяет разным пирам использовать разные аппаратные адреса для сервера. Трафик, получаемый от соединений, созданных сервером, также балансируется. Когда локальная система отправляет ARP-запрос, драйвер связывания копирует и сохраняет IP-информацию об аналоге из ARP-пакета. Когда ARP-ответ приходит от равного интерфейса, драйвер бондинга извлекает его аппаратный адрес и инициирует ARP-ответ этому равному интерфейсу, назначая его одним из ведомых в бондинге. Проблемным результатом использования ARP-переговоров для балансировки является то, что каждый раз при передаче ARP-запроса используется аппаратный адрес связи. Таким образом, равные участники узнают аппаратный адрес связи, и балансировка принимаемого трафика сводится к текущему ведомому. Это решается путём отправки обновлений (ARP-ответов) всем равным с их индивидуально назначенным аппаратным адресом, чтобы трафик перераспределился. Приёмный трафик также перераспределяется при добавлении нового ведомого в соединение и при повторной активации неактивного ведомого. Нагрузка на приём распределяется последовательно (по кругу) между группой самых высокоскоростных ведомых в связке. При восстановлении соединения или добавлении нового ведомого в связку, принимаемый трафик перераспределяется между всеми активными ведомыми в связке путём инициирования ARP-ответов с выбранным MAC-адресом каждому из клиентов. Параметр updelay должен быть установлен в значение, равное или большее, чем задержка пересылки коммутатора, чтобы ARP-ответы, отправленные клиентам, не были заблокированы коммутатором.
xor-hash - использование политики «исключающего ИЛИ» в качестве режима агрегирования. Передача распределяется между сетевыми интерфейсами используя формулу: [(«MAC-адрес источника» XOR «MAC-адрес назначения») по модулю «slave count»]. Альтернативные политики передачи могут быть выбраны с помощью опции hash-policy. Этот режим обеспечивает балансировку нагрузки и отказоустойчивость.
Определить минимальное количество сетевых интерфейсов, входящих в состав агрегированного интерфейса:
set interfaces bonding <bondN> min-links <0-16>где <0-16> - количество интерфейсов-участников. Возможно указать значение в диапазоне от «0» до «16». По умолчанию установлено значение «0», что означает отключение данного параметра. В этом случае агрегация будет функционировать до тех пор, пока есть активный агрегатор, независимо от их общего количества.
Примечание
Данный параметр оказывает влияние только на режим 802.3ad.
Поскольку агрегатор не может работать без хотя бы одного доступного канала, установка этого параметра на 0 или 1 будет иметь одинаковый эффект.
Определить скорость передачи LPDU пакетов между участками внутри агрегированного интерфейса:
set interfaces bonding <bondN> lacp-rate <slow|fast>где <slow|fast> - скорость передачи LPDU. Возможно указать следующие значения:
slow - запрашивать партнера о передаче LACPDU каждые 30 секунд. Значение используется по умолчанию.
fast - запрашивать партнера о передаче LACPDU с периодичностью в одну секунду.
Примечание
Данный параметр оказывает влияние только на режим 802.3ad.
Указать системный MAC-адрес 802.3ad, который будет использоваться для обменов LACPDU:
set interfaces bonding <bondN> system-mac <mac address>где <mac address> - MAC-адрес в формате <h:h:h:h:h:h>.
Установить метод хеширования, определяющий принцип балансировки трафика в режимах агрегирования xor-hash, 802.3ad и transmit-load-balance:
set interfaces bonding <bondN> hash-policy <policy>где <policy> - метод хеширования. Возможно указать следующие значения:
layer2 - хеш на основе протокола 2 уровня. Для генерации хеша используются MAC-адреса отправителя и получателя. Весь трафик между определённой парой узлов всегда идёт по определённому каналу. Значение используется по умолчанию.
layer2+3 - хеш на основе протоколов 2 и 3 уровней. Используется комбинацию МАС и IP-адресов для генерации хеша. Благодаря этому обеспечивается более равномерная балансировка трафика, особенно в случае, когда бóльшая его часть передаётся через промежуточные маршрутизаторы.
layer3+4 - хеш на основе протоколов 3 и 4 уровней. Канал для отправки пакета определяется по совокупности IP-адресов и номеров портов источника и назначения. Благодаря этому трафик определённого узла может распределяться между несколькими каналами, хотя пакеты одного и того же TCP-соединения или UDP-потока всегда передаются по одному и тому же каналу. Алгоритм не полностью совместим с IEEE 802.3ad.
encap2+3 - хеш на основе протоколов 2 и 3 уровней с разбором инкапсуляции. Используется механизм, аналогичный layer2+3 с возможностью анализа инкапсулированных заголовков.
encap3+4 - хеш на основе протоколов 3 и 4 уровней с разбором инкапсуляции. Используется механизм, аналогичный layer3+4 с возможностью анализа инкапсулированных заголовков.
Определить основной интерфейс среди всех интерфейсов, входящих в состав агрегированного интерфейса:
set interfaces bonding <bondN> primary <interface>где <interface> - идентификатор основного интерфейса в интерфейсе агрегированных каналов.
Указанный интерфейс будет использоваться в качестве основного до тех пор, пока он доступен. В случае выхода основного интерфейса из строя будут использоваться альтернативные интерфейсы. Это может быть полезно, если один интерфейс обладает более высокой пропускной способностью по сравнению с другими. Опция primary доступна только в режимах active-backup, transmit-load-balance и adaptive-load-balance.
Установить интервал ARP мониторинга для агрегированного интерфейса:
set interfaces bonding <bondN> arp-monitor interval <time>где <time> - значение частоты мониторинга ARP-каналов в миллисекундах. Возможно указать значение в диапазона от «0» до «4294967295». По умолчанию установлено значение «0» - мониторинг ARP отключён.
ARP-монитор периодически проверяет ведомые устройства, чтобы определить, отправляли ли они или получали трафик в последнее время (точный критерий зависит от режима связывания и состояния ведомого устройства). Регулярный трафик генерируется с помощью ARP-зондов, отправленных на адреса, указанные в опции arp-monitor target. Если ARP-мониторинг используется в режиме, совместимом с эфирным каналом (режимы round-robin и xor-hash), коммутатор должен быть настроен в режиме, равномерно распределяющем пакеты по всем каналам. Если коммутатор настроен на распределение пакетов в режиме XOR, все ответы от ARP-целей будут приниматься по одному каналу, что может привести к сбою в работе других членов команды.
Определить IP-адреса, которые будут использоваться в качестве пиров для ARP мониторинга, при значении параметра arp-monitor interval больше 0:
set interfaces bonding <bondN> arp-monitor target <address>где <address> - IP-адрес в формате <x.x.x.x>. Возможно указать несколько целевых IP-адресов. Для запуска ARP-мониторинга необходимо указать хотя бы один IP-адрес. Максимальное количество IP-адресов, которое допускается задать, составляет «16».
VLAN
IEEE 802.1q, также известный как Dot1q, представляет собой сетевой стандарт, который поддерживает виртуальные локальные сети VLAN в сетях Ethernet, соответствующих стандарту IEEE 802.3. Стандарт определяет систему маркировки кадров Ethernet и процедуры, которые должны использоваться сетевыми устройствами при работе с такими кадрами. Стандарт также включает положения о схеме приоритизации качества обслуживания, известной как IEEE 802.1p, и определяет протокол регистрации общих атрибутов.
В системе ARMA Стена интерфейсы 802.1q представлены как виртуальные интерфейсы, подчинённые физическому интерфейсу. Для обозначения такого интерфейса используется термин «vif».
Основные настройки
Создать новый интерфейс VLAN на агрегированном интерфейсе:
set interfaces bonding <bondN> vif <vlan-id>где <vlan-id> - идентификатор VLAN для виртуального интерфейса, используемый с системой тегов VLAN стандарта 802.1Q. Возможно указать значение в диапазона от «0» до «4094».
Следует отметить, что на виртуальном интерфейсе агрегированных каналов будут обрабатываться только сетевые пакеты, имеющие теги стандарта 802.1Q. Для одного интерфейса агрегированных каналов возможно определить несколько виртуальных интерфейсов. Для этого необходимо создать соответствующее количество узлов конфигурации vif.
Назначить IP-адрес для интерфейса VLAN агрегированных каналов:
set interfaces bonding <bondN> vif <vlan-id> address <address | dhcp | dhcpv6>где <address | dhcp | dhcpv6> - IP-адрес для данного виртуального интерфейса агрегированных каналов. Возможно указать следующие значения: <x.x.x.x/x>, dhcp - для IPv4; <h:h:h:h:h:h:h:h/x>, dhcpv6 - для IPv6. IP-адрес может быть указан несколько раз как IPv4 и/или IPv6-адрес.
Задать текстовое описание виртуального интерфейса агрегированных каналов:
set interfaces bonding <bondN> vif <vlan-id> description <description>где <description> - мнемоническое имя или описание виртуального интерфейса.
Отключить виртуальный интерфейс агрегированных каналов с сохранением текущих настроек:
set interfaces bonding <bondN> vif <vlan-id> disableПосле отключения интерфейс будет переведён в режим административного отключения (A/D).
Отключить обнаружение изменений физического состояния канала связи, например, при отсоединении кабеля:
set interfaces bonding <bondN> vif <vlan-id> disable-link-detect
Задать MAC-адрес для виртуального интерфейса агрегированных каналов:
set interfaces bonding <bondN> vif <vlan-id> mac <xx:xx:xx:xx:xx:xx>где <xx:xx:xx:xx:xx:xx> - MAC-адрес.
Установить значение MTU для виртуального интерфейса агрегированных каналов:
set interfaces bonding <bondN> vif <vlan-id> mtu <mtu>где <mtu> - значения MTU для виртуального интерфейса. Возможно указать значение в диапазоне от «68» до «9190».
Установить значения TCP MSS для виртуального интерфейса агрегированных каналов:
set interfaces bonding <bondN> vif <vlan-id> ip adjust-mss <mss | clamp-mss-to-pmtu>где:
<mss> - значение MSS. Возможно указать значение в диапазоне от «536» до «65535».
<clamp-mss-to-pmtu> - автоматически устанавливать MSS в нужное значение.
Установка тайм-аута записи в ARP-кэш для виртуального интерфейса агрегированных каналов:
set interfaces bonding <bondN> vif <vlan-id> ip arp-cache-timeout <1-86400>где <1-86400> - значение тайм-аута записи в ARP-кэш в секундах. Возможно указать значение в диапазоне от «1» до «86400». По умолчанию используется значение «30».
Отключить фильтрацию ARP на виртуальном интерфейсе агрегированных каналов:
set interfaces bonding <bondN> vif <vlan-id> ip disable-arp-filterЕсли параметр не установлен (по умолчанию), это позволяет иметь несколько сетевых интерфейсов в одной подсети и отвечать на ARP для каждого интерфейса в зависимости от того, будет ли ядро направлять пакет с IP-адресом ARP через этот интерфейс. Для этого необходимо использовать маршрутизацию на основе источника.
Отключить переадресацию IP на виртуальном интерфейсе агрегированных каналов:
set interfaces bonding <bondN> vif <vlan-id> ip disable-forwardingЕсли параметр установлен, интерфейс переходит в режим хоста, и переадресация IPv6 на этом интерфейсе отключается.
Включить направленную широковещательную пересылку на виртуальном интерфейсе агрегированных каналов:
set interfaces bonding <bondN> vif <vlan-id> ip enable-directed-broadcastВ случае активации данной опции, входящие пакеты направленной широковещательной рассылки IP будут перенаправляться через указанный интерфейс. В случае если данный параметр не задан (по умолчанию), входящие пакеты направленной широковещательной рассылки IP не будут передаваться.
Включить приём ARP пакетов на виртуальном интерфейсе агрегированных каналов:
set interfaces bonding <bondN> vif <vlan-id> ip enable-arp-acceptОпределяет поведение для ARP-пакетов, IP-записи которых ещё не присутствуют в ARP-таблице. Если эта настройка включена, то создаются новые записи в ARP-таблице. Как ответы, так и запросы типа Gratuitous ARP будут вызывать обновление ARP-таблицы, если эта настройка включена. Если в ARP-таблице уже содержится IP-адрес кадра Gratuitous ARP, то ARP-таблица будет обновлена независимо от того, включена или выключена эта настройка.
Включить анонсирование ARP пакетов на виртуальном интерфейсе агрегированных каналов:
set interfaces bonding <bondN> vif <vlan-id> ip enable-arp-announceЕсли параметр не задан, используется любой локальный адрес, который настроен на любом интерфейсе. Если параметр установлен, рекомендуется избегать использования локальных адресов, которые не входят в подсеть цели для данного интерфейса. Этот режим полезен, когда целевые узлы, доступные через данный интерфейс, требуют, чтобы IP-адрес источника в ARP-запросах был частью их логической сети, настроенной на принимающем интерфейсе. При генерации запроса система проверяет все подсети, включающие целевой IP-адрес, и сохраняет адрес источника, если он принадлежит такой подсети. Если подходящей подсети не найдено, система выбирает адрес источника в соответствии с правилами для уровня 2.
Включить игнорирование ARP пакетов на виртуальном интерфейсе агрегированных каналов:
set interfaces bonding <bondN> vif <vlan-id> ip enable-arp-ignoreДанный параметр определяет режимы отправки ответов на ARP-запросы, которые разрешают локальные целевые IP-адреса. Если параметр включён, ответ будет отправлен только в том случае, если целевой IP-адрес является локальным адресом, настроенным на входящем интерфейсе. Если параметр отключён (по умолчанию), ответ будет получен для любого локального целевого IP-адреса, настроенного на любом интерфейсе.
Включить прокси ARP на виртуальном интерфейсе агрегированных каналов:
set interfaces bonding <bondN> vif <vlan-id> ip enable-proxy-arpПрокси ARP позволяет интерфейсу Ethernet отвечать своим MAC-адресом на ARP-запросы IP-адресов назначения в подсетях, подключённых к другим интерфейсам системы. Последующие пакеты, отправленные на эти IP-адреса назначения, пересылаются системой соответствующим образом.
Включить прокси ARP частного VLAN на виртуальном интерфейсе агрегированных каналов:
set interfaces bonding <bondN> vif <vlan-id> ip proxy-arp-pvlanРазрешить ответы ARP-прокси с того же интерфейса, с которого был получен ARP-запрос или запрос на предложение. Это необходимо для поддержки функций Ethernet-коммутаторов, описанных в RFC 3069, где отдельные порты не могут напрямую связываться друг с другом, но могут связываться с вышестоящим маршрутизатором. Как указано в RFC 3069, этого можно достичь путём включения прокси-ARP.
Необязательно использовать вместе с proxy_arp.
Включить политику проверки источника по обратному пути, как указано в RFC 3704:
set interfaces bonding <bondN> vif <vlan-id> ip source-validation <strict | loose | disable>где <strict | loose | disable> - режим проверки источника. Возможно указать следующие значения:
strict - каждый входящий пакет проверяется по FIB, и если интерфейс не является наилучшим обратным путем, то проверка пакета будет неудачной. По умолчанию неудачные пакеты отбрасываются.
loose - адрес источника каждого входящего пакета также проверяется по FIB, и если адрес источника не достижим ни через один интерфейс, проверка пакета будет неудачной.
disable - нет проверки источника.
В настоящее время в RFC 3704 рекомендуется включать strict режим для предотвращения подмены IP адресов в результате DDos атак. При использовании асимметричной или другой сложной маршрутизации рекомендуется использовать loose режим.
Включить получение IPv6-адреса с помощью автоконфигурации без статического изменения (SLAAC):
set interfaces bonding <bondN> vif <vlan-id> ipv6 address autoconfВ соответствии с RFC 4862, хосты IPv6 могут автоматически настраиваться при подключении к сети IPv6 с использованием протокола Neighbor Discovery Protocol (NDP) через сообщения ICMPv6 об обнаружении маршрутизатора. При первом подключении к сети хост отправляет многоадресный запрос link-local router solicitation для получения параметров конфигурации. Маршрутизаторы отвечают на этот запрос пакетом router advertisement, содержащим параметры конфигурации уровня Интернета.
Примечание
Данный метод автоматически отключает пересылку трафика IPv6 на сетевом интерфейсе.
Включить префикс EUI-64 на основе MAC адреса для IPv6 адреса виртуального интерфейса агрегированных каналов:
set interfaces bonding <bondN> vif <vlan-id> ipv6 address eui64 <prefix>где <prefix> - cеть IPv6 в формате <h:h:h:h:h:h:h:h/64>.
Удалить локальный адрес IPv6 по умолчанию для виртуального интерфейса агрегированных каналов:
set interfaces bonding <bondN> vif <vlan-id> ipv6 address no-default-link-local
Отключить IP переадресацию на виртуальном интерфейсе агрегированных каналов:
set interfaces bonding <bondN> vif <vlan-id> ipv6 disable-forwardingВ случае установки, интерфейс будет переведён в режим хоста, а переадресация IPv6 на данном интерфейсе будет отключена.
Установить значения TCP MSS:
set interfaces bonding <bondN> vif <vlan-id> ipv6 adjust-mss <mss | clamp-mss-to-pmtu>где:
<mss> - значение MSS. Возможно указать значение в диапазоне от «536» до «65535».
<clamp-mss-to-pmtu> - автоматически устанавливать MSS в нужное значение.
Принимать обнаружение дублирующегося адреса:
set interfaces bonding <bondN> vif <vlan-id> ipv6 accept-dad <0-2>где <0-2> - режим приёма DAD. Возможно указать следующие значения:
0 - отключить DAD;
1 - включить DAD (по умолчанию);
2 - включить DAD и отключить работу IPv6, если обнаружен дублированный MAC-адрес link-local.
Установить количество сообщений NS для отправки при выполнении DAD:
set interfaces bonding <bondN> vif <vlan-id> ipv6 dup-addr-detect-transmits <n>где <n> - количество NS-сообщений. В случае установки значения «0», функция обнаружения дубликатов адресов (DAD) будет отключена. По умолчанию используется значение «1».
Разместить виртуальный интерфейс агрегированных каналов в указанном экземпляре VRF:
set interfaces bonding <bondN> vif <vlan-id> vrf <vrf>где <vrf> - имя экземпляра VRF.
Настройки получения адреса по DHCP(v6)
Установить идентификатор, используемый клиентом для идентификации себя DHCP сервером:
set interfaces bonding <bondN> vif <vlan-id> dhcp-options client-id <description>где <description> - значение идентификатора.
В случае предоставления идентификатора пользователь обязан использовать один и тот же идентификатор во всех последующих сообщениях.
Изменить системное имя устройства, передаваемое DHCP серверу:
set interfaces bonding <bondN> vif <vlan-id> dhcp-options host-name <hostname>где <hostname> - новое системное имя хоста, передаваемое DHCP серверу.
Вместо передачи реального системного имени хоста на DHCP-сервер будет передано заданное значение в качестве имени хоста.
Определить тип клиента поставщика для DHCP-сервера:
set interfaces bonding <bondN> vif <vlan-id> dhcp-options vendor-class-id <vendor-id>где <vendor-id> - значение опций DHCP.
Опция «vendor-class-id» используется для запроса у сервера определенного класса опций поставщика.
Запросить у DHCP-сервера только адрес, не запрашивая шлюз по умолчанию:
set interfaces bonding <bondN> vif <vlan-id> dhcp-options no-default-route
Установить значение расстояния для шлюза по умолчанию, отправляемого сервером DHCP:
set interfaces bonding <bondN> vif <vlan-id> dhcp-options default-route-distance <distance>где <distance> - значение расстояния для шлюза по умолчанию. Возможно указать значение в диапазоне от «1» до «255». По умолчанию используется значение «210».
Отклонить аренду DHCP с заданного адреса или диапазона:
set interfaces bonding <bondN> vif <vlan-id> dhcp-options reject <address>где <address> - IP-адрес, возможно указать несколько раз в формате <x.x.x.x> и/или <x.x.x.x/x>.
Задать уникальный идентификатор DHCP (DUID) для интерфейса агрегированных каналов:
set interfaces bonding <bondN> vif <vlan-id> dhcpv6-options duid <duid>где <duid> - значение уникального идентификатора DHCP.
Уникальный идентификатор DHCP (DUID) используется системой для получения IP-адреса от сервера DHCPv6. Он состоит из двухбайтового поля типа DUID и поля идентификатора переменной длины до 128 байт. Фактическая длина DUID зависит от типа. Сервер сравнивает DUID с данными в своей базе и предоставляет системе необходимую информацию, такую как адрес, время аренды, DNS-серверы и другие параметры.
Не отправлять сообщение об освобождении при выходе:
set interfaces bonding <bondN> vif <vlan-id> dhcpv6-options no-releaseДанный параметр означает, что при использовании протокола DHCP для получения IPv6-адресов адрес не будет освобождаться автоматически. Это может быть полезно, если необходимо сохранить полученный адрес после отключения интерфейса или перезагрузки. В таком случае адрес возможно будет использовать многократного при последующих операциях подключения.
Получить только параметры конфигурации, без указания адреса:
set interfaces bonding <bondN> vif <vlan-id> dhcpv6-options parameters-onlyДанный параметр указывает на то, что dhcp6c обменивается с серверами только информационными параметрами конфигурации. Примером таких параметров является список адресов DNS-серверов. Это утверждение может быть полезно, если клиенту не требуются параметры конфигурации с состоянием, такие как IPv6-адреса или префиксы.
Включить функцию Rapid Commit для быстрого получения IPv6-адреса:
set interfaces bonding <bondN> vif <vlan-id> dhcpv6-options rapid-commi
Запросить временный IPv6-адрес:
set interfaces bonding <bondN> vif <vlan-id> dhcpv6-options temporaryЗапрашивается только временный адрес, и не создаёт партнёрство IA_NA (Identity Association for Non-temporary Addresses).
Делегирование префиксов DHCPv6 (PD)
Задать размер делегируемого префикса для экземпляра делегирования префикса на виртуальном интерфейсе агрегированных каналов:
set interfaces bonding <bondN> vif <vlan-id> dhcpv6-options pd <id> length <length>где:
<id> - номер экземпляра делегированного префикса. Значение должно быть больше или равно нулю.
<length> - значение размера делегируемого префикса. Возможно указать значение в диапазоне от «32» до «64». По умолчанию используется значение «64».
Указать адрес интерфейса <address>, используемый локально на интерфейсе <delegatee>, на который был делегирован префикс:
set interfaces bonding <bondN> vif <vlan-id> dhcpv6-options pd <id> interface <delegatee> address <address>где:
<delegatee> - сетевой интерфейс.
<address> - значение, используемое для формирования адреса интерфейса IPv6. Значение должно быть больше нуля.
Интерфейс будет объединен с делегированным префиксом и идентификатором sla-id для формирования полного адреса интерфейса. По умолчанию используется расширенный уникальный идентификатор интерфейса (EUI-64).
Указать значение идентификатора агрегатора уровня сайта SLA <sla-id> на интерфейсе <delegatee>:
set interfaces bonding <bondN> vif <vlan-id> dhcpv6-options pd <id> interface <delegatee> sla-id <id>где <id> - значение идентификатора агрегатора уровня сайта. Идентификатор должен быть положительным десятичным числом и соответствовать максимально допустимой длине идентификаторов SLA.
SPAN
Функция зеркалирования интерфейсов в ARMA Стена позволяет копировать входящий и исходящий трафик интерфейса на другой интерфейс. Функция используется для анализа трафика и должна поддерживаться принимающим устройством, например, коммутатором.
Для настройки зеркалирования интерфейсов в системе ARMA Стена используется опция «mirror». При этом необходимо указать зеркальный порт как для входящего, так и для исходящего трафика.
Для настройки зеркалирования интерфейса для входящего трафика необходимо ввести команду:
set interfaces bonding <bondN> mirror ingress <inbound-interface>где <inbound-interface> - имя интерфейса, на который будет дублироваться весь входящий трафик. Интерфейс должен быть определён в системе.
Для настройки зеркалирования интерфейса для исходящего трафика необходимо ввести команду:
set interfaces bonding <bondN> mirror egress <outbound-interface>где <outbound-interface> - имя интерфейса, на который будет дублироваться весь исходящий трафик. Интерфейс должен быть определён в системе.
Мониторинг и эксплуатация
Команда вывода информации об агрегированных интерфейсах:
admin@ngfwos:~$ show interfaces bondingПример работы команды show interfaces bonding (см. Рисунок – Информации об агрегированных интерфейсах):

Рисунок – Информации об агрегированных интерфейсах
Команда для отображения подробной информации об агрегированных интерфейсах:
admin@ngfwos:~$ show interfaces bonding detailПример работы команды show interfaces bonding detail (см. Рисунок – Подробная информация об агрегированных интерфейсах):

Рисунок – Подробная информация об агрегированных интерфейсах
Команда вывода информации об указанном агрегированном интерфейсе:
admin@ngfwos:~$ show interfaces bonding <bondN>Пример работы команды show interfaces bonding <bondN> (см. Рисунок – Информации об агрегированном интерфейсе bond1):

Рисунок – Информации об агрегированном интерфейсе bond1
Команда вывода подробной информации об указанном агрегированном интерфейсе:
admin@ngfwos:~$ show interfaces bonding <bondN> detailПример работы команды show interfaces bonding <bondN> detail (см. Рисунок – Подробная информации об агрегированном интерфейсе bond1):

Рисунок – Подробная информации об агрегированном интерфейсе bond1
Команда вывода информации об агрегированных интерфейсах, использующих протокол LACP:
admin@ngfwos:~$ show interfaces bonding lacp detailПример работы команды show interfaces bonding lacp detail (см. Рисунок – Информация об агрегированных интерфейсах, использующих протокол LACP):

Рисунок – Информация об агрегированных интерфейсах, использующих протокол LACP
Команда вывода информации об указанном агрегированном интерфейсе, использующем протокол LACP:
admin@ngfwos:~$ show interfaces bonding <bondN> lacp detail
Команда вывода информации о LACP-соседях в указанном агрегированном интерфейсе, использующем протокол LACP:
admin@ngfwos:~$ show interfaces bonding <bondN> lacp neighborsПример работы команды show interfaces bonding <bondN> lacp neighbors (см. Рисунок – Информация о LACP-соседях в указанном агрегированном интерфейсе):

Рисунок – Информация о LACP-соседях в указанном агрегированном интерфейсе
Команда вывода информации о ведомых (slave) интерфейсах в указанном агрегированном интерфейсе:
admin@ngfwos:~$ show interfaces bonding <bondN> slavesПример работы команды show interfaces bonding <bondN> slaves (см. Рисунок – Информация о ведомых (slave) интерфейсах в указанном агрегированном интерфейсе):

Рисунок – Информация о ведомых (slave) интерфейсах в указанном агрегированном интерфейсе
Команда вывода полной информации об указанном виртуальном интерфейсе агрегированного интерфейса:
admin@ngfwos:~$ show interfaces bonding <bondN> vif <id>
Команда вывода краткой информации об указанном виртуальном интерфейсе агрегированного интерфейса:
admin@ngfwos:~$ show interfaces bonding <bondN> vif <id> brief
Пример настройки агрегированного канала
В качестве примера настройки агрегированного канала используется схема стенда, представленная на рисунке (см. Рисунок – Агрегированный канал). Агрегированный канал работает в режиме 802.3ad.

Рисунок – Агрегированный канал
Настройка ARMA Стена 1:
set interfaces bonding bond0 set interfaces bonding bond0 address 10.10.10.10/24 set interfaces bonding bond0 member interface eth1 set interfaces bonding bond0 member interface eth2Просмотр ветви конфигурации:
show interfaces bonding bond0 address 10.10.10.10/24 member { interface eth1 interface eth2 }
Настройка ARMA Стена 2:
set interfaces bonding bond0 set interfaces bonding bond0 address 10.10.10.20/24 set interfaces bonding bond0 member interface eth1 set interfaces bonding bond0 member interface eth2Просмотр ветви конфигурации:
show interfaces bonding bond0 address 10.10.10.20/24 member { interface eth1 interface eth2 }
Проверка соединения и балансировки трафика
На ARMA Стена 1 необходимо запустить команду «ping 10.10.10.20» в эксплуатационном режиме.
admin@ngfwos:~$ ping 10.10.10.20 PING 10.10.10.20 (10.10.10.20) 56(84) bytes of data. 64 bytes from 10.10.10.20: icmp_seq=1 ttl=64 time=0.593 ms 64 bytes from 10.10.10.20: icmp_seq=2 ttl=64 time=0.426 ms 64 bytes from 10.10.10.20: icmp_seq=3 ttl=64 time=0.407 ms
На ARMA Стена 2 необходимо выполнить следующие команды:
admin@ngfwos:~$ clear interfaces ethernet counters # Сбросить счётчик Ethernet-интерфейсов admin@ngfwos:~$ show interfaces ethernet eth1 admin@ngfwos:~$ show interfaces ethernet eth2
В результатах выполнения команды «show interfaces ethernet eth» для интерфейсов eth1 и eth2 параметр packets имеет одинаковые значения, что свидетельствует о балансе трафика.