2 WAN + LTE как бэкап

RIP, OSFP, BGP, MPLS/VPLS
Аватара пользователя
Sir_Prikol
Сообщения: 562
Зарегистрирован: 14 апр 2018, 15:21
Откуда: СССР

2 WAN + LTE как бэкап

Сообщение Sir_Prikol »

Добрый день. Пытаюсь реализовать схему следующего характера:

2 WAN канала (равнозначные)
3 LTE канал (резервный)
4 бридж на локалку

То есть настроить балансировку каналов (PCC NTH разница не принципиальна, главное чтоб суммировало скорость) и, в случае падения обоих каналов выход в интернет был через резервный (LTE) пока хотя-бы один из основных каналов работает, резервный не трогать

Код: Выделить всё

/ip firewall address-list
add list="BOGONS" address=0.0.0.0/8
add list="BOGONS" address=10.0.0.0/8
add list="BOGONS" address=100.64.0.0/10
add list="BOGONS" address=127.0.0.0/8
add list="BOGONS" address=169.254.0.0/16
add list="BOGONS" address=172.16.0.0/12
add list="BOGONS" address=192.0.0.0/24
add list="BOGONS" address=192.0.2.0/24
add list="BOGONS" address=192.168.0.0/16
add list="BOGONS" address=198.18.0.0/15
add list="BOGONS" address=203.0.113.0/24
add list="BOGONS" address=224.0.0.0/3
/ip firewall mangle
add action=mark-connection chain=input connection-state=new in-interface=00.01_pppoe-dialog new-connection-mark=conn_isp_01 disabled=yes
add action=mark-connection chain=input connection-state=new in-interface=00.02_pppoe-dialog new-connection-mark=conn_isp_02 disabled=yes
add action=mark-connection chain=input connection-state=new in-interface=09.SXT new-connection-mark=conn_backup disabled=yes
add action=mark-connection chain=prerouting connection-state=related in-interface=00.01_pppoe-dialog new-connection-mark=conn_isp_01 disabled=yes
add action=mark-connection chain=prerouting connection-state=related in-interface=00.02_pppoe-dialog new-connection-mark=conn_isp_02 disabled=yes
add action=mark-connection chain=prerouting connection-state=related in-interface=09.SXT new-connection-mark=conn_backup disabled=yes
add action=mark-routing chain=output connection-mark=conn_isp_01 new-routing-mark=route_isp_01 disabled=yes
add action=mark-routing chain=output connection-mark=conn_isp_02 new-routing-mark=route_isp_02 disabled=yes
add action=mark-routing chain=output connection-mark=conn_backup new-routing-mark=route_backup disabled=yes
add action=mark-connection chain=prerouting dst-address-type=!local new-connection-mark=IT39_PCC_1 per-connection-classifier=both-addresses:2/0 src-address-list=BOGONS disabled=yes
add action=mark-connection chain=prerouting dst-address-type=!local new-connection-mark=IT39_PCC_2 per-connection-classifier=both-addresses:2/1 src-address-list=BOGONS disabled=yes
add action=mark-routing chain=prerouting connection-mark=IT39_PCC_1 new-routing-mark=IT39_1 src-address-list=BOGONS disabled=yes
add action=mark-routing chain=prerouting connection-mark=IT39_PCC_2 new-routing-mark=IT39_2 src-address-list=BOGONS disabled=yes
add action=mark-connection chain=prerouting connection-mark=no-mark new-connection-mark=oTher disabled=yes
/ip route
add check-gateway=ping distance=1 gateway=00.01_pppoe-dialog routing-mark=route_isp_01 disabled=yes
add check-gateway=ping distance=1 gateway=00.02_pppoe-dialog routing-mark=route_isp_02 disabled=yes
add check-gateway=ping comment=BACKUP distance=1 gateway=09.SXT routing-mark=route_backup disabled=yes
add check-gateway=arp distance=1 gateway=00.01_pppoe-dialog routing-mark=IT39_1 disabled=yes
add check-gateway=arp distance=2 gateway=00.02_pppoe-dialog routing-mark=IT39_1 disabled=yes
add check-gateway=arp comment=BACKUP distance=3 gateway=09.SXT routing-mark=IT39_1 disabled=yes
add check-gateway=arp distance=1 gateway=00.02_pppoe-dialog routing-mark=IT39_2 disabled=yes
add check-gateway=arp distance=2 gateway=00.01_pppoe-dialog routing-mark=IT39_2 disabled=yes
add check-gateway=arp comment=BACKUP distance=3 gateway=09.SXT routing-mark=IT39_2 disabled=yes
add check-gateway=arp distance=1 gateway=00.01_pppoe-dialog disabled=yes
add check-gateway=arp distance=2 gateway=00.02_pppoe-dialog disabled=yes
add check-gateway=arp distance=3 gateway=09.SXT disabled=yes
/ip firewall nat
Получаю следующий гемморой, с какого-то лешего включается изоляция узлов сети и они между собой не видят друг друга, только основной рутер.
При пропадании обоих каналов НЕ включается резервный.

Вроде логика правильная, понять не могу.
Дома: CCR2004 (7-ISP(GPON)белый IP)
Аватара пользователя
Chupaka
Сообщения: 4086
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск

Re: 2 WAN + LTE как бэкап

Сообщение Chupaka »

Добрый
Sir_Prikol писал(а): 14 апр 2018, 15:30 Получаю следующий гемморой, с какого-то лешего включается изоляция узлов сети и они между собой не видят друг друга, только основной рутер.
Изоляция _каких_ узлов? А то вы схему сети забыли прикрепить.
Sir_Prikol писал(а): 14 апр 2018, 15:30 При пропадании обоих каналов НЕ включается резервный.
Не совсем понятно, зачем вы приплели BOGONS сюда, но в целом всё должно работать. Если при отключении обоих каналов не работает бэкап - надо смотреть, в каком состоянии маршруты в этот момент находятся. "gateway=09.SXT" - это что за интерфейс? PPP или Ethernet? В последнем случае он явно работает не так, как вы ожидаете - надо указывать IP-адрес шлюза, а не название интерфейса.
Аватара пользователя
Sir_Prikol
Сообщения: 562
Зарегистрирован: 14 апр 2018, 15:21
Откуда: СССР

Re: 2 WAN + LTE как бэкап

Сообщение Sir_Prikol »

Изоляция _каких_ узлов? А то вы схему сети забыли прикрепить.
Вся локальная подсеть 192.168.7.0/24

Не совсем понятно, зачем вы приплели BOGONS сюда, но в целом всё должно работать. Если при отключении обоих каналов не работает бэкап - надо смотреть, в каком состоянии маршруты в этот момент находятся. "gateway=09.SXT" - это что за интерфейс? PPP или Ethernet? В последнем случае он явно работает не так, как вы ожидаете - надо указывать IP-адрес шлюза, а не название интерфейса.
09.SXT - это SXT LTE, в нём кстановлена симка и DHCP сервер, соответственно чистый ethernet в основном рутере как DHCP-Client
Дома: CCR2004 (7-ISP(GPON)белый IP)
Аватара пользователя
Sir_Prikol
Сообщения: 562
Зарегистрирован: 14 апр 2018, 15:21
Откуда: СССР

Re: 2 WAN + LTE как бэкап

Сообщение Sir_Prikol »

Сейчас конфигурация выглядит так :

ip route

Код: Выделить всё

/ip route
add comment="Local IP to Yota" \
    distance=1 gateway=198.51.100.1 routing-mark=to_yota
add distance=1 gateway=123.123.123.0 routing-mark=ISP1
add distance=1 gateway=198.51.100.1 routing-mark=ISP2
add check-gateway=ping distance=1 gateway=8.8.8.8 target-scope=30
add check-gateway=ping distance=2 gateway=8.8.4.4 target-scope=30
add distance=1 dst-address=8.8.4.4/32 gateway=198.51.100.1 scope=10
add distance=1 dst-address=8.8.8.8/32 gateway=123.123.123.0 scope=10
add distance=1 dst-address=198.51.100.0/24 gateway=09.SXT pref-src=\
    198.51.100.254 scope=10
/ip route rule
add action=lookup-only-in-table routing-mark=ISP1 table=ISP1
add action=lookup-only-in-table routing-mark=ISP2 table=ISP2
ip firewall mangle

Код: Выделить всё

/ip firewall mangle
add action=change-ttl chain=prerouting comment="\CF\F0\FF\F7\E5\EC \F1\E5\F2\
    \FC \EE\F2 \E2\FB\F8\E5\F1\F2\EE\FF\F9\E5\E3\EE \EF\F0\EE\E2\E0\E9\E4\E5\
    \F0\E0" disabled=yes new-ttl=increment:1 passthrough=yes
add action=change-mss chain=forward disabled=yes new-mss=1360 passthrough=yes \
    protocol=tcp tcp-flags=syn tcp-mss=1453-65535
add action=mark-routing chain=prerouting comment="\C2\ED\F3\F2\F0\E5\ED\ED\E8\
    \E9 IP \F7\E5\F0\E5\E7 Yota (\C4\FE\E4\E8\EA)" new-routing-mark=to_yota \
    passthrough=yes src-address=192.168.7.15
add action=mark-connection chain=input in-interface=00.01_pppoe-dialog \
    new-connection-mark=Input/ISP1 passthrough=yes
add action=mark-routing chain=output connection-mark=Input/ISP1 \
    new-routing-mark=ISP1 passthrough=no
add action=mark-connection chain=input in-interface=09.SXT \
    new-connection-mark=Input/ISP2 passthrough=yes
add action=mark-routing chain=output connection-mark=Input/ISP2 \
    new-routing-mark=ISP2 passthrough=no
add action=mark-routing chain=output dst-address-list=!BOGONS \
    new-routing-mark=ISP1 passthrough=yes src-address=123.123.123.166
add action=mark-routing chain=output dst-address-list=!BOGONS \
    new-routing-mark=ISP2 passthrough=yes src-address=198.51.100.254
add action=mark-connection chain=prerouting in-interface=00.01_pppoe-dialog \
    new-connection-mark=Forward/ISP1 passthrough=yes
add action=mark-routing chain=prerouting connection-mark=Forward/ISP1 \
    in-interface=!00.01_pppoe-dialog new-routing-mark=ISP1 passthrough=no
add action=mark-connection chain=prerouting in-interface=09.SXT \
    new-connection-mark=Forward/ISP2 passthrough=yes
add action=mark-routing chain=prerouting connection-mark=Forward/ISP2 \
    in-interface=!09.SXT new-routing-mark=ISP2 passthrough=no
    
В таком виде Failover работает, но это 1 WAN и резервный канал
Просто добавление второго WAN тоже работает, но при этом я не могу настроить балансировку. Логики не вижу

Вот так нет балансировки каналов

Код: Выделить всё

/ip firewall mangle
add action=mark-connection chain=input in-interface=00.01_pppoe-dialog new-connection-mark=Input/ISP1
add action=mark-routing chain=output connection-mark=Input/ISP1 new-routing-mark=ISP1 passthrough=no
add action=mark-connection chain=input in-interface=00.02_pppoe-dialog new-connection-mark=Input/ISP2
add action=mark-routing chain=output connection-mark=Input/ISP2 new-routing-mark=ISP2 passthrough=no
add action=mark-connection chain=input in-interface=09.SXT new-connection-mark=Input/ISP3
add action=mark-routing chain=output connection-mark=Input/ISP3 new-routing-mark=ISP3 passthrough=no
/ip route rule
add action=lookup-only-in-table routing-mark=ISP1 table=ISP1
add action=lookup-only-in-table routing-mark=ISP2 table=ISP2
add action=lookup-only-in-table routing-mark=ISP3 table=ISP3
/ip route
add distance=1 gateway=123.123.123.0 routing-mark=ISP1
add distance=1 gateway=123.123.124.0 routing-mark=ISP2
add distance=1 gateway=198.51.100.1 routing-mark=ISP3
add distance=1 dst-address=8.8.4.4/32 gateway=198.51.100.1 scope=10
add distance=1 dst-address=8.8.8.8/32 gateway=123.123.123.0 scope=10
add distance=1 dst-address=8.8.8.8/32 gateway=123.123.124.0 scope=10
add check-gateway=ping distance=1 gateway=8.8.8.8 target-scope=30
add check-gateway=ping distance=2 gateway=8.8.4.4 target-scope=30
add check-gateway=ping distance=3 gateway=8.8.4.4 target-scope=30
/ip firewall address-list
add list="BOGONS" address=0.0.0.0/8
add list="BOGONS" address=10.0.0.0/8
add list="BOGONS" address=100.64.0.0/10
add list="BOGONS" address=127.0.0.0/8
add list="BOGONS" address=169.254.0.0/16
add list="BOGONS" address=172.16.0.0/12
add list="BOGONS" address=192.0.0.0/24
add list="BOGONS" address=192.0.2.0/24
add list="BOGONS" address=192.168.0.0/16
add list="BOGONS" address=198.18.0.0/15
add list="BOGONS" address=203.0.113.0/24
add list="BOGONS" address=224.0.0.0/3
/ip firewall mangle
add action=mark-routing chain=output dst-address-list=!BOGONS new-routing-mark=ISP1 src-address=123.123.123.166
add action=mark-routing chain=output dst-address-list=!BOGONS new-routing-mark=ISP2 src-address=198.51.100.254
add action=mark-routing chain=output dst-address-list=!BOGONS new-routing-mark=ISP3 src-address=123.123.124.133
/ip firewall mangle
add action=mark-connection chain=prerouting in-interface=00.01_ppoe-dialog new-connection-mark=Forward/ISP1
add action=mark-routing chain=prerouting connection-mark=Forward/ISP1 in-interface=!00.01_ppoe-dialog new-routing-mark=ISP1 passthrough=no
add action=mark-connection chain=prerouting in-interface=00.02_ppoe-dialog new-connection-mark=Forward/ISP2
add action=mark-routing chain=prerouting connection-mark=Forward/ISP2 in-interface=!00.02_ppoe-dialog new-routing-mark=ISP2 passthrough=no
add action=mark-connection chain=prerouting in-interface=09.SXT new-connection-mark=Forward/ISP3
add action=mark-routing chain=prerouting connection-mark=Forward/ISP3 in-interface=!09.SXT new-routing-mark=ISP3 passthrough=no
Дома: CCR2004 (7-ISP(GPON)белый IP)
Аватара пользователя
Chupaka
Сообщения: 4086
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск

Re: 2 WAN + LTE как бэкап

Сообщение Chupaka »

Как я и сказал, надо указывать не название интерфейса, а адрес шлюза (SXT). В первом случае роутер думает, что все ресурсы находятся непосредственно за интерфейсом - а это не так, поскольку все пакеты надо пускать на конкретный шлюз (MAC-адрес SXT). Финт с указанием интерфейса работает только для PPP-интерфейсов, для широковещательных сетей не работает.
Аватара пользователя
Sir_Prikol
Сообщения: 562
Зарегистрирован: 14 апр 2018, 15:21
Откуда: СССР

Re: 2 WAN + LTE как бэкап

Сообщение Sir_Prikol »

WAN1 = 123.123.123.166
WAN2 = 123.123.124.123
09.SXT = 198.51.100.254
gate WAN1 = 123.123.123.0
gate WAN2 = 123.123.124.0
gate 09.SXT = 198.51.100.1

WAN+WiFi = 192.168.7.0/24 (локалка)

Переуказал названия интерфейса, переключение заработало, но локалки как не было так и нет :(

UPD
Нашёл, исключил из address-list 192.168.0.0/16 - локалка появилась
Но тогда я не понимаю где не маркировать локальный траффик
Последний раз редактировалось Sir_Prikol 14 апр 2018, 17:25, всего редактировалось 1 раз.
Дома: CCR2004 (7-ISP(GPON)белый IP)
Аватара пользователя
Chupaka
Сообщения: 4086
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск

Re: 2 WAN + LTE как бэкап

Сообщение Chupaka »

А как у вас где локалка ходит? От 192.168.7.4 нет доступа к 192.168.7.38? Если там действительно одна подсеть - то все эти хождения должны происходить напрямую, без роутера. Как роутер может влиять - непонятно.

Суть, подозреваю, в том, что вы все пакеты хватаете и балансируете в Интернет, а роутер каким-то образом до них дотягивается. Достаточно прописать что-то вроде

Код: Выделить всё

/ip firewall mangle add chain=prerouting dst-address=192.168.0.0/16 action=accept place-before=0
В результате пакеты, предназначенные локалке, метиться не будут - и будут ходить по правилам в таблице маршрутизации main.
Аватара пользователя
Sir_Prikol
Сообщения: 562
Зарегистрирован: 14 апр 2018, 15:21
Откуда: СССР

Re: 2 WAN + LTE как бэкап

Сообщение Sir_Prikol »

Chupaka писал(а): 14 апр 2018, 17:25 А как у вас где локалка ходит? От 192.168.7.4 нет доступа к 192.168.7.38? Если там действительно одна подсеть - то все эти хождения должны происходить напрямую, без роутера. Как роутер может влиять - непонятно.

Суть, подозреваю, в том, что вы все пакеты хватаете и балансируете в Интернет, а роутер каким-то образом до них дотягивается. Достаточно прописать что-то вроде

Код: Выделить всё

/ip firewall mangle add chain=prerouting dst-address=192.168.0.0/16 action=accept place-before=0
В результате пакеты, предназначенные локалке, метиться не будут - и будут ходить по правилам в таблице маршрутизации main.
Работает
Спасибо

Суть локалки такова, что часть сервисов завязаны на доменные имена, и чтоб не возится со статическими DNS (иногда забываю) просто поднял Hairpin Nat. И внутри сети хожу по доменным именам
Дома: CCR2004 (7-ISP(GPON)белый IP)
Аватара пользователя
Sir_Prikol
Сообщения: 562
Зарегистрирован: 14 апр 2018, 15:21
Откуда: СССР

Re: 2 WAN + LTE как бэкап

Сообщение Sir_Prikol »

Я так понимаю что с NTH у меня была такая-же фигня, не правильно указан гейт для интерфейса :)
Дома: CCR2004 (7-ISP(GPON)белый IP)
Аватара пользователя
Chupaka
Сообщения: 4086
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск

Re: 2 WAN + LTE как бэкап

Сообщение Chupaka »

Да, именно так :) Но PCQ всяко полезнее, чем Nth =)
Аватара пользователя
Sir_Prikol
Сообщения: 562
Зарегистрирован: 14 апр 2018, 15:21
Откуда: СССР

Re: 2 WAN + LTE как бэкап

Сообщение Sir_Prikol »

Chupaka писал(а): 14 апр 2018, 17:35 Да, именно так :) Но PCQ всяко полезнее, чем Nth =)
Согласен, единственный плюс nth я вижу только в том, чтобы сессии не рвались когда надо пройти множественную авторизацию, а так только PCC :)


Рано радовался :(

После всех манипуляций перестал работать prerouting на конкретный локальный адрес через LTE

Код: Выделить всё

/ip firewall mangle add action=mark-routing chain=prerouting disabled=no new-routing-mark=to_yota passthrough=yes src-address=192.168.7.18

Код: Выделить всё

/ip route add comment="Local IP to Yota" distance=1 gateway=198.51.100.1 routing-mark=to_yota
Упорно ходит через основные интерфейсы

Правило поднято до балансировки

UPD
Опустил в самый низ, mangle заработало, с failoverom (изначально) приходилось это-же правило поднимать наверх :)

Спасибо!
Тему можно закрывать
Дома: CCR2004 (7-ISP(GPON)белый IP)
Аватара пользователя
Chupaka
Сообщения: 4086
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск

Re: 2 WAN + LTE как бэкап

Сообщение Chupaka »

Sir_Prikol писал(а): 14 апр 2018, 17:48 UPD
Опустил в самый низ, mangle заработало, с failoverom (изначально) приходилось это-же правило поднимать наверх :)
Потому что passthrough=yes - правило маркировало роутинг, но обработка правил не прекращалась, и дальнейшие правила перемаркировывали на обычную балансировку.
Аватара пользователя
Sir_Prikol
Сообщения: 562
Зарегистрирован: 14 апр 2018, 15:21
Откуда: СССР

Re: 2 WAN + LTE как бэкап

Сообщение Sir_Prikol »

Ясно, спасибо.
Вот не знаю, поднимать вторую тему или здесь продолжить, чтоб остальных не запутывать.

4 разных IPv6 WAN. 2 от провайдера, 2 от HE.

С учётом того, что в IPv6 нет маркировки маршрутов, как там организовать балансировку? Я добился пока только одного, что из своей подсети, ходит по своему маршруту, но с балансировкой не сложилось. Ибо, как я понимаю, нельзя на клиентских машинах добавить несколько link lical адресов.

Но, видимо, это уже другая тема.
Дома: CCR2004 (7-ISP(GPON)белый IP)
Аватара пользователя
Chupaka
Сообщения: 4086
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск

Re: 2 WAN + LTE как бэкап

Сообщение Chupaka »

Совершенно другая тема, поэтому вкратце: основа балансировки - NAT. В RouterOS ipv6 ната нет, так что ничего толком пока не получится, видимо, сделать :(
Аватара пользователя
Sir_Prikol
Сообщения: 562
Зарегистрирован: 14 апр 2018, 15:21
Откуда: СССР

Re: 2 WAN + LTE как бэкап

Сообщение Sir_Prikol »

Да, чаастично сделал, но не понимаю как, и не понимаю как сделать только один link local для раздачи. Упорно раздаёт все 4. Посмотрим что в сегодняшнем релизе (6.42) поменялось, там были изменения на ipv6.
Дома: CCR2004 (7-ISP(GPON)белый IP)