Всем привет! Сейчас провожу эксперименты с VRF, чтобы реализовать автоматический failover между двумя провайдерами, и в целом всё работает, но есть несколько странных моментов, по которым я буду признателен за помощь. Контекст такой: у меня два провайдера. У роутеров от обоих провайдеров одинаковый IP — 192.168.1.1. Моя LAN сеть тоже 192.168.1.0/24. Так как вся сеть в одной подсети, я поместил каждый роутер провайдера в отдельный VRF:
IP адрес моста — 192.168.1.201
Роутер первого провайдера подключён к ether1, ether1 имеет IP 192.168.1.202 и подключён к своему VRF
Роутер второго провайдера подключён к ether2, ether2 имеет IP 192.168.1.203 и подключён к другому VRF
Потом у меня есть скрипт netwatch, который меняет приоритет основного маршрута, чтобы переключаться между провайдерами и реализовать failover, но сейчас меня интересуют не его настройки.
В целом работает, НО есть такие проблемы:
— Интернет из LAN доступен только если IP-адреса Mikrotik в двух VRF назначены с маской /32 — а так быть не должно.
— Если назначать /24, то из консоли Mikrotik можно пинговать google, а из LAN — нет.
— Обновления с Mikrotik не работают, разрешение DNS не происходит.
Ниже мой конфиг, я убрал часть с netwatch, т.к. пока это не суть проблемы:
# model = RB3011UiAS
/interface list
add comment=defconf name=WAN
add comment=defconf name=LAN
/ip vrf
add comment=vrf_starlink interfaces=ether2 name=vrf_starlink
add comment=vrf_orange interfaces=ether1 name=vrf_orange
/interface bridge port
add bridge=bridge comment=defconf interface=ether3
add bridge=bridge comment=defconf interface=ether4
add bridge=bridge comment=defconf interface=ether5
add bridge=bridge comment=defconf interface=ether6
add bridge=bridge comment=defconf interface=ether7
add bridge=bridge comment=defconf interface=ether8
add bridge=bridge comment=defconf interface=ether9
add bridge=bridge comment=defconf interface=ether10
add bridge=bridge comment=defconf interface=sfp1
/interface list member
add comment=defconf interface=bridge list=LAN
add comment=defconf interface=ether1 list=WAN
add interface=ether2 list=WAN
/ip address
add address=192.168.1.201/24 comment=defconf interface=bridge network=192.168.1.0
add address=192.168.1.202 comment=ip_vrf_orange interface=ether1 network=192.168.1.1
add address=192.168.1.203 comment=ip_vrf_starlink interface=ether2 network=192.168.1.1
/ip dns
set allow-remote-requests=yes servers=9.9.9.9
/ip dns static
add address=192.168.1.201 comment=defconf name=router.lan
/ip firewall filter
add action=accept chain=input comment="defconf: accept established,related,untracked" connection-state=established,related,untracked
add action=drop chain=input comment="defconf: drop invalid" connection-state=invalid
add action=accept chain=input comment="defconf: accept ICMP" protocol=icmp
add action=accept chain=input comment="defconf: accept to local loopback (for CAPsMAN)" dst-address=127.0.0.1
add action=drop chain=input comment="defconf: drop all not coming from LAN" in-interface-list=!LAN
add action=accept chain=forward comment="defconf: accept in ipsec policy" ipsec-policy=in,ipsec
add action=accept chain=forward comment="defconf: accept out ipsec policy" ipsec-policy=out,ipsec
add action=fasttrack-connection chain=forward comment="defconf: fasttrack" connection-state=established,related hw-offload=yes
add action=accept chain=forward comment="defconf: accept established,related, untracked" connection-state=established,related,untracked
add action=drop chain=forward comment="defconf: drop invalid" connection-state=invalid
add action=drop chain=forward comment="defconf: drop all from WAN not DSTNATed" connection-nat-state=!dstnat connection-state=new in-interface-list=WAN
/ip firewall nat
add action=masquerade chain=srcnat comment="defconf: masquerade" ipsec-policy=out,none out-interface-list=WAN
/ip route
add disabled=no distance=2 dst-address=0.0.0.0/0 gateway=192.168.1.1@vrf_orange routing-table=main suppress-hw-offload=no
add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=192.168.1.1@vrf_starlink routing-table=main suppress-hw-offload=no
add disabled=no distance=1 dst-address=192.168.1.0/24 gateway=bridge routing-table=vrf_orange suppress-hw-offload=no
add disabled=no distance=1 dst-address=192.168.1.0/24 gateway=bridge routing-table=vrf_starlink suppress-hw-offload=no
add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=192.168.1.1@vrf_starlink routing-table=vrf_starlink suppress-hw-offload=no
add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=192.168.1.1@vrf_orange routing-table=vrf_orange suppress-hw-offload=no
/system identity
set name=rb3011
Спасибо всем за помощь!
IP адрес моста — 192.168.1.201
Роутер первого провайдера подключён к ether1, ether1 имеет IP 192.168.1.202 и подключён к своему VRF
Роутер второго провайдера подключён к ether2, ether2 имеет IP 192.168.1.203 и подключён к другому VRF
Потом у меня есть скрипт netwatch, который меняет приоритет основного маршрута, чтобы переключаться между провайдерами и реализовать failover, но сейчас меня интересуют не его настройки.
В целом работает, НО есть такие проблемы:
— Интернет из LAN доступен только если IP-адреса Mikrotik в двух VRF назначены с маской /32 — а так быть не должно.
— Если назначать /24, то из консоли Mikrotik можно пинговать google, а из LAN — нет.
— Обновления с Mikrotik не работают, разрешение DNS не происходит.
Ниже мой конфиг, я убрал часть с netwatch, т.к. пока это не суть проблемы:
# model = RB3011UiAS
/interface list
add comment=defconf name=WAN
add comment=defconf name=LAN
/ip vrf
add comment=vrf_starlink interfaces=ether2 name=vrf_starlink
add comment=vrf_orange interfaces=ether1 name=vrf_orange
/interface bridge port
add bridge=bridge comment=defconf interface=ether3
add bridge=bridge comment=defconf interface=ether4
add bridge=bridge comment=defconf interface=ether5
add bridge=bridge comment=defconf interface=ether6
add bridge=bridge comment=defconf interface=ether7
add bridge=bridge comment=defconf interface=ether8
add bridge=bridge comment=defconf interface=ether9
add bridge=bridge comment=defconf interface=ether10
add bridge=bridge comment=defconf interface=sfp1
/interface list member
add comment=defconf interface=bridge list=LAN
add comment=defconf interface=ether1 list=WAN
add interface=ether2 list=WAN
/ip address
add address=192.168.1.201/24 comment=defconf interface=bridge network=192.168.1.0
add address=192.168.1.202 comment=ip_vrf_orange interface=ether1 network=192.168.1.1
add address=192.168.1.203 comment=ip_vrf_starlink interface=ether2 network=192.168.1.1
/ip dns
set allow-remote-requests=yes servers=9.9.9.9
/ip dns static
add address=192.168.1.201 comment=defconf name=router.lan
/ip firewall filter
add action=accept chain=input comment="defconf: accept established,related,untracked" connection-state=established,related,untracked
add action=drop chain=input comment="defconf: drop invalid" connection-state=invalid
add action=accept chain=input comment="defconf: accept ICMP" protocol=icmp
add action=accept chain=input comment="defconf: accept to local loopback (for CAPsMAN)" dst-address=127.0.0.1
add action=drop chain=input comment="defconf: drop all not coming from LAN" in-interface-list=!LAN
add action=accept chain=forward comment="defconf: accept in ipsec policy" ipsec-policy=in,ipsec
add action=accept chain=forward comment="defconf: accept out ipsec policy" ipsec-policy=out,ipsec
add action=fasttrack-connection chain=forward comment="defconf: fasttrack" connection-state=established,related hw-offload=yes
add action=accept chain=forward comment="defconf: accept established,related, untracked" connection-state=established,related,untracked
add action=drop chain=forward comment="defconf: drop invalid" connection-state=invalid
add action=drop chain=forward comment="defconf: drop all from WAN not DSTNATed" connection-nat-state=!dstnat connection-state=new in-interface-list=WAN
/ip firewall nat
add action=masquerade chain=srcnat comment="defconf: masquerade" ipsec-policy=out,none out-interface-list=WAN
/ip route
add disabled=no distance=2 dst-address=0.0.0.0/0 gateway=192.168.1.1@vrf_orange routing-table=main suppress-hw-offload=no
add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=192.168.1.1@vrf_starlink routing-table=main suppress-hw-offload=no
add disabled=no distance=1 dst-address=192.168.1.0/24 gateway=bridge routing-table=vrf_orange suppress-hw-offload=no
add disabled=no distance=1 dst-address=192.168.1.0/24 gateway=bridge routing-table=vrf_starlink suppress-hw-offload=no
add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=192.168.1.1@vrf_starlink routing-table=vrf_starlink suppress-hw-offload=no
add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=192.168.1.1@vrf_orange routing-table=vrf_orange suppress-hw-offload=no
/system identity
set name=rb3011
Спасибо всем за помощь!
