Сеть для примера, любые совпадения случайны
WAN (ether1-wan) белый IP: 10.10.10.10
Адрес Микротика: 192.168.1.254
LAN (bridge-lan): 192.168.1.0/24
VPN+Web сервер : 192.168.1.100
Настроено правило, перенаправляющее пакеты по 80 и 12345 порту извне (ether1-wan) на сервер (192.168.1.100)
/ip firewall nat
add action=netmap chain=dstnat dst-port=80 in-interface=ether1-wan protocol=tcp to-addresses=192.168.1.100 to-ports=80
add action=netmap chain=dstnat dst-port=12345 in-interface=ether1-wan protocol=tcp to-addresses=192.168.1.100 to-ports=12345
Соответственно при обращении из интернета по адресу 10.10.10.10 в браузере, клиенты попадают на сервер 192.168.1.100, так же и с VPN клиентом
Когда клиенты локальной сети переходят в браузере по внешнему адресу 10.10.10.10, то попадают на web интерфейс микротика, как если бы они перешли по адресу 192.168.1.254
Задача сделать перенаправление для клиентов локальной сети обращающихся по внешнему адресу (10.10.10.10) на сервер находящийся в той же локальной сети (192.168.1.100)
Один из вариантов - использовать какой нибудь DynDNS сервис, чтобы получать на внешний адрес 10.10.10.10 доменное имя типа
company.dyndns.com, а внутри локальной сети в настройках микротика для этого домена задать адрес сервера 192.168.1.100. Для HTTP он вполне себе даже ничего, а вот для VPN проблема, потому что создается .ovpn файл для настройки клиента, в котором указан внешний IP, а не доменное имя. В подробности лезть не буду, просто этот вариант не катит. (Вариант организовать OpenVPN на микротик тоже не стоит предлагать)
Другой вполне рабочий вариант заключается в следующем:
Клиенты обращающиеся по адресу 10.10.10.10 перенаправляются на 192.168.1.100, при этом маскарадятся микротиком
/ip firewall nat
add action=masquerade chain=srcnat src-address=192.168.1.0/24
add action=netmap chain=dstnat dst-address=10.10.10.10 dst-port=12345 in-interface=bridge-lan protocol=tcp src-address=192.168.1.0/24 to-addresses=192.168.1.100 to-ports=12345
Выглядит это так
И все работает замечательно, но сервер видит, что к нему подключается не клиент 192.168.1.10, а микротик 192.168.1.254, и если к нему подключится много клиентов, то все будут отображаться как 192.168.1.254. Для логов, безопасности и прочего этот совсем не подходит
Так что же можно сделать, что бы получилась следующая схема?