No Image

Flapping between port cisco что это

19 просмотров
11 марта 2020

Route flapping — «нестабильность маршрута» или «флапанье маршрутов» (от англ. flap — махать, хлопать). Возникает в сети передачи данных в случае если маршрутизатор: попеременно, c высокой частотой анонсирует маршрут в определенную сеть через разные маршрутизаторы назначения, или же чередует анонсы соответствующими анонсами о недоступности данной сети. Близкая ситуация — нестабильность сетевого интерфейса («линка»): вследствие аппаратного сбоя устройство попеременно определяет состояние своего сетевого интерфейса как «рабочее», «не рабочее». Также бывает так называемый «флаппинг мак-адреса».

К нестабильности маршрута приводят аварии в сети (вызванные: аппаратными сбоями, программными сбоями, случайными ошибками на линиях связи, ненадежными соединениями и т. д.), что в свою очередь приводит к тому, что часть маршрутной информации пропадает и появляется снова. В сетях, где для построения таблиц маршрутизации используется протокол, в основе которого лежит протокол маршрутизации состояния канала (link-state), нестабильность маршрутов приводит к частому пересчету топологии всеми маршрутизаторам в одном домене маршрутизации. В сетях с дистанционно-векторными (distance vector) протоколами маршрутизации нестабильность маршрутов влечет за собой частую рассылку уведомлений об изменении маршрутов. В обоих случаях это препятствует сходимости сети.

Несколько типичных выводов сообщений из консоли коммутаторов cisco:

  • Host 0011.2fef.191c in vlan 159 is flapping between port Gi2/0/1 and port Gi1/0/1
  • %RTD-1-ADDR_FLAP: FastEthernet0/6 relearning 52 addrs per min
  • %PM-4-ERR_DISABLE: link-flap error detected on Fa0/28, putting Fa0/28 in err-disable state
  • %PM-4-ERR_RECOVER: Attempting to recover from link-flap err-disable state on Fa0/28

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

Как сетевой инженер отдела мониторинга магистрального провайдера, я должен оперативно получать информацию о состоянии наших линков. Даже во время обеда или сна. Вот почему мы внедрили мониторинг посредством SNMP-Трапов. Главное преимущество SNMP-трапов — быстрота доставки информации. Вместо того, чтобы периодически опрашивать интерфейсы устройств об их состоянии, свитч или роутер может сам прислать короткое SNMP-сообщение специальному SNMP-Receiver-у как только статус одного из его портов изменится. Остается сгенерировать Email или SMS-сообщение на стороне Ресивера и отправить пользователю. Все происходит быстро и удобно. Однако, в некоторых случаях, такой подход имеет недостатки.

Читайте также:  1 Мл 1000 мкл

Представьте, что у вас десятки устройств. Или, например, один из линков между свитчами начинает непрерывно флапаться (это не редкость, особенно при использовании некоторых типов мультиплексоров). Что произойдет? В общем случае, вы получите нечто, похожее на Email Bomb. По этой причине я и мой коллега Павел начали работу над проектом, который мы назвали FlapMyPort.

  • Получает SNMP-трапы
  • Собирает эти данные в БД (как для истории, так и для мгновенного анализа)
  • Анализирует информацию на ходу, предотвращая избыточные уведомления
  • Позволяет просматривать историю за нужный период и фильтровать вывод
  • Коммуницирует с мобильными клиентами (о них будет позже)
  • Генерирует удобные графики

Компонент 1: TrapHarvester

TrapHarvester написан на Python моим коллегой Павлом Поляковым. Этот компонент отвечает за получение snmp-трапов, сбор данных в БД, классификацию сообщений, и уведомления пользователей системы (т.е. администраторов и дежурных инженеров). На моменте уведомлений хотелось бы заострить ваше внимание, т.к. полезная “фича” заключается в отсутствии флуда. И вот как это работает:

Представьте, что у вас начали флапаться два линка между устройствами Switch1 и Router1. При уведомлениях “в лоб” вы получите множественные сообщения, примерно как на этом рисунке:

И если произойдет 20 флапов, вы получите 80 писем. А вот как выглядит почтовый ящик в аналогичной ситуации, но с применением TrapHarvester:

Если же порт продолжает флапаться, вы будете получать сообщение вида
«Два порта продолжают флапаться на Router1» раз в 15 минут. В системе действуют внутренние механизмы временных «блэклистов».

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

Компонент 2: Клиентские приложения

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

Читайте также:  Живые фотографии как сделать на андроид

Внизу будут даны ссылки на скачивание приложений из соответствующих магазинов (App Store, Google Play), чтобы вы могли попробовать как это работает.

FlapMyPort WEB (HTML, CSS, Angular)
Веб-клиент, получающий данные из API. Как он работает вы можете попробовать прямо сейчас, перейдя по ссылке.

Все флапы в демо-версии не настоящие, они берутся из Virtual API, о котором чуть позже.

FlapMyPort для iPhone (Objective C)
Второе приложение, которое я создал под этот проект, можно загрузить из AppStore. По умолчанию, после установки вы увидите все те же демо-данные из Virtual API.

FlapMyPort для Mac (Objective C)
Десктопное приложение, которое еще больше повышает удобство мониторинга. К тому же, оно начинает прыгать и издавать «падающие» звуки, когда обнаруживает новое событие в сети. А еще из него удобно «копипастить» информацию.

FlapMyPort для Android (Java)
Комплект не был бы полным без приложения под Android, которое любезно написал мой коллега Павел. Теперь оно так же доступно в Google Play.

Компонент 3. FlapMyPort API

Третий ключевой компонент отвечает за коммуникацию с клиентскими приложениями. По сути, принимает запросы от приложений, ходит в базу, рисует графики и возвращает данные в виде JSON-ответа. API написано на PHP.

Для удобства разработки новых клиентов, копия API была размещена в публичном доступе. Код был слегка модифицирован так, чтобы на любой запрос Virtual API выдавало какие-нибудь события. Свежеустановленные приложения и демонстрационная версия Веб-приложения по умолчанию получают данные как раз из Virtual API. Увидеть JSON, который генерирует Virtual API можно здесь.

Я думаю, что неплохой идеей будет наблюдать за ошибками на порту или уровнем сигнала на оптическом ресивере. Если сравнивать эти показатели до и после каких-либо флапов, можно заметить полезную динамику.

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

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

Читайте также:  Active hdr что это

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

Если вам интересно попробовать систему, не стесняйтесь писать мне по любым вопросам, мои контактные данные на сайте проекта. Я всегда рад помочь с внедрением, а так же готов получить bug-reports и feature-requests. Это вдохновит меня на дополнение/улучшение FlapMyPort.

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

I’m working on a rather small Layer 2 network segment that contains a physical loop. (I have included a picture of the topology below). The core switches are stacked 3850s. The other switches are SG300 series small business switches.

The links between all switches are trunks that allow vlans 1,503,508,590

Spanning-tree seems to be functioning as expected and the interface on SW3 that connects to SW4 is put into a blocking state.

The problem I have is that the core switch periodically logs a MAC Flap event between the links to SW1 and SW2.

%SW_MATM-4-MACFLAP_NOTIF: Host 00eb.d5f2.0b9a in vlan 1 is flapping between port Po1 and port Po2

The offending MAC address seems to be a Cisco MAC (Possible one assigned to a port group?) however I am unable to physically locate the switch to which it belongs. When I remove the loop, The Core says the MAC is available through Po2 (The link to SW2), however SW2 says the MAC is available through Po1 (The uplink to the Core).

My questions are:

How can I determine which switch this MAC address actually belongs too?

What might be causing this periodic flap between ports?

Here is the current configuration for all switch-to-switch links as well as a the full mac address table for each switch.

Комментировать
19 просмотров
Комментариев нет, будьте первым кто его оставит

Это интересно
Adblock detector