У меня есть рабочий site-to-site VPN на WireGuard между двумя домами, и там есть один и тот же IP-адрес с обеих сторон (интерфейс управления кабельным модемом). Сайт 1, понятно, имеет доступ к своему модему, но также должен иметь доступ к модему с сайта 2. Этот IP не относится ни к одной из локальных сетей, которые уже могут общаться друг с другом через статические маршруты (перекрытия нет). Я понимаю, что самый простой способ решить эту задачу — сделать dst-nat на стороне сайта 2. Но мне хотелось бы проверить, можно ли обойтись без изменений конфигурации на сайте 2.
Я реализовал следующее решение. Взял неиспользуемый IP, добавил правило маркировки маршрутизации в цепочке prerouting mangle, затем правило NAT в той же цепочке. После этого правило маршрутизации срабатывает на эту метку и отправляет NAT-трафик через WireGuard VPN.
/ip firewall mangle
add action=mark-routing chain=prerouting dst-address=10.0.0.2 in-interface=vlan101 new-routing-mark=143 passthrough=no
/ip firewall nat
add action=dst-nat chain=dstnat dst-address=10.0.0.2 to-addresses=10.0.0.1
/routing table
add disabled=no fib name=143
/ip route
add comment=modem disabled=no distance=1 dst-address=10.0.0.1/32 gateway=wg143 routing-table=143 scope=30 suppress-hw-offload=no target-scope=10
Работает отлично, но мне интересно, есть ли способ сделать это лучше или короче.
Я реализовал следующее решение. Взял неиспользуемый IP, добавил правило маркировки маршрутизации в цепочке prerouting mangle, затем правило NAT в той же цепочке. После этого правило маршрутизации срабатывает на эту метку и отправляет NAT-трафик через WireGuard VPN.
/ip firewall mangle
add action=mark-routing chain=prerouting dst-address=10.0.0.2 in-interface=vlan101 new-routing-mark=143 passthrough=no
/ip firewall nat
add action=dst-nat chain=dstnat dst-address=10.0.0.2 to-addresses=10.0.0.1
/routing table
add disabled=no fib name=143
/ip route
add comment=modem disabled=no distance=1 dst-address=10.0.0.1/32 gateway=wg143 routing-table=143 scope=30 suppress-hw-offload=no target-scope=10
Работает отлично, но мне интересно, есть ли способ сделать это лучше или короче.
