Nat Loopback

Обсуждение ПО и его настройки
wolf_ktl
Сообщения: 417
Зарегистрирован: 25 июн 2013, 18:12

Есть сеть
Изображение

Микротик 192.168.0.1 имеет несколько внешних iP

один из них 178.*.*.*

За микротиком крутиться web сервер. Делал Nat Loopback дабы из внутренней сети заходить по внешнему ip на web сервер.


/ip firewall nat
add action=src-nat chain=srcnat comment="Nat 178.*.*.* Loopback2" to-addresses=178.*.*.* protocol=tcp src-address=192.168.0.0/24 log=no log-prefix=""

add action=dst-nat chain=dstnat comment="Nat 178.*.*.* http 192.168.0.4 2" to-addresses=192.168.0.4 to-ports=80 protocol=tcp dst-address=178.*.*.* dst-port=80 log=no log-prefix="" in-interface=local

По странной причине не могу зайти на 192.168.7.1 через винбокс

Микротики общаются через PPTP маршрутизация RIP

Стоит в первое правило добавить out-interface=wan1, захожу через winbox на 192.168.7.1 , но пропадает проброс на 80 порт через внешний ip


wolf_ktl
Сообщения: 417
Зарегистрирован: 25 июн 2013, 18:12

Ребята, разве не кто не настраивал проброс порта веб сервера, чтобы модно было из внутренний сети на внешний ip зайти и попасть на веб сервер


saszay
Сообщения: 30
Зарегистрирован: 19 июл 2015, 19:39

А зачем именно на внешний? Чем внутренний плох?


Vladimir22
Сообщения: 561
Зарегистрирован: 09 дек 2012, 17:12

Днс наше все! Внутри резольвится внутренний ип с наружи внешний . Все довольны .


Stealth
Сообщения: 6
Зарегистрирован: 12 мар 2016, 23:54

А я опытом поделиться хотел.
Задачка была, наверное, банальная: надо было сделать проброс портов на Микротике на внутренние ресурсы сети, но так, чтобы на эти внутренние ресурсы сети можно было заходить по интернетовскому доменному имени Микротика как из интернета, так и внутри сети. Обычный проброс портов "в лоб" работает только для обращений из интернета. При обращении внутри локальной сети по внешнему доменному имени получаем обломс. В интернетах нашлось 2 решения по NAT loopback: одно - прописать на DNS Микротика "Static DNS" domain.name -> Внутренний_IP_адрес_ресурса, и тогда все обращения по доменному имени внутри сети будут направляться на этот внутренний ресурс. Но это не подходит, когда внутренних ресурсов несколько, а не один, ведь "Static DNS" мы можем написать только для одного ресурса. Второе решение - Hairpin NAT, описанное в Wiki http://wiki.mikrotik.com/wiki/Hairpin_NAT . Однако с ним тоже проблемы, если внешний IP адрес является динамическим и часто меняется (с доменным именем от dyndns, например). В Hairpin NAT, описанном в Wiki, в правилах NAT необходимо указывать внешний IP, что неприемлемо, когда он часто меняется. Поразмыслив, я придумал следующее "идеальное" решение, объединившее оба способа в один:

/ip dns static
add address=192.168.88.1 name=myname.dyndns.org
/ip firewall nat
add action=masquerade chain=srcnat comment="defconf: masquerade"
add action=netmap chain=dstnat comment=RDP dst-port=3389 in-interface=ether1-gateway protocol=tcp to-addresses=192.168.88.2
add action=netmap chain=dstnat dst-address=192.168.88.1 dst-port=3389 protocol=tcp to-addresses=192.168.88.2

Т.е. прописываем в статический DNS сопоставление доменному имени внутреннего IP адреса роутера (а не внутреннего ресурса). Любой клиент внутри сети будет попадать на роутер по доменному имени.
В правиле для маскарадинга убираем out-interface. Маскарадиться будет не только внешний, но и внутренний интерфейс.
Прописываем 2 правила для форвардинга - одно для внешнего интерфейса ether1-gateway, а второе для внутреннего (для тех, кто будет попадать на роутер по статическому внутреннему IP dst-address=192.168.88.1). Таким образом мы избавляемся от необходимости непременно указывать внешний IP адрес в правилах NAT, который у нас часто меняется.

Такой подход проверен и успешно работает в моей сети. Он более универсален, чем описанные ранее, поэтому я решил поделиться опытом, может кому пригодится.


vqd
Модератор
Сообщения: 3605
Зарегистрирован: 26 сен 2013, 14:20
Откуда: НСК
Контактная информация:

)) это решение будет вам казаться идеальным пока у вас внешние сервисы внутри сети не встанут с некоторыми политиками безопасности, например тот же SMTP

Ну и static DNS можно задавать как угодно, если конкретно ваш случай расмотреть то вам либо по человечески Hairpin_NAT настраивать что в принципе будет верным решением, либо достаточно статические записи в ДНС внести, что будет костылем


Есть интересная задача и бюджет? http://mikrotik.site
Stealth
Сообщения: 6
Зарегистрирован: 12 мар 2016, 23:54

C чего бы это SMTP должен встать? Работает он как работал... А Hairpin_NAT в том виде как он в Wiki описан не подошёл, т.к. там надо обязательно внешний IP прописывать в NAT-правилах. А он меняется после каждой перезагрузки роутера. Не править же правила в NAT после каждой перезагрузки :-) После полночи размышлений и рисования прохождения пакетов родилось такое вот решение, и работает же, и SMTP, и остальные внешние сервисы тоже :)


vqd
Модератор
Сообщения: 3605
Зарегистрирован: 26 сен 2013, 14:20
Откуда: НСК
Контактная информация:

ну когда у вас наступят не понятные для вас проблемы просто вспомните этот пост )))


Есть интересная задача и бюджет? http://mikrotik.site
Stealth
Сообщения: 6
Зарегистрирован: 12 мар 2016, 23:54

Усовершенствовал метод: вместо 2-х правил для форвардинга теперь одно, для локальных по отношению к роутеру адресов:

/ip dns static
add address=192.168.88.1 name=myname.dyndns.org
/ip firewall nat
add action=masquerade chain=srcnat comment="defconf: masquerade"
add action=netmap chain=dstnat comment=RDP dst-address-type=local dst-port=3389 protocol=tcp to-addresses=192.168.88.2

Проверено, работает!
Последний раз редактировалось Stealth 16 мар 2016, 00:12, всего редактировалось 1 раз.


Ответить