Проверка топологии
Отойдем немного в сторону от построения фабрики, и проверим, что она вообще работает.
Для этого в netlab есть отдельный раздел в топологии validate
Простые тесты
Начнем с простых проверок. Просто попингуем хосты с хостов:
validate:
ping:
description: Pinging host from hosts
nodes: [h1, h3]
devices: [linux]
exec: ping -c 10 h5 -A
valid: |
"64 bytes" in stdoutТут мы пингуем h5 с h1 и h3. Для запуска валидации нужно запустить
И получим в ответ:
[ping] Pinging H2 from H1 [ node(s): h1,h3 ]
[PASS] Validation succeeded on h1
[PASS] Validation succeeded on h3
[PASS] Test succeeded in 0.2 seconds
[SUCCESS] Tests passed: 2Модульные тесты
Можно составлять и более сложные тесты, и проверять вывод show команд оборудования
Давайте проверим, что для всех соседей, указанных в топологии, была установлена BGP сессия (пример из документации, только больше чем с 2мя соседями не работало, пришлось немного переписать)
Здесь bgp.neighbors можно посмотреть в файле netlab.snapshot.yml. В этом файле указываются все данные по топологии. Если в show на выходе получается валидный json, то результат помещается в переменную result.
В valid указывается python код. Если же там валидный j2, то генерируется код из j2 шаблона.
Также есть уже готовые плагины для ping, проверки bgp, ospf и isis. Встроенные плагины работают только с frr и eos.
А еще можно менять конфигурацию прямо во время теста. Делается это аналогично с добавлением кастомного конфига.
Погасим интерфейс на L1 и проверим bgp снова
В конечном резултате получим вывод:
Сначала мы проверили пинг между хостами в разных вланах и vrf, затем проверили BGP сессии на L1 и ext_rtr, затем отключили линк S1-L1 и снова проверили BGP. В итоге увидели падение сессии.
Последнее обновление