Что за проблемы с OSPF over GRE?

Итак, имеем три виртуальных FreeBSD, две из них соединённых GRE-туннелем с сетью 10.0.0.0/30 через внешние интерфейсы (за схему извините):
lan1 -- (gre0 10.0.0.1 | em0 1.1.1.2) server1 -- gateway -- server2 (em0 2.2.2.2 | gre0 10.0.0.2) -- lan2

На "серверах" gateway_enable=YES, frr_enable=YES и запущены zebra с ospfd.
Если все три машины сделать роутерами и поднять на реальных интерфейсах OSPF, маршрутизация идеально работает, hello ходят каждые 10 секунд, соседи видятся, связность какая положено и пингуется всё отовсюду.
Если же с gateway убрать динамику, соединить серверы GRE-туннелем, настроить транспортный режим IPsec на внешних интерфейсах и пустить OSPF через туннель (собсна, такую схему хочу в продакшен), то начинается магия:
  • hello начинают идти подряд в одну сторону, ответные же приходят примерно через dead interval секунд (хотя второй роутер точно так же шлёт их подряд в туннель, так же не получая hello от первого, пока не пройдёт dead interval);
  • таблицы маршрутов, соответственно, обновляются невовремя, а также роутеры пропадают друг у друга из соседей;
  • пинги до lan за туннелем вообще не идут, при этом маршрут до этой сети, если он приходил через OSPF, пропадает из таблицы, стоит запустить пинг;
  • во время прохождения мультикастов пинги не идут даже до другого конца туннеля.

Всё это происходит с обеих сторон. Фаерволлы выключены, со статическими маршрутами lan'ы за туннелем доступны друг другу. Но с OSPF вот такая ерунда.
Помогите найти, где зарыта собака - во мне или где-то ещё.
Спасибо.
  • Вопрос задан
  • 1241 просмотр
Решения вопроса 1
Adorne
@Adorne Автор вопроса
Спасибо товарищу с форума opennet.ru, направил на верный путь: так как был включен redistribute connected, то отдавалась и "внешняя" сеть, через которую работал туннель. Тем самым он заворачивался сам в себя. Убрал эту сеть из анонса - всё пошло как по маслу.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы