Проверка топологии

Отойдем немного в сторону от построения фабрики, и проверим, что она вообще работает.

Для этого в 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. Для запуска валидации нужно запустить

netlab validate

И получим в ответ:

[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. В итоге увидели падение сессии.

Последнее обновление