Функции таблицы коммутации в ExtremeXOS

Материал из Xgu.ru

Перейти к: навигация, поиск

< ExtremeXOS

Содержание

[править] FDB

show fdb								- посмотреть всю таблицу коммутации.
create fdbentry <dst-mac> vlan <name> [ports <port_list>|blackhole]	- создание статической fdb-записи.
delete fdbentry {all | <mac> [vlan <name>] }				- удаление статической fdb-записи.
clear fdb { <mac> | blackhole | ports <port-list> | vlan <name>}	- удаление динамической(их) fdb-записи(ей).
disable learning drop-packets port 5					- на порту 5(in) форвардить пакеты только по статической fdb. Остальные отбрасывать.
disable learning forward-packets port 5				- не запоминать маки на 5 порту, но форвардить входящий трафик.
show ports 5 information		- проверить настроенный режим обучения (флаг m говорит, что функция запоминания активна).
configure fdb agingtime <15-1000000>	- время жизни записи в таблице коммутации. 0 - бесконечно.

[править] Функции безопасности уровня коммутации

[править] ELRP (Extreme Loop Recovery Protocol)

ELRP используется для обнаружения колец на уровне 2. Свич передаёт в порты фреймы со специальным мак-адресом назначения в определённом влане. Если данный пакет получен свичём через какой-то порт, то считается, что образовалось кольцо. В этом случае свич может погасить порт, послать трап, либо просто отметить событие в логе.

{enable | disable} elrp-client			- глобальное включение функции.
configure elrp-client periodic <vlan_name> ports <ports> interval <sec> [log | log-and-trap | trap] {disable-port {{duration <sec>} | permanent} - включение фичи во влане на портах.
unconfigure elrp-client <vlan_name> - отключение фичи во влане.
configure elrp-client disable-ports [exclude | include] [ <ports> | eaps-ring-ports] - отключение фичи на аплинках
unconfigure elrp-client disable-ports		- отмена отключения фичи на аплинках (чтобы блокирование осуществлялось)
show elrp					- просмотр состояния работы функции
show elrp disabled-ports			- просмотр информации об отключенных портах

Практическая демонстрация работы ELRP представлена в этом видео.

[править] ELSM (Extreme Link Status Monitoring)

Это проприетарный протокол от Extreme Networks предназначенный для мониторинга аварий CPU и порта на удалённой стороне линка. Например, может использоваться для обнаружения однонаправленного линка и блокирования порта. Бывают случаи, когда аппаратный или программный сбой приводит к тому, что CPU не может получать или посылать пакеты. В этом случае ELSM изолирует соединения к аварийному коммутатору, отключая его от оставшейся сети. Это необходимо для предотвращения колец в активной L2-топологии. Работает в режиме точка-точка. Можно включать на интерфейсах, которые подключены к устройствам от Extreme Networks, на обоих сторонах соединения точка-точка. ELSM оценивает работоспособность линков и CPU при помощи обмена hello-сообщениями на линке между пирами. Соединение между двумя пирами организуется на канальном уровне в линке, соединяющем порты. Пиры могут быть как соединены напрямую, так и разделены хабами. Если они соединены напрямую, они считаются соседями (neighbors).
Если ELSM включен на порту и обнаруживает аварию линка, то на этом порту блокируется весь входящий и исходящий трафик. Например, если один пир перестаёт получать ELSM-hello от своего партнёра, то ELSM блокирует весь входящий и исходящий трафик на порту и информирует приложения, что линк пропал.

[править] ELSM Hello-сообщения

  • Hello+ - посылается в порт, когда этот порт регулярно получает сигналы от партнёра и никаких проблем на линке не обнаружено.
  • Hello- - посылается в порт, когда этот порт не получил Hello+ сообщения от партнёра в течение установленного промежутка времени (1сек).

Переходные состояния порта:

  • HelloRx(+) - порт поднят и получает Hello+ от партнёра. Порт будет находиться в этом состоянии и обновлять HelloRx-таймер каждый раз, когда получает Hello+. Если HelloRx-таймер истекает, порт входит в состояние HelloRx(-). HelloRx-таймер = 6 * hello-таймер. По-умолчанию это 6 секунд.
  • HelloRx(-) - порт в переходном состоянии из ELSM-initial, или поднят, но не получил Hello-сообщения из-за проблем на линке или физического отсутствия пира.

[править] Состояния портов ELSM

  • UP - партнёр по порту исправен и порт получает Hello+ сообщения от парнтёра. При каждом получении Hello+ up-таймер сбрасывается. up-таймер = 6 * hello-таймер. По-умолчанию 6 секунд.
  • DOWN - на порту нет линка, порт заблокирован или не получал Hello+ от парнтнёра. Если порт не получил Hello+ до того, как истёк up-таймер, он переходит в состояние DOWN. В этом состоянии пакеты данных и управляющий трафик (весь кроме ELSM PDU) не передаются и не принимаются через порт.
  • DOWN-Wait - свидетельствует о переходном состоянии. Если порт вошел в состояние DOWN, а позже получил Hello+ сообщение от партнёра, то он переходит в состояние DOWN-Wait. Если количество полученных Hello+ больше или равно заданному hold-threshold (по-умолчанию 2), порт переходит в состояние UP. Если количество Hello+ осталось меньше hold-threshold, порт возвращается в состояние DOWN.
  • DOWN-Stuck - говорит о том, что порт в состоянии DOWN и требует вмешательства администратора. Если порт продолжает моргать между состояниями UP и DOWN, он переводится в DOWN-Stuck. В зависимости от настроек, есть 2 способа вывода порта из этого состояния.
    • По-умолчанию, автоматический рестарт включен, и порт автоматически будет пытаться восстановиться.
    • Если автоматический рестарт выключен, то вывести порт из состояния DOWN-Stuck в DOWN возможно командой
clear elsm ports <portlist> auto-restart

Включение и отключение автоматического восстановления из DOWN-Stuck осуществляется командой

{enable | disable} elsm ports <portlist> auto-restart

Примечание: Во время перезагрузки партнёра, ELSM-порт в его сторону может войти в состояние DOWN-Stuck. Тогда понадобится вывести порт из этого состояния одним из описанных выше способов.

[править] Состояния линков ELSM

Независимо от работы ELSM, линк может находиться в состоянииях

  • Ready - порт административно включен, но на нём нет физического линка;
  • Active - порт административно включен, и на нём поднялся физический линк;

Узнать эти состояния у портов возможно командами

show elsm ports {all | <portlist>}
show ports [<port_list>] information [detail]

Состояния линков ELSM могут быть следующими:

  • ELSM включен и соединение с партнёром установлено, порт функционирует;
  • ELSM включен но порт не функционирует, поэтому соединение с партнёром не установлено;
  • ELSM выключен.

Чтобы изучить текущее состояние, помогут команды

show elsm                                      - включен ли ELSM на коммутаторе глобально;
show elsm ports <port-list>                    - какое состояние ELSM-линков на указанных портах;
show ports [<port-list>] information {detail}  - полная информация о состоянии портов;
                                                 L - ELSM включен глобально на коммутаторе;
                                                 (колонка ELSM) up - ELSM включен на порту, партнёр обнаружен, проблем с линком нет.
                                                 (колонка ELSM) dn - ELSM включен на порту, но партнёра на линке не обнаружено, есть проблема с линком.
                                                 (колонка ELSM) -  - ELSM на коммутаторе отключен.

[править] ELSM-таймеры

В своей работе протокол ELSM обменивается ELSM PDU сообщениями с партнёрами и делает выводы о работоспособности соединений на основе критерия, пришел ли нужный ELSM PDU на порт до истечения таймера, или нет. Из всех видов ELSM-таймеров, настройке поддаётся только hello-таймер. Остальные определяются исходя из значений hello-таймера.

ELSM-таймеры
таймер описание
Hello Единственный таймер, который можно настраивать. Определяет время в секундах между принимаемыми hello-сообщениями. По-умолчанию 1 секунда. Можно задавать в пределах от 100 мсек до 255 секунд.
Down Определяет время, которое занимает переход ELSM-порта через следующие состояния: DOWN -> DOWN-Wait -> UP. Определяется как
(2 + hold-threshold) * hello-timer. По-умолчанию 4 секунды.
После истечения Down-таймера порт проверяет количество полученных сообщений Hello+ и сравнивает его со значением hold-threshold. Если количество Hello+ >= hold-threshold, порт из состояния DOWN-Wait переводится в UP. Если NUM(Hello+) < hold-threshold, тогда порт возвращается в состояние DOWN.
Up Запускается в момент, когда порт переводится в состояние UP. Каждый раз, когда на порт приходит сообщение Hello+, таймер сбрасывается.
Определяется как UpTimer-threshold * hello-timer. Настраивается в диапазоне 3-60 сек. По-умолчанию, UpTimer-threshold = 6, следовательно up-таймер = 6 (6*1).
HelloRx Определяет время, в которое ожидается получение сообщения Hello. Если порт не получает сообщения Hello от партнёра, возможно случился сбой CPU партнёра или авария линка. Определяется как 6 * hello-таймер. По-умолчанию 6 секунд.

[править] Настройка ELSM

{enable | disable} elsm ports <portlist>			- включить ELSM на нужных портах (процессы ELSM на разных портах работают независимо)
configure elsm ports <portlist> hellotime <hello_time>		- задание hello-таймера на портах (рекомендуется на порту партнёра сделать одинаковым)
configure elsm ports <portlist> hold-threshold <hold_threshold>- задание hold-threshold на портах (рекомендуется на порту партнёра сделать одинаковым)
{enable | disable} elsm ports <portlist> auto-restart		- включить ли автовосстановление из состояние DOWN-Stuck. По-умолчанию включено.
clear elsm ports <portlist> auto-restart                       - вручную вывести порт из состояния DOWN-Stuck.
clear elsm {ports <portlist>} counters                         - сбросить статистику счётчиков

[править] Команды диагностики ELSM

show elsm							- общая информация о работе ELSM на всех портах
show elsm ports <all | portlist>				- детальная информация о работе ELSM на нужных портах

[править] Другие

1. Egress Flood Control - ограничивает исхдящий флуд разного типа трафика (unknown-unicast, broadcast, multicast).

disable flooding unicast port 1	- запретить флуд юникаст пакетов с неизвестным dst-mac в порт 1.
enable flooding broadcast port all	- разрешить флудить бродкастом на всех портах.
show port 1 info detail		- проверить настроенные режимы функции на порту 1.

2. Limit-Learning - ограничивает число маков, которые могут быть запомнены на порту в определённом влане. Трафик незапомненных маков блокируется (в обоих направлениях).

configure ports <port> vlan <name> learning-limit 3		- во влане <name> на порту <port> может быть запомнено не более 3 маков.
configure ports <port> vlan <name> unlimited-learnings	- снять ограничение для связки порт/влан.

3. Lock-Learning - запоминает текущие маки на порту во влане и блокирует трафик всех остальных маков.

configure ports <port> vlan <name> lock-learning		- запомнить текущие маки на порту <port> во влане <name>
configure ports <port> vlan <name> unlock-learning		- снять блокировку.
для диагностики работы функций:
show fdb
show vlan <name> security

4. Rate-Limit

configure ports <port_list> rate-limit flood [broadcast | multicast | unknown-destmac] [no-limit | <pps>]