Pull to refresh

Mikrotik RoS v7.1 OSPF — проблема с /32 адресами PtP клиентов

Reading time2 min
Views21K

Проблема

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

Tags:
Hubs:
Total votes 3: ↑3 and ↓0+3
Comments34

Articles