У нас есть два провайдера.
Две локальной сети.
LAN1 192.168.0.0/24
LAN2 192.168.1.0/24
LAN1->IPS1
LAN2->IPS2
Реализовано с помощью маркировки трафика
chain=prerouting action=mark-routing new-routing-mark=test1 passthrough=yes src-address=192.168.0.0/24
chain=prerouting action=mark-routing new-routing-mark=test1 passthrough=yes dst-address=192.168.0.0/24
а потом в ip route добавляем :
ip route add gateway=1.1.1.1 routing-mark=test1
ip route add gateway=2.2.2.2
Все нормально работает.
В Интернете встречал подобные инструкции в которых реализовано немного по другому, например добавляют правила в
ip route rule
Теперь добавляем правила маршрутизации:
/ip route rule add dst-address=192.168.0.0/24 action=lookup table=main
/ip route rule add dst-address=192.168.1.0/24 action=lookup table=main
/ip route rule add dst-address=1.1.1.0/30 action=lookup table=main
/ip route rule add dst-address=2.2.2.0/30 action=lookup table=main
/ip route rule add src-address=1.1.1.0/30 action=lookup table=ISP1
/ip route rule add src-address=2.2.2.0/30 action=lookup table=ISP2
/ip route rule add routing-mark=ISP1 action=lookup table=ISP1
/ip route rule add routing-mark=ISP2 action=lookup table=ISP2
У нас в ip route rule ничего не прописано и все работает нормально.
Можете подсказать для чего в ip route rule создавать еще одну таблицу маршрутизации, если и так ip route с параметром routing mark понимает через какого провайдера выходить в Интернет?
Два провайдера
-
- Сообщения: 8
- Зарегистрирован: 09 сен 2017, 14:11
- Откуда: Пенза
Задам свой вопрос тут, чтобы не плодить темы.
Настроил балансировку по этой статье http://wiki.specialistoff.net/index.php/ECMP_load_balancing_with_masquerade
Но в https://habrahabr.ru/post/244385/#comment_10172862 встретил мнение что:
Кроме того, устно услышал мнение, что вместо input надо ставить forward. Потому, что мне нужно сделать проброс порта 80.
Что вы по этому поводу скажите?
Настроил балансировку по этой статье http://wiki.specialistoff.net/index.php/ECMP_load_balancing_with_masquerade
Но в https://habrahabr.ru/post/244385/#comment_10172862 встретил мнение что:
Маркировать СОЕДИНЕНИЯ в цепочке INPUT совершенно бесполезно.
/ip firewall mangle add action=mark-connection chain=input in-interface=ISP1 new-connection-mark=cin_ISP1
/ip firewall mangle add action=mark-connection chain=input in-interface=ISP2 new-connection-mark=cin_ISP2
происходит это потому что цепочка input идёт уже после маршрутизации, а значит первый прилетевший пакет уже прошел маршрутизацию и открыл соединение без марки, и всё что происходит дальше в этом соединении так же не будет маркироваться.
Можете проверить сами, открыть Connection list и поссмотреть какая марка навешиваеться на соединения.
Правильно будет вот так:
/ip firewall mangle add action=mark-connection chain=prerouting in-interface=ISP1 new-connection-mark=cin_ISP1
passthrough=no
Кроме того, устно услышал мнение, что вместо input надо ставить forward. Потому, что мне нужно сделать проброс порта 80.
Что вы по этому поводу скажите?
- Vlad-2
- Модератор
- Сообщения: 2531
- Зарегистрирован: 08 апр 2016, 19:19
- Откуда: Петропавловск-Камчатский (п-ов Камчатка)
- Контактная информация:
Можно и одним, а когда и двумя правилами делать. Есть разные подходы.
Ниже привожу пример как у меня сделано.
На счёт проброса - не вижу проблем, делаете правило проброса, но в нём указываете нужного Вам провайдера, если у провайдера есть стат.адрес внешний,
можете и его указать, чем правило будет более точным, тем оно точно срабатывать будет. Если делать обобщённым, то 80 порт буде доступен с любого провайдера.
Так как маркировка (у меня во всяком случаи) проходит всего и всех снаружи, то такие пробросы работают как они есть, и в них явно указывать через что идти - не надо.
Работает нормально, поверьте.
(Не забудьте отключить WWW службу в микротике, ибо она занимает порт 80, а если она Вам нужна, сместите её скажем на порт 81).
Ниже привожу пример как у меня сделано.
Код: Выделить всё
/ip firewall mangle
add action=mark-connection chain=input comment="Mark-conn input on ISP1_in" in-interface-list=ls1-WAN1 new-connection-mark=ISP1_in passthrough=no
add action=mark-connection chain=input comment="Mark-conn input on ISP2_in" in-interface-list=ls2-WAN2 new-connection-mark=ISP2_in passthrough=no
add action=mark-connection chain=forward comment="Mark-conn forward on ISP1_in to new-mark ISP1_for" in-interface-list=ls1-WAN1 new-connection-mark=ISP1_for passthrough=no
add action=mark-routing chain=prerouting comment="Mark-rout with mark-conn ISP1_for to route via iface of ISP1" connection-mark=ISP1_for new-routing-mark=ISP1_rout passthrough=no src-address-list=LocalNet
add action=mark-connection chain=forward comment="Mark-conn forward on ISP2_in to new-mark ISP2_for" in-interface-list=ls2-WAN2 new-connection-mark=ISP2_for passthrough=no
add action=mark-routing chain=prerouting comment="Mark-rout with mark-conn ISP2_for to route via iface of ISP2" connection-mark=ISP2_for new-routing-mark=ISP2_rout passthrough=no src-address-list=LocalNet
add action=mark-routing chain=output comment="Mark-rout with mark-conn ISP1_in to route via iface ISP1" connection-mark=ISP1_in new-routing-mark=ISP1_rout passthrough=no
add action=mark-routing chain=output comment="Mark-rout with mark-conn ISP2_in to route via iface ISP2" connection-mark=ISP2_in new-routing-mark=ISP2_rout passthrough=no
На счёт проброса - не вижу проблем, делаете правило проброса, но в нём указываете нужного Вам провайдера, если у провайдера есть стат.адрес внешний,
можете и его указать, чем правило будет более точным, тем оно точно срабатывать будет. Если делать обобщённым, то 80 порт буде доступен с любого провайдера.
Так как маркировка (у меня во всяком случаи) проходит всего и всех снаружи, то такие пробросы работают как они есть, и в них явно указывать через что идти - не надо.
Работает нормально, поверьте.
(Не забудьте отключить WWW службу в микротике, ибо она занимает порт 80, а если она Вам нужна, сместите её скажем на порт 81).
-
- Сообщения: 8
- Зарегистрирован: 09 сен 2017, 14:11
- Откуда: Пенза
А для чего 2-мя правилами, если можно одним prerouting`ом?Vlad-2 писал(а):Можно и одним, а когда и двумя правилами делать. Есть разные подходы.
Я в сервисах ограничил доступ к 80 порту только с внутренних адресов.(Не забудьте отключить WWW службу в микротике, ибо она занимает порт 80, а если она Вам нужна, сместите её скажем на порт 81).
- Vlad-2
- Модератор
- Сообщения: 2531
- Зарегистрирован: 08 апр 2016, 19:19
- Откуда: Петропавловск-Камчатский (п-ов Камчатка)
- Контактная информация:
Cyr писал(а):А для чего 2-мя правилами, если можно одним prerouting`ом?
Ну Вы просили уточнений как правильно, я показал как сделано у меня и работает эта схема.
Одним правилом это слишком тривиально, возможно в домашнем роутере, побыстрому
и в рамках простейших задач, да, пойдёт, но в рамках более тонкой настройки - врядли.
Опять же, надо отталкиваться что мы маркируем, когда маркируем айпи адреса, чтобы потом,
их куда то направлять - тут одним правилом и можно обойтись.
А когда надо маркировать входящий, исходящий и промежуточный трафик, то правильнее
это делать отдельными правилами. Также обычно сразу делают прероутинг на марк-роутинг,
но опять же, не все виды трафика так можно отмаркировать, поэтому тренер на курсах
и предупреждал, что правильнее делать маркировку соединений.
Cyr писал(а):Я в сервисах ограничил доступ к 80 порту только с внутренних адресов.
Ну порт то 80 работает(занят), а по-умолчанию, порт доступен на всех интерфейсах,
зачем упрямствовать, уберите временно веб-службу микротика, сделайте проброс,
а потом уже смотрите как они вместе будут работать.
-
- Сообщения: 8
- Зарегистрирован: 09 сен 2017, 14:11
- Откуда: Пенза
А будет ли работать система, если вообще не маркировать трафик?
Указать только роут ECMP:
/ip route add gateway=91.x.x.x,85.x.x.x
И правила роутинга:
/ip route rule add dst-address=192.168.0.0/24 action=lookup table=main
/ip route rule add src-address=91.x.x.x action=lookup table=ISP1
/ip route rule add src-address=85.x.x.x action=lookup table=ISP2
Указать только роут ECMP:
/ip route add gateway=91.x.x.x,85.x.x.x
И правила роутинга:
/ip route rule add dst-address=192.168.0.0/24 action=lookup table=main
/ip route rule add src-address=91.x.x.x action=lookup table=ISP1
/ip route rule add src-address=85.x.x.x action=lookup table=ISP2