loopback detection что такое
03. Loopback detection
3.2. Конфигурация Loopback detection
Включить функцию Loopback detection;
Настроить действие при обнаружении петли;
Отобразить информацию о конфигурации и отладочную информацию;
Включить отправку trap.
Команда
Описание
no loopback-detection interval-time
! В режиме глобальной конфигурации
loopback-detection control-recovery timeout
! В режиме глобальной конфигурации
Задать время восстановления после выключена порта при обнаружении петли. После применения значения 0 восстановление не происходит автоматически (по-умолчанию).
2.Включить функцию Loopback detection:
Команда
Описание
no loopback-detection specified-vlan
! В режиме конфигурации интерфейса
Задать VLAN для которых будет проверяться наличие петли. Команда no удаляет эту конфигурацию.
3.Настроить действие при обнаружении петли:
Команда
Описание
no loopback-detection control
! В режиме конфигурации интерфейса
Выбрать действие при обнаружении петли. Команда no удаляет эту конфигурацию.
4. Отобразить информацию о конфигурации и отладочную информацию:
Команда
Описание
no debug loopback-detection
! В Admin режиме
Выводить отладочную информацию. Команда no отменяет вывод отладочной информации.
show loopback-detection [interface ]
Вывести информацию и состоянии и конфигурации Loopback-detection. Если указан параметр interface информация будет выведена только для указанного интерфейса.
5.Включить отправку trap:
Команда
Описание
loopback-detection trap enable
no loopback-detection trap enable
! В режиме глобальной конфигурации
Включить отправку SNMP trap при обнаружении петли. Команда no отключает эту функцию.
3.3. Пример конфигурации Loopback detection
Чтобы защитить сеть от последствий возникновения петли коммутации из-за ошибки пользователя, неиcправности линии или оборудования, подключенных к порту 1/0/1 коммутатора Switch, необходимо настроить функцию loopback-detection.
Конфигурация коммутатора будет выглядеть следующим образом:
Пример конфигурации MST Instance:
3.4. Решение проблем с конфигурацией Loopback detection
Убедитесь, что оборудование, подключенное к интерфейсу с loopback detection, прозрачно пропускает Loopback-detection BPDU, иначе функция не будет работать;
Рекомендуется использовать Loopback-detection только на портах в сторону неконтролируемого участка сети (порты доступа, сегменты с неуправляемыми коммутаторами);
Не рекомендуется использовать loopback-detection на одном порту с протоколами STP, так как это может повлечь за собой некорректную работу STP или Loopback-detection;
Loopdetect своими руками
Суть проблемы
Одним из самых страшных бичей сети ethernet являются, так называемые, петли. Они возникают когда (в основном из-за человеческого фактора) в топологии сети образуется кольцо. К примеру, два порта коммутатора соединили патч-кордом (часто бывает когда два свича заменяют на один и не глядя втыкают всё, что было) или запустили узел по новой линии, а старую отключить забыли (последствия могут быт печальными и трудно выявляемыми). В результате такой петли пакеты начинают множиться, сбиваются таблицы коммутации и начинается лавинообразный рост трафика. В таких условиях возможны зависания сетевого оборудования и полное нарушение работы сети.
Помимо настоящих петель не редки случаи когда при выгорания порта (коммутатора или сетевой карты) он начинает возвращать полученные пакеты назад в сеть, при этом чаще всего соединение согласовывается в 10M, а линк поднимается даже при отключенном кабеле. Когда в сегменте такой порт только один, последствия могут быть не столь плачевными, но всё же весьма чувствительны (особенно сильно страдают пользователи висты и семёрки). В любом случае с такими вещами нужно нещадно бороться и понимать тот факт, что намеренно или случайно создавая петлю, пусть и на небольшой период времени, можно отключить целый сегмент сети.
Матчасть
К счастью большинство современных управляемых коммутаторов, в том или ином виде, имеют функции выявления петель (loopdetect, stp), и даже более того, семейство протоколов stp позволяет специально строить кольцевую топологию (для повышения отказоустойчивости и надёжности). Но тут есть и обратная сторона медали, не редко случается так, что один сгоревший порт может оставить без связи целый район. Или скажем у того же stp перестроение топологии происходит далеко не мгновенно, связь в этот момент, естественно, оставляет желать лучшего. Кроме того, некоторые производители весьма халатно относятся к реализации протоколов обнаружения петель, скажем DES-3016 (глинк) вообще не может определить петлю если просто соединить два его порта.
Принципы выявления
Принцип обнаружения петель (loopdetect) довольно простой. В сеть отправляется специальный пакет с броадкаст адресом (предназначен всем) и если он вернулся назад, считаем, что сеть за этим интерфейсом закольцована. Дальнейшие действия зависят от типа оборудования и настроек. Чаще всего порт полностью или частично (в отдельном vlan) блокируется, событие записывается в логи, отправляются snmp-трапы. Тут в дело вступают системные администраторы и аварийная служба.
Если вся сеть управляемая, то выявить и устранить петлю довольно не сложно. Но не так уж мало сетей где к одному порту подключена цепочка из 5 — 6 неуправляемых коммутаторов. Устранение такой петли может занять немало времени и сил. Процесс поиска же сводится к последовательному отключению (включению) портов. Для определения наличия петли используется либо вышестоящий управляемый коммутатор, либо какой-нибудь снифер (wireshark, tcpdump). Первый способ весьма опасен в следствие наличия задержки между включением и выключением блокировки, в лучшем случае у пользователей просто будут лаги, а в худшем — сработает loopdetect выше по линии и отвалится уже куда больший сегмент. Во втором случае опасности для пользователей нет, но зато намного сложнее определять наличие петли (особенно в небольшом сегменте, где мало броадкаст трафика), всё-таки снифер вещь, по определению, пассивная.
Своими руками
Как было сказано выше, аппаратных реализаций поиска петель хватает с лихвой. Так что не долго думая, включаю wireshark настраиваю фильтр и смотрю, что и как делает коммутатор. Собственно всё просто: в порт отправляется пакет ethernet с адресом назначения cf:00:00:00:00:00, типом 0x9000 (CTP) и c неведомым номером функции 256 (в найденной мной документации описаны только две). Адрес назначение является броадкастовым, так что при наличии в сети петли назад должно вернутся несколько копий этого пакета.
С получившимся скриптом можно ознакомится далее.
Функция предотвращения петлеобразования (LoopBack Detection)
В режиме Port-Based при обнаружении петли происходит автоматическая блокировка порта и никакой трафик через него не передается.
Цель: Понять способы работы LBD-алгоритма в различных режимах функционирования.
DES-3200-28 | 2 шт. |
DES-1005D | 1 шт. |
Рабочая станция | 4 шт. |
Кабель Ethernet | 7 шт. |
Консольный кабель | 2 шт. |
Перед выполнением задания необходимо сбросить настройки коммутатора к заводским настройкам по умолчанию командой
Настройка LoopBack Detection Independent STP в режиме Port-Based
Настройка DES-3200-28
В данном задании рассматривается блокирование порта управляемого коммутатора при обнаружении петли в подключенном сегменте.
Включите функцию LBD глобально на коммутаторе
Активизируйте функцию LBD на всех портах коммутатора
Сконфигурируйте режим Port-Based, чтобы при обнаружении петли отключался порт
Упражнения
Проверьте текущую конфигурацию функции LBD
Что вы наблюдаете, запишите:
Посмотрите, обнаружена ли петля на коммутаторе
Что вы наблюдаете, запишите:
Проверьте, выполнил ли коммутатор блокировку порта
Отключите неуправляемый коммутатор с петлей от коммутатора DES-3200-28.
Рассмотрим, создадим и заюзаем аппаратную петлю на порте коммутатора
Если взять кусок патч-корда и воткнуть оба хвоста в один коммутатор, то получится петля. И в целом петля на порте коммутатора или сетевой карты — зло. Но если постараться, то и этому явлению можно найти полезное применение, например сделать сигнализацию с тревожной кнопкой.
Типичная сеть состоит из узлов, соединенных средой передачи данных и специализированным сетевым оборудованием, таким как маршрутизаторы, концентраторы или коммутаторы. Все эти компоненты сети, работая вместе, позволяют пользователям пересылать данные с одного компьютера на другой, возможно в другую часть света.
Коммутаторы являются основными компонентами большинства проводных сетей. Управляемые коммутаторы делят сеть на отдельные логические подсети, ограничивают доступ из одной подсети в другую и устраняют ошибки в сети (коллизии).
Петли, штормы и порты — это не только морские термины. Петлей называют ситуацию, когда устройство получает тот же самый сигнал, который отправляет. Представь, что устройство «кричит» себе в порт: «Я здесь!» — слушает и получает в ответ: «Я здесь!». Оно по-детски наивно радуется: есть соседи! Потом оно кричит: «Привет! Лови пакет данных!» — «Поймал?» — «Поймал!» — «И ты лови пакет данных! Поймал?» — «Конечно, дружище!»
Вот такой сумасшедший разговор с самим собой может начаться из-за петли на порте коммутатора.
Такого быть не должно, но на практике петли по ошибке или недосмотру возникают сплошь и рядом, особенно при построении крупных сетей. Кто-нибудь неверно прописал марштуры и хосты на соседних коммутаторах, и вот уже пакет вернулся обратно и зациклил устройство. Все коммутаторы в сети, через которые летают пакеты данных, начинает штормить. Такое явление называется широковещательным штормом (broadcast storm).
Меня удивил случай, когда установщик цифрового телевидения вот так подсоединил патч-корд (рис. 1). «Куда-то же он должен быть воткнут. » — беспомощно лепетал он.
Рис. 1. Синий свитч с петлей на борту
Хакер #156. Взлом XML Encryption
Однако не всё так страшно. Почти в каждом приличном коммутаторе есть функция loop_detection, которая защищает устройство и его порт от перегрузок в случае возникновения петли.
Настраиваем коммутаторы
Перед тем как начинать настройку, необходимо установить физическое соединение между коммутатором и рабочей станцией.
Существует два типа кабельных соединений для управления коммутатором: соединение через консольный порт (если он имеется у устройства) и через порт Ethernet (по протоколу Telnet или через web-интерфейс). Консольный порт используется для первоначального конфигурирования коммутатора и обычно не требует настройки. Для того чтобы получить доступ к коммутатору через порт Ethernet, устройству необходимо назначить IP-адрес.
Web-интерфейс является альтернативой командной строке и отображает в режиме реального времени подробную информацию о состоянии портов, модулей, их типе и т. д. Как правило, web-интерфейс живет на 80 HTTP-порте IP-коммутатора.
Настройка DLink DES-3200
Для того чтобы подключиться к НТТР-серверу, необходимо выполнить перечисленные ниже действия с использованием интерфейса командной строки.
Управляемые коммутаторы D-Link имеют консольный порт, который с помощью кабеля RS-232, входящего в комплект поставки, подключается к последовательному порту компьютера. Подключение по консоли иногда называют подключением Out-of-Band. Его можно использовать для установки коммутатора и управления им, даже если нет подключения к сети.
После подключения к консольному порту следует запустить эмулятор терминала (например, программу HyperTerminal в Windows). В программе необходимо задать следующие параметры:
Коммутатор предложит ввести пароль. Первоначально имя пользователя и пароль не заданы, поэтому смело жми клавишу Enter два раза. После этого в командной строке появится приглашение, например DES-3200#. Теперь можно вводить команды. Команды бывают сложными, многоуровневыми, с множеством параметров, и простыми, для которых требуется всего один параметр.Введи «?» в командной строке, чтобы вывести на экран список всех команд данного уровня или узнать параметры команды.
Например, если надо узнать синтаксис команды config, введи в командной строке:
Далее можно ввести «?» или нажать кнопку Enter. На экране появится список всех возможных способов завершения команды. Лично я для вывода этого списка на экран пользуюсь клавишей TAB.
Базовая конфигурация коммутатора
При создании конфигурации коммутатора прежде всего необходимо обеспечить защиту от доступа к нему неавторизованных пользователей. Самый простой способ обеспечения безопасности — создание учетных записей для пользователей с соответствующими правами. Для учетной записи пользователя можно задать один из двух уровней привилегий: Admin или User. Учетная запись Admin имеет наивысший уровень привилегий. Создать учетную запись пользователя можно с помощью следующих команд CLI:
После этого на экране появится приглашение для ввода пароля и его подтверждения: «Enter a case-sensitive new password». Максимальная длина имени пользователя и пароля составляет 15 символов. После успешного создания учетной записи на экране появится слово Success. Ниже приведен пример создания учетной записи с уровнем привилегий Admin:
Изменить пароль для существующей учетной записи пользователя можно с помощью следующей команды: DES-3200# config account Ниже приведен пример установки нового пароля для учетной записи dlink:
Шаг второй. Чтобы коммутатором можно было удаленно управлять через web-интерфейс или Telnet, коммутатору необходимо назначить IP-адрес из адресного пространства сети, в которой планируется использовать устройство. IP-адрес задается автоматически с помощью протоколов DHCP или BOOTP или статически с помощью следующих команд CLI:
Здесь xxx.xxx.xxx.xxx — IP-адрес, yyy.yyy.yyy.yyy. — маска подсети, System — имя управляющего интерфейса коммутатора.
Шаг третий. Теперь нужно настроить параметры портов коммутатора. По умолчанию порты всех коммутаторов D-Link поддерживают автоматическое определение скорости и режима работы (дуплекса). Но иногда автоопределение производится некорректно, в результате чего требуется устанавливать скорость и режим вручную.
Для установки параметров портов на коммутаторе D-Link служит команда config ports. Ниже я привел пример, в котором показано, как установить скорость 10 Мбит/с, дуплексный режим работы и состояние для портов коммутатора 1–3 и перевести их в режим обучения.
Команда show ports выводит на экран информацию о настройках портов коммутатора.
Шаг четвертый. Сохранение текущей конфигурации коммутатора в энергонезависимой памяти NVRAM. Для этого необходимо выполнить команду save:
Шаг пятый. Перезагрузка коммутатора с помощью команды reboot:
Будь внимателен! Восстановление заводских настроек коммутатора выполняется с помощью команды reset.
А то я знал одного горе-админа, который перезагружал коммутаторы командой reset, тем самым стирая все настройки.
Грамотный админ обязательно установит на каждом порте соответствующую защиту.
Но сегодня мы хотим применить 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:
Скрипт запускается с помощью следующей строки:
Что привязать к обработчику событий, зависит уже от твоей фантазии. Может, это будет счетчик гостей, или тревожная кнопка, рассылающая сообщения в аське, или кнопка для отключения всех юзеров в сети — решать тебе!
Сигнализация обрыва витой пары
Я решил собрать аппаратную петлю после того, как в моей локальной сети украли несколько мешков витой пары. Встал серьезный вопрос: как мониторить витую пару?
Идея проста: надо проложить витую пару от коммутатора до подъезда и на конце замкнуть её в петлю. Это будет «растяжка», при обрыве которой исчезнет линк на порте коммутатора. Останется написать обработчик, который бы «трубил во все трубы», что линк исчез, то есть витую пару кто-то разрезал.
Чуть не забыл! В конфигурации коммутатора необходимо снять защиту loop_detection с порта, на котором установлена «растяжка».
Впрочем, ты можешь придумать петле и другое применение. Удачи!
Loopback detection что такое
Функция LoopBack Detection (LBD) обеспечивает дополнительную защиту от образования петель на уровне 2 модели OSI.
LoopBack Detection (LBD) позволяет обнаружить петлю как за одним портом, так и между портами коммутатора.
Существуют два режима работы этой функции:
порт будет заблокирован для передачи трафика только той VLAN, в которой обнаружена петля. Остальной трафик через этот порт будет передаваться.
Рассмотрим примеры настройки LoopBack Detection на коммутаторе DES-3200-28 rev.C1.
1. Петля между портами коммутатора.
enable loopdetect / Глобальное включение LBD
config loopdetect ports 6,24 state enable / Включение LBD на портах
config loopdetect mode port-based / Выбор режима работы LBD
config loopdetect log state enable / Включение логирование событий LBD
Замыкаем патчкордком между собой порты 6 и 24, коммутатор должен обнаружить петлю и отключить порты. В логе должны появиться соответствующие записи.
2. Петля между двумя коммутаторами.
enable loopdetect
config loopdetect ports 4,22 state enable
config loopdetect mode port-based
config loopdetect log state enable
Далее соединяем 2 коммутатора между собой двумя патчкордами, как это показано на картинке. В логе должны появиться соответствующие записи.
3. Петля за одним портом коммутатора(в режиме VLAN-Based).
Коммутатор 1:
create vlan 10 tag 10
config vlan 10 add tagged 4
enable loopdetect
config loopdetect ports 4 state enable
config loopdetect mode vlan-based
config loopdetect log state enable
Коммутатор 2:
create vlan 10 tag 10
config vlan 10 add tagged 2,6,24 / Добавляем порты, между которыми будет петля
config vlan vlanid 1 del 24 / Удаляем один порт из 1 vlan, чтобы петля была только во vlan 10.
Далее соединяем два коммутатора между собой патчкордом, и на втором коммутаторе делаем петлю, как это показано на картинке. Так как петля будет только во vlan 10, коммутатор 1 не должен заблокировать порт 4, а должен только заблокировать трафик в 10 vlan. В логе должны появиться соответствующие записи.