Назад | Перейти на главную страницу

Mikrotik: перенаправить локальный IP-адрес на другой локальный IP-адрес на определенном порту

Я запускаю контейнер Docker на машине с портом 8090. Скажем, IP-адрес этой машины 192.168.0.3. Я хочу переслать 192.168.0.4:80 к 192.168.0.3:8090. Доступ к машине возможен только из локальной сети.

Что я пробовал:

/ip firewall nat export
add action=dst-nat chain=srcnat dst-address=192.168.0.4 dst-port=80 \
    src-address=192.168.0.0/24 to-address=192.168.0.3 to-port=8090 \
    protocol=tcp
add action=masquerade chain=srcnat dst-address=192.168.0.4 dst-port=80 \
    src-address=192.168.0.0/24 protocol=tcp

Это не работает.

Я что-то забываю? У меня такое чувство, что я упускаю из виду что-то простое, но не могу понять, что именно.

Редактировать:

IP-адрес 192.168.0.4 ни к чему не разрешает в моей сети. Я просто хочу "назначить" и переслать его 192.168.0.3:8090. Причина в том, что я хочу настроить локальное доменное имя, которое разрешается в контейнер Docker без необходимости указывать порт.

Ваши компьютеры в локальной сети пытаются напрямую подключиться к IP-адресам в своей подсети. Следовательно, компьютер («Рабочая станция») с IP-адресом 192.168.0.105 будет игнорировать шлюз по умолчанию при попытке достичь 192.168.0.4 и пытается отправить пакеты tcp напрямую.

Это не удастся, если никакой другой компьютер не отвечает на вызов рабочих станций («запрос arp») для MAC-адреса, принадлежащего 192.168.0.4 - и никто не ответит, так как этот IP-адрес не используется в вашей локальной сети.

У вас есть разные варианты решения:

  1. Добавить 192.168.0.4 к интерфейсу на брандмауэре и используйте брандмауэр для перенаправления этих пакетов
  2. Добавить 192.168.0.4 к интерфейсу на вашем docker-host и перенаправить трафик на docker-host
  3. добавить перенаправление трафика на docker-host и использовать 192.168.0.3 прямо вместо 192.168.0.4

могут существовать другие варианты.