我正在建立一个具有单个公共 IP 的小型办公网络(假设它是 69.16.230.117)。我已经在路由器上配置了 NAT,并将传入流量转发到服务器(假设服务器的私有 IP 为 192.168.0.2)。
是否可以将同一子网中的客户端计算机配置为通过路由器的公共 IP(69.16.230.117)访问服务器?在实践中,它从来没有给我带来任何问题,但我听说,这是一个坏主意,应该使用私有 IP (192.168.0.2)。
通过其子网内的公共 IP 连接到默认主机是否会导致任何问题?
请不要写“从不!它会破坏 Intranet!” ;-)
不,没有什么会导致连接问题。
但是,此方案存在安全问题。非常非常确定 NAT'd 服务器上的防火墙是正确的。最好将这台机器放在自己的子网上,远离其他内部 NAT 机器,以便建立某种非军事区 (DMZ)。
我过去曾遇到过这种配置的问题,内部客户端无法访问经过 NAT 处理的公共 IP 地址。这将是我能看到的唯一问题,除了使用外部 IP 与仅使用内部 IP 相比在路径中引入了额外的跃点之外
它将起作用,您的客户端将路由到您的路由器,然后返回到您的路由器以访问您的 NAT 网络上提供的服务。取决于路由器上的 tcp/ip 堆栈的智能程度,它实际上可能会跳出一跳然后返回,但这是值得怀疑的。正如您可以想象的那样,这不是最理想的。它还有一个缺点,即您想为网络上的客户端提供的任何服务都必须是可公开访问的。此外,如果您添加第二台服务器,您将开始使用端口转发错误来提供服务。如果您的客户为他们的服务使用内部 nat 地址,您只需为那些必须在外部可用的服务提供端口转发。
这有点像走出你的前门进入你的后院。它会起作用,你会到达那里,但通常走出后门更容易。
我遇到过内部客户端在服务器本身上受到不同处理的情况。
例如。允许管理员访问那些内部连接和外部连接的人。
您还可以将内部 DNS 配置为指向内部 IP,因此在内部连接的 Intranet 上,您将获得外部 IP。
我觉得这有点奇怪;实际上,您正在强制所有内部流量访问您的 NAT 设备,进行 NAT,然后通过 LAN 接口发送回内部服务器。根据您期望的并发内部用户数量,这最终可能会导致性能问题,因为您最终会消耗 NAT 设备上的 CPU 和内存。这可能会对您从办公室的出站 Internet 访问以及远程用户的入站访问产生负面影响。
随着您办公室的发展,值得关注您的路由器/防火墙的性能。如果您开始遇到连接问题(数据包丢失、连接被拒绝),那么将您的内部客户端切换回使用 LAN IP 可能是一个有用的步骤。
如果您的路由器未启用“NAT 环回”,则可能会导致问题。在这种情况下,您的所有流量都将被丢弃或重定向错误(例如到路由器的 Web 界面)。
但通常此功能在 Web 界面中不直接可用。在某些 Zyxel 路由器中,您可以通过调用命令“ip nat loopback on”来启用此功能。其他一些路由器只能通过配置 iptables(从 root 访问)来启用此功能。