Функции таблицы коммутации в ExtremeXOS
Материал из Xgu.ru
Содержание |
[править] 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-таймера.
таймер | описание |
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>]
Extreme Networks | ||
---|---|---|
ExtremeXOS | ExtremeXOS | |
Управление платформой | Управление конфигурациями • Файловая система • BootStrap • Управление Image-файлами • Настройка удалённого управления • SNMP • Параметры журналирования • SNTP (периодический опрос серверов NTP) • Настройка слотов расширений • Другие сервисные функции | |
Базовый функционал коммутации (L2) |
Настройка портов • Функции таблицы коммутации • VLAN • STP • Агрегирование каналов • LLDP • Зеркалирование портов | |
Маршрутизация (L3) | IP-интерфейсы (SVI) • Virtural Routers • Маршрутизация L3 • OSPF • BGP | |
Прочее | ACL • QoS • Скриптование • Примеры скриптов |