vk_logo twitter_logo facebook_logo youtube_logo telegram_logo telegram_logo

Визуализация топологии сети с помощью скрипта Python и NeXt UI

Дата публикации: 11.02.2021
  1. Статьи
  2. Редакционные статьи
Количество просмотров: 1628
Автор:

В данный момент в сети существует немало утилит и программ с открытым кодом для визуализации сетевых топологий. Исходными данными, как правило, для них выступают данные таких протоколов, как Cisco Discovery  Protocol (CDP), Link Layer Discovery Protocol (LLDP), Open Shortest Path First (OSPF), Intermediate System to Intermediate System (ISIS).

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

OSPF и ISIS относятся к категории Interior Gateway Protocol (IGP), являются по сути Link State протоколами, и их базы Link State Database (LSDB) содержат информацию о всех хостах домена, состоянии и типе линков, метриках для расчета дерева кратчайшего пути (shortest-path tree, используется алгоритм Dijkstra), т. е. всю необходимую информацию о топологии сети. Любой из этих протоколов в большинстве случаев является неотъемлемым атрибутом дизайна любой сети, будь-то Internet Service Provider, Data Center или Enterprise.  

В этой статье речь пойдет о небольшом скрипте Python и наборе шаблонов TextFSM, с помощью которых, в связке с open source решением NeXt UI (применяется в SDN контроллере ODL), используя LSDB протоколов ISIS, OSPF, легко и просто визуализировать топологию сети, содержащую от несколько десятков до несколько сотен устройств. Следует отметить, что решение может применяться в мультивендорных сетях (в текущей версии поддерживаются протоколы следующих вендоров: Nokia - OSPF и ISIS;Juniper - OSPF и ISIS; Cisco - OSPF и ISIS; Huawei - ISIS).

Для запуска скрипта необходимо:

1. Загрузить все содержимое из git clone:

2. Зайти в каталог igp_topo_multi и проверить его содержимое:

cd  igp_topo_multi
ls -l

3. Отредактировать файл config.yaml, используя текстовый редактор:

nano  config.yaml

В нем необходимо указать тип хоста (nokia, juniper, cisco, huawei), протокол (ospf или isis), путь и название текстового файла с выводом LSDB (используется каталог test_files, в котором уже содержится несколько файлов с тестовыми топологиями). Сохранить данные и закрыть редактор:

Ctrl+O
Ctrl+x

4. Запустить скрипт:

5. В открывшемся окне браузера по умолчанию, отобразится топология сети:

Некоторые пояснения:

  1. Загрузку файлов из github.com желательно выполнять в пользовательский каталог без sudo. В противном случае скрипт не сможет запустить браузер. Если браузер не запустится по каким-либо причинам, страницу index.html, которая находится в каталоге nextUI, можно открыть самостоятельно.
  2. Пиктограммы маленьких коммутаторов в топологии обозначают broadcast линки (не р2р). Повод задуматься, оправдан ли этот тип для каждого конкретного случая.
  3. Цветовые темы NeXt UI можно применять разные из доступных.
  4. Положение хостов в браузере можно изменять их перетаскиванием.
От редакции: если у вас есть чем поделиться с коллегами по отрасли, приглашаем к сотрудничеству
Ссылка на материал, для размещения на сторонних ресурсах
/articles/article/108132/vizualizatsiya-topologii-seti-s-pomoschyu-skripta-python-i-next-ui.html

Обсудить на форуме

Оставлять комментарии могут только зарегистрированные пользователи

Зарегистрироваться