Привет! Мы сейчас оцениваем Mikrotik CCR2116-12G-4s+ как замену нашим маршрутизаторам Cisco в роли LNS. Одна из проблем, с которой столкнулись — попытка поместить маршруты PPP-сессии в VRF на основе RADIUS-атрибута из ответа. Что-то похожее обсуждают здесь: .
Понятно, что Mikrotik не поддерживает эквивалент RADIUS-атрибута Cisco AV Pairs. Но атрибут Mikrotik-Group можно отправить в RADIUS-ответе, чтобы переопределить профиль PPP по умолчанию для сессии пользователя.
Мы пробовали использовать эту функцию, чтобы назначить пользователю непрофиль PPP по умолчанию (ppp-profile-vrf1). У этого профиля есть связанный interface-list, который добавлен в VRF (vrf1). Это вроде работает — динамический PPP-интерфейс добавляется в interface-list, как и ожидалось.
Однако заметили, что не все маршруты PPP-сессии на LNS попадают в VRF. В нашем случае маршруты Framed-IP-Address и Delegated IPv6-Prefix добавляются в VRF, а вот Framed-Route и Framed-IPv6-Prefix — нет. Ниже диаграмма с топологией и выводами ip и ipv6 route print. Маршруты фиолетовым — в VRF, красным — не в VRF.
Вывод route print с деталями ниже. Обратил внимание, что маршруты, отсутствующие в VRF, помечены как inactive и у них отсутствует immediate-gw.
[admin@lns3] > /ip/route/print det
Flags: D - dynamic; X - disabled, I - inactive, A - active; c - connect, s - static, r - rip, b - bgp, o - ospf, i - is-is, d - dhcp, v - vpn, m - modem, y - bgp-mpls-vpn; H - hw-offloaded; + - ecmp
DAb dst-address=81.145.120.14/32 routing-table=main gateway=192.0.2.34 immediate-gw=192.0.2.34%vlan1184 distance=20 scope=40 target-scope=10 suppress-hw-offload=no
DAb dst-address=81.145.120.15/32 routing-table=main gateway=192.0.2.34 immediate-gw=192.0.2.34%vlan1184 distance=20 scope=40 target-scope=10 suppress-hw-offload=no
DAb dst-address=91.151.11.253/32 routing-table=main gateway=192.0.2.34 immediate-gw=192.0.2.34%vlan1184 distance=20 scope=40 target-scope=10 suppress-hw-offload=no
DAb dst-address=91.151.11.254/32 routing-table=main gateway=192.0.2.34 immediate-gw=192.0.2.34%vlan1184 distance=20 scope=40 target-scope=10 suppress-hw-offload=no
DAc dst-address=192.0.2.0/28 routing-table=main gateway=sfp-sfpplus2 immediate-gw=sfp-sfpplus2 distance=0 scope=10 suppress-hw-offload=no local-address=192.0.2.5%sfp-sfpplus2
DAc dst-address=192.0.2.32/30 routing-table=main gateway=vlan1184 immediate-gw=vlan1184 distance=0 scope=10 suppress-hw-offload=no local-address=192.0.2.33%vlan1184
DAc dst-address=192.0.2.49/32 routing-table=vrf1 gateway=<l2tp-testppp01@mt-lab.net>@vrf1
immediate-gw=<l2tp-testppp01@mt-lab.net> distance=0 scope=10 suppress-hw-offload=no
local-address=192.0.2.241%<l2tp-testppp01@mt-lab.net>@vrf1
DIvH dst-address=192.0.2.64/28 routing-table=main pref-src="" gateway=<l2tp-testppp01@mt-lab.net>
immediate-gw="" distance=1 scope=30 target-scope=10 suppress-hw-offload=no
DAc dst-address=192.0.2.240/32 routing-table=main gateway=Loopback0 immediate-gw=Loopback0 distance=0 scope=10 suppress-hw-offload=no local-address=192.0.2.240%Loopback0
DIcH dst-address=192.168.88.0/24 routing-table=main gateway=ether13 distance=0 scope=10 suppress-hw-offload=no local-address=192.168.88.3%ether13
DAc dst-address=192.0.2.241/32 routing-table=vrf1 gateway=Loopback1@vrf1 immediate-gw=Loopback1 distance=0 scope=10 suppress-hw-offload=no local-address=192.0.2.241%Loopback1@vrf1
[admin@lns3] > /ipv6/route/print det
Flags: D - dynamic; X - disabled, I - inactive, A - active; c - connect, s - static, r - rip, b - bgp, o - ospf, d - dhcp, v - vpn, m - modem, g - slaac, y - bgp-mpls-vpn; H - hw-offloaded; + - ecmp
DAc dst-address=2001:db8:2:2::/64 routing-table=main gateway=sfp-sfpplus2 immediate-gw=sfp-sfpplus2 distance=0 scope=10
DIvH dst-address=2001:db8:8:4::/64 routing-table=main gateway=<l2tp-testppp01@mt-lab.net> immediate-gw=""
distance=1 scope=30 target-scope=10
DAd dst-address=2001:db8:100:300::/56 routing-table=vrf1 gateway=fe80::36ed:1bff:fe85:f380%<l2tp-testppp01@mt-lab.net>@vrf1
immediate-gw=fe80::36ed:1bff:fe85:f380%<l2tp-testppp01@mt-lab.net> distance=1 scope=30 target-scope=10
vrf-interface=<l2tp-testppp01@mt-lab.net>
DAc dst-address=fe80::%sfp-sfpplus2/64 routing-table=main gateway=sfp-sfpplus2 immediate-gw=sfp-sfpplus2 distance=0 scope=10
DAc dst-address=fe80::%sfp-sfpplus4/64 routing-table=main gateway=sfp-sfpplus4 immediate-gw=sfp-sfpplus4 distance=0 scope=10
DAc dst-address=fe80::%<l2tp-testppp01@mt-lab.net>/64 routing-table=vrf1 gateway=<l2tp-testppp01@mt-lab.net>@vrf1
immediate-gw=<l2tp-testppp01@mt-lab.net> distance=0 scope=10
DAc dst-address=fe80::%Loopback0/64 routing-table=main gateway=Loopback0 immediate-gw=Loopback0 distance=0 scope=10
DAc dst-address=fe80::%vlan1184/64 routing-table=main gateway=vlan1184 immediate-gw=vlan1184 distance=0 scope=10
DAc dst-address=fe80::%Loopback1/64 routing-table=vrf1 gateway=Loopback1@vrf1 immediate-gw=Loopback1 distance=0 scope=10
Вопросы:
- Поддерживается ли такая конфигурация — когда сервер LNS помещает PPP-сессию в VRF?
- Я не нашёл однозначного ответа в форумах о том, возможно ли это на текущем софте. Было бы здорово понять, поддерживается это сейчас или нет.
- Если да, то подскажите, где я ошибаюсь в приведённой конфигурации ниже.
Я уже открывал тикет в поддержку Mikrotik, но пока ответа нет. Можно ли это заставить работать, как задумано? В форумах видел скрипты, которые срабатывают при поднятии и опускании ppp-сессии, чтобы решать подобные задачи, но не уверен, достигнем ли мы нужного результата или что нужно сделать, чтобы добавить отсутствующие маршруты в VRF.
Я относительно новичок в Mikrotik.
Вот что нашёл в одном из постов — похоже, что трафик VRF сейчас не аппаратно ускоряется, так что даже если всё работает, эта платформа не масштабируется под такие задачи. Но аппаратное ускорение VRF обещают в будущих версиях:
Буду признателен за любые комментарии и советы. Большое спасибо за помощь!
Конфигурация Mikrotik CCR2116-12G-4s+. Тестировано на RouterOS 7.11.
lns3-config.txt (2.32 KB)
Конфигурация Cisco CPE
cpe-config.txt (667 Bytes)
Понятно, что Mikrotik не поддерживает эквивалент RADIUS-атрибута Cisco AV Pairs. Но атрибут Mikrotik-Group можно отправить в RADIUS-ответе, чтобы переопределить профиль PPP по умолчанию для сессии пользователя.
Мы пробовали использовать эту функцию, чтобы назначить пользователю непрофиль PPP по умолчанию (ppp-profile-vrf1). У этого профиля есть связанный interface-list, который добавлен в VRF (vrf1). Это вроде работает — динамический PPP-интерфейс добавляется в interface-list, как и ожидалось.
Однако заметили, что не все маршруты PPP-сессии на LNS попадают в VRF. В нашем случае маршруты Framed-IP-Address и Delegated IPv6-Prefix добавляются в VRF, а вот Framed-Route и Framed-IPv6-Prefix — нет. Ниже диаграмма с топологией и выводами ip и ipv6 route print. Маршруты фиолетовым — в VRF, красным — не в VRF.
Вывод route print с деталями ниже. Обратил внимание, что маршруты, отсутствующие в VRF, помечены как inactive и у них отсутствует immediate-gw.
[admin@lns3] > /ip/route/print det
Flags: D - dynamic; X - disabled, I - inactive, A - active; c - connect, s - static, r - rip, b - bgp, o - ospf, i - is-is, d - dhcp, v - vpn, m - modem, y - bgp-mpls-vpn; H - hw-offloaded; + - ecmp
DAb dst-address=81.145.120.14/32 routing-table=main gateway=192.0.2.34 immediate-gw=192.0.2.34%vlan1184 distance=20 scope=40 target-scope=10 suppress-hw-offload=no
DAb dst-address=81.145.120.15/32 routing-table=main gateway=192.0.2.34 immediate-gw=192.0.2.34%vlan1184 distance=20 scope=40 target-scope=10 suppress-hw-offload=no
DAb dst-address=91.151.11.253/32 routing-table=main gateway=192.0.2.34 immediate-gw=192.0.2.34%vlan1184 distance=20 scope=40 target-scope=10 suppress-hw-offload=no
DAb dst-address=91.151.11.254/32 routing-table=main gateway=192.0.2.34 immediate-gw=192.0.2.34%vlan1184 distance=20 scope=40 target-scope=10 suppress-hw-offload=no
DAc dst-address=192.0.2.0/28 routing-table=main gateway=sfp-sfpplus2 immediate-gw=sfp-sfpplus2 distance=0 scope=10 suppress-hw-offload=no local-address=192.0.2.5%sfp-sfpplus2
DAc dst-address=192.0.2.32/30 routing-table=main gateway=vlan1184 immediate-gw=vlan1184 distance=0 scope=10 suppress-hw-offload=no local-address=192.0.2.33%vlan1184
DAc dst-address=192.0.2.49/32 routing-table=vrf1 gateway=<l2tp-testppp01@mt-lab.net>@vrf1
immediate-gw=<l2tp-testppp01@mt-lab.net> distance=0 scope=10 suppress-hw-offload=no
local-address=192.0.2.241%<l2tp-testppp01@mt-lab.net>@vrf1
DIvH dst-address=192.0.2.64/28 routing-table=main pref-src="" gateway=<l2tp-testppp01@mt-lab.net>
immediate-gw="" distance=1 scope=30 target-scope=10 suppress-hw-offload=no
DAc dst-address=192.0.2.240/32 routing-table=main gateway=Loopback0 immediate-gw=Loopback0 distance=0 scope=10 suppress-hw-offload=no local-address=192.0.2.240%Loopback0
DIcH dst-address=192.168.88.0/24 routing-table=main gateway=ether13 distance=0 scope=10 suppress-hw-offload=no local-address=192.168.88.3%ether13
DAc dst-address=192.0.2.241/32 routing-table=vrf1 gateway=Loopback1@vrf1 immediate-gw=Loopback1 distance=0 scope=10 suppress-hw-offload=no local-address=192.0.2.241%Loopback1@vrf1
[admin@lns3] > /ipv6/route/print det
Flags: D - dynamic; X - disabled, I - inactive, A - active; c - connect, s - static, r - rip, b - bgp, o - ospf, d - dhcp, v - vpn, m - modem, g - slaac, y - bgp-mpls-vpn; H - hw-offloaded; + - ecmp
DAc dst-address=2001:db8:2:2::/64 routing-table=main gateway=sfp-sfpplus2 immediate-gw=sfp-sfpplus2 distance=0 scope=10
DIvH dst-address=2001:db8:8:4::/64 routing-table=main gateway=<l2tp-testppp01@mt-lab.net> immediate-gw=""
distance=1 scope=30 target-scope=10
DAd dst-address=2001:db8:100:300::/56 routing-table=vrf1 gateway=fe80::36ed:1bff:fe85:f380%<l2tp-testppp01@mt-lab.net>@vrf1
immediate-gw=fe80::36ed:1bff:fe85:f380%<l2tp-testppp01@mt-lab.net> distance=1 scope=30 target-scope=10
vrf-interface=<l2tp-testppp01@mt-lab.net>
DAc dst-address=fe80::%sfp-sfpplus2/64 routing-table=main gateway=sfp-sfpplus2 immediate-gw=sfp-sfpplus2 distance=0 scope=10
DAc dst-address=fe80::%sfp-sfpplus4/64 routing-table=main gateway=sfp-sfpplus4 immediate-gw=sfp-sfpplus4 distance=0 scope=10
DAc dst-address=fe80::%<l2tp-testppp01@mt-lab.net>/64 routing-table=vrf1 gateway=<l2tp-testppp01@mt-lab.net>@vrf1
immediate-gw=<l2tp-testppp01@mt-lab.net> distance=0 scope=10
DAc dst-address=fe80::%Loopback0/64 routing-table=main gateway=Loopback0 immediate-gw=Loopback0 distance=0 scope=10
DAc dst-address=fe80::%vlan1184/64 routing-table=main gateway=vlan1184 immediate-gw=vlan1184 distance=0 scope=10
DAc dst-address=fe80::%Loopback1/64 routing-table=vrf1 gateway=Loopback1@vrf1 immediate-gw=Loopback1 distance=0 scope=10
Вопросы:
- Поддерживается ли такая конфигурация — когда сервер LNS помещает PPP-сессию в VRF?
- Я не нашёл однозначного ответа в форумах о том, возможно ли это на текущем софте. Было бы здорово понять, поддерживается это сейчас или нет.
- Если да, то подскажите, где я ошибаюсь в приведённой конфигурации ниже.
Я уже открывал тикет в поддержку Mikrotik, но пока ответа нет. Можно ли это заставить работать, как задумано? В форумах видел скрипты, которые срабатывают при поднятии и опускании ppp-сессии, чтобы решать подобные задачи, но не уверен, достигнем ли мы нужного результата или что нужно сделать, чтобы добавить отсутствующие маршруты в VRF.
Я относительно новичок в Mikrotik.
Вот что нашёл в одном из постов — похоже, что трафик VRF сейчас не аппаратно ускоряется, так что даже если всё работает, эта платформа не масштабируется под такие задачи. Но аппаратное ускорение VRF обещают в будущих версиях:
Буду признателен за любые комментарии и советы. Большое спасибо за помощь!
Конфигурация Mikrotik CCR2116-12G-4s+. Тестировано на RouterOS 7.11.
lns3-config.txt (2.32 KB)
Конфигурация Cisco CPE
cpe-config.txt (667 Bytes)
