Широковещательный шторм - всплеск количества широковещательных пакетов в сети. Может возникать вследствие петель коммутации, атак на сеть, некорректно настроенного, либо неисправного оборудования. Размножение широковещательных сообщений активным сетевым оборудованием приводит к экспоненциальному росту их числа и парализует работу сети.
В рамках данной статьи мы рассмотрим функционал для защиты от петель и различных видов штормов на коммутаторах SNR.
Для loopback-detection есть более подробная статья.
Петля коммутации - состояние в сети, при котором коммутатор принимает кадры, отправленные им же. Избежать возникновения петель коммутации поможет функционал Loopback-detection.
Для включения функционала необходимо в режиме конфигурирования порта задать VLAN, для которых будет проверяться наличие петли, а также действие при ее обнаружении:
loopback-detection control {block | shutdown} |
shutdown - порт будет отключен.
loopback-detection specified-vlan {vlan_id} |
Настройка двух первых пунктов является обязательным условием. При отсутствии любого из них функционал работать не будет. |
В глобальном режиме можно настроить время восстановления после отключения порта по причине петли:
loopback-detection control-recovery timeout {0-3600} |
Значение по умолчанию - 0 (порт не будет включен повторно).
По умолчанию коммутатор отправляет 2 LBD-пакета в каждый specified-vlan в промежуток interval-time. Данные значения можно изменить. Значение interval-time меняется также в глобальном режиме. Сначала указывается интервал отправки LBD-пакетов при обнаружении петли, затем, в случае, если петля отсутствует:
loopback-detection interval-time {loopback interval} {no loopback interval time} |
Количество отправляемых копий LBD-пакетов можно задать в режиме конфигурирования порта:
loopback-detection send packet number {1-10} |
При значении по-умолчанию (1) - отправляется 2 LBD-пакета. При 2 - 4 пакета и т.д.
Также в глобальном режиме можно включить отправку SNMP Trap-сообщений при обнаружении петли:
loopback-detection trap enable |
При обнаружении петли за каким-либо портом отправляется SNMP Trap с OID 1.3.6.1.4.1.40418.7.101.112.1.
Для ограничения широковещательного трафика в сети можно воспользоваться функционалом Storm-control, который отбрасывает входящий трафик, превышающий установленный лимит. Функционал полностью аппаратный и выполняется на уровне ASIC без участия CPU, поэтому логирование отсутствует.
Пороговое значение может быть задано как в kbps, так и в pps. Значение по умолчанию - kbps. Изменить единицу измерения можно в глобальном режиме:
storm-control {pps | kbps} |
На коммутаторах SNR серий S2989G, S2995G и S3850G возможно только kbps ограничение. |
Также можно настроить протоколы, на пакеты которых функционал реагировать не будет. Данная настройка также производится в глобальном режиме:
storm-control bypass {arp | bpdu | igmp} |
Пороговое значение для каждого типа трафика настраивается отдельно для каждого порта в режиме его конфигурирования:
storm-control {broadcast | multicast | unicast} {kbps/pps} |
Расширенные возможности для ограничения широковещательного трафика в сети имеет Rate-violation, который также отбрасывает входящий трафик, превышающий установленный лимит. В отличие от Storm-control, данный функционал задействует ресурсы CPU и является софтовым. При превышении порога действие записывается в лог, отправляется соответствующий SNMP Trap.
Все настройки Rate-violation применяются в режиме настройки порта.
Пороговое значение задается для выбранного типа трафика и может быть задано только в pps:
rate-violation {all | broadcast | multicast | unicast} {pps} |
В качестве действия при превышении порога широковещательным трафиком может быть выбрано либо отключение порта, либо блокировка всего трафика на порте. При отключении порта также может быть выбрано время восстановления, после которого порт будет включен обратно:
rate-violation control {shutdown recovery {sec} | block} |
Кроме ограничения входящего широковещательного трафика, на коммутаторах SNR существует возможность ограничить исходящий широковещательный трафик. Для этого используется Flood-control. Механизм, как и Storm-control, является аппаратным и полностью ограничивает передачу определенного типа широковещательного трафика в выбранный порт.
Настраивается функционал единственной командой в режиме конфигурирования порта. Всё, что нужно - это выбрать тип широковещательного трафика, распространение которого необходимо ограничить:
switchport flood-control {bcast | mcast | ucast} |
Функционал 'flood-control mcast' работает только совместно с IGMP Snooping. |