Проблема
Собственно один из сценариев с OSPF - распространение маршрутной информации от одного филиала в другой, и в 6-ке проблем не было. Настроил зону, включил туда диапазон выдаваемый любым PtP сервером и адреса клиентов полетели по всем филиалам. Да, очень неудобно, когда таких маршрутов много, их обычно можно агрегировать и проблемы нет. Но в 7-ке проблема в другом, то ли из-за бага, то ли я что-то делаю не так, но маршруты для PtP клиентов не распространяются.
Решение
Само решение довольно простое.
Надо просто объявить static blackhole маршрут до подсети этих клиентов с большой метрикой и назначить в OSPF распространение static маршрутов. Тут почти все, надо еще и отфильтровать маршруты, что-бы распространялись только необходимые, далее будет код:
/ip route add blackhole disabled=no distance=255 dst-address=10.0.2.0/24 gateway="" pref-src="" routing-table=main scope=30 suppress-hw-offload=no target-scope=10 add disabled=no distance=255 dst-address=10.0.28.0/24 gateway=172.16.26.129 pref-src="" routing-table=main scope=30 suppress-hw-offload=no target-scope=10 /routing ospf instance add name=ospf-instance-1 out-filter-chain=ospf-out redistribute=static,ospf router-id=10.0.0.129 /routing ospf area add instance=ospf-instance-1 name=ospf-area-1 add area-id=10.0.3.0 instance=ospf-instance-1 name=local type=stub /routing filter rule add chain=ospf-out disabled=no rule="if ( protocol static ){\r\ \n if( dst==10.0.2.0/24 && dst-len==24 ) { accept }\r\ \n reject\r\ \n}\r\" /routing ospf area range add area=local disabled=yes prefix=10.0.2.0/24 /routing ospf interface-template add area=ospf-area-1 dead-interval=4s hello-interval=1s networks=10.0.0.128/25 type=ptp add area=local networks=10.0.3.0/24 passive add area=local networks=10.0.2.0/24 passive prefix-list=10.0.2.0/24 type=ptp add area=local networks=10.0.28.0/24 passive prefix-list=10.0.28.0/24 type=ptp
Для примера выше, сеть 10.0.2.0/24 выделена для L2TP клиентов, 10.0.28.0/24 - "пробная", для проверки работы фильтра и распространятся не должна.
Логика фильтра следующая: если маршрут статичный, то проверить его на соответствие критерию, если нет, то отбросить.
Глянем маршруты на соседнем роутере:
Flags: D - DYNAMIC; A - ACTIVE; c, o, d, y - COPY Columns: DST-ADDRESS, GATEWAY, DISTANCE DST-ADDRESS GATEWAY DISTANCE DAd 0.0.0.0/0 172.16.26.129 200 DAc 10.0.0.0/25 bridge-ISP 0 D o 10.0.0.129/32 10.0.0.129%gre-tunnel1 110 DAc 10.0.0.129/32 gre-tunnel1 0 DAo 10.0.2.0/24 10.0.0.129%gre-tunnel1 110 DAo 10.0.2.1/32 10.0.0.129%gre-tunnel1 110 DAo 10.0.3.0/24 10.0.0.129%gre-tunnel1 110 DAc 10.0.4.254/32 <l2tp-ppp1> 0 DAc 10.0.5.0/24 ether3 0 DAc 172.16.26.128/25 ether4 0
Как видно из листинга выше, тут есть только анонсированные маршруты и маршрут /32 до самого роутера.
