Проблема
Собственно один из сценариев с 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 до самого роутера.