Привет, пишу это для тех, кто может столкнуться с такой же проблемой в будущем, и чтобы поделиться решением. Ситуация:
*IP/IP или GRE туннель между Mikrotik и Linux Quagga.
*OSPF настроен в режиме точка-точка для обмена информацией о маршрутизации.
*Правильные правила брандмауэра установлены для безопасной связи.
*Значения MTU проверены с обеих сторон.
Симптомы:
*IPIP или GRE туннель поднимается, и есть полная TCP/IP связь. Можно пинговать, подключаться по SSH, пользоваться SFTP к удаленным сторонам без проблем.
*Mikrotik устанавливает одностороннюю/инициализирующую связь с Quagga, что подтверждается следующей командой на Quagga: #sh ip ospf neighbor X.X.X.X 1 1Way/Init 37.416s X.X.X.X ipiptunnel:X.X.X.1 0 0 0
*Quagga не устанавливает связь с удаленной стороной, и ваш Mikrotik будет без соседей.
*Torch показывает периодическую связь 224.x, но ваша конечная точка p2p не отображается в списке src.
*Судя по всему, это влияет только при Quagga-> Mtk. При импорте конфигурации и запуске Quagga - Quagga или Mkt - Mkt устанавливались полные соединения.
Решение:
Хотел ударить себя за эту проблему, но решение на удивление простое. Я выложил эту конфигурацию в тестовую лабораторию и сделал tcpdumping, чтобы выяснить, что я получаю ICMP Expiry сразу после того, как узлы начали отправлять друг другу сообщения. Установка поля TTL=64 в поле туннеля IPIP в CentOS решила проблему. Также можно добавить его вручную через командную строку с помощью команды ip tunnel add, указав значение для опции ttl.
Надеюсь, это кому-то поможет, потому что я начинал выдирать волосы клочьями.
*IP/IP или GRE туннель между Mikrotik и Linux Quagga.
*OSPF настроен в режиме точка-точка для обмена информацией о маршрутизации.
*Правильные правила брандмауэра установлены для безопасной связи.
*Значения MTU проверены с обеих сторон.
Симптомы:
*IPIP или GRE туннель поднимается, и есть полная TCP/IP связь. Можно пинговать, подключаться по SSH, пользоваться SFTP к удаленным сторонам без проблем.
*Mikrotik устанавливает одностороннюю/инициализирующую связь с Quagga, что подтверждается следующей командой на Quagga: #sh ip ospf neighbor X.X.X.X 1 1Way/Init 37.416s X.X.X.X ipiptunnel:X.X.X.1 0 0 0
*Quagga не устанавливает связь с удаленной стороной, и ваш Mikrotik будет без соседей.
*Torch показывает периодическую связь 224.x, но ваша конечная точка p2p не отображается в списке src.
*Судя по всему, это влияет только при Quagga-> Mtk. При импорте конфигурации и запуске Quagga - Quagga или Mkt - Mkt устанавливались полные соединения.
Решение:
Хотел ударить себя за эту проблему, но решение на удивление простое. Я выложил эту конфигурацию в тестовую лабораторию и сделал tcpdumping, чтобы выяснить, что я получаю ICMP Expiry сразу после того, как узлы начали отправлять друг другу сообщения. Установка поля TTL=64 в поле туннеля IPIP в CentOS решила проблему. Также можно добавить его вручную через командную строку с помощью команды ip tunnel add, указав значение для опции ttl.
Надеюсь, это кому-то поможет, потому что я начинал выдирать волосы клочьями.
