Похоже, я не совсем ясно выразился. Я успешно настроил SNAT и DNAT. Но проблема возникает только, когда я пытаюсь получить доступ к публичному IP веб-сервера из локальной сети. Ниже приведена упрощенная конфигурация. Роутер, конечно, имеет гораздо более сложные правила. Но то же самое происходит и на новом 2.9.19 с гораздо более простой настройкой, которую я установил в офисе. Мы не можем получить доступ к mailserver по публичному IP из локальной сети: соединение отклоняется, потому что Mikrotik router думает, что мы запрашиваем 25 порт роутера, а не адрес и порт, который dnats к mailserver в локальной сети. Поэтому я решил написать этот пост.
Итак, вернемся к конфигурации. Предположим, у роутера есть два публичных IP адреса и один локальный:
```
> /ip address print
Flags: X - disabled, I - invalid, D - dynamic
# ADDRESS NETWORK BROADCAST INTERFACE
0 10.0.0.1/24 10.0.0.0 10.0.0.255 Local
1 x.x.x.66/28 x.x.x.64 x.x.x.79 Public
2 x.x.x.69/28 x.x.x.64 x.x.x.79 Public
```
x.x.x.66 используется для доступа к роутеру. x.x.x.69 – это наш веб-сервер. Правила Source NAT и destination NAT выглядят так:
```
> /ip firewall src-nat print
Flags: X - disabled, I - invalid, D - dynamic
0 src-address=10.0.0.12/32 out-interface=Public action=nat to-src-address=x.x.x.69
> /ip firewall dst-nat print
Flags: X - disabled, I - invalid, D - dynamic
0 in-interface=Public dst-address=x.x.x.69/32:80 protocol=tcp action=nat to-dst-address=10.0.0.12
```
Маршруты по умолчанию (я не был уверен, нужна ли эта информация для данной проблемы):
```
> /ip route print
Flags: X - disabled, I - invalid, D - dynamic, J - rejected, C - connect, S - static, r - rip, o - ospf, b - bgp
# DST-ADDRESS G GATEWAY DISTANCE INTERFACE
0 S 0.0.0.0/0 r x.x.x.65 1 Public
1 DC x.x.x.64/28 r 0.0.0.0 0 Public
2 DC 10.0.0.0/24 r 0.0.0.0 0 Local
```
Итак, когда я нахожусь в локальной сети и открываю Lynx или telnet к x.x.x.66:80, я получаю обратно веб-страницу роутера. Это совершенно нормально, потому что этот адрес не имеет трансляций. Теперь, когда я нахожусь в публичной сети и просматриваю x.x.x.69:80, я получаю ответ веб-сервера (10.0.0.12). Это именно то, что я намеревался сделать. Но теперь давайте попробуем просмотреть x.x.x.69 из локальной сети (например, 10.0.0.12 или любой другой хост). Что мы получаем? Веб-страницу Mikrotik router. Вместо того, что ожидалось бы — 10.0.0.12:80.