Как найти петлю в локальной сети и как ее оперативно устранить
Сетевая петля — на самом деле , опасная штука. Очень часто ее появление связано с неправильным подсоединением линков маршрутизаторов или коммутаторов. Реже она случается из-за неверных настроек маршрутного адреса.
Как найти такую петлю, мы разберем чуть ниже. Но в целом предугадывать возникновение таких петель не получается. Ее наличие становится видимым , уже когда проявляются признаки зацикливания или когда уже полностью «ложится» вся наша сеть.
Как образуется сетевая петля
Если посмотреть на принцип «сетевой петли», то для большего понимания скажем, что это когда пакет каких-либо данных долго блуждает по одному и тому же маршрутному кругу от коммутатора к коммутатору и никак не может достичь своего конечного получателя. От этого с лучается перегрузка сети и она «ложится» , т ак как становится просто перегруженной IP-пакетами, которые не перестают множит ь ся из-за коммуникации между сетевыми устройствами. Но пакеты не покидают маршрутную сеть, а блуждают внутри сетевой петли, так и образуется сетевой шторм.
Плюс, так как внутри локальной сети присутствует большое количество зацикли в шихся пакетов, то достаточно сильно снижается пропускающая способность всего канала связи. Но это тоже еще не все. Если у вас довольно большая сеть, то могут случиться проблемы и на других участках. Одна немного приятная новость, что возникшее зацикливание не вечно, жизнь самих сетевых пакетов ограничена по времени.
Как определить сетевую петлю по ее признакам
- TTL — это временное ограничение жизни сетевого пакета;
- IP ID — это и так понятно.
Как найти сетевую петлю в локальной сети
- Первое , что нужно сделать , — это определить локальный участок, где происходит зацикливание. Определить н ет рудно — там возникают проблемы с И нтернетом.
- Подберите любой сниффер и можете его запускать для определения зацикленных устройств.
- Определите сетевые пакеты, создающие шторм , и отфильтруйте их. Найти их будет н ес ложно — их огромное количество и у многих схожий ID IP.
Мы будем очень благодарны
если под понравившемся материалом Вы нажмёте одну из кнопок социальных сетей и поделитесь с друзьями.
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 (в найденной мной документации описаны только две). Адрес назначение является броадкастовым, так что при наличии в сети петли назад должно вернутся несколько копий этого пакета.
Петля в локальной сети. Как найти и устранить?
Петля в локальной сети очень опасна. Она может появиться как следствие неправильного соединения кабелей маршрутизатора или коммутатора, кроме того, её появления обусловлено неправильными настройками маршрутных таблиц
Заранее узнать появление петли очень трудно, а при её возникновении сеть просто «ложится». Одна локальную петлю можно «диагностировать» по ряду признаков, которые показывают зацикливание пакета информации
Формирование петли в локальной сети
Маршрутная петля появляется, когда пакет отправителя не может попасть получателю и длительное время движется по одному маршруту – он «зацикливается» в одном участке сети
Как мы видим отправитель отправляет пакет данных на «коммутатор А», пакет идёт далее, и не зная кому его передать передаёт его «коммутатору С», и так циклично. А получатель так и не получив своей пакет отклоняет его, сообщив отправителю что пакет не получен.
И мы в ответ получаем сообщение
При этом сеть на данном участке оказывается перегруженной и «падает». Перегружают её пакеты которые не могут покинуть петлю – формируется широковещательный шторм.
Кроме того, наличие зацикленных пакетов приводит к существенному снижению пропускной способности канала свзяи. При этом проблема на одном из участков сети становятся причиной сбоев общих сетевых каналов связи. Однако ввиду того, что время жизни пакета (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-адресах, можно найти устройства, работа которых вызвала маршрутную петлю.
Петля в локальной сети: найти и обезвредить
Петля в локальной сети очень опасна. Она может появиться как следствие неправильного подсоединения кабелей маршрутизатора или коммутатора, кроме того, ее появление может быть обусловлено неверными настройками маршрутных адресов.
Заранее «спрогнозировать» появление петли очень трудно, а при ее возникновении сеть просто «ложится». Однако такое явление можно «диагностировать» по ряду аномальных признаков, которые свидетельствуют о возникновении зацикливания.
Как формируется петля в локальной сети?
Физически маршрутная петля появляется, когда сгенерированный пакет не может попасть к получателю и «вечно» движется по одному и тому же маршруту — он «зацикливается» на отдельном участке сети.
При этом сеть на данном участке оказывается перегруженной и «падает». Перегружают ее IP-пакеты, бесконечно множащиеся в результате общения сетевых устройств, которые не могут покинуть петлю — формируется широковещательный шторм.
Кроме того, наличие на данном участке множества зацикленных пакетов приводит к существенному снижению пропускной способности каналов связи. При этом проблемы на одном из участков сети становятся причиной сбоев общих сетевых коммуникаций. Однако ввиду того, что время жизни пакета (TTL) в протоколе IP весьма ограниченно, такое «зацикливание» пакета не происходит вечно.
Петля в локальной сети: характерные признаки
Сетевая петля обладает совершенно четкими признаками. Базой для трактовки этих признаков становится ряд параметров.
- • Time to live (TTL) или время жизни пакета.
- • IP ID — идентификатор IP-пакета.
Заголовок IP-протокола обладает набором полей полей. Выше перечисленные характеристики также являются составляющими этого заголовка.
IP-пакет, проследовав через роутер, в поле TTL получает значение, уменьшенное на единицу. Явным признаком «зацикленного» пакета становится слишком низкое значение TTL — на уровне единицы, после чего IP-пакет просто уничтожается роутером.
Столь низкий показатель этой характеристики свидетельствует, что пакетом пройдено слишком много маршрутизирующих устройств. При этом реальное значение хопов между роутерами для одного IP-пакета в глобальной сети не превышает 30. А при возникновении петли в локальной сети пакет «умирает» на зацикленном участке.
Другим характерным признаком наличия маршрутной петли представляется такое явление как широковещательный шторм. Как правило, в зацикленной сети появляется слишком много пакетов с одинаковым значением в поле IP ID — с одинаковым идентификатором. При этом таких пакетов одновременно может возникнуть несколько тысяч.
Как искать петлю в локальной сети? Сниффер — реальный помощник
Анализатор сетевого трафика (сниффер) поможет не только выявить наличие маршрутной петли, но и покажет сетевые устройства, которые ее создали. Конечно, можно подергать каждый патч-корд каждого сетевого устройства, однако такое решение нерационально для большой корпоративной сети.