Mikrotik. 2 Провайдера. Входящие соединения, а также проброс DST-NAT в локальную сеть, через любого из 2-х провайдеров: различия между версиями
Cless (обсуждение | вклад) м (Cless переименовал страницу Mikrotik. 2 Провайдера. Проброс DST-NAT в локальную сеть через любого из 2-х провайдеров в Mikrotik. 2 Провайдера. Входящие соединения, а также проброс DST-NAT в локальную сеть, через любого из 2-х провайдеров без оставления перенаправления) |
Cless (обсуждение | вклад) |
||
| Строка 2: | Строка 2: | ||
__ОБЯЗАТЕЛЬНОЕ_ОГЛАВЛЕНИЕ__ | __ОБЯЗАТЕЛЬНОЕ_ОГЛАВЛЕНИЕ__ | ||
= Входные данные = | |||
* Имеется 2 провайдера, у обоих есть статический внешний IP-адрес | * Имеется 2 провайдера, у обоих есть статический внешний IP-адрес | ||
* '''''ether3-wan1''''' - интерфейс ISP1 | * '''''ether3-wan1''''' - интерфейс ISP1 | ||
* '''''ether4-wan2''''' - интерфейс ISP2 | * '''''ether4-wan2''''' - интерфейс ISP2 | ||
| Строка 15: | Строка 9: | ||
* '''''172.18.0.129''''' - шлюз ISP2 | * '''''172.18.0.129''''' - шлюз ISP2 | ||
= Задача = | |||
* Необходимо чтобы сам маршрутизатор отвечал (например на '''ICMP''' запрос на внешний провайдерский IP-адрес) во внешку по тому провайдеру, по которому запрос пришел | * Необходимо чтобы сам маршрутизатор отвечал (например на '''ICMP''' запрос на внешний провайдерский IP-адрес) во внешку по тому провайдеру, по которому запрос пришел | ||
* Необходимо чтобы при подключении с внешнего провайдерского интерфейса до внешнего IP-адреса любого из 2-х провайдеров, мы могли подключиться до внутреннего сервера через проброс '''dst-nst''' | * Необходимо чтобы при подключении с внешнего провайдерского интерфейса до внешнего IP-адреса любого из 2-х провайдеров, мы могли подключиться до внутреннего сервера через проброс '''dst-nst''' | ||
== | = Настройка = | ||
== Актуальная рабочая конфигурация == | |||
https://mum.mikrotik.com/presentations/RU18M/presentation_6157_1554717194.pdf | |||
Создаем группу WAN интерфейсов | |||
<code>/interface list</code> | |||
<code>add name=-WAN-</code> | |||
<code>/interface list member</code> | |||
<code>add interface=ether3-wan1 list=-WAN-</code> | |||
<code>add interface=ether4-wan2 list=-WAN-</code> | |||
SRC-NAT на группе WAN интерфейсов | |||
<code>/ip firewall nat</code> | |||
<code>add action=masquerade chain=srcnat comment=NAT_masquerade_wan-all out-interface-list=-WAN-</code> | |||
Маркировка входящих соединений в INPUT самого микрота (например, WINBOX) | |||
<code>/ip firewall mangle</code> | |||
<code>add action=mark-connection chain=input comment=conn-input-from-ISP1 in-interface=ether3-wan1_domru new-connection-mark=conn-input-from-ISP1</code> | |||
<code>add action=mark-connection chain=input comment=conn-input-from-ISP2 in-interface=ether4-wan2_pppoe-client_intercon new-connection-mark=conn-input-from-ISP2</code> | |||
Маркировка входящих соединений DST-NAT (для пробросов порта на хост в локальной сети) | |||
<code>/ip firewall mangle</code> | |||
<code>add action=mark-connection chain=prerouting comment=conn-input-from-ISP1 connection-mark=no-mark in-interface=ether3-wan1_domru new-connection-mark=conn-input-from-ISP1 passthrough=yes</code> | |||
<code>add action=mark-connection chain=prerouting comment=conn-input-from-ISP2 connection-mark=no-mark in-interface=ether4-wan2_pppoe-client_intercon new-connection-mark=conn-input-from-ISP2 passthrough=yes</code> | |||
Маркировка соответствующих каждому провайдеру маршрутов на основании маркированных входящих соединений | |||
<code>/ip firewall mangle</code> | |||
<code>add action=mark-routing chain=prerouting comment=from-ISP1-route-via-ISP1 connection-mark=conn-input-from-ISP1 in-interface-list=!-WAN- new-routing-mark=from-ISP1-route-via-ISP1 passthrough=no</code> | |||
<code>add action=mark-routing chain=prerouting comment=from-ISP2-route-via-ISP2 connection-mark=conn-input-from-ISP2 in-interface-list=!-WAN- new-routing-mark=from-ISP2-route-via-ISP2 passthrough=no</code> | |||
Маршрут исходящий для соответствующего входящего соединения через соответствующего провайдера (в WAN интерфейс пришел - через шлюз, соответствующий WAN интерфейсу, вышел) | |||
<code>/ip firewall mangle</code> | |||
<code>add action=mark-routing chain=output comment=from-ISP1-route-via-ISP1 connection-mark=conn-input-from-ISP1 new-routing-mark=from-ISP1-route-via-ISP1</code> | |||
<code>add action=mark-routing chain=output comment=from-ISP2-route-via-ISP2 connection-mark=conn-input-from-ISP2 new-routing-mark=from-ISP2-route-via-ISP2</code> | |||
Готово | |||
Пробуем пинговать с внешки внешние IP-адреса провайдеров | |||
Каждый должен пинговаться | |||
Пробуем ходить с внешки на IP-адреса провайдеров по порту 80 | |||
По каждому провайдеру проходим до веб-сервера 192.168.1.50 | |||
== НЕ ИСПОЛЬЗОВАТЬ! Устаревший мануал. С ним не работает проброс DST-NAT по RDP == | |||
Переменные: | Переменные: | ||
| Строка 70: | Строка 129: | ||
<code>add comment=from-ISP2-route-via-ISP2 distance=1 gateway=$gw2 routing-mark=from-ISP2-route-via-ISP2</code> | <code>add comment=from-ISP2-route-via-ISP2 distance=1 gateway=$gw2 routing-mark=from-ISP2-route-via-ISP2</code> | ||
Версия 23:45, 22 апреля 2023
Входные данные
- Имеется 2 провайдера, у обоих есть статический внешний IP-адрес
- ether3-wan1 - интерфейс ISP1
- ether4-wan2 - интерфейс ISP2
- 193.34.13.97 - шлюз ISP1
- 172.18.0.129 - шлюз ISP2
Задача
- Необходимо чтобы сам маршрутизатор отвечал (например на ICMP запрос на внешний провайдерский IP-адрес) во внешку по тому провайдеру, по которому запрос пришел
- Необходимо чтобы при подключении с внешнего провайдерского интерфейса до внешнего IP-адреса любого из 2-х провайдеров, мы могли подключиться до внутреннего сервера через проброс dst-nst
Настройка
Актуальная рабочая конфигурация
https://mum.mikrotik.com/presentations/RU18M/presentation_6157_1554717194.pdf
Создаем группу WAN интерфейсов
/interface list
add name=-WAN-
/interface list member
add interface=ether3-wan1 list=-WAN-
add interface=ether4-wan2 list=-WAN-
SRC-NAT на группе WAN интерфейсов
/ip firewall nat
add action=masquerade chain=srcnat comment=NAT_masquerade_wan-all out-interface-list=-WAN-
Маркировка входящих соединений в INPUT самого микрота (например, WINBOX)
/ip firewall mangle
add action=mark-connection chain=input comment=conn-input-from-ISP1 in-interface=ether3-wan1_domru new-connection-mark=conn-input-from-ISP1
add action=mark-connection chain=input comment=conn-input-from-ISP2 in-interface=ether4-wan2_pppoe-client_intercon new-connection-mark=conn-input-from-ISP2
Маркировка входящих соединений DST-NAT (для пробросов порта на хост в локальной сети)
/ip firewall mangle
add action=mark-connection chain=prerouting comment=conn-input-from-ISP1 connection-mark=no-mark in-interface=ether3-wan1_domru new-connection-mark=conn-input-from-ISP1 passthrough=yes
add action=mark-connection chain=prerouting comment=conn-input-from-ISP2 connection-mark=no-mark in-interface=ether4-wan2_pppoe-client_intercon new-connection-mark=conn-input-from-ISP2 passthrough=yes
Маркировка соответствующих каждому провайдеру маршрутов на основании маркированных входящих соединений
/ip firewall mangle
add action=mark-routing chain=prerouting comment=from-ISP1-route-via-ISP1 connection-mark=conn-input-from-ISP1 in-interface-list=!-WAN- new-routing-mark=from-ISP1-route-via-ISP1 passthrough=no
add action=mark-routing chain=prerouting comment=from-ISP2-route-via-ISP2 connection-mark=conn-input-from-ISP2 in-interface-list=!-WAN- new-routing-mark=from-ISP2-route-via-ISP2 passthrough=no
Маршрут исходящий для соответствующего входящего соединения через соответствующего провайдера (в WAN интерфейс пришел - через шлюз, соответствующий WAN интерфейсу, вышел)
/ip firewall mangle
add action=mark-routing chain=output comment=from-ISP1-route-via-ISP1 connection-mark=conn-input-from-ISP1 new-routing-mark=from-ISP1-route-via-ISP1
add action=mark-routing chain=output comment=from-ISP2-route-via-ISP2 connection-mark=conn-input-from-ISP2 new-routing-mark=from-ISP2-route-via-ISP2
Готово
Пробуем пинговать с внешки внешние IP-адреса провайдеров
Каждый должен пинговаться
Пробуем ходить с внешки на IP-адреса провайдеров по порту 80
По каждому провайдеру проходим до веб-сервера 192.168.1.50
НЕ ИСПОЛЬЗОВАТЬ! Устаревший мануал. С ним не работает проброс DST-NAT по RDP
Переменные:
:global ifaceWan1 "ether3-wan1";
:global ifaceWan2 "ether4-wan2";
:global gw1 "193.34.13.97";
:global gw2 "172.18.0.129";
Маркируем соединения, приходящие в INPUT микротика с интерфейса каждого провайдера (например ICMP запросы на сам микрот с внешки)
/ip firewall mangle
add action=mark-connection chain=input comment=conn-input-from-ISP1 in-interface=$ifaceWan1 new-connection-mark=conn-input-from-ISP1 passthrough=yes
add action=mark-connection chain=input comment=conn-input-from-ISP2 in-interface=$ifaceWan2 new-connection-mark=conn-input-from-ISP2 passthrough=yes
Маркируем соответствующим routing маркером соединения, которые пришли из соответствующего провайдера (это маркировка для INPUT)
/ip firewall mangle
add action=mark-routing chain=output comment=from-ISP1-route-via-ISP1 connection-mark=conn-input-from-ISP1 new-routing-mark=from-ISP1-route-via-ISP1 passthrough=no
add action=mark-routing chain=output comment=from-ISP2-route-via-ISP2 connection-mark=conn-input-from-ISP2 new-routing-mark=from-ISP2-route-via-ISP2 passthrough=no
Маркируем соединения, приходящие в FORWARD микротика с интерфейса каждого провайдера (например запрос до локального веб-сервера 192.168.1.50)
/ip firewall mangle
add action=mark-connection chain=forward comment=conn-forward-from-ISP1 in-interface=$ifaceWan1 new-connection-mark=conn-forward-from-ISP1 passthrough=yes connection-nat-state=dstnat
add action=mark-connection chain=forward comment=conn-forward-from-ISP2 in-interface=$ifaceWan2 new-connection-mark=conn-forward-from-ISP2 passthrough=yes connection-nat-state=dstnat
Маркируем соответствующим routing маркером соединения, которые пришли из соответствующего провайдера (это маркировка для DST-NAT, то есть для проброса портов с любого провайдера на локальную машину)
/ip firewall mangle
add action=mark-routing chain=prerouting comment=from-ISP1-route-via-ISP1 connection-mark=conn-forward-from-ISP1 in-interface=bridge-local new-routing-mark=from-ISP1-route-via-ISP1 passthrough=no
add action=mark-routing chain=prerouting comment=from-ISP2-route-via-ISP2 connection-mark=conn-forward-from-ISP2 in-interface=bridge-local new-routing-mark=from-ISP2-route-via-ISP2 passthrough=no
Говорим системе, что соединения с определенной маркировкой отправлять через соответствующий шлюз
/ip route
add comment=from-ISP1-route-via-ISP1 distance=1 gateway=$gw1 routing-mark=from-ISP1-route-via-ISP1
add comment=from-ISP2-route-via-ISP2 distance=1 gateway=$gw2 routing-mark=from-ISP2-route-via-ISP2