Широковещательный шторм

Широковещательный шторм (также «шторм широковещательных пакетов»), в компьютерных сетях, — это ситуация, возникающая при передаче в сети широковещательных (англ. broadcast) или групповых (англ. multicast) сообщений, каждое из которых требует от получающего отвечать пересылкой собственного сообщения. Возможным следствием становится экспоненциальный рост сетевого трафика, приводящий к полной перегрузке доступных ресурсов сети или, по крайней мере, к резкому снижению производительности. Пакет, запускающий такой «шторм», иногда называют пакетом Чернобыля (англ. Chernobyl packet)[1].

Симптомы

Наиболее распространённые признаки широковещательного шторма в сети:

  • Значительное замедление работы сетевых сервисов
  • Неспособность сети обрабатывать обычные объёмы трафика
  • Некорректная работа отдельных сетевых интерфейсов, подключённых к локальной сети (маршрутизаторы, персональные компьютеры, серверы печати и др.)
  • Полная блокировка подключённых Wi-Fi устройств

Причины

Петли коммутации

Основной причиной широковещательного шторма являются недостатки сетевых систем, которые, несмотря на свою эффективность, могут иметь внутренние уязвимости в архитектуре и протоколах функционирования.

Наиболее частая причина шторма — петля коммутации, возникающая из-за топологии и разводки сети. На втором уровне сетевой модели (layer II switching) резервные соединения, предназначенные для обеспечения надёжности между коммутаторами, могут создавать два или более маршрута между конечными станциями и приводить к образованию bridge loops (или switching loops). Поскольку широковещательные и групповые передачи пересылаются коммутаторами на все выходные порты, кроме получившей порты, при отсутствии специальных настроек устройства непрерывно повторяют передачу широковещательных сообщений, пока не заполнят всю сеть. Кроме того, поскольку заголовок канального уровня не содержит поля Time To Live, TTL, кадр, попавший в петлю, может циркулировать бесконечно долго.

Пример возникшей ситуации: хост отправляет пакет Address Resolution Protocol, ARP, который по определению передаётся широковещательно и необходим для связи в локальной сети. Кадр доходит до всех коммутаторов, которые анализируют поле назначения и определяют порт для дальнейшей передачи. Топология сети может спровоцировать петлю, вследствие чего несколько коммутаторов будут продолжать пересылать пакет по разным сегментам, даже после доставки изначальному получателю.

Как показано на рисунке справа, развитие широковещательного шторма при петле (bridge loop или switching loop) можно кратко описать так:

  1. Хост отправляет широковещательное сообщение в сеть
  2. Первый коммутатор анализирует полученный пакет и пересылает его вниз (по топологии)
  3. Второй коммутатор получает копию пакета и также пересылает её вверх по сети
  4. Поскольку пакет широковещательный, коммутаторы продолжают пересылку по всем портам, кроме входящего, и цикл продолжается бесконечно

Кроме того, несколько коммутаторов могут получать копии исходного пакета с разных сегментов, благодаря чему одна и та же широковещательная передача циркулирует по сетевому кольцу в обе стороны, ещё более увеличивая объём трафика.

Хакерские атаки

Широковещательный шторм может быть спровоцирован и преднамеренно — злоумышленником, создающим атаку типа отказ в обслуживании (DoS), с целью привести сеть к коллапсу. Для этого зачастую используются отдельные функции протокола ICMP, неверное применение которых снижает безопасность. Известные виды атак: smurf и fraggle. Атака smurf заключается в отправке большого количества ICMP Echo Request (ping) на адрес широковещания, при этом адрес отправителя подделывается на IP-адрес жертвы (IP spoofing), так что все ответы приходят атакуемой машине. Когда такой запрос приходит в целевую сеть, все узлы отвечают жертве, производя лавину ответов, нагружающую канал и процессор жертвы[2]. Атака smurf может совмещаться с ping flood для увеличения числа Echo Requests и максимизации их скорости. Вариация fraggle использует вместо ICMP протокол UDP.

В беспроводных сетях шторм может вызываться рассылкой пакетов дисассоциации с подменой адреса источника — не с точки доступа, а от злоумышленника (MAC-спуфинг) — на широковещательный адрес. Пострадавшие клиенты, видя такой пакет и считая его подлинным, отключаются от точки доступа, а потом автоматически пытаются переподключиться, в то время как атакующий вновь рассылает широковещательные пакеты дисассоциации. Получается петля из рассылок, типичная для DoS-атак[3].

Защита и предотвращение

Для выявления широковещательного шторма можно провести простой тест — отправить пакет «echo request» (ping) на другой Ethernet-интерфейс; в подобной ситуации задержка ответа может существенно возрасти (например, превышать 200 мс), а иногда и вовсе не поступить. Проблему можно устранить аппаратно, найдя тот коммутатор, маршрутизатор или концентратор, к которому подключены кабели, образующие петлю, либо с помощью специальных средств управления, предотвращающих распространение шторма.

В наши дни широковещательные штормы встречаются реже, так как появились усовершенствованные схемы коммутации третьего уровня (сетевой уровень) и специальные алгоритмы предотвращения петель во втором уровне. Однако всё равно требуется защищаться от широковещательных бурь, намеренно спровоцированных злоумышленниками. К основным методам предотвращения относятся:

  • Внедрение в коммутаторах различных технологий и алгоритмов, таких как Shortest Path Bridging, Spanning Tree Protocol и других проприетарных решений — для исключения коммутационных петель и, соответственно, прекращения цепной рассылки. В Ethernet Metro запрещается использовать протоколы защиты колец Ethernet Ring Protection Switching (ERPS) или Ethernet Automatic Protection System (EAPS).
  • Фильтрация широковещательных пакетов с помощью устройств третьего уровня, обычно маршрутизаторов (или коммутаторов, использующих расширенные фильтры, называемых браутерами — англ. brouter[4]).
  • Физическая сегментация широковещательных доменов с помощью маршрутизаторов (уровень 3) или логическая сегментация с использованием VLAN (уровень 2), подобно тому, как коммутаторы уменьшают область коллизий во втором уровне сетевой модели.
  • Настройка маршрутизаторов или межсетевых экранов для обнаружения и предотвращения преднамеренных широковещательных бурь, например, атак smurf или fraggle.
  • Мониторинг беспроводных сетей и схем ассоциаций устройств для выявления чрезмерного числа запросов и кратковременных сессий. Это помогает защищаться от DoS-атак, связывающих устройства, и выявлять источник атаки с последующим его блокированием.
  • Применение функции «Broadcast storm control», реализованной во многих коммутаторах: если входящий широковещательный трафик превышает определённый порог, коммутатор сознательно прекращает дальнейшую пересылку широковещательных пакетов. Хотя такой подход не устраняет причину шторма, он сдерживает его масштаб и позволяет администраторам приступить к диагностике и устранению проблемы[5].

Ошибки интерпретации

  • Распространённая ошибка — считать, что routing loops приводят к широковещательным штормам. На третьем уровне модели маршрутизаторы, в отличие от устройств второго уровня, не пересылают широковещательный трафик MAC-уровня.
  • Считается также, что только маршрутизаторы могут фильтровать передачи и менять размер домена широковещания. На самом деле, хотя для маршрутизации действительно нужен маршрутизатор, коммутаторы также способны фильтровать трафик и логически разделять ЛВС (например, с помощью VLAN).
  • Неверно также утверждение, что маршрутизатор не может в принципе пересылать широковещательные сообщения. Некоторые протоколы маршрутизации используют широковещательные передачи на сетевом уровне, так что при определённой конфигурации маршрутизатора разделение доменов широковещания нарушается.
  • Зачастую считают, что любой широковещательный запрос можно прокомментировать ответным широковещательным сообщение. На самом деле можно отправить широковещание для сбора информации, а затем индивидуально ответить — однако при избыточной кольцевой топологии вторая передача способна попасть обратно к исходной станции.

Широковещательные штормы в MANET

В мобильной самоорганизующейся сети (MANET) обычно рассылаются запросные пакеты (RREQ) для поиска новых маршрутов. Эти сообщения могут вызывать широковещательный шторм, проходя по тем же каналам, что и обычные данные. Для снижения эффекта широковещательного шторма используют приёмы, запрещающие отдельным хостам повторную пересылку, что уменьшает избыточность и вероятность коллизий[6].

Примечания

Литература

  • Wayne Lewis. Switching e complementi di routing, CCNA 3 Companion Guide. Pearson, 2007