Вернуться к старой версии портала ПЕРЕЙТИ
Оставить отзыв
  1. Статьи
Заметки пользователей
629
0
11.02.2021 07:20
PDF
629
0

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

В данный момент в сети существует немало утилит и программ с открытым кодом для визуализации сетевых топологий. Исходными данными, как правило, для них выступают данные таких протоколов, как 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. Положение хостов в браузере можно изменять их перетаскиванием.
0 комментариев