(Zywall USG 300)通过域名从 LAN 访问内部服务器时绕过 NAT

(Zywall USG 300)通过域名从 LAN 访问内部服务器时绕过 NAT

我的情况是这样的;我在我们的联合网络解决方案中托管了许多网站。网络上基本上分为 3 类:

  1. 已知公众,通过 mac 注册,获得静态 dhcp 租约
  2. 匿名局域网连接,从特定的 dhcp 范围获得租约
  3. 交换机,unix主机防火墙

现在,考虑关注感兴趣的主机

  1. 111.111.111.111(Zywall USG 300 WAN)
  2. 192.168.1.1 (ZyWall USG 300 LAN) 负载平衡和带宽监控以及处理 NAT
  3. 192.168.1.2 (Linux www) 为 mydomain1.tld 和 mydomain2.tld 提供服务
  4. 192.168.123.123(随机 LAN 客户端)从 LAN 访问 mydomain1.tld
  5. 23.234.12.253(随机外部客户端)通过 WAN 访问 mydomain1.tld

DNS A 记录的设置使得 mydomain1.tld 和 mydomain2.tld 都指向 111.111.111.111 - 并且 Linux www 使用 VirtualHost 配置提供 http 部分,设置文档根目录 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。但是 - 一旦尝试从 LAN 端(内部,192.168.123.123 示例主机)穿过 NAT,就会被 Zywall 端口 80 防火墙过​​滤。

我知道这一点只是因为 443 端口对管理界面开放,并且https://mydomain1.tld提示 zywall 登录。

所以我的结论是,访问 111.111.111.111 的 LAN 实际上被路由到 192.168.1.1,同时绕过了 NAT 表。

我需要知道如何设置 NAT/策略路由,以便 LAN > WAN > LAN 能够通过正确的网络转换运行,而不是执行“快速名称服务器查找”或任何可能的操作。

答案1

解决方案最终是维护内部 DNS 查找表(很像 /etc/hosts 文件),我在其中输入 mydomainX.tld 并将其映射到其适当的 IP。虽然想解决这个问题,但有一个悬赏,寻求一个允许 LAN -> WAN IP : PORT 通过 NAT 表的答案

答案2

所以我自己也为此苦苦挣扎,最后找到了答案。要使它工作,请使用标准 NAT 规则(允许全世界访问网站的相同规则),只需调整规则,使原始 IP 成为 WAN IP。然后您可以启用 NAT 环回,一切正常。

如果您还有其他问题,请告诉我。

相关内容