Добрый день. Дали интересную задачку, я пока её на стенде отрабатываю, и встал в ступор, помогите если был похожий кейс у кого! Надо в одном офисе настроить балансировку между двумя провайдерами для NAT через PCC (с этой частью все норм, настроено в соответствии с мануалом на официальной вики и работает), при этом офис соединен по GRE со складом (сделано два интерфейса GRE до склада, для обоих провайдеров), поднят ospf, маршруты появились на обоих роутерах, но если я провожу трассировку с компа в офисе до компа на складе происходит какая то ахинея, запрос вылетает в internet, отключаю маршруты в именованных таблицах, через резервный маршрут в main все работает как надо, по ощущениям проверяются только именованные таблицы, а в них только маршрут по умолчанию. Я позже приложу схему и конфиги, но вдруг кто то на вскидку сможет ситуацию прояснить ситуацию.
Щас вроде бы как заставил все работать, но дополнительно прописал правила в ip=>route=>rule /ip route rule add action=lookup-only-in-table dst-address=192.168.20.0/24 src-address=\ 192.168.10.0/24 table=main add action=lookup-only-in-table dst-address=192.168.10.0/24 src-address=\ 192.168.10.0/24 table=main ,где 192.168.10.0/24 - сеть в офисе, а 192.168.20.0/24 - сеть на складе
Я все варианты со всеми граблями MultiWAN рассказывал тут Презентация presentation_6157_1554717194.pdf
Добрый день. Илья, я данное Ваше выступление видел в живую год назад. Саму задачу DUAL WAN через PCC с несколькими VPN туннелями я решил, вполне сносно все работает, цель данного поста - уточнить некоторые детали. Буду очень Вам благодарен, если Вы проясните пару моментов по настройке. Схема ниже, я несколько упростил задачу, от первоначальной: роутер R1 подключен к трем разным провайдерам, R1 и R2 связаны через GRE VPN туннели, для доступа в интернет используются первый и второй провайдеры одновременно в пропорции 2/3 и 1/3, если оба провайдера падают, интернет должен идти через третьего провайдера. Основной маршрут из R1 до R2 должен идти по VPN туннелю через третьего провайдера, если линк недоступен, то через первого, если первый отвалится, то через второго. Вопрос то следующий, правильно ли я понимаю, что если не будет правил 3 и 4 в ip=>route=>rules, то работать по факту будет только NAT, и все маршруты R1 станет искать в именованных таблицах, где будет дефолтный шлюз, через который он попробует пустить трафик с локальной сети 192.168.10.0/24 до удаленной сети 192.168.20.0/24 Ниже конфигурации маршрутизаторов R1 /interface bridge add name=bridge-ospf /interface ethernet set [ find default-name=ether1 ] comment="WAN1 40Mb/sec" set [ find default-name=ether2 ] comment="WAN2 20Mb/sec" set [ find default-name=ether3 ] comment="WAN3 20Mb/sec" set [ find default-name=ether4 ] comment=LAN /interface gre add allow-fast-path=no ipsec-secret=123 keepalive=5s,5 local-address=\ 10.0.10.1 name=gre-tunnel-R1WAN1-R2 remote-address=10.0.40.1 add allow-fast-path=no ipsec-secret=123 keepalive=5s,5 local-address=\ 10.0.20.1 name=gre-tunnel-R1WAN2-R2 remote-address=10.0.40.1 add allow-fast-path=no ipsec-secret=123 keepalive=5s,5 local-address=\ 10.0.30.1 name=gre-tunnel-R1WAN3-R2 remote-address=10.0.40.1 /interface wireless security-profiles set [ find default=yes ] supplicant-identity=MikroTik /routing ospf area set [ find default=yes ] disabled=yes /routing ospf instance set [ find default=yes ] disabled=yes add name=ospf1 router-id=172.25.1.1 /routing ospf area add instance=ospf1 name=area0 /ip address add address=10.0.10.1/24 interface=ether1 network=10.0.10.0 add address=10.0.20.1/24 interface=ether2 network=10.0.20.0 add address=10.0.30.1/24 interface=ether3 network=10.0.30.0 add address=192.168.10.1/24 interface=ether4 network=192.168.10.0 add address=172.16.1.1 interface=gre-tunnel-R1WAN1-R2 network=172.16.1.2 add address=172.16.2.1 interface=gre-tunnel-R1WAN2-R2 network=172.16.2.2 add address=172.16.3.1 interface=gre-tunnel-R1WAN3-R2 network=172.16.3.2 add address=172.25.1.1/25 interface=bridge-ospf network=172.25.1.0 /ip firewall mangle add action=accept chain=prerouting comment="Exclude LAN traffic for both ISP" \ dst-address=1.1.1.0/24 in-interface=ether4 add action=accept chain=prerouting dst-address=2.2.2.0/24 in-interface=ether4 add action=mark-connection chain=prerouting comment=\ "Marking incoming both ISP traffic" connection-mark=no-mark in-interface=\ ether1 new-connection-mark=ISP1 passthrough=yes add action=mark-connection chain=prerouting connection-mark=no-mark \ in-interface=ether2 new-connection-mark=ISP2 passthrough=yes add action=mark-connection chain=prerouting comment=\ "Marking all LAN traffic for NAT" connection-mark=no-mark \ dst-address-type=!local in-interface=ether4 new-connection-mark=ISP1 \ passthrough=yes per-connection-classifier=both-addresses:3/0 tcp-flags="" add action=mark-connection chain=prerouting connection-mark=no-mark \ dst-address-type=!local in-interface=ether4 new-connection-mark=ISP1 \ passthrough=yes per-connection-classifier=both-addresses:3/1 tcp-flags="" add action=mark-connection chain=prerouting connection-mark=no-mark \ dst-address-type=!local in-interface=ether4 new-connection-mark=ISP2 \ passthrough=yes per-connection-classifier=both-addresses:3/2 tcp-flags="" add action=mark-routing chain=output comment=\ "Route Mark for incoming traffic" connection-mark=ISP1 new-routing-mark=\ ISP1_route passthrough=yes add action=mark-routing chain=output connection-mark=ISP2 new-routing-mark=\ ISP2_route passthrough=yes add action=mark-routing chain=prerouting comment=\ "Route Mark for forward from LAN traffic to NAT" connection-mark=ISP1 \ in-interface=ether4 new-routing-mark=ISP1_route passthrough=yes add action=mark-routing chain=prerouting connection-mark=ISP2 in-interface=\ ether4 new-routing-mark=ISP2_route passthrough=yes /ip firewall nat add action=src-nat chain=srcnat out-interface=ether1 \ src-address=192.168.10.0/24 to-addresses=10.0.10.1 add action=src-nat chain=srcnat out-interface=ether2 \ src-address=192.168.10.0/24 to-addresses=10.0.20.1 add action=src-nat chain=srcnat out-interface=ether3 \ src-address=192.168.10.0/24 to-addresses=10.0.30.1 /ip route add check-gateway=ping comment="Default route for ISP1" distance=1 gateway=\ 10.0.10.2 routing-mark=ISP1_route add check-gateway=ping comment="Default route for ISP2" distance=1 gateway=\ 10.0.20.2 routing-mark=ISP2_route add check-gateway=ping comment="Default route for ISP1 (BackUp)" distance=1 \ gateway=10.0.10.2 add check-gateway=ping comment="Default route for ISP2 (BackUp)" distance=2 \ gateway=10.0.20.2 add check-gateway=ping comment="Default route for ISP3" distance=3 gateway=\ 10.0.30.2 add comment="Main link for VPN" distance=1 dst-address=10.0.40.1/32 gateway=\ 10.0.30.2 add comment="Blackhole to 20.20.20.0/24" distance=220 dst-address=\ 192.168.20.0/24 type=blackhole /ip route rule add action=lookup-only-in-table src-address=10.0.10.2/32 table=ISP1_route add action=lookup-only-in-table src-address=10.0.20.2/32 table=ISP2_route add action=lookup-only-in-table src-address=10.0.30.2/32 table=main add action=lookup-only-in-table dst-address=192.168.20.0/24 table=main add action=lookup-only-in-table dst-address=192.168.10.0/24 table=main /routing bfd interface set [ find default=yes ] disabled=yes add interface=gre-tunnel-R1WAN1-R2 interval=0.1s min-rx=0.1s multiplier=7 add interval=0.1s min-rx=0.1s multiplier=7 add interface=gre-tunnel-R1WAN2-R2 interval=0.1s min-rx=0.1s multiplier=7 add interval=0.1s min-rx=0.1s multiplier=7 add interface=gre-tunnel-R1WAN3-R2 interval=0.1s min-rx=0.1s multiplier=7 add interval=0.1s min-rx=0.1s multiplier=7 /routing ospf interface add interface=bridge-ospf network-type=broadcast passive=yes add interface=ether4 network-type=broadcast passive=yes add cost=9 interface=gre-tunnel-R1WAN1-R2 network-type=point-to-point \ use-bfd=yes add interface=gre-tunnel-R1WAN2-R2 network-type=point-to-point use-bfd=yes add cost=8 interface=gre-tunnel-R1WAN3-R2 network-type=point-to-point \ use-bfd=yes /routing ospf network add area=area0 network=172.16.1.2/32 add area=area0 network=172.16.2.2/32 add area=area0 network=172.16.3.2/32 add area=area0 network=192.168.10.0/24 add area=area0 network=172.25.1.0/24 /system clock set time-zone-name=Europe/Moscow /system identity set name=R1