(Zywall USG 300) Обход NAT при доступе к внутреннему серверу из локальной сети через доменное имя
Мои ситуации таковы; Я размещаю несколько веб-сайтов в рамках нашего совместного сетевого решения. В сети в основном 3 категории:
- известной публике, зарегистрированной через mac, предоставляется статическая аренда dhcp
- анонимные LAN-соединения, предоставляемые в аренду от определенного диапазона DHCP
- коммутаторы, unix hosts firewall
Теперь рассмотрим следующие хосты, которые представляют интерес
- 111.111.111.111 (Zywall USG 300 WAN)
- 192.168.1.1 (ZyWall USG 300 LAN) балансировки нагрузки и мониторов bw плюс ручки NAT
- 192.168.1.2 (Linux www) обслуживает mydomain1.tld и mydomain2.tld
- 192.168.123.123 (Случайный клиент локальной сети) обращается к mydomain1.tld из локальной сети
- 23.234.12.253 (Случайный внешний клиент) обращается к mydomain1.tld через WAN
Записи DNS A настраиваются таким образом, чтобы mydomain1.tld и mydomain2.tld указывали на 111.111.111.111 - и Linux www обслуживает части http с конфигурациями VirtualHost, устанавливая корни документов pr ServerName, хотя это не так интересно.
Правило NAT переводит 111.111.111.111:80 в 192.168.1.2:80 (1:1 NAT) следующим образом:
- Тип: Виртуальный сервер
- Интерфейс: WAN
- Оригинальный IP: любой
- Сопоставленный IP: 192.168.1.2
- Оригинальный порт: 80
- Сопоставленный порт: 80
Когда NAT-Loopback активирован, он вызывает недоступность устройства из внешних интерфейсов (хотя и не пытался, если работает LAN -> WAN IP:80)
Наша проблема следует;
При доступе к http://mydomain1.tld/ извне (пример хоста 23.234.12.253) объединенная сеть - все в порядке, zywall получает запросы через порт 80 и сопоставляет его с хостом linux ' httpd. Однако - однажды пытаясь пройти через NAT со стороны локальной сети (внутренний, пример хоста 192.168.123.123), тогда он фильтруется в брандмауэре порта 80 Zywall.
Я знаю это только потому, что порт 443 открыт для интерфейса администрирования и https://mydomain1.tld/ запрашивает логин zywall.
Таким образом, мой вывод заключается в том, что локальная сеть, которая имеет доступ к 111.111.111.111, фактически маршрутизируется на 192.168.1.1, минуя таблицу NAT.
Мне нужно знать, как настроить NAT / Policy Route, чтобы LAN > WAN > LAN работала с правильными сетевыми трансляциями вместо того, чтобы выполнять "быстрый поиск по серверу имен" или чем-то еще.
2 ответа
Решением стало поддержание внутренней таблицы поиска DNS (во многом аналогично файлу /etc/hosts), где я поместил mydomainX.tld и сопоставил его с соответствующими IP-адресами. Хотелось бы обойти это, хотя есть награда для ответа, который позволяет для LAN -> WAN IP: PORT пройти через таблицу NAT
Так что я боролся с этим сам и разобрался с ответом. Чтобы заставить это работать, используйте стандартное правило NAT (то же самое правило, которое работает, чтобы позволить миру получить доступ к веб-сайту), просто измените правило так, чтобы Исходный IP был IP WAN. Затем вы можете включить NAT loopback, и все работает нормально.
Дайте мне знать, если у вас есть еще вопросы.