mikrotik nat перенаправить на локальный с локального

Я использую Mikrotik 750GL и у меня такая проблема:

У меня subnet 10.0.0.0/16

Маршрутизатор имеет local ip 10.0.0.1 и external ip (e.g. 1.1.1.1)

Я перенаправляю некоторые порты на свои локальные хосты (e.g. firewal nat dst-nat 1.1.1.1:444 -> 10.0.0.2:80)

Когда я перехожу к 1.1.1.1:444 из Интернета, я могу получить доступ к своему веб-серверу на 10.0.0.2, но когда я перехожу на 1.1.1.1:444 из локальной сети (например, 10.0.0.3), я застрял на странице загрузки.

Я понимаю, что 10.0.0.2 может ответить на 10.0.0.3 только с помощью маршрутизации коммутатора, и я привязал, чтобы исправить это, используя новое правило src-nat, например 10.0.0.0/16 -> 2.2.2.2, но ничего не получается

Где я сделал ошибку?


person red    schedule 23.11.2013    source источник


Ответы (2)


Ваш вопрос не дает полной картины ситуации, был бы полезен экспорт из консоли.

Должно поддерживаться простое использование src-nat и dst-nat. с помощью метки подключения, затем вы можете замаскировать трафик с локальных IP-адресов на ваш конкретный локальный IP-адрес с какой-либо сетевой службой.

В примере:

[admin@MikroTik] > ip address export
/ip address
add address=1.1.1.1/24 disabled=no interface=ether1-gateway network=1.1.1.0
add address=10.0.0.1/24 disabled=no interface=ether2-master-local network=10.0.0.0

[admin@MikroTik] > ip firewall mangle export
/ip firewall mangle
add action=mark-connection chain=prerouting disabled=no dst-address=1.1.1.1 dst-port=444 new-connection-mark=int_to_444 passthrough=no protocol=tcp src-address=10.0.0.0/24

[admin@MikroTik] > ip firewall nat export
/ip firewall nat
add action=dst-nat chain=dstnat disabled=no dst-address=1.1.1.1 dst-port=444 protocol=tcp to-addresses=10.0.0.2 to-ports=80
add action=masquerade chain=srcnat disabled=no out-interface=ether1-gateway
add action=masquerade chain=srcnat connection-mark=int_to_444 disabled=no

Вы можете видеть, что правило Mangle отмечает соединение (int_to_444), которое адресовано из локальной подсети в 1.1.1.1:444, а последнее из правил Nat маскирует это connection-mark. Объяснение подобного накрутки без микротика

С уважением, надеюсь, это будет полезно.

person Mr. NoNe    schedule 21.02.2014
comment
Большое спасибо! Вот ответ, который я искал. Но ваше решение требует добавления еще одного правила Mangle каждый раз, когда вы добавляете правило NAT. Я сделал правило маскарада со всех локальных на все локальные IP-адреса. Это увеличит загрузку процессора на маршрутизатор, но не будет поводом для добавления более конкретных правил для локальной маршрутизации. - person red; 28.02.2014

вот ваша ситуация:

  1. клиент отправляет пакет с исходным IP-адресом 10.0.0.3 на целевой IP-адрес 1.1.1.1 через порт tcp / 444, чтобы запросить какой-либо веб-ресурс.

  2. маршрутизатор назначения NAT преобразует пакет в 10.0.0.2 и соответственно заменяет IP-адрес назначения в пакете. Исходный IP-адрес остается прежним: 10.0.0.3.

  3. сервер отвечает на запрос клиента. Однако исходный IP-адрес запроса находится в той же подсети, что и веб-сервер. Веб-сервер не отправляет ответ обратно маршрутизатору, а отправляет его обратно непосредственно на 10.0.0.3 с исходным IP-адресом в ответе 10.0.0.2. Решение состоит в том, чтобы замаскировать трафик из локальной подсети 10.0.0.0/16, который выходит из интерфейса LAN на dst-адрес 10.0.0.2.

пример

/ip firewall nat
add chain=srcnat src-address=10.0.0.0/16 \
  dst-address=10.0.0.2 protocol=tcp dst-port=80 \
  out-interface=LAN action=masquerade

Подробная информация об этой ситуации: https://wiki.mikrotik.com/wiki/Hairpin_NAT.

person Александр Лысенко    schedule 24.10.2018
comment
Это работает намного лучше, чем фильтрация путем маркировки пакетов !! Спасибо! - person Maxwel Leite; 27.07.2020
comment
Эта документация перемещена на update.mikrotik.com/wiki/Hairpin_NAT. - person nupanick; 23.06.2021