Дорбый день всем. Будет большое описание сети, чтобы было понятно, что к чему. Но суть вопроса в конце поста.
Есть примерно такая схема сети (упрощенно): http://i61.tinypic.com/21kkyfa.png
С левой стороны схемы как-бы основная часть сети. Назовем основную сеть MainNET, где в основном маршрутизаторы/свитчи с OSPF. На схемке показан для простоты один такой OSPF Router.
В центре «OpenVPN Server», на нём также работает quagga с ospfd. eth0 подключен к MainNET, eth1 = выход в Инет и соотв. через инет к нему подключаются клиенты.
Сеть OpenVPN настроена режиме tls-server с опцией client-to-client, т.е. все клиенты видят друг друга и сети за ними разрешены через статические маршруты (клиенты OpenVPN в т.ч. маршрутизируют трафик из/в VPN). Сеть 192.168.254.X/24 является соб-но «виртуальной» сетью для OpenVPN интерфейсов tap0.
Чтобы трафик роутился на сервере статически (через хелперы скриптов OpenVPN) прописываются маршруты вида 10.1.1.X/24 via 192.168.254.101. В свою очередь на клиенте прописаны статически (на деле передается от сервера через OpenVPN push, но это не меняет сути) маршруты в MainNET и прочие сети (за OSPF Router) через 192.168.254.1 (т.е. сервер OpenVPN).
Всё это вполне работает, смысл такого гибрида OSPF/статические маршруты исторический.
Столкнулись с 2мя неудобствами в данной схеме - для изменения маршрутов у клиента нужно перезапускать клиента после изменения конфига. Ну и главное - у OpenVPN ограничение на размер PUSH сообщений жестко хардкоден, и нам стало не хватать этого места.
Планируется на клиентах OpenVPN поднять quagga где это возможно и маршрутами обмениваться через OSPF.
В «левой» части схемы поднял и настроил ospfd без проблем, а вот добавить новые зоны «за VPN» - почему-то проблема. Когда в конфиг ospfd.conf на OpenVPN сервере добавляю сеть 192.168.254.X/24 для анонса, то он перестает анонсировать сети за VPN (redistribute static):
interface eth0
ip ospf authentication message-digest
ip ospf message-digest-key 1 md5 КЛЮЧИК
!
interface eth1
!
interface tap0
ip ospf authentication message-digest
ip ospf message-digest-key 2 md5 КЛЮЧИК
!
router ospf
ospf router-id 192.168.0.1
redistribute kernel
redistribute connected
redistribute static
network 192.168.0.0/24 area 0.0.0.0
! network 192.168.254.0/24 area 0.0.0.254
distribute-list filter out kernel
distribute-list filter out connected
distribute-list filter out static
!
access-list 1 deny 192.168.253.0 0.0.0.255
access-list 1 deny 192.168.252.0 0.0.0.255
access-list 1 permit any
access-list filter deny 192.168.252.0/24
access-list filter deny 192.168.253.0/24
access-list filter deny 169.254.0.0/16
access-list filter permit any
!
Сети 192.168.252-253 просто специально фильтруются. Стоит раскомментировать строчку "! network 192.168.254.0/24 area 0.0.0.254" и он перестает распространять свои статические маршруты на OSPF Router. Соб-но вида «10.1.1.0/24 via 192.168.254.101», из ядра, которые туда записаны хелпером OpenVPN (через ip route add ...).
Т.е. пока этой строки нет, на OSPF Router я вижу маршруты, которые передает OpenVPN Server из своего ядра. Как только эта строка добавляется, почему-то он перестает их распространять. Видимо из-за того, что они соб-но и находятся за сетью 192.168.254.0/24. Но как быть, когда мне надо раздавать маршруты в «обе стороны»?
PS: Блин как же много написал... так всегда, когда проблему хочешь подробно описать...