Перейти к содержимому

Чем опасно появление петель коммутации

  • автор:

Образование петли и нарушение работоспособности локальной сети с помощью программного обеспечения GNS3

Дисклеймер : Мы не несем ответственность за Ваши действия и не призываем Вас к каким-либо действиям! Все материалы взяты с открытых источников, опубликованы для образовательных целей.

Оглавление

  1. Широковещательный шторм в состоянии петли
  2. Методы предотвращения
  3. Создание широковещательного шторма (петли)
  4. LLMNR
  5. Анализ последствий

1. Широковещательный шторм в состоянии петли

Петля (или кольцо) в локальной сети — это ситуация, при которой часть информации от коммутатора не рассылается по компьютерам, а кочует по двум параллельным маршрутам, как бы замыкающимся в кольцо. Данные при этом бесконечно кружатся по этому кольцу, постепенно увеличиваясь в размерах и забивая весь канал. Петля является крайне неприятным явлением для локальной сети или её отдельного участка и требует немедленного решения. Для большего понимания простейшая схема петли представлена ниже.

Пример петли в локальной сети

Рис.1 Пример петли в локальной сети

Пример топологии сети

Рис. 2 Пример топологии сети

Пример топологии, рассматриваемой сети, изображен на рисунке 2.

Компьютер ПК-1 отправляет кадр (frame) по сети через коммутатор компьютеру ПК-N. Коммутатор получает кадр и в таблицу коммутации заносит адрес компьютера ПК-1 с портом. Коммутатор не знает где расположен порт получателя кадра, кроме порта, из которого этот кадр был получен. Соответственно, кадр получает ПК-N и получает виртуальный коммутатор GNS3 (далее будет подробно показано, как реализовать виртуальную сеть с помощью GNS3). Виртуальный коммутатор GNS3, который расположен в ПК-N, производит аналогичные действия. Компьютеры расположенные в локальной сети получают несколько кадров — один от коммутатора локальной сети, другой от виртуального коммутатора. Одновременно с этим, копию кадра от коммутатора локальной сети получает виртуальный коммутатор GNS3. Так как для виртуального коммутатора копия является “новым” кадром, то он производит стандартный процесс коммутации кадра. Тем самым происходит бесконечное циркулирование кадра между сегментами сети.

2. Методы предотвращения

Единственной возможностью прекратить циркулирование фрейма между сегментами сети является выключение одного из каналов связи между ними. Данную функцию реализует протокол STP, который оставляет между сегментами только один возможный канал связи между сегментами сети.

3. Создание широковещательного шторма (петли)

Рассмотрим проблему создания петли в сетевом программном эмуляторе GNS3 . GNS3 позволяет комбинировать виртуальные и реальные устройства, используемые для моделирования сложных сетей. Он использует программное обеспечение эмуляции Dynamips для имитации Cisco IOS . Для создания петли воспользуемся одним из способов подключения GNS3 к реальной физической сети. Этот способ возможен, если компьютер подключен к коммутатору (к локальной сети). Схема изображена на рисунке 3.

Схема соединения 2 хостов и 1 коммутатора

Рис. 3 Схема соединения 2 хостов и 1 коммутатора

У хостов в качестве интерфейса указываем “ nio_gen_eth:Ethernet N ”.

Перед этим проведем анализ трафика в сети с помощью ПО Wireshark (рис. 3).

Анализ трафика в сети с помощью Wireshark

Рис.4 Анализ трафика в сети с помощью Wireshark

В среднем в сети проходит 5-10 пакетов в секунду. Основной пакет — это LLMNR , который в последствии будет являться причиной нарушения работоспособности коммутатора. Сначала стоит разобрать сам протокол LLMNR .

4. LLMNR

LLMNR , англ. Link-Local Multicast Name Resolution — протокол стека TCP/IP , основанный на формате пакета данных DNS , который позволяет компьютерам выполнять разрешение имен хостов в локальной сети. Для LLMNR выделены порты 5355/UDP и 5355/TCP, в IPv4 выделен широковещательный адрес 224.0.0.252 и MAC-адрес 01-00-5E-00-00-FC, в IPv6 — FF02:0:0:0:0:0:1:3 (сокращённая запись — FF02::1:3) и MAC-адрес 33-33-00-01-00-03.

Структура заголовка пакета LLMNR

Рис. 5 Структура заголовка пакета LLMNR

Служба LLMNR ( Link-Local Multicast Name Resolution ) позволяет организовать одноранговое разрешение имен в пределах одной подсети для IPv4 , IPv6 или обоих видов адресов сразу без обращения к серверам, на что не способны ни DNS , ни WINS . WINS предоставляет как клиент-серверную, так и одноранговую службу разрешения имен, но не поддерживает адреса IPv6 . DNS , с другой стороны, поддерживает оба тина адресов, но требует наличия серверов. Разрешение имен LLMNR , работает для адресов IPv6 и IPv4 в тех случаях, когда другие службы разрешения имен недоступны, например, в домашних сетях, в небольших предприятиях, во временных сетях или корпоративных сетях, где по каким-то причинам недоступны DNS -службы. Поскольку трафик LLMNR не проходит через маршрутизаторы, вы не рискуете случайно заполнить им сеть.Как и WINS , LLMNR позволяет преобразовать имя хоста в IP -адрес. По умолчанию LLMNR включен на всех компьютерах под управлением Windows . Эти компьютеры прибегают к LLMNR , если попытки узнать имя хоста через DNS окончились неудачей. В результате, разрешение имен в Windows работает следующим образом:

  1. Хост посылает запрос на первичный DNS -сервер. Если он не получает ответа или получает сообщение об ошибке, он по очереди посылает запросы на все вторичные DNS — серверы. Если и это не помогло, разрешение имени передается LLMNR .
  2. Хост посылает многоадресный UDP -запрос, запрашивая IP -адрес для нужного имени компьютера. Этот запрос идет только по локальной подсети.
  3. Каждый компьютер локальной подсети, поддерживающий LLMNR и сконфигурированный для ответа на поступающие запросы, сравнивает имя со своим хост-именем. Если они не совпадают, компьютер отбрасывает запрос. Если имена совпадают, компьютер пересылает исходному хосту одноадресное сообщение с ІР -адресом.

5. Анализ последствий

Компьютеры с LLMNR должны проверять уникальность своих имен в подсети. В большинстве случаев это происходит при запуске, восстановлении из спящего режима или при смене параметров сетевого интерфейса. Если компьютер еще не проверил уникальность своего имени, он должен указывать это в ответе на запрос. После создания петли в GNS3 (рис. 3), увидим некоторые особенности в Wireshark (рис. 6).

Количество пакетов в сети

Рис. 6 Количество пакетов в сети

Загруженность пропускной способности канала передачи

Рис. 7 Загруженность пропускной способности канала передачи

Отключение сетевых дисков №1 и №2

Рис. 8 Отключение сетевых дисков №1 и №2

Анализ трафика с помощью Wireshark после создания петли

Рис. 9 Анализ трафика с помощью Wireshark после создания петли

После создании петли сразу же в сети наблюдается рост количества пакетов к экспоненциальному росту их числа и парализует работу сети. Это состояние в сети называется широковещательный шторм. Широковещательный шторм — лавина широковещательных пакетов (на втором уровне модели OSI — кадров). Считается нормальным, если широковещательные пакеты составляют не более 10 % от общего числа пакетов в сети.Довольно часто к широковещательному шторму приводят петли в сети при неправильной настройке канального протокола Spanning Tree . Spanning Tree Protocol (STP) — канальный протокол. Основной задачей STP является устранение петель в топологии произвольной сети Ethernet, в которой есть один или более сетевых мостов, связанных избыточными соединениями. STP решает эту задачу, автоматически блокируя соединения, которые в данный момент для полной связности коммутаторов являются избыточными.

Защита от штормов и петель на коммутаторах SNR

Широковещательный шторм — всплеск количества широковещательных пакетов в сети. Может возникать вследствие петель коммутации, атак на сеть, некорректно настроенного, либо неисправного оборудования. Размножение широковещательных сообщений активным сетевым оборудованием приводит к экспоненциальному росту их числа и парализует работу сети.

В рамках данной статьи мы рассмотрим функционал для защиты от петель и различных видов штормов на коммутаторах SNR.

Loopback-detection

Для loopback-detection есть более подробная статья.

Петля коммутации — состояние в сети, при котором коммутатор принимает кадры, отправленные им же. Избежать возникновения петель коммутации поможет функционал Loopback-detection.

Настройка Loopback-detection

Для включения функционала необходимо в режиме конфигурирования порта задать VLAN, для которых будет проверяться наличие петли, а также действие при ее обнаружении:

    block — весь трафик с порта в соответствующем mst-instance будет заблокирован;

shutdown — порт будет отключен.

В глобальном режиме можно настроить время восстановления после отключения порта по причине петли:

Значение по умолчанию — 0 (порт не будет включен повторно).

По умолчанию коммутатор отправляет 2 LBD-пакета в каждый specified-vlan в промежуток interval-time. Данные значения можно изменить. Значение interval-time меняется также в глобальном режиме. Сначала указывается интервал отправки LBD-пакетов при обнаружении петли, затем, в случае, если петля отсутствует:

Количество отправляемых копий LBD-пакетов можно задать в режиме конфигурирования порта:

При значении по-умолчанию (1) — отправляется 2 LBD-пакета. При 2 — 4 пакета и т.д.

Также в глобальном режиме можно включить отправку SNMP Trap-сообщений при обнаружении петли:

При обнаружении петли за каким-либо портом отправляется SNMP Trap с OID 1.3.6.1.4.1.40418.7.101.112.1.

Storm-control

Для ограничения широковещательного трафика в сети можно воспользоваться функционалом Storm-control, который отбрасывает входящий трафик, превышающий установленный лимит. Функционал полностью аппаратный и выполняется на уровне ASIC без участия CPU, поэтому логирование отсутствует.

Настройка Storm-control

Пороговое значение может быть задано как в kbps, так и в pps. Значение по умолчанию — kbps. Изменить единицу измерения можно в глобальном режиме:

Также можно настроить протоколы, на пакеты которых функционал реагировать не будет. Данная настройка также производится в глобальном режиме:

Пороговое значение для каждого типа трафика настраивается отдельно для каждого порта в режиме его конфигурирования:

Rate-violation

Расширенные возможности для ограничения широковещательного трафика в сети имеет Rate-violation, который также отбрасывает входящий трафик, превышающий установленный лимит. В отличие от Storm-control, данный функционал задействует ресурсы CPU и является софтовым. При превышении порога действие записывается в лог, отправляется соответствующий SNMP Trap.

Настройка Rate-violation

Все настройки Rate-violation применяются в режиме настройки порта.

Пороговое значение задается для выбранного типа трафика и может быть задано только в pps:

В качестве действия при превышении порога широковещательным трафиком может быть выбрано либо отключение порта, либо блокировка всего трафика на порте. При отключении порта также может быть выбрано время восстановления, после которого порт будет включен обратно:

Flood-control

Кроме ограничения входящего широковещательного трафика, на коммутаторах SNR существует возможность ограничить исходящий широковещательный трафик. Для этого используется Flood-control. Механизм, как и Storm-control, является аппаратным и полностью ограничивает передачу определенного типа широковещательного трафика в выбранный порт.

Настройка Flood-control

Настраивается функционал единственной командой в режиме конфигурирования порта. Всё, что нужно — это выбрать тип широковещательного трафика, распространение которого необходимо ограничить:

Петля в локальной сети. Как найти и устранить?

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

Заранее узнать появление петли очень трудно, а при её возникновении сеть просто «ложится». Одна локальную петлю можно «диагностировать» по ряду признаков, которые показывают зацикливание пакета информации

Формирование петли в локальной сети

Маршрутная петля появляется, когда пакет отправителя не может попасть получателю и длительное время движется по одному маршруту – он «зацикливается» в одном участке сети

petlya v lokalnoj seti 1

Как мы видим отправитель отправляет пакет данных на «коммутатор А», пакет идёт далее, и не зная кому его передать передаёт его «коммутатору С», и так циклично. А получатель так и не получив своей пакет отклоняет его, сообщив отправителю что пакет не получен.

И мы в ответ получаем сообщение

petlya v lokalnoj seti 2

При этом сеть на данном участке оказывается перегруженной и «падает». Перегружают её пакеты которые не могут покинуть петлю – формируется широковещательный шторм.

Кроме того, наличие зацикленных пакетов приводит к существенному снижению пропускной способности канала свзяи. При этом проблема на одном из участков сети становятся причиной сбоев общих сетевых каналов связи. Однако ввиду того, что время жизни пакета (TTL) в протоколе IP весьма ограниченно, такое «зацикливание» пакета не происходит вечно.

Петля в локальной сети: Характерные признаки

Сетевая петля обладает совершенно четкими признаками, этими признаками является ряд параметров

Time to live (TTL) время жизни пакета

IP ID идентификатор IP пакета

IP пакет, проследовав через маршрутизатор,в поле TTL получает значение. Явным признаком «зацикленного» пакета становится низкое значение TTL, после чего IP-пакет просто уничтожается роутером. Низкий показатель не обязательно показывает петлю в сети, это ещё может быть характеризовано что пакет прошёл слишком много маршрутизирующих устройств. Как правиль, в зацикленной сети появляется слишком много пакетов с одинаковы идентификаторов. При этом пакетов одновременно может возникнуть несколько тысяч.

Как искать петлю в локальной сети?

Анализатор сетевого трафика (сниффер) поможет не только выявить наличие маршрутной петли, но и покажет сетевые устройства, которые ее создали. Конечно, можно подергать каждый патч-корд каждого сетевого устройства, однако такое решение нерационально для корпоративной сети.

1. Прежде всего, нужно локализовать проблемный участок. Определить какой из участков сети «падает».

2. Запустить сниффер с целью определения устройств, между которыми осуществляется столь «эмоциональное» общение.

3. Далее, понадобится определить пакеты, создающие широковещательный шторм и отфильтровать их. Как правило, эти IP-пакеты содержат одинаковый IP-идентификатор и их очень много.

4. Также, следует оценить время жизни таких пакетов. Проходя через роутер, пакет теряет единицу TTL, поэтому можно проследить каждую потерянную единицу вплоть до уничтожения самого пакета маршрутизатором.

5. Определив пакеты, имеющие явные признаки зацикливания в петле, можно отфильтровать (например, в Capsa) MAC-адреса физических устройств, которые принимают участие в общении по сетевой петле и посылают такие датаграммы.

6. Обладая сведениями о MAC-адресах, можно найти устройства, работа которых вызвала маршрутную петлю.

Как найти петлю в локальной сети и как ее оперативно устранить

Lorem ipsum dolor

Сетевая петля — на самом деле , опасная штука. Очень часто ее появление связано с неправильным подсоединением линков маршрутизаторов или коммутаторов. Реже она случается из-за неверных настроек маршрутного адреса.

Как найти такую петлю, мы разберем чуть ниже. Но в целом предугадывать возникновение таких петель не получается. Ее наличие становится видимым , уже когда проявляются признаки зацикливания или когда уже полностью «ложится» вся наша сеть.

Как образуется сетевая петля

Если посмотреть на принцип «сетевой петли», то для большего понимания скажем, что это когда пакет каких-либо данных долго блуждает по одному и тому же маршрутному кругу от коммутатора к коммутатору и никак не может достичь своего конечного получателя. От этого с лучается перегрузка сети и она «ложится» , т ак как становится просто перегруженной IP-пакетами, которые не перестают множит ь ся из-за коммуникации между сетевыми устройствами. Но пакеты не покидают маршрутную сеть, а блуждают внутри сетевой петли, так и образуется сетевой шторм.

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

Как определить сетевую петлю по ее признакам

  1. TTL — это временное ограничение жизни сетевого пакета;
  2. IP ID — это и так понятно.

Как найти сетевую петлю в локальной сети

  1. Первое , что нужно сделать , — это определить локальный участок, где происходит зацикливание. Определить н ет рудно — там возникают проблемы с И нтернетом.
  2. Подберите любой сниффер и можете его запускать для определения зацикленных устройств.
  3. Определите сетевые пакеты, создающие шторм , и отфильтруйте их. Найти их будет н ес ложно — их огромное количество и у многих схожий ID IP.

Мы будем очень благодарны

если под понравившемся материалом Вы нажмёте одну из кнопок социальных сетей и поделитесь с друзьями.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *