Широковещательный шторм
Широковещательный шторм (также «шторм широковещательных пакетов»), в компьютерных сетях, — это ситуация, возникающая при передаче в сети широковещательных (англ. broadcast) или групповых (англ. multicast) сообщений, каждое из которых требует от получающего отвечать пересылкой собственного сообщения. Возможным следствием становится экспоненциальный рост сетевого трафика, приводящий к полной перегрузке доступных ресурсов сети или, по крайней мере, к резкому снижению производительности. Пакет, запускающий такой «шторм», иногда называют пакетом Чернобыля (англ. Chernobyl packet)[1].
Симптомы
Наиболее распространённые признаки широковещательного шторма в сети:
- Значительное замедление работы сетевых сервисов
- Неспособность сети обрабатывать обычные объёмы трафика
- Некорректная работа отдельных сетевых интерфейсов, подключённых к локальной сети (маршрутизаторы, персональные компьютеры, серверы печати и др.)
- Полная блокировка подключённых Wi-Fi устройств
- Резкий и значительный рост загрузки центрального процессора (CPU) сетевых устройств, вплоть до 100 %[2][3]
Обнаружение и мониторинг
Для обнаружения широковещательных штормов применяются различные инструменты и протоколы. Протокол SNMP позволяет осуществлять мониторинг счётчиков широковещательных пакетов на портах сетевых устройств[4]. Протокол NetFlow используется для анализа аномальных всплесков сетевого трафика и точного определения источника шторма[5]. Для детального анализа трафика применяются анализаторы пакетов, такие как Wireshark. Комплексный контроль над сетевой инфраструктурой обеспечивают системы мониторинга сети, например Zabbix и PRTG Network Monitor[6].
Причины
Петли коммутации
Основной причиной широковещательного шторма являются недостатки сетевых систем, которые, несмотря на свою эффективность, могут иметь внутренние уязвимости в архитектуре и протоколах функционирования.
Наиболее частая причина шторма — петля коммутации, возникающая из-за топологии и разводки сети. На втором уровне сетевой модели (layer II switching) резервные соединения, предназначенные для обеспечения надёжности между коммутаторами, могут создавать два или более маршрута между конечными станциями и приводить к образованию bridge loops (или switching loops). Поскольку широковещательные и групповые передачи пересылаются коммутаторами на все выходные порты, кроме получившей порты, при отсутствии специальных настроек устройства непрерывно повторяют передачу широковещательных сообщений, пока не заполнят всю сеть. Кроме того, поскольку заголовок канального уровня не содержит поля Time To Live, TTL, кадр, попавший в петлю, может циркулировать бесконечно долго.
Пример возникшей ситуации: хост отправляет пакет Address Resolution Protocol, ARP, который по определению передаётся широковещательно и необходим для связи в локальной сети. Кадр доходит до всех коммутаторов, которые анализируют поле назначения и определяют порт для дальнейшей передачи. Топология сети может спровоцировать петлю, вследствие чего несколько коммутаторов будут продолжать пересылать пакет по разным сегментам, даже после доставки изначальному получателю.
Как показано на рисунке справа, развитие широковещательного шторма при петле (bridge loop или switching loop) можно кратко описать так:
- Хост отправляет широковещательное сообщение в сеть
- Первый коммутатор анализирует полученный пакет и пересылает его вниз (по топологии)
- Второй коммутатор получает копию пакета и также пересылает её вверх по сети
- Поскольку пакет широковещательный, коммутаторы продолжают пересылку по всем портам, кроме входящего, и цикл продолжается бесконечно
Кроме того, несколько коммутаторов могут получать копии исходного пакета с разных сегментов, благодаря чему одна и та же широковещательная передача циркулирует по сетевому кольцу в обе стороны, ещё более увеличивая объём трафика.
В виртуализированных средах петли коммутации чаще всего возникают на уровне физической сети из-за неверного подключения гипервизора. Это связано с тем, что стандартные виртуальные коммутаторы (например, vSwitch) игнорируют служебные кадры BPDU[7].[8]
Хакерские атаки
Широковещательный шторм может быть спровоцирован и преднамеренно — злоумышленником, создающим атаку типа отказ в обслуживании (DoS), с целью привести сеть к коллапсу. Классические виды атак, такие как smurf (с использованием ICMP) и fraggle (с использованием UDP), в настоящее время считаются устаревшими[9]. Современные злоумышленники используют методы усиления трафика (амплификации) через такие протоколы, как SSDP, CLDAP, DNS и NTP[10][11].
В беспроводных сетях шторм может вызываться рассылкой пакетов дисассоциации с подменой адреса источника — не с точки доступа, а от злоумышленника (MAC-спуфинг) — на широковещательный адрес. Пострадавшие клиенты, видя такой пакет и считая его подлинным, отключаются от точки доступа, а потом автоматически пытаются переподключиться, в то время как атакующий вновь рассылает широковещательные пакеты дисассоциации. Получается петля из рассылок, типичная для DoS-атак. В стандартах Wi-Fi 6 и Wi-Fi 7 с использованием WPA3 применяется защита управляющих кадров (PMF, IEEE 802.11w), предотвращающая атаки дисассоциации, но уязвимости сохраняются при использовании режимов обратной совместимости[12][13].
Защита и предотвращение
Для выявления широковещательного шторма можно провести простой тест — отправить пакет «echo request» (ping) на другой Ethernet-интерфейс; в подобной ситуации задержка ответа может существенно возрасти (например, превышать 200 мс), а иногда и вовсе не поступить. Проблему можно устранить аппаратно, найдя тот коммутатор, маршрутизатор или концентратор, к которому подключены кабели, образующие петлю, либо с помощью специальных средств управления, предотвращающих распространение шторма.
В наши дни широковещательные штормы встречаются реже, так как появились усовершенствованные схемы коммутации третьего уровня (сетевой уровень) и специальные алгоритмы предотвращения петель во втором уровне. Однако всё равно требуется защищаться от широковещательных бурь, намеренно спровоцированных злоумышленниками. К основным методам предотвращения относятся:
- Внедрение в коммутаторах различных технологий и алгоритмов, таких как Shortest Path Bridging, Spanning Tree Protocol и других проприетарных решений — для исключения коммутационных петель и, соответственно, прекращения цепной рассылки. В сетях Metro Ethernet для защиты кольцевых топологий активно применяется актуальный стандарт Ethernet Ring Protection Switching (ERPS, ITU-T G.8032)[14].
- Использование технологии M-LAG (Multi-chassis Link Aggregation), которая превентивно создаёт логически беспетлевую топологию и, в отличие от STP, активно использует все физические каналы[15].
- Применение проприетарного протокола Turbo Ring для быстрого восстановления связи в промышленных сетях Ethernet[16].
- Фильтрация широковещательных пакетов с помощью устройств третьего уровня, обычно маршрутизаторов (или коммутаторов, использующих расширенные фильтры, называемых браутерами — англ. brouter[17]).
- Физическая сегментация широковещательных доменов с помощью маршрутизаторов (уровень 3) или логическая сегментация с использованием VLAN (уровень 2), подобно тому, как коммутаторы уменьшают область коллизий во втором уровне сетевой модели.
- Настройка маршрутизаторов или межсетевых экранов для обнаружения и предотвращения преднамеренных широковещательных бурь, например, атак smurf или fraggle.
- Мониторинг беспроводных сетей и схем ассоциаций устройств для выявления чрезмерного числа запросов и кратковременных сессий. Это помогает защищаться от DoS-атак, связывающих устройства, и выявлять источник атаки с последующим его блокированием.
- Применение функции «Broadcast storm control», реализованной во многих коммутаторах: если входящий широковещательный трафик превышает определённый порог, коммутатор сознательно прекращает дальнейшую пересылку широковещательных пакетов. Хотя такой подход не устраняет причину шторма, он сдерживает его масштаб и позволяет администраторам приступить к диагностике и устранению проблемы[18].
Мультикаст-штормы в IPv6
В сетях, использующих протокол IPv6, отсутствует классическое широковещание[19]. Его функции, например, в протоколе обнаружения соседей (NDP), выполняет многоадресная рассылка (multicast)[20]. Возникновение петель в топологии сети на канальном уровне приводит к появлению многоадресных штормов (multicast storms), при которых сетевые коммутаторы бесконечно пересылают и дублируют многоадресные пакеты[21]. Для предотвращения подобных штормов применяются следующие методы:
- Использование MLD Snooping — механизма, направляющего многоадресный трафик только на те порты, где находятся получатели конкретных групп[22];
- Применение ND Snooping для перехвата и контроля многоадресных сообщений NDP[23];
- Встроенное ограничение скорости (Rate Limiting), контролирующее частоту отправки служебных запросов[21].
Ошибки интерпретации
- Распространённая ошибка — считать, что routing loops приводят к широковещательным штормам. На третьем уровне модели маршрутизаторы, в отличие от устройств второго уровня, не пересылают широковещательный трафик MAC-уровня.
- Считается также, что только маршрутизаторы могут фильтровать передачи и менять размер домена широковещания. На самом деле, хотя для маршрутизации действительно нужен маршрутизатор, коммутаторы также способны фильтровать трафик и логически разделять ЛВС (например, с помощью VLAN).
- Неверно также утверждение, что маршрутизатор не может в принципе пересылать широковещательные сообщения. Некоторые протоколы маршрутизации используют широковещательные передачи на сетевом уровне, так что при определённой конфигурации маршрутизатора разделение доменов широковещания нарушается.
- Зачастую считают, что любой широковещательный запрос можно прокомментировать ответным широковещательным сообщение. На самом деле можно отправить широковещание для сбора информации, а затем индивидуально ответить — однако при избыточной кольцевой топологии вторая передача способна попасть обратно к исходной станции.
- Ещё одна ошибка — отождествлять широковещательные и мультикаст-штормы. Несмотря на схожие последствия, мультикаст-штормы отличаются механизмами возникновения (например, могут быть вызваны отсутствием или некорректной настройкой IGMP/MLD Snooping) и требуют иных методов ограничения по сравнению с широковещательными штормами[24].[25].
Широковещательные штормы в MANET
В мобильной самоорганизующейся сети (MANET) обычно рассылаются запросные пакеты (RREQ) для поиска новых маршрутов. Эти сообщения могут вызывать широковещательный шторм, проходя по тем же каналам, что и обычные данные. Для снижения эффекта широковещательного шторма используют приёмы, запрещающие отдельным хостам повторную пересылку, что уменьшает избыточность и вероятность коллизий[26].
Примечания
Литература
- Wayne Lewis. Switching e complementi di routing, CCNA 3 Companion Guide. Pearson, 2007