Mikrotik. RouterOS в облаке как промежуточный маршрутизатор-прокси для офисного маршрутизатора
Входные данные
- Офисный маршрутизатор 192.168.199.1
- Облачный маршрутизатор на BEGET с одним публичным статическим внешним интерфейсом и внешним IP 1.2.3.4
Необходимо, чтобы при обращении к 1.2.3.4 облачного маршрутизатора, трафик перенаправлялся на офисный маршрутизатор, при этом должны обрабатываться все input, forward, dst-nat офисного маршрутизатора. То есть необходимо чтобы облачный маршрутизатор был ещё одним ISP для офисного маршрутизатора (хотя трафик всё равно будет проходить через наземных ISP).
Настройка
Облачный маршрутизатор
Внешние адреса на внешнем интерфейсе
1.2.3.4 - для всех клиентов, запросы которых будут пробрасываться на офисный маршрутизатор
5.6.7.8 - для vpn-туннеля из офисного маршрутизатора (иначе запросы от обычных клиентов vpn для пользователей будут попадать не на офисный маршрутизатор, как предполагается, а на облачный, что неприемлемо)
/ip address
add address=1.2.3.4 comment="wan1 for all clients" interface=ether1-wan1 network=100.100.1.1
add address=5.6.7.8 comment="for inner vpn tunnel from alef-office" interface=ether1-wan1 network=100.100.1.1
Маршрут по-умолчанию
/ip route
add distance=1 gateway=100.100.1.1
l2tp сервер и l2tp-аккаунт для офисного роутера
/interface l2tp-server server
set enabled=yes
/ppp secret
add local-address=10.224.212.1 name=alef-office password=PassWord profile=default-encryption remote-address=10.224.212.199 service=l2tp
Офисный маршрутизатор
Создаем интерфейс клиент l2tp для подключения к облачному маршрутизатору
/interface l2tp-client
add connect-to=5.6.7.8 disabled=no name=beget-alef-office password=PassWord#1 user=alef-office
Добавляем l2tp интерфейс в интерфейс-лист, в котором находятся все внешние интерфейсы наземных ISP
/interface list member
add interface=beget-alef-office list=-WAN-
src-nat для внешних интерфейсов (уже должен быть настроен для других ISP)
/ip firewall nat
add action=masquerade chain=srcnat comment=NAT_masquerade_wan-all out-interface-list=-WAN-
Маркируем трафик, приходящий из интерфейса l2tp до облачного маршрутизатора, а также маршрут на основе маркировки. это необходимо, чтобы в независимости от маршрута по-умолчанию, трафик ходил с любого внешнего интерфейса (таким же образом настроены остальные ISP)
/ip firewall mangle
add action=mark-connection chain=input comment=conn-input-from-BEGET in-interface=beget-alef-office log-prefix="==BEGET" new-connection-mark=conn-input-from-BEGET
add action=mark-connection chain=prerouting comment=conn-input-from-BEGET connection-mark=no-mark in-interface=beget-alef-office new-connection-mark=\
conn-input-from-BEGET
add action=mark-routing chain=prerouting comment=from-BEGET-route-via-BEGET connection-mark=conn-input-from-BEGET in-interface-list=!-WAN- new-routing-mark=\
from-BEGET-route-via-BEGET
add action=mark-routing chain=output comment=from-BEGET-route-via-BEGET connection-mark=conn-input-from-BEGET new-routing-mark=from-BEGET-route-via-BEGET
/ip route
add comment=from-BEGET-route-via-BEGET distance=1 gateway=10.224.212.1 routing-mark=from-BEGET-route-via-BEGET
Облачный маршрутизатор
dst-nat на офисный маршрутизатор. src-nat во внешку.
/ip firewall nat
/ip firewall nat
add action=dst-nat chain=dstnat comment="ALL to 192.168.199.1 via L2TP" dst-address=1.2.3.4 in-interface=ether1-wan1 log-prefix="==DST" protocol=tcp \
to-addresses=10.224.212.199
add action=dst-nat chain=dstnat comment="ALL to 192.168.199.1 via L2TP" dst-address=1.2.3.4 in-interface=ether1-wan1 log-prefix="==DST" protocol=udp \
to-addresses=10.224.212.199
add action=masquerade chain=srcnat out-interface=ether1-wan1
Готово.
Теперь при обращении на 1.2.3.4 с внешки будем попадать на офисный маршрутизатор. Все input, dst-nat будут обрабатываться на офисном маршрутизаторе.