Перейти к содержанию

Сессия GRE

В режиме GRE Watcher устанавливает настоящее соседство OSPF/IS-IS с одним из ваших маршрутизаторов через туннель GRE, а затем пассивно передаёт каждое изменение LSDB в Topolograph. В отличие от текстового файла, это живой поток - граф и временная шкала событий обновляются по мере изменений в сети.

Режим GRE работает практически с любым маршрутизатором, способным построить туннель GRE и запустить поверх него OSPF/IS-IS, что делает его самым широко совместимым вариантом передачи данных в реальном времени.

Архитектура Watcher с GRE-соседством и XDP-фильтром

Как это работает

  • Watcher запускает экземпляр FRR внутри изолированного сетевого окружения.
  • Этот FRR устанавливает соседство OSPF (или IS-IS) с вашим маршрутизатором через туннель GRE.
  • После установления соседства маршрутизатор рассылает свою LSDB Watcher-у так же, как любому другому соседу - и Watcher превращает каждое изменение в событие для Topolograph, ELK, Zabbix или Slack.

Watcher пассивен - и защищён

Watcher - участник только для прослушивания. XDP-фильтр OSPF проверяет всё, что экземпляр FRR пытается анонсировать, и отбрасывает любое DB description или LSUpdate, объявляющее больше, чем собственная сеть GRE-туннеля Watcher-а. Это гарантирует, что Watcher никогда не сможет анонсировать неожиданные префиксы в ваш домен IGP. См. Режим только для прослушивания.

Каждый Watcher хранит все маршруты и обновления внутри изолированной среды, поэтому он никогда не влияет на маршрутизацию хоста или на другие Watcher-ы.

1. Настройте туннель на маршрутизаторе

Постройте туннель GRE от устройства до хоста, на котором работает Watcher. Пример для Cisco:

interface Tunnel0
 ip address <gre-tunnel-ip>
 tunnel mode gre
 tunnel source <router-ip>
 tunnel destination <host-ip>
 ip ospf network type point-to-point

Затем включите сеть GRE-туннеля в конфигурацию OSPF/IS-IS маршрутизатора, чтобы через неё могло установиться соседство.

2. Настройте Watcher

На стороне Watcher-а сеть GRE-туннеля задаётся в конфигурации FRR (quagga/config/ospfd.conf для OSPF). Watcher запускается своим lab-контейнером, который создаёт и связывает изолированное сетевое окружение для Watcher-а и его FRR:

  • изолированное сетевое окружение для Watcher-а и его FRR,
  • пару tap-интерфейсов, соединяющих Watcher с хостом Linux,
  • туннель GRE внутри окружения Watcher-а,
  • NAT для трафика GRE,
  • процессы FRR + Watcher,
  • XDP-фильтр OSPF/IS-IS, привязанный к tap-интерфейсу Watcher-а.

Точные шаги описаны в репозиториях Watcher-ов: OSPF Watcher · IS-IS Watcher.

Нет маршрутизатора под рукой? Используйте тестовый режим

Установите TEST_MODE=True, чтобы подать на вход Watcher-а статический демонстрационный файл LSDB и воспроизвести примеры изменений (потеря соседства, изменение метрики) - отличный способ опробовать весь конвейер без единого устройства. Также есть готовая лаборатория containerlab.

3. Проверьте соседство

Убедитесь, что FRR Watcher-а видит ваш маршрутизатор как соседа. Откройте консоль FRR Watcher-а и запустите vtysh:

docker exec -it <контейнер-watcher> vtysh
show ip ospf neighbor      # OSPF
show isis neighbor         # IS-IS

Ваше сетевое устройство должно появиться в выводе. Если этого не произошло, у Watcher-а есть диагностический скрипт - см. раздел устранения неполадок на страницах OSPF Watcher / IS-IS Watcher.

GRE против BGP-LS

Режиму GRE нужен туннель и соседство IGP на каждую точку подключения. Если ваши маршрутизаторы умеют экспортировать топологию через BGP-LS, этот режим полностью избавляет от туннелей и легче масштабируется на несколько областей/уровней.

Сравнение с BGP-LS


Далее: посмотрите, что Watcher делает с полученным потоком → OSPF Watcher · IS-IS Watcher