PCC на 3 провайдера
-
- Сообщения: 45
- Зарегистрирован: 29 апр 2019, 16:22
Re: PCC на 3 провайдера
И вот лог по ipsec
И мои маршруты к каждой удалённой точке IPSec-тоннеля
/ip route
add distance=1 gateway=pppoe-out1_ByFly routing-mark=ISP3-WAN3
add distance=1 gateway=82.1.1.125 routing-mark=ISP1-WAN1
add distance=1 gateway=82.2.2.117 routing-mark=ISP2-WAN2
add comment="route for Office 708" distance=1 dst-address=37.3.3.118/32 gateway=pppoe-out1_ByFly
add comment="route for Offece 401" distance=1 dst-address=37.4.4.66/32 gateway=pppoe-out1_ByFly
add comment=IPsec-LOS2-kerio distance=1 dst-address=178.5.5.218/32 gateway=ether1-wan1
add comment=IPsec-Active distance=1 dst-address=193.6.6.183/32 gateway=ether2-wan2
Ни с того, ни с сего тоннель может отвалится и начать обмениваться ключами
И мои маршруты к каждой удалённой точке IPSec-тоннеля
/ip route
add distance=1 gateway=pppoe-out1_ByFly routing-mark=ISP3-WAN3
add distance=1 gateway=82.1.1.125 routing-mark=ISP1-WAN1
add distance=1 gateway=82.2.2.117 routing-mark=ISP2-WAN2
add comment="route for Office 708" distance=1 dst-address=37.3.3.118/32 gateway=pppoe-out1_ByFly
add comment="route for Offece 401" distance=1 dst-address=37.4.4.66/32 gateway=pppoe-out1_ByFly
add comment=IPsec-LOS2-kerio distance=1 dst-address=178.5.5.218/32 gateway=ether1-wan1
add comment=IPsec-Active distance=1 dst-address=193.6.6.183/32 gateway=ether2-wan2
Ни с того, ни с сего тоннель может отвалится и начать обмениваться ключами
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- Сообщения: 3915
- Зарегистрирован: 29 фев 2016, 15:26
- Откуда: Минск
Re: PCC на 3 провайдера
Чтобы тоннели IPSec не попадали под policy routing, либо сделайте Accept в Firewall Mangle output для dst-address=адреса серверов, либо что-то вроде
Код: Выделить всё
/ip route rule
add dst-address=37.3.3.118/32 table=main
add dst-address=37.4.4.66/32 table=main
add dst-address=178.5.5.218/32 table=main
add dst-address=193.6.6.183/32 table=main
-
- Сообщения: 45
- Зарегистрирован: 29 апр 2019, 16:22
Re: PCC на 3 провайдера
Оставил мои маршруты к каждой удалённой точке IPSec-тоннеля
/ip route
add distance=1 gateway=pppoe-out1_ByFly routing-mark=ISP3-WAN3
add distance=1 gateway=82.1.1.125 routing-mark=ISP1-WAN1
add distance=1 gateway=82.2.2.117 routing-mark=ISP2-WAN2
add comment="route for Office 708" distance=1 dst-address=37.3.3.118/32 gateway=pppoe-out1_ByFly
add comment="route for Offece 401" distance=1 dst-address=37.4.4.66/32 gateway=pppoe-out1_ByFly
add comment=IPsec-LOS2-kerio distance=1 dst-address=178.5.5.218/32 gateway=ether1-wan1
add comment=IPsec-Active distance=1 dst-address=193.6.6.183/32 gateway=ether2-wan2
Добавил rule по вашей рекомендации
/ip route rule
add dst-address=37.3.3.118/32 table=main
add dst-address=37.4.4.66/32 table=main
add dst-address=178.5.5.218/32 table=main
add dst-address=193.6.6.183/32 table=main
И те тоннели которые работали, перестали работать. Начали переподключаться
/ip route
add distance=1 gateway=pppoe-out1_ByFly routing-mark=ISP3-WAN3
add distance=1 gateway=82.1.1.125 routing-mark=ISP1-WAN1
add distance=1 gateway=82.2.2.117 routing-mark=ISP2-WAN2
add comment="route for Office 708" distance=1 dst-address=37.3.3.118/32 gateway=pppoe-out1_ByFly
add comment="route for Offece 401" distance=1 dst-address=37.4.4.66/32 gateway=pppoe-out1_ByFly
add comment=IPsec-LOS2-kerio distance=1 dst-address=178.5.5.218/32 gateway=ether1-wan1
add comment=IPsec-Active distance=1 dst-address=193.6.6.183/32 gateway=ether2-wan2
Добавил rule по вашей рекомендации
/ip route rule
add dst-address=37.3.3.118/32 table=main
add dst-address=37.4.4.66/32 table=main
add dst-address=178.5.5.218/32 table=main
add dst-address=193.6.6.183/32 table=main
И те тоннели которые работали, перестали работать. Начали переподключаться
-
- Сообщения: 3915
- Зарегистрирован: 29 фев 2016, 15:26
- Откуда: Минск
Re: PCC на 3 провайдера
На той стороне адреса удалённых сторон тоннелей соответствуют адресам на соответствующих интерфейсах роутера?..
-
- Сообщения: 45
- Зарегистрирован: 29 апр 2019, 16:22
Re: PCC на 3 провайдера
Ну конечно
-
- Сообщения: 3915
- Зарегистрирован: 29 фев 2016, 15:26
- Откуда: Минск
Re: PCC на 3 провайдера
Ну, я бы теперь брал в руки какой-нибудь Tools -> Packet Sniffer и смотрел, куда уходят и приходят пакеты IPSec...
-
- Сообщения: 45
- Зарегистрирован: 29 апр 2019, 16:22
Re: PCC на 3 провайдера
Добавил в mangle 3 правила на input и вреде как проблема решилась с ipsec
/ip firewall mangle
add action=mark-connection chain=input in-interface=ether1-wan1 new-connection-mark=ISP3-WAN1-connection passthrough=yes
add action=mark-connection chain=input in-interface=ether2-wan2 new-connection-mark=ISP3-WAN2-connection passthrough=yes
add action=mark-connection chain=input in-interface=pppoe-out1_ByFly new-connection-mark=ISP3-WAN3-connection passthrough=yes
В итоге mangle получился такой
/ip firewall mangle
add action=mark-connection chain=input in-interface=ether1-wan1 new-connection-mark=ISP3-WAN1-connection passthrough=yes
add action=mark-connection chain=input in-interface=ether2-wan2 new-connection-mark=ISP3-WAN2-connection passthrough=yes
add action=mark-connection chain=input in-interface=pppoe-out1_ByFly new-connection-mark=ISP3-WAN3-connection passthrough=yes
add action=mark-connection chain=prerouting comment="Per Connection Classifier" connection-state=new new-connection-mark=ISP3-WAN1-connection passthrough=yes per-connection-classifier=both-addresses-and-ports:3/0
add action=mark-connection chain=prerouting connection-state=new new-connection-mark=ISP3-WAN2-connection passthrough=yes per-connection-classifier=both-addresses-and-ports:3/1
add action=mark-connection chain=prerouting connection-state=new new-connection-mark=ISP3-WAN3-connection passthrough=yes per-connection-classifier=both-addresses-and-ports:3/2
add action=mark-routing chain=prerouting connection-mark=ISP3-WAN1-connection new-routing-mark=ISP1-WAN1 passthrough=yes
add action=mark-routing chain=prerouting connection-mark=ISP3-WAN2-connection new-routing-mark=ISP2-WAN2 passthrough=yes
add action=mark-routing chain=prerouting connection-mark=ISP3-WAN3-connection new-routing-mark=ISP3-WAN3 passthrough=yes
add action=mark-routing chain=output comment="IPsec Routing Mark" connection-mark=ISP3-WAN1-connection new-routing-mark=ISP1-WAN1 passthrough=yes
add action=mark-routing chain=output connection-mark=ISP3-WAN2-connection new-routing-mark=ISP2-WAN2 passthrough=yes
add action=mark-routing chain=output connection-mark=ISP3-WAN3-connection new-routing-mark=ISP3-WAN3 passthrough=yes
/ip firewall mangle
add action=mark-connection chain=input in-interface=ether1-wan1 new-connection-mark=ISP3-WAN1-connection passthrough=yes
add action=mark-connection chain=input in-interface=ether2-wan2 new-connection-mark=ISP3-WAN2-connection passthrough=yes
add action=mark-connection chain=input in-interface=pppoe-out1_ByFly new-connection-mark=ISP3-WAN3-connection passthrough=yes
В итоге mangle получился такой
/ip firewall mangle
add action=mark-connection chain=input in-interface=ether1-wan1 new-connection-mark=ISP3-WAN1-connection passthrough=yes
add action=mark-connection chain=input in-interface=ether2-wan2 new-connection-mark=ISP3-WAN2-connection passthrough=yes
add action=mark-connection chain=input in-interface=pppoe-out1_ByFly new-connection-mark=ISP3-WAN3-connection passthrough=yes
add action=mark-connection chain=prerouting comment="Per Connection Classifier" connection-state=new new-connection-mark=ISP3-WAN1-connection passthrough=yes per-connection-classifier=both-addresses-and-ports:3/0
add action=mark-connection chain=prerouting connection-state=new new-connection-mark=ISP3-WAN2-connection passthrough=yes per-connection-classifier=both-addresses-and-ports:3/1
add action=mark-connection chain=prerouting connection-state=new new-connection-mark=ISP3-WAN3-connection passthrough=yes per-connection-classifier=both-addresses-and-ports:3/2
add action=mark-routing chain=prerouting connection-mark=ISP3-WAN1-connection new-routing-mark=ISP1-WAN1 passthrough=yes
add action=mark-routing chain=prerouting connection-mark=ISP3-WAN2-connection new-routing-mark=ISP2-WAN2 passthrough=yes
add action=mark-routing chain=prerouting connection-mark=ISP3-WAN3-connection new-routing-mark=ISP3-WAN3 passthrough=yes
add action=mark-routing chain=output comment="IPsec Routing Mark" connection-mark=ISP3-WAN1-connection new-routing-mark=ISP1-WAN1 passthrough=yes
add action=mark-routing chain=output connection-mark=ISP3-WAN2-connection new-routing-mark=ISP2-WAN2 passthrough=yes
add action=mark-routing chain=output connection-mark=ISP3-WAN3-connection new-routing-mark=ISP3-WAN3 passthrough=yes
Последний раз редактировалось joker 13 ноя 2019, 14:59, всего редактировалось 1 раз.
-
- Сообщения: 45
- Зарегистрирован: 29 апр 2019, 16:22
Re: PCC на 3 провайдера
Подскажите!
А как теперь побороть частые перелогины (переавторизацию) с внешними приложениям, например на наш имеющийся корпоративный портал, клиент-банки и даже на ваш форум forum.mikrotik.bу ?
Вот так пробовал сделать, добавляя такое правило с внешним адресом, например корпоративного портала: (периодически выбрасывает на страницу авторизации)
Ставил выше всех правил в таблице
/ip firewall mangle
add action=mark-connection chain=prerouting dst-address=147.149.224.43 new-connection-mark=my.000000.by passthrough=yes
add action=mark-routing chain=prerouting connection-mark=my.000000.by dst-address=147.149.224.43 new-routing-mark=ISP1-WAN1 passthrough=yes
Вот так ещё делал, привязывая ip портала к шлюзу WAN1, отключая перед этим правила созданные для портала в mangle.
/ip route
add comment="Route portal" distance=1 dst-address=147.149.224.43/32 gateway=82.1.1.125
А как теперь побороть частые перелогины (переавторизацию) с внешними приложениям, например на наш имеющийся корпоративный портал, клиент-банки и даже на ваш форум forum.mikrotik.bу ?
Вот так пробовал сделать, добавляя такое правило с внешним адресом, например корпоративного портала: (периодически выбрасывает на страницу авторизации)
Ставил выше всех правил в таблице
/ip firewall mangle
add action=mark-connection chain=prerouting dst-address=147.149.224.43 new-connection-mark=my.000000.by passthrough=yes
add action=mark-routing chain=prerouting connection-mark=my.000000.by dst-address=147.149.224.43 new-routing-mark=ISP1-WAN1 passthrough=yes
Вот так ещё делал, привязывая ip портала к шлюзу WAN1, отключая перед этим правила созданные для портала в mangle.
/ip route
add comment="Route portal" distance=1 dst-address=147.149.224.43/32 gateway=82.1.1.125
-
- Сообщения: 3915
- Зарегистрирован: 29 фев 2016, 15:26
- Откуда: Минск
Re: PCC на 3 провайдера
А вы не хотите просто per-connection-classifier=both-addresses-and-ports сменить на per-connection-classifier=src-address? Если не хотите - то сделайте два набора правил:
1) порты 80/tcp,443/tcp - per-connection-classifier=src-address
2) всё остальное - per-connection-classifier=both-addresses-and-ports
Проблема возникает потому, что несколько соединений даже к одному IP могут пойти через разные каналы.
1) порты 80/tcp,443/tcp - per-connection-classifier=src-address
2) всё остальное - per-connection-classifier=both-addresses-and-ports
Проблема возникает потому, что несколько соединений даже к одному IP могут пойти через разные каналы.
-
- Сообщения: 3915
- Зарегистрирован: 29 фев 2016, 15:26
- Откуда: Минск
-
- Сообщения: 45
- Зарегистрирован: 29 апр 2019, 16:22
Re: PCC на 3 провайдера
Сделал по вашей рекомендации.Chupaka писал(а): ↑13 ноя 2019, 15:58 А вы не хотите просто per-connection-classifier=both-addresses-and-ports сменить на per-connection-classifier=src-address? Если не хотите - то сделайте два набора правил:
1) порты 80/tcp,443/tcp - per-connection-classifier=src-address
2) всё остальное - per-connection-classifier=both-addresses-and-ports
Проблема возникает потому, что несколько соединений даже к одному IP могут пойти через разные каналы.
Гляньте своим профессиональным глазом, так правильно будет?
И где правильно поставить passthrough=yes или no
Код: Выделить всё
/ip firewall mangle
add action=mark-connection chain=input comment="Input Mark connection" in-interface=ether1-wan1 new-connection-mark=ISP3-WAN1-connection passthrough=yes
add action=mark-connection chain=input in-interface=ether2-wan2 new-connection-mark=ISP3-WAN2-connection passthrough=yes
add action=mark-connection chain=input in-interface=pppoe-out1_ByFly new-connection-mark=ISP3-WAN3-connection passthrough=yes
add action=mark-connection chain=prerouting comment="Per Connection Classifier HTTPS HTTP" connection-state=new disabled=yes dst-port=80,443 new-connection-mark=ISP1-WAN1-80-443 passthrough=yes per-connection-classifier=src-address:3/0 protocol=\tcp
add action=mark-connection chain=prerouting connection-state=new disabled=yes dst-port=80,443 new-connection-mark=ISP2-WAN2-80-443 passthrough=yes per-connection-classifier=src-address:3/1 protocol=tcp
add action=mark-connection chain=prerouting connection-state=new disabled=yes dst-port=80,443 new-connection-mark=ISP3-WAN3-80-443 passthrough=yes per-connection-classifier=src-address:3/2 protocol=tcp
add action=mark-routing chain=prerouting connection-mark=ISP1-WAN1-80-443 disabled=yes new-routing-mark=80_443-ISP1-WAN1 passthrough=yes
add action=mark-routing chain=prerouting connection-mark=ISP2-WAN2-80-443 disabled=yes new-routing-mark=80_443-ISP2-WAN2 passthrough=yes
add action=mark-routing chain=prerouting connection-mark=ISP3-WAN3-80-443 disabled=yes new-routing-mark=80_443-ISP3-WAN3 passthrough=yes
add action=mark-connection chain=prerouting comment="Per Connection Classifier" connection-state=new new-connection-mark=ISP3-WAN1-connection passthrough=yes per-connection-classifier=both-addresses-and-ports:3/0
add action=mark-connection chain=prerouting connection-state=new new-connection-mark=ISP3-WAN2-connection passthrough=yes per-connection-classifier=both-addresses-and-ports:3/1
add action=mark-connection chain=prerouting connection-state=new new-connection-mark=ISP3-WAN3-connection passthrough=yes per-connection-classifier=both-addresses-and-ports:3/2
add action=mark-routing chain=prerouting connection-mark=ISP3-WAN1-connection new-routing-mark=ISP1-WAN1 passthrough=yes
add action=mark-routing chain=prerouting connection-mark=ISP3-WAN2-connection new-routing-mark=ISP2-WAN2 passthrough=yes
add action=mark-routing chain=prerouting connection-mark=ISP3-WAN3-connection new-routing-mark=ISP3-WAN3 passthrough=yes
add action=mark-routing chain=output comment="Output Mark Routing" connection-mark=ISP3-WAN1-connection new-routing-mark=ISP1-WAN1 passthrough=yes
add action=mark-routing chain=output connection-mark=ISP3-WAN2-connection new-routing-mark=ISP2-WAN2 passthrough=yes
add action=mark-routing chain=output connection-mark=ISP3-WAN3-connection new-routing-mark=ISP3-WAN3 passthrough=yes
Код: Выделить всё
/ip route
add distance=1 gateway=pppoe-out1_ByFly routing-mark=ISP3-WAN3
add distance=1 gateway=82.1.1.125 routing-mark=ISP1-WAN1
add distance=1 gateway=82.2.2.117 routing-mark=ISP2-WAN2
add comment=lan-out-80_443-ISP1-WAN1 disabled=yes distance=1 gateway=82.1.1.125 routing-mark=80_443-ISP1-WAN1
add disabled=yes distance=1 gateway=82.2.2.117 routing-mark=80_443-ISP2-WAN2
add disabled=yes distance=1 gateway=pppoe-out1_ByFly routing-mark=80_443-ISP3-WAN3
-
- Сообщения: 3915
- Зарегистрирован: 29 фев 2016, 15:26
- Откуда: Минск
Re: PCC на 3 провайдера
В три правила comment="Per Connection Classifier" и дальше добавьте connection-mark=none, чтобы они не перемаркировывали то, что вы в "Per Connection Classifier HTTPS HTTP" уже намаркировали.
Ну, если дальнейшая обработка пакета в данной цепочке не требуется после срабатывания заданного правила - тогда =no, если дальше что-то ещё должно с пакетом произойти (навесить, например, routing mark вдобавок к только что накинутой connection mark) - тогда =yes
-
- Сообщения: 45
- Зарегистрирован: 29 апр 2019, 16:22
Re: PCC на 3 провайдера
Если я сделаю в 3-х правилах под комментарием "Per Connection Classifier" action=mark-connection new-connection-mark=no-mark , то следующие 3 правила action=mark-routing не будут иметь смысла. Маркированных коннекшинов не будет и в роутинг не чего будет загонять.
-
- Сообщения: 3915
- Зарегистрирован: 29 фев 2016, 15:26
- Откуда: Минск
Re: PCC на 3 провайдера
А вы так не делайте Вы сделайте так, как я написал: connection-mark=no-mark, а не new-connection-mark=no-mark. Т.е. не снимать метку, а НЕ обрабатывать коннекшены, на которых уже есть метка. Ну и routing-mark оставить просто ISP2-WAN2, не надо создавать никаких 80_443-ISP2-WAN2
-
- Сообщения: 10
- Зарегистрирован: 24 янв 2020, 17:57
Re: PCC на 3 провайдера
Chupaka, подскажите, правильно ли я понимаю, что если в данном примере у одного из провайдеров случатся проблемы (шлюз доступен, но трафик дальше него не идёт), то Тик всё равно будет продолжать слать трафик на этого провайдера? Как тогда можно решить проблему с отказоустойчивостью в PCC?
-
- Сообщения: 3915
- Зарегистрирован: 29 фев 2016, 15:26
- Откуда: Минск
Re: PCC на 3 провайдера
Да, всё верно. Для проверки ситуаций вроде "пакеты пропадают внутри провайдера" можно использовать дополнительные скрипты или https://wiki.mikrotik.com/wiki/Advanced ... _Scripting
-
- Сообщения: 10
- Зарегистрирован: 24 янв 2020, 17:57
Re: PCC на 3 провайдера
Посмотрите, пожалуйста, правильно ли я применил рекурсивные маршруты к данному примеру?
Код: Выделить всё
add dst-address=77.88.8.1 gateway=82.1.1.125 scope=10
add dst-address=77.88.8.2 gateway=82.2.2.117 scope=10
add dst-address=77.88.8.3 gateway=pppoe-out1_ByFly scope=10
add distance=1 gateway=77.88.8.1 routing-mark=ISP1-WAN1 check-gateway=ping
add distance=2 gateway=77.88.8.2 routing-mark=ISP1-WAN1 check-gateway=ping
add distance=3 gateway=77.88.8.3 routing-mark=ISP1-WAN1 check-gateway=ping
add distance=1 gateway=77.88.8.2 routing-mark=ISP1-WAN2 check-gateway=ping
add distance=2 gateway=77.88.8.3 routing-mark=ISP1-WAN2 check-gateway=ping
add distance=3 gateway=77.88.8.1 routing-mark=ISP1-WAN2 check-gateway=ping
add distance=1 gateway=77.88.8.3 routing-mark=ISP1-WAN3 check-gateway=ping
add distance=2 gateway=77.88.8.1 routing-mark=ISP1-WAN3 check-gateway=ping
add distance=3 gateway=77.88.8.2 routing-mark=ISP1-WAN3 check-gateway=ping
-
- Сообщения: 3915
- Зарегистрирован: 29 фев 2016, 15:26
- Откуда: Минск
Re: PCC на 3 провайдера
Эх, идея правильная, реализация, к сожалению, в случае с ByFly не сработает из-за "особенностей" RouterOS Там надо сделать так: создать PPP Profile (скопировать текущий), указать ему в Remote Address 77.88.8.3, навесить на подключение pppoe-out1_ByFly и убрать маршрут "add dst-address=77.88.8.3 gateway=pppoe-out1_ByFly scope=10"
-
- Сообщения: 10
- Зарегистрирован: 24 янв 2020, 17:57
Re: PCC на 3 провайдера
Ясно, спасибо. Из Вашего опыта - одного узла на линк в рекурсивном маршруте достаточно для определения "мёртвого" провайдера? И вообще, что лучше - использовать рекурсивные маршруты с несколькими узлами на линк или использовать дополнительные скрипты?
-
- Сообщения: 3915
- Зарегистрирован: 29 фев 2016, 15:26
- Откуда: Минск
Re: PCC на 3 провайдера
Для определения "мёртвого" - определённо достаточно. Больше одного надо для определения "живого", когда пингуемый узел недоступен по своей собственной причине, и провайдер не виноват Вы поработайте в таком режиме, если что-то не понравится - тогда и будете доделывать, согласно новым требованиям.
-
- Сообщения: 10
- Зарегистрирован: 24 янв 2020, 17:57
Re: PCC на 3 провайдера
Спасибо, буду пробовать.
К L2TP это тоже относится?
-
- Сообщения: 3915
- Зарегистрирован: 29 фев 2016, 15:26
- Откуда: Минск
-
- Сообщения: 10
- Зарегистрирован: 24 янв 2020, 17:57
Re: PCC на 3 провайдера
В моём случае 3-го провайдера пока не подключили, поэтому тренируюсь на 2-х имеющихся. Проблема заключается в том, что проверить работоспособность на практике могу только несколько часов в неделю. Вроде PCC работает, но "меня терзают смутные сомнения"... Посмотрите, пожалуйста, конфиг:
Вот в таком виде, если с Тика сделать ping до любого внешнего узла, получаю в ответ "no route to host". Проблема решается добавлением следующих маршрутов:
Так и должно быть? Или у меня где-то ошибка с маркировкой в mangle?
Код: Выделить всё
/ip address
add address=192.168.11.1/24 comment="Local Area" interface=LAN-Bridge network=192.168.11.0
add address=87.*.*.19/28 comment="ISP1" interface=ether6-ISP1 network=87.*.*.16
add address=178.*.*.216/26 comment="ISP2" interface=ether7-ISP2 network=178.*.*.192
Код: Выделить всё
/ip firewall mangle
add action=mark-connection chain=prerouting comment=ISP1 in-interface=ether6-ISP1 new-connection-mark=from-ISP1 passthrough=yes
add action=mark-routing chain=prerouting connection-mark=from-ISP1 new-routing-mark=to-ISP1 passthrough=yes
add action=mark-routing chain=output connection-mark=from-ISP1 new-routing-mark=to-ISP1 passthrough=yes
add action=mark-routing chain=output new-routing-mark=to-ISP1 passthrough=yes src-address=87.*.*.19
add action=mark-connection chain=prerouting comment=ISP2 in-interface=ether7-ISP2 new-connection-mark=from-ISP2 passthrough=yes
add action=mark-routing chain=prerouting connection-mark=from-ISP2 new-routing-mark=to-ISP2 passthrough=yes
add action=mark-routing chain=output connection-mark=from-ISP2 new-routing-mark=to-ISP2 passthrough=yes
add action=mark-routing chain=output new-routing-mark=to-ISP2 passthrough=yes src-address=178.*.*.216
add action=mark-connection chain=prerouting comment="PCC 2/0" connection-state=new dst-address-type=!local new-connection-mark=ISP1-conn passthrough=yes \
per-connection-classifier=both-addresses-and-ports:2/0
add action=mark-connection chain=prerouting comment="PCC 2/1" connection-state=new dst-address-type=!local new-connection-mark=ISP2-conn passthrough=yes \
per-connection-classifier=both-addresses-and-ports:2/1
add action=mark-routing chain=prerouting comment=PCC connection-mark=ISP1-conn new-routing-mark=ISP1 passthrough=yes
add action=mark-routing chain=prerouting connection-mark=ISP2-conn new-routing-mark=ISP2 passthrough=yes
Код: Выделить всё
/ip route rule
add src-address=87.*.*.19/32 table=to-ISP1
add src-address=178.*.*.216/32 table=to-ISP2
add dst-address=192.168.0.0/16 table=main
add dst-address=172.16.0.0/12 table=main
add dst-address=10.0.0.0/8 table=main
add routing-mark=ISP1 table=to-ISP1
add routing-mark=ISP2 table=to-ISP2
Код: Выделить всё
/ip route
add distance=1 gateway=172.29.9.9 routing-mark=ISP1
add distance=2 gateway=172.28.8.8 routing-mark=ISP1
add distance=1 gateway=172.28.8.8 routing-mark=ISP2
add distance=2 gateway=172.29.9.9 routing-mark=ISP2
add distance=1 dst-address=1.0.0.1/32 gateway=178.*.*.193 scope=10
add distance=1 dst-address=77.88.8.1/32 gateway=87.*.*.17 scope=10
add distance=1 dst-address=77.88.8.2/32 gateway=87.*.*.17 scope=10
add distance=1 dst-address=77.88.8.3/32 gateway=178.*.*.193 scope=10
add check-gateway=ping distance=1 dst-address=172.28.8.8/32 gateway=77.88.8.3 scope=10
add check-gateway=ping distance=1 dst-address=172.28.8.8/32 gateway=1.0.0.1 scope=10
add check-gateway=ping distance=1 dst-address=172.29.9.9/32 gateway=77.88.8.1 scope=10
add check-gateway=ping distance=1 dst-address=172.29.9.9/32 gateway=77.88.8.2 scope=10
Код: Выделить всё
/ip route
add check-gateway=ping distance=1 gateway=87.*.*.17
add check-gateway=ping distance=2 gateway=178.*.*.193
-
- Сообщения: 3915
- Зарегистрирован: 29 фев 2016, 15:26
- Откуда: Минск
Re: PCC на 3 провайдера
Так должно быть. Особенность маршрутизации локальных пакетов (например, пинг с роутера): сначала происходит route lookup в таблице main (а в ней у вас сейчас нет маршрутов, поэтому no route to host), а затем в Mangle Output делается routing adjustment (по свеженавешенной routing mark) - и пакет уходит уже в новом направлении.c0v0x писал(а): ↑10 фев 2020, 18:03 Вот в таком виде, если с Тика сделать ping до любого внешнего узла, получаю в ответ "no route to host". Проблема решается добавлением следующих маршрутов:Так и должно быть? Или у меня где-то ошибка с маркировкой в mangle?Код: Выделить всё
/ip route add check-gateway=ping distance=1 gateway=87.*.*.17 add check-gateway=ping distance=2 gateway=178.*.*.193
-
- Сообщения: 10
- Зарегистрирован: 24 янв 2020, 17:57
Re: PCC на 3 провайдера
Кстати, недавно убрали эту статью из Wiki, почему-то...Chupaka писал(а): ↑28 янв 2020, 12:45 Да, всё верно. Для проверки ситуаций вроде "пакеты пропадают внутри провайдера" можно использовать дополнительные скрипты или https://wiki.mikrotik.com/wiki/Advanced ... _Scripting
Применил Ваши рекомендации другому участнику под себя. Посмотрите, пожалуйста, всё ли правильно?Chupaka писал(а): ↑14 ноя 2019, 19:52 А вы так не делайте Вы сделайте так, как я написал: connection-mark=no-mark, а не new-connection-mark=no-mark. Т.е. не снимать метку, а НЕ обрабатывать коннекшены, на которых уже есть метка. Ну и routing-mark оставить просто ISP2-WAN2, не надо создавать никаких 80_443-ISP2-WAN2
Код: Выделить всё
/ip firewall mangle
add action=mark-connection chain=prerouting comment=ISP1 in-interface=ether6-ISP1 new-connection-mark=from-ISP1 passthrough=yes
add action=mark-routing chain=prerouting connection-mark=from-ISP1 new-routing-mark=to-ISP1 passthrough=yes
add action=mark-routing chain=output connection-mark=from-ISP1 new-routing-mark=to-ISP1 passthrough=yes
add action=mark-routing chain=output new-routing-mark=to-ISP1 passthrough=yes src-address=87.*.*.19
add action=mark-connection chain=prerouting comment=ISP2 in-interface=ether7-ISP2 new-connection-mark=from-ISP2 passthrough=yes
add action=mark-routing chain=prerouting connection-mark=from-ISP2 new-routing-mark=to-ISP2 passthrough=yes
add action=mark-routing chain=output connection-mark=from-ISP2 new-routing-mark=to-ISP2 passthrough=yes
add action=mark-routing chain=output new-routing-mark=to-ISP2 passthrough=yes src-address=178.*.*.216
add action=mark-connection chain=prerouting comment="PCC HTTP HTTPS 2/0" connection-state=new dst-address-type=!local dst-port=80,443 new-connection-mark=\
ISP1-conn passthrough=yes per-connection-classifier=src-address:2/0 protocol=tcp
add action=mark-connection chain=prerouting comment="PCC HTTP HTTPS 2/1" connection-state=new dst-address-type=!local dst-port=80,443 new-connection-mark=\
ISP2-conn passthrough=yes per-connection-classifier=src-address:2/1 protocol=tcp
add action=mark-connection chain=prerouting comment="PCC 2/0" connection-mark=no-mark connection-state=new dst-address-type=!local new-connection-mark=\
ISP1-conn passthrough=yes per-connection-classifier=both-addresses-and-ports:2/0
add action=mark-connection chain=prerouting comment="PCC 2/1" connection-mark=no-mark connection-state=new dst-address-type=!local new-connection-mark=\
ISP2-conn passthrough=yes per-connection-classifier=both-addresses-and-ports:2/1
add action=mark-routing chain=prerouting comment=PCC connection-mark=ISP1-conn new-routing-mark=ISP1 passthrough=yes
add action=mark-routing chain=prerouting connection-mark=ISP2-conn new-routing-mark=ISP2 passthrough=yes