Как найти петлю на cisco

Для борьбы с широковещательным штормом в сетевых устройствах Cisco используется параметр storm-control.

Содержание

1 Описание

  • Параметр storm-control задаёт количество бродкастов в секунду.
  • Всё, что свыше этого значения, отбрасывается.
  • Порт при этом продолжает работать для пересылки всего остального трафика.
  • В случае высокого значения storm-contorol можно получить перегрузку ЦПУ коммутатора, в случае низкого значения можно иметь проблемы с работой DHCP и ARP.

2 Настройка

2.1 Задание порогов срабатывания

  • Максимальный уровень широковещательного трафика задаётся либо в процентах от полосы пропускания (безразмерные значения), либо в битах в секунду (bps).
  • Есть два варианта конфигурирования:
    • однопороговое,
    • двупороговое.

2.1.1 Однопороговый вариант

  • Задаётся максимальный порог и действие по достижении этого порога:

    (config)# int f0/1
    (config-if)# storm-control broadcast level 30.00
    (config-if)# storm-control multicast level 30.00
    
  • Команда устанавливает максимальный уровень широковещательного трафика в 30% от полосы пропускания.

2.1.2 Двупороговый вариант

  • Указывается два порога.

  • При достижении первого порога порт будет отключаться.

  • При падении уровня трафика до второго порога порт будет включаться:

    (config-if)# storm-control broadcast level 30.00 10.00
    (config-if)# storm-control multicast level 30.00 10.00
    
  • Здесь первый порог — 30% от полосы пропускания, второй порог — 10% от полосы пропускания.

2.2 Реакция на шторм

  • Необходимо задать действие при возникновении шторма

    (config)# int f0/1
    (config-if)# storm-control action shutdown
    
  • Вторая команда указывает на то, какое действие должно быть совершено, когда лимит будет достигнут. В данном случае мы отключаем порт (shutdown).

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

  • Можно включить SNMP-трапы и сообщения в Syslog:

    (config-if)# storm-control action trap
    

2.3 Восстановление портов

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

    (config)# errdisable recovery cause storm-control
    (config)# errdisable recovery interval 180
    
  • В данном случае восстановление происходит через 3 минуты (180 секунд).

2.4 Обнаружение петель

  • У коммутаторов Cisco есть также штатное средство обнаружения петель, основанное на периодической отправке keepalive-сообщений.

  • Эта опция обычно включена по умолчанию, и в случае срабатывания порт отключается.

  • Для механизма keepalive можно также настроить автоматическое включение интерфейса:

    (config)# errdisable recovery cause loopback
    

2.5 Настройка на все порты сразу

  • Для настройки параметров всех портов сразу используйте диапазон портов:

    (config)# interface range f0/1 - 24
    (config-if-range)# storm-control broadcast level 30.00 10.00
    

3 Проверка работы

  • Используйте команду show storm-control, чтобы проверить конфигурацию функции подавления широковещательной и многоадресной рассылки.
  • Используйте команду show storm-control <интерфейс>, чтобы проверить конфигурацию функции подавления широковещательной и многоадресной рассылки на интерфейсе.
  • Используйте команду show run interface <интерфейс>, чтобы проверить ловушку (trap), настроенную для порта.

21.11.2021 | Категория Информационная безопасность

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

Оглавление

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

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

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

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

Для большего понимания простейшая схема петли представлена ниже.

Компьютер ПК-1 отправляет кадр (frame) по сети через коммутатор компьютеру ПК-N. Коммутатор получает кадр и в таблицу коммутации заносит адрес компьютера ПК-1 с портом. Коммутатор не знает где расположен порт получателя кадра, кроме порта, из которого этот кадр был получен.

Соответственно, кадр получает ПК-N и получает виртуальный коммутатор GNS3 (далее будет подробно показано, как реализовать виртуальную сеть с помощью GNS3). Виртуальный коммутатор GNS3, который расположен в ПК-N, производит аналогичные действия.

Компьютеры расположенные в локальной сети получают несколько кадров — один от коммутатора локальной сети, другой от виртуального коммутатора. Одновременно с этим, копию кадра от коммутатора локальной сети получает виртуальный коммутатор GNS3.

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

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

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

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

Рассмотрим проблему создания петли в сетевом программном эмуляторе GNS3. GNS3 позволяет комбинировать виртуальные и реальные устройства, используемые для моделирования сложных сетей.

Он использует программное обеспечение эмуляции Dynamips для имитации Cisco IOS. Для создания петли воспользуемся одним из способов подключения GNS3 к реальной физической сети.

Этот способ возможен, если компьютер подключен к коммутатору (к локальной сети). Схема изображена на рисунке 3. 

  1. Как найти петлю в локальной сети?
  2. Рис. 3 Схема соединения 2 хостов и 1 коммутатора
  3. У хостов в качестве интерфейса указываем “nio_gen_eth:Ethernet N”.

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

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

Рис.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. 

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

Рис. 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). 

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

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

Считается нормальным, если широковещательные пакеты составляют не более 10 % от общего числа пакетов в сети.Довольно часто к широковещательному шторму приводят петли в сети при неправильной настройке канального протокола Spanning Tree. Spanning Tree Protocol (STP) — канальный протокол.

Основной задачей STP является устранение петель в топологии произвольной сети Ethernet, в которой есть один или более сетевых мостов, связанных избыточными соединениями.

STP решает эту задачу, автоматически блокируя соединения, которые в данный момент для полной связности коммутаторов являются избыточными.

Рассмотрим, создадим и заюзаем аппаратную петлю на порте коммутатора

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

INFO

  • Rx и Tx — обозначения Receive и Transmit на схемах (приём и передача).
  • Loop — англ. петля, контур, шлейф, виток, спираль.

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

Все эти компоненты сети, работая вместе, позволяют пользователям пересылать данные с одного компьютера на другой, возможно в другую часть света.

Коммутаторы являются основными компонентами большинства проводных сетей. Управляемые коммутаторы делят сеть на отдельные логические подсети, ограничивают доступ из одной подсети в другую и устраняют ошибки в сети (коллизии).

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

Представь, что устройство «кричит» себе в порт: «Я здесь!» — слушает и получает в ответ: «Я здесь!».

Оно по-детски наивно радуется: есть соседи! Потом оно кричит: «Привет! Лови пакет данных!» — «Поймал?» — «Поймал!» — «И ты лови пакет данных! Поймал?» — «Конечно, дружище!»

Вот такой сумасшедший разговор с самим собой может начаться из-за петли на порте коммутатора.

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

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

Такое явление называется широковещательным штормом (broadcast storm).

Меня удивил случай, когда установщик цифрового телевидения вот так подсоединил патч-корд (рис. 1). «Куда-то же он должен быть воткнут…» — беспомощно лепетал он.

Как найти петлю в локальной сети?Рис. 1. Синий свитч с петлей на борту
Другие статьи в выпуске: Как найти петлю в локальной сети?

  • Содержание выпуска
  • Подписка на «Хакер»-60%

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

Настраиваем коммутаторы

Перед тем как начинать настройку, необходимо установить физическое соединение между коммутатором и рабочей станцией.

Существует два типа кабельных соединений для управления коммутатором: соединение через консольный порт (если он имеется у устройства) и через порт Ethernet (по протоколу Telnet или через web-интерфейс).

Консольный порт используется для первоначального конфигурирования коммутатора и обычно не требует настройки.

Для того чтобы получить доступ к коммутатору через порт Ethernet, устройству необходимо назначить IP-адрес.

Web-интерфейс является альтернативой командной строке и отображает в режиме реального времени подробную информацию о состоянии портов, модулей, их типе и т. д. Как правило, web-интерфейс живет на 80 HTTP-порте IP-коммутатора.

Настройка DLink DES-3200

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

  1. Назначить коммутатору IP-адрес из диапазона адресов твоей сети с помощью следующей команды:
    DES-3200# config ipif System
    ipaddress xxx.xxx.xxx.xxx/yyy.yyy.yyy.yyy.

    Здесь xxx.xxx.xxx.xxx — IP-адрес, yyy.yyy.yyy.yyy. — маска подсети.

  2. Проверить, правильно ли задан IP-адрес коммутатора, с помощью следующей команды:
    DES-3200# show ipif
  3. Запустить на рабочей станции web-браузер и ввести в его командной строке IP- адрес коммутатора.

Управляемые коммутаторы D-Link имеют консольный порт, который с помощью кабеля RS-232, входящего в комплект поставки, подключается к последовательному порту компьютера. Подключение по консоли иногда называют подключением Out-of-Band. Его можно использовать для установки коммутатора и управления им, даже если нет подключения к сети.

После подключения к консольному порту следует запустить эмулятор терминала (например, программу HyperTerminal в Windows). В программе необходимо задать следующие параметры:

Baud rate: 9,600
Data width: 8 bits
Parity: none
Stop bits: 1
Flow Control: none

При соединении коммутатора с консолью появится окно командной строки. Если оно не появилось, нажми Ctrl+r , чтобы обновить окно.

Коммутатор предложит ввести пароль. Первоначально имя пользователя и пароль не заданы, поэтому смело жми клавишу Enter два раза. После этого в командной строке появится приглашение, например DES-3200#. Теперь можно вводить команды.

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

Например, если надо узнать синтаксис команды config, введи в командной строке:

DES-3200#config + пробел

Далее можно ввести «?» или нажать кнопку Enter. На экране появится список всех возможных способов завершения команды. Лично я для вывода этого списка на экран пользуюсь клавишей TAB.

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

Базовая конфигурация коммутатора

При создании конфигурации коммутатора прежде всего необходимо обеспечить защиту от доступа к нему неавторизованных пользователей.

Самый простой способ обеспечения безопасности — создание учетных записей для пользователей с соответствующими правами. Для учетной записи пользователя можно задать один из двух уровней привилегий: Admin или User.

Учетная запись Admin имеет наивысший уровень привилегий. Создать учетную запись пользователя можно с помощью следующих команд CLI:

DES-3200# create account admin/user
(знак «/» означает ввод одного из двух параметров)

После этого на экране появится приглашение для ввода пароля и его подтверждения: «Enter a case-sensitive new password». Максимальная длина имени пользователя и пароля составляет 15 символов. После успешного создания учетной записи на экране появится слово Success. Ниже приведен пример создания учетной записи с уровнем привилегий Admin:

Username «dlink»:
DES-3200#create account admin dlink
Command: create account admin dlink
Enter a case-sensitive new password:****
Enter the new password again for confirmation:****
Success.
DES-3200#

Изменить пароль для существующей учетной записи пользователя можно с помощью следующей команды: DES-3200# config account Ниже приведен пример установки нового пароля для учетной записи dlink:

DES-3200#config account dlink
Command: config account dlink
Enter a old password:****
Enter a case-sensitive new password:****
Enter the new password again for confirmation:****
Success.

Проверка созданной учетной записи выполняется с помощью следующей команды: DES-3200# show account. Для удаления учетной записи используется команда delete account .

Шаг второй. Чтобы коммутатором можно было удаленно управлять через web-интерфейс или Telnet, коммутатору необходимо назначить IP-адрес из адресного пространства сети, в которой планируется использовать устройство. IP-адрес задается автоматически с помощью протоколов DHCP или BOOTP или статически с помощью следующих команд CLI:

DES-3200# config ipif System dhcp,
DES-3200# config ipif System ipaddress
xxx.xxx.xxx.xxx/yyy.yyy.yyy.yyy.

Здесь xxx.xxx.xxx.xxx — IP-адрес, yyy.yyy.yyy.yyy. — маска подсети, System — имя управляющего интерфейса коммутатора.

Шаг третий. Теперь нужно настроить параметры портов коммутатора. По умолчанию порты всех коммутаторов D-Link поддерживают автоматическое определение скорости и режима работы (дуплекса). Но иногда автоопределение производится некорректно, в результате чего требуется устанавливать скорость и режим вручную.

Для установки параметров портов на коммутаторе D-Link служит команда config ports. Ниже я привел пример, в котором показано, как установить скорость 10 Мбит/с, дуплексный режим работы и состояние для портов коммутатора 1–3 и перевести их в режим обучения.

DES-3200#config ports 1-3 speed 10_full learning
enable state enable
Command: config ports 1-3 speed 10_full learning
enable state enable
Success

Команда show ports выводит на экран информацию о настройках портов коммутатора.

Шаг четвертый. Сохранение текущей конфигурации коммутатора в энергонезависимой памяти NVRAM. Для этого необходимо выполнить команду save:

DES-3200#save
Command: save
Saving all settings to NV-RAM… 100%
done.
DES-3200#

Шаг пятый. Перезагрузка коммутатора с помощью команды reboot:

DES-3200#reboot
Command: reboot

Будь внимателен! Восстановление заводских настроек коммутатора выполняется с помощью команды reset.

DES-3200#reset config

А то я знал одного горе-админа, который перезагружал коммутаторы командой reset, тем самым стирая все настройки.

loop_detection для коммутаторов Alcatel
interface range ethernet e(1-24)
loopback-detection enable
exit
loopback-detection enable

loop_detection для коммутаторов Dlink
enable loopdetect
config loopdetect recover_timer 1800
config loopdetect interval 1
config loopdetect mode port-based
config loopdetect trap none
config loopdetect ports 1-24 state enabled
config loopdetect ports 25-26 state disabled

Грамотный админ обязательно установит на каждом порте соответствующую защиту.

Но сегодня мы хотим применить loopback во благо. У такого включения есть замечательное свойство. Если на порте коммутатора имеется петля, устройство считает, что к нему что-то подключено, и переходит в UP-состояние, или, как еще говорят, «порт поднимается». Вот эта-то фишка нам с тобой и нужна.

Loopback

Loop — это аппаратный или программный метод, который позволяет направлять полученный сигнал или данные обратно отправителю. На этом методе основан тест, который называется loopback-тест.

Для его выполнения необходимо соединить выход устройства с его же входом. Смотри фото «loopback-тест».

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

Устраиваем аппаратную петлю

Устроить обратную связь очень просто: соединяется канал приема и передачи, вход с выходом (Rx и Tx).

Как найти петлю в локальной сети?Таблица 1. Распиновка RJ45

Обожми один конец кабеля стандартно, а при обжиме второго замкни жилы 2 и 6, а также 1 и 3. Если жилы имеют стандартную расцветку, надо замкнуть оранжевую с зеленой, а бело-оранжевую с бело-зеленой. Смотри рис. 3.

Как найти петлю в локальной сети?Нумерация контактов RJ-45

Теперь, если воткнешь такой «хвостик» в порт коммутатора или в свою же сетевую карту, загорится зелёненький сигнал link. Ура! Порт определил наше «устройство»!

Красная кнопка, или Hello world

Ну куда же без Hello world? Каждый должен хоть раз в жизни вывести эти слова на экран монитора! Сейчас мы с тобой напишем простейший обработчик событий, который будет срабатывать при замыкании красной кнопки. Для этого нам понадобятся только кнопка с двумя парами контактов, работающих на замыкание, витая пара и коннектор. На всякий случай приведу схему красной кнопки (рис. 4).

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

Паяльник в руках держать умеешь? Соединяем так, чтобы одна пара контактов замыкала оранжевую жилу с зеленой, а другая — бело-оранжевую с бело-зеленой. На всяких случай прозвони соединение мультиметром.

Все, теперь можно тестировать. Вставь обжатую часть в порт сетевой карты или в порт коммутатора. Ничего не произошло? Хорошо. Нажми кнопку. Линк поднялся? Замечательно!

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

Вот листинг простейшего обработчика Hello World на Cshell:

Скрипт на Cshell, генерящий Hello word
#!/bin/csh
# ver. 1.0
# Проверяем, запущен ли процесс в памяти
if ( ‘ps | grep ‘redbut’ | grep -v ‘grep’ | wc -l’

Реально ли найти петлю в локальной сети из неуправляемых коммутаторов?

Локальные сети, построенные в конце 90-х уже, конечно, изжили себя. Однако, их модернизация или полное обновление в некоторых ситуациях просто физически невозможно или финансово нецелесообразно — не позволяет планировка здания, реже — топология сети.

Часто проблемой с «петлей» страдают именно такие сети, которые еще можно встретить с студенческих общежитиях. Так как цены на ремонт или перепланировку общежития на голову выше цены ремонт квартиры. Речь идет не о косметическом ремонте, от которого толку, в общем-то, будет мало.

А капитальный ремонт в текущих реалиях непостижимая цель для наших МОУ.

Для начала разберемся, что же такое петля.

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

Cisco тоже делает неуправляемые коммутаторы
Как найти петлю в локальной сети?

Хорошо, если ядро сети построено на хорошем управляемом коммутаторе, вроде Mikrotik, который сообщит (в логах) на каком интерфейсе появилась петля. Есть две основные причины появления петли — сбойный свитч, либо неверно настроенное абонентское устройство, подключенное в общую сеть (например, DHCP-сервер на роутере, использующий широковещательные пакеты). А теперь плохие новости:

В сети, построенной на неуправляемых свитчах, определить местонахождение петли ни аппаратными, ни программными средствами, нельзя!

Знаменитый MikroTik RB951G-2HnD
Как найти петлю в локальной сети?

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

Решение проблемы простое — стоит обратить свой взор на управляемые свитчи, на которых можно резать ненужный трафик.

Коммутаторы Маршрутизация

Петля в локальной сети: что такое и как найти

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

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

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

С петлей мне пришлось столкнуться в одной средней размеров конторе по долгу службы. Офис там располагался в видавшем виде здании, по-моему, даже частично или полностью деревянном. Сетевое оборудование было соответствующее, поэтому, когда в один не слишком добрый понедельник мне заявили о медленном Интернете, я, поначалу, не придал этому особого значения. Затем отвалились и Интернет, и 1С.

Поняв, что проблема, скорее всего, в неисправности коммутатора или кольце, я отправился в коммутационную. Там меня ждали три неуправляемых D-Link’а (это не оскорбление, а вполне себе термин для коммутатора).

Поначалу я всё же думал на неисправность коммутатора (тем более, что есть у меня субъективное недоверие к D-link). Количество портов трех 24-портовых коммутаторов для небольшого офиса на 10-15 машин было излишним, и оставалось еще от старых-добрых времен, когда компов в сетке было больше.

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

Тогда ко мне и закралась мысль о кольце.

Первым делом я стал проверять, не может ли быть так, что один и тот же патч-корд воткнут обоими концами в один свич. Мне повезло, и такой кабель действительно был. Это вполне могло быть «подарком» предыдущего админа, чем-то не сошедшегося с руководством. Во всяком случае, вряд ли бы кто-то полез к свичам случайно.

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

Итак, несколько советов как вычислить петлю в локальной сети:

  1. Локализуйте проблему. Падает вся сеть или отдельный участок? Если у одного отдела сеть есть, а у другого нет, то проверяйте коммутатор, раздающий сеть на тот отдел.
  2. Какой тип коммутатора(-ов) используется? Это может быть управляемый коммутатор или неуправляемый. В проблемном участке может быть и смесь из обоих вариантов. В случае с неуправляемым коммутатором придется вычислять проблемный порт методом научного тыка. В управляемом коммутаторе порты можно закрыть через веб-интерфейс.
  3. Проверьте кабели. Скорее всего, дело всё-таки в физическом закольцевании сети. Но может «сдуреть» отдельно взятый порт в коммутаторе или сетевой плате компьютера. Редко, но может встретиться ситуация с дублированием функций DHCP-сервера, когда устройство (роутер, коммутатор или компьютер), которое этого делать не должно, раздаёт остальным некорректные настройки сети. В таком случае выключите DHCP-сервер и попробуйте получить адрес с какого-либо компьютера в проблемном участке сети. Если опасения подтвердились — проверяйте устройства на предмет включения функции DHCP-сервера. В первую очередь, конечно, роутеры и коммутаторы.

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

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

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

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

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

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

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

Но пакеты не покидают маршрутную сеть, а блуждают внутри сетевой петли, так и образуется сетевой шторм.

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

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

Чтобы найти сетевую петлю, нужно определить ее сначала по ее признакам. Благо, они четко определяемые и заметные. Для начала нужно закрепить 2 определения:

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

Любой сетевой пакет, пройдя через коммутатор в своем поле TTL, заполучает значение на одну единицу меньше. Так вот, очень уменьшенное значение TTL — это явный признак зацикленной локальной сети.

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

Уменьшаясь до единицы в сетевой петле, он потом «погибает».

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

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

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

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

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

Это может быть как ошибка монтажников, так и в процессе эксплуатации сети, кто-то из работяг-неспециалистов начудил.

И это может быть необязательно в самом коммутаторе, куда доступ ограничен, а просто, к примеру, один из офисных работников конец одного подключенного линка случайно или нет включил в другую интернет-розетку и вуаля — сетевая петля.

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

Discovering Network Loops (Layer 2) with Wireshark

A network loop occurs when there is more than one path exists between the source and destination. Consider the figure below, in which two switches are connected to each other with multiple path. Imagine that Layer 2 loop prevention mechanism is not enabled or is broken on the switches somehow.

The broadcast or multicast frames created by any end point in the network will be received by the switches and flooded out of every port except the port that the frame was received on, creating a layer 2 loop between two switches.

Even if you disconnect every end point from the network, there will still be an infinite broadcast and multicast storm between both switches.

What is broadcast, multicast, unicast and how does it work?

In packet switching network, there are 3 types of frames; broadcast, multicast and unicast.

1. Broadcast Frame

Broadcast is the term used to describe communication where a frame is sent from one end point to all other end points at the same time. In this type of communication, there is only one sender that sends data frames to all connected receivers.

2. Multicast Frame

Multicast is the term used to describe communication where a frame is sent from one end point to one or multiple end points at the same time. In this type of communication, there is only one sender that sends data frame to one or multiple connected receivers.

3. Unicast Frame

Unicast is the term used to describe communication where a frame is sent from one end point to the only one end point. In this type of communication, there is only one sender that sends data frame to one connected receiver.

How does a switch know if a frame is broadcast, multicast or unicast?

It is all about how mac address format is designed. MAC address is 48 bits (6 bytes) unique identifier. Each byte is called an “octet”. See more details below.

source: https://en.wikipedia.org

The first 24 bits (3 bytes) of mac address is called organisationally Unique Identifier (OUI), which identifies a vendor, manufacturer, or other organization. See some OUI below.

  • 00:12:1e: represents Juniper Networks.
  • 00:19:06:  represents Cisco Systems, Inc.
  • 00:1d:60: represents ASUSTek COMPUTER INC.
  • 52:54:00:  represents Realtek.
  • 08:00:27: represent PCS Systemtechnik GmbH.

ALSO READ: Configure and Test FreeRADIUS PAP & CHAP Authentication

Individual/Group (IG) bit is used to differentiate unicast frames from multicast frames. When the bit is set to zero (0), it means it is a unicast frame. When it is set to one (1), it means the frame is a multicast.

The bit is located in the most significant byte of mac address. In the figure above, “b0” is the IG bit.

When it comes to broadcast frames, a special mac address (FF-FF-FF-FF-FF-FF) is used to distinguish broadcast frames from the other traffics.

What are the reasons behind a network loop?

Network loops occur due to many reasons. The most common causes are below.

  • Human error in cabling.
  • Unidirectional link failure in a fiber cable.
  • Buggy spanning tree.
  • Buggy network devices (IP Phones).

As a network administrator, I mostly experience the first and last one.

For learning and testing purpose, the easiest way to create a loop is just disabling spanning tree on the switch and plugging network cable from one port to the other one. But it is a rare case in a network to have that kind of loop.

It happens only with hubs and dummy switches that do not run a spanning tree. A second method to easily create a loop is using buggy IP phones. Here is a list from Cisco: https://quickview.cloudapps.cisco.com/quickview/bug/CSCvd03371

ALSO READ: Analyze TLS and mTLS Authentication with Wireshark

If you have one of the phones in the list, you can create a loop. (I am sure there are some other models that have the bug but not listed there)

When you accidentally plug both PC Port cable and Network Port cable of the phone into the network switch, it’ll cause a network loop that brings down the network.

The reason is that the STP packet sent by the switch through the Network Port gets filtered by the phone.

Since the switch does not get the STP packet back through the PC Port, it will not block that port, leaving the network prone to a broadcast or multicast storm. In a short time, a loop occurs and the network goes down.

How to protect your network from loop?

It actually depends on what kind of equipment you have and what sort of loop prevention mechanisms it has. Protection method commonly used are below.

  • Enabling Storm control
  • Enabling Spanning Tree Protocol (STP, RSTP, MSTP, etc)
  • Enabling the other proprietary loop prevention mechanism

Find a loop with Wireshark

Use “unicast / (broadcast +multicast)” formula which gives you a great idea. Let’s test it on my packets I captured during the loop. We will create a filter (eth.dst.lg == 0) that shows the packets contain IG bit of zero (0), which displays unicast packets. See the details below.

ALSO READ: 100% proven ways to find hidden endpoints [Tutorial]

Number of unicast packets is 510. The number of total packets is 1870829.

Broadcasts + multicast = total packetsunicasts = 1870829-510 = 1870319

As you see both in the screenshot and calculation, unicast packet ratio is pretty low which indicate that a loop has occurred. The number of broadcast and multicast packets can be found with this filter: (eth.dst.lg == 1  ) or (eth.addr == ff:ff:ff:ff:ff:ff)

Header Checksum or Identification fields in IP header can be used to check if a loop has happened.

Since every time both fields change for each packet, when you see multiple the same Header Checksum or Identification field in other packets, you can easily say there has been a loop. Remember that Header Checksum and Identification are 2 bytes fields.

Even if it is low, there is always a chance there would be a collision of the fields. Collision simply means that the same identifier or calculation to be assigned to the different packets.

  • 1) Select a broadcast or multicast packet and go to IP header section.
  • 2) Right click on the “Header Checksum” and a menu appears.
  • 3) Click on “Apply as Colum”

4) Do the same steps for “Identification” filed too.

wKioL1ZyOOXyOwwJAAB1V-qpBD4046.png

Как показано на рисунке выше, протокол STP может разрешить только петлю на рисунке A. Если петля возникает в ошибочном коммутаторе, подключенном к коммутатору, это также повлияет на верхний коммутатор и приведет к параличу сети верхнего коммутатора, а протокол STP не может решить эту проблему. Для решения необходимо использовать другие решения.

Один, коммутатор Cisco

1. Откройте портфаст глобально

spanning-tree portfast default

2. Включите защиту BPDU под интерфейсом.

spanning-tree bpduguard enable

3. Защита BPDU также может быть включена для всех портов по всему миру.

C3560G-1(config)#spanning-tree portfast default

C3560G-1(config)#spanning-tree portfast bpduguard default

Когда в сети есть петля, вы можете использовать следующую команду, чтобы проверить, с какого порта идет петля.
wKioL1ZyPZbQ4_TQAABBxeadZ3A910.png

Два, переключатель H3C

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

 loopback-detection enable

 loopback-detection interval-time 5

2. Обнаружение петель также должно быть включено под интерфейсом.

[H3C-S5120-GigabitEthernet1/0/12]loopback-detection enable 

Когда в сети есть петля, вы можете использовать следующую команду, чтобы проверить, с какого порта идет петля.

[H3C-S5120-GigabitEthernet1/0/12]dis loopback-detection 

 Loopback-detection is running

 Detection interval time is 5 seconds

 Following port(s) has(have) loopback link:

GigabitEthernet1 / 0/12 // Петля исходит от этого порта

По умолчанию система выполняет обнаружение петли только в VLAN по умолчанию, к которой принадлежит магистральный порт или гибридный порт. Если вы хотите выполнить обнаружение петли для всех VLAN на магистральном или гибридном интерфейсе, вам необходимо использовать следующую команду, чтобы включить функцию обнаружения нескольких VLAN. нужно знать,loopback-detection per-vlan enableКомандная параAccessПорт недействителен. .

Например: если вы хотите выполнить мониторинг сетевой петли во всех VLAN под магистральным портом коммутатора g1 / 0/16, вы должны выполнить следующие операции настройки:

Войдите в вид интерфейса: int G1 / 0/16

Введите команду: loopback-detection per-vlan enable

Коммутатор может выполнять операции мониторинга сетевой петли во всех VLAN, к которым принадлежат гибридный порт и магистральный порт.

Fiberhome Имя пользователя admin Пароль 12345

S2100M#show loop-check                                                          
 LoopCheck Action : isolation                                                   
 LoopCheck ExpireTime : 0, for shutdown action only.                            
  LoopCheck Trap : disable     

S2100M(config)#loop-check action shutdown    

S2100M(config)#loop-check expire-time 300 

Contents

Introduction

This document helps troubleshoot Cisco Express Forwarding (CEF) routing loops and sub-optimal routing caused by a valid cached Cisco Express Forwarding adjacency that points out the incorrect interface. An adjacency with an incorrect interface is created because of these reasons:

  • A static route points directly to a multi-access interface.

  • A valid Cisco Express Forwarding adjacency is built as a result of Proxy Address Resolution Protocol (ARP) replies.

Prerequisites

Requirements

Use these resources in order to better understand some of the concepts this document uses:

  • Cisco Express Forwarding Overview

  • Route Selection in Cisco Routers

Components Used

This document is not restricted to specific software and hardware versions.

Conventions

For more information on document conventions, refer to the Cisco Technical Tips Conventions.

Network Diagram

Router R1 connects to R3 via Serial 8/0, and router R2 connects to R4 via Serial 8/0. R1 and R2 are connected via Ethernet 0/0, as this figure shows.

trouble_cef_01.gif

  • R2 receives external Border Gateway Protocol (eBGP) prefix updates for 10.10.34.0/24 from R4. R2 propagates this prefix to R1 via internal BGP (iBGP).

  • R2 has a static default route (0.0.0.0/0) that points to R4’s Serial 8/0 IP address 10.10.24.4.

  • R2 also has a back-up floating default route (IP route 0.0.0.0 0.0.0.0 Ethernet0/0 10) that points to interface Ethernet 0/0 to route packets if the serial connection between R2 and R4 fails.

  • R1 has a default route that points to R3’s Serial 8/0 with the IP address 10.10.13.3.

Problem

IP traffic destined for 10.10.34.0/24 gets looped between R1 and R2. Observe the traceroute command output on R1.

R1#traceroute 10.10.34.4 
 
Type escape sequence to abort. 
Tracing the route to 10.10.34.4 
 
  1 192.168.12.2 20 msec 20 msec 20 msec 
  2 192.168.12.1 8 msec 12 msec 8 msec 
  3 192.168.12.2 8 msec 8 msec 12 msec 
  4 192.168.12.1 12 msec ...

Note that traffic destined for 10.10.34.4 hops between R1’s Ethernet 0/0 (IP address 192.168.12.1) and R2’s Ethernet 0/0 (IP address 192.168.12.2). Ideally, traffic from R1 destined for 10.10.34.0/24 needs to go to R2 because of the iBGP learned prefix 10.10.34.0/24. Then, from R2, the traffic should route to R4. However, the traceroute command output confirms a routing loop between R1 and R2.

R1
hostname R1 
! 
ip subnet-zero 
! 
ip cef 
! 
interface Ethernet0/0 
 ip address 192.168.12.1 255.255.255.0 
! 
interface Serial8/0 
 ip address 10.10.13.1 255.255.255.0 
! 
router bgp 11 
 no synchronization 
 bgp log-neighbor-changes 
 neighbor 10.10.13.3 remote-as 12
 neighbor 192.168.12.2 remote-as 11 
 no auto-summary 
!  
ip route 0.0.0.0 0.0.0.0 10.10.13.3
R2
hostname  R2 
! 
ip cef 
! 
interface Ethernet0/0 
  ip address 192.168.12.2 255.255.255.0 
! 
interface Serial8/0 
 ip address 10.10.24.2 255.255.255.0 
! 
router bgp 11 
 no synchronization 
bgp log-neighbor-changes 
 network 192.168.12.0 
 neighbor 10.10.24.4 remote-as 10 
 neighbor 192.168.12.1 remote-as 11 
 neighbor 192.168.12.1 next-hop-self 
 no auto-summary 
! 
ip route 0.0.0.0 0.0.0.0 10.10.24.4 
ip route 0.0.0.0 0.0.0.0 Ethernet0/0 10 
!

Troubleshoot

Since the packets destined for 10.10.34.4 get looped between R1 and R2, start to troubleshoot. First check the IP routing on R1. The show ip route 10.10.34.0 command output confirms the next hop of 192.168.12.2 for packets destined to 10.10.34.0/24. This matches with the traceroute command first hop, where packets are sent to next hop 192.168.12.2, which confirms that packets are switched correctly on R1.

R1#show ip route 10.10.34.0 
Routing entry for 10.10.34.0/24
  Known via "bgp 11", distance 200, metric 0
  Tag 10, type internal
  Last update from 192.168.12.2 00:22:59 ago
  Routing Descriptor Blocks:
  * 192.168.12.2, from 192.168.12.2, 00:22:59 ago
      Route metric is 0, traffic share count is 1
      AS Hops 1

The next step is to check the IP routing table of R2. As this show ip route 10.10.34.0 command output shows, packets destined to 10.10.34.0 should be routed out to next hop 10.10.24.4 on Serial 8/0. However, the traceroute command shows packets switched back to R1 to the IP address 192.168.12.1. Further investigation is needed into why packets destined to 10.10.34.0 are switched on R2 to next hop 192.168.12.1 (as in the output of the traceroute command) instead of to 10.10.24.4.

R2#show ip route 10.10.34.0
Routing entry for 10.10.34.0/24
  Known via "bgp 11", distance 20, metric 0
  Tag 10, type external
  Last update from 10.10.24.4 00:42:32 ago
  Routing Descriptor Blocks:
  * 10.10.24.4, from 10.10.24.4, 00:42:32 ago
      Route metric is 0, traffic share count is 1
      AS Hops 1

At this point it is important to understand that in a Cisco Express Forwarding-switched network, a packet forwarding decision consists of:

  • A routing table lookup for the longest prefix match.

  • A forwarding information base (FIB) lookup.

Since the routing table is verified, look at the Cisco Express Forwarding FIB. In the results of the show ip cef 10.10.34.4 detail command, note that Cisco Express Forwarding switches 10.10.34.4 out Ethernet 0/0 instead of next hop 10.10.24.4 out Serial 8/0 (as shown in the show ip route 10.10.34.0 command output). This discrepancy creates loops in the network.

R2#show ip cef 10.10.34.4 detail
10.10.34.4/32, version 19, cached adjacency 10.10.34.4
0 packets, 0 bytes
  via 10.10.34.4, Ethernet0/0, 0 dependencies
    next hop 10.10.34.4, Ethernet0/0
    valid cached adjacency

The next step is to look at the Cisco Express Forwarding adjacency table and see how Cisco Express Forwarding learns to switch packets out Ethernet 0/0. Notice the adjacency is built because of ARP.

R2#show adjacency ethernet 0/0 detail | begin  10.10.34.4 
IP       Ethernet0/0               10.10.34.4(5)
                                   50 packets, 2100 bytes
                                   AABBCC006500AABBCC0066000800
                                   ARP        03:02:00

This show ip arp command output is confirmation.

R2#show ip arp 10.10.34.4
Protocol  Address          Age (min)  Hardware Addr   Type   Interface
Internet  10.10.34.4             60   aabb.cc00.6500  ARPA   Ethernet0/0

Next, find out why this ARP entry was created when there is an IP route in the routing table. Look at the routing table again.

R2#show run | include ip route 0.0.0.0
ip route 0.0.0.0 0.0.0.0 10.10.24.4
ip route 0.0.0.0 0.0.0.0 Ethernet0/0 10

If the serial connection fails between R2 and R4, all traffic is routed with the use of a floating static route out Ethernet 0/0 because R2 has a floating static route that points to the multi-access interface Ethernet 0/0, and not to the Ethernet IP address 192.168.12.1 of R1. Therefore, for all unknown destinations, Router R2 sends out an ARP request through the Ethernet0/0 interface. In this case, R2 has lost the more specific route to the 10.10.34.0 network. Therefore, when the data packet arrives for the hosts on this network, it generates an ARP request via the Ethernet interface. Since Proxy ARP is enabled by default on R1’s Ethernet interface and it has a default route that points to R3, it responds back with an Proxy ARP reply with its own MAC address. Hence, R2 sends all traffic to R1, and R1 forwards all traffic with the use of its default route (0.0.0.0/0) out to AS 12, and consequently to 10.10.34.4 via the Internet.

When R2 receives the proxy ARP reply from R1, it creates a /32 valid Cisco Express Forwarding adjacency that points out interface Ethernet 0/0. This Cisco Express Forwarding entry does not age out until the proxy ARP router R1 is present on the Ethernet segment. Thus, the /32 Cisco Express Forwarding entry continues to be used to Cisco Express Forwarding-switch the packets, even after the serial connection between R2 and R4 is back up and the routing table default route points out Serial 8/0 towards AS 10. The result is a routing loop.

Finally, look at the logs and see if the serial link (s8/0) flapped. This causes a floating static route to be installed in the routing table which then leads to proxy ARP and results in the installation of a Cisco Express Forwarding entry of 10.10.34.4/32 in the Cisco Express Forwarding FIB.

R2#show log | beg Ethernet0/0
[..]
%LINEPROTO-5-UPDOWN: Line protocol on Interface Serial8/0, changed state to down
%BGP-5-ADJCHANGE: neighbor 10.10.24.4 Down Interface flap
%LINEPROTO-5-UPDOWN: Line protocol on Interface Serial8/0, changed state to up
%BGP-5-ADJCHANGE: neighbor 10.10.24.4 Up

The logs confirm the cause. In summary, these steps show the sequence of events:

  1. Serial 8/0 on R2 goes down.

  2. R2 has a packet destined to 10.10.34.4.

  3. R2 follows the backup default route pointed directly to the Ethernet 0/0.

  4. R2 sends an ARP request for 10.10.34.4.

  5. R1 (Proxy) replies to the ARP request with its own MAC address to R2.

  6. R2 now has an ARP entry for 10.10.34.4 with the MAC address of R1.

  7. R2 creates a Cisco Express Forwarding adjacency for 10.10.34.4, and a 10.10.34.4/32 entry is installed in the Cisco Express Forwarding table (FIB) for this destination via Ethernet 0/0. This Cisco Express Forwarding entry is maintained for as long as the ARP entry is valid or until R1 is present on the Ethernet segment.

  8. Serial 8/0 on R2 comes up.

  9. R2 learns eBGP route 10.10.34.0/24 from R4 with next hop 10.10.24.4 and installs the route in the IP routing table.

  10. R1 learns prefix 10.10.34.0/24 via iBGP from R2 and installs it in the IP routing table.

  11. R1 has a packet destined for 10.10.34.4.

  12. R1 looks into its routing table, matches iBGP prefix routes to R2, and routes to R2.

  13. R2 receives a packet destined for 10.10.34.4. Since it already has a Cisco Express Forwarding entry for 10.10.34.4/32 that points to Ethernet 0/0 in its FIB table with the MAC address of R1, it sends the packet back to R1 without looking at the routing table. This creates a loop.

Solution

Replace the floating static route that points directly to the Ethernet 0/0 with one that points to a next hop address.

R2(config)#no ip route 0.0.0.0 0.0.0.0 ethernet 0/0 10
R2(config)# ip route 0.0.0.0 0.0.0.0 192.168.12.1 10

When you have a static route that points to the next hop IP address instead of a multi-access interface Ethernet 0/0, it stops R2 from sending ARP requests for all destinations. The packets are routed and switched based on the next hop 192.168.12.1. Therefore, any ARP Cisco Express Forwarding entries and loops are avoided.

Observe the Cisco Express Forwarding entry on R2 that points to the correct interface Serial 8/0.

R2#show ip cef 10.10.34.4
10.10.34.0/24, version 32, cached adjacency to Serial8/0
0 packets, 0 bytes
  via 10.10.24.4, 0 dependencies, recursive
    next hop 10.10.24.4, Serial8/0 via 10.10.24.0/24
    valid cached adjacency

Related Information

  • Troubleshooting Load Balancing Over Parallel Links Using Cisco Express Forwarding
  • How to Verify Cisco Express Forwarding Switching
  • Troubleshooting Prefix Inconsistencies with Cisco Express Forwarding
  • Troubleshooting Incomplete Adjacencies with Cisco Express Forwarding
  • Cisco Express Forwarding Support Page
  • IP Routing Protocols Support Pages
  • Technical Support & Documentation – Cisco Systems

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

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

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

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

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

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

Чтобы найти сетевую петлю, нужно определить ее сначала по ее признакам. Благо, они четко определяемые и заметные. Для начала нужно закрепить 2 определения:

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

Любой сетевой пакет, пройдя через коммутатор в своем поле TTL, заполучает значение на одну единицу меньше. Так вот, очень уменьшенное значение TTL — это явный признак зацикленной локальной сети. Потому что низкий TTL объясняется тем, что пакет проходил много раз через маршрутизатор, с каждым разом уменьшаясь. Его нормальное значение обычно не превышает 30. Уменьшаясь до единицы в сетевой петле, он потом «погибает».

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

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

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

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

Отдельным видом сетевой петли является физическое зацикливание сети. Простым языком это когда в порты коммутатора подсоединяют два конца одного провода. В маленьких локальных сетях это, конечно, вряд ли может произойти, если проводов всего несколько, но в больших корпоративных сетях — легко. Это может быть как ошибка монтажников, так и в процессе эксплуатации сети, кто-то из работяг-неспециалистов начудил. И это может быть необязательно в самом коммутаторе, куда доступ ограничен, а просто, к примеру, один из офисных работников конец одного подключенного линка случайно или нет включил в другую интернет-розетку и вуаля сетевая петля.

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

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