我有一个相对复杂的家庭办公室/小型办公室网络——我使用二 NAT(网络地址转换)路由器/防火墙提供DMZ(非军事区)寻找便宜的牺牲型网络服务器。基本上,我不希望网络服务器被攻陷(又称为 pwnage),从而轻易允许访问私有网络上的 PC。下面是我设置的简单图表:
互联网 --- 外部 NAT 路由器 --- 内部 NAT 路由器 --- 私有局域网 | 万维网服务器
外部路由器允许端口 80 和 443 进入,转发到 Web 服务器。内部路由器允许没有什么理论:如果 Web 服务器受到威胁,私有 LAN PC 仍然受到内部路由器的保护。
转发:我最近购买了 Apple Airport Extreme 来替换现有的内部 NAT 路由器。当我将新的 Airport Extreme 插入外部路由器时,Airport Utility 在设置过程中抱怨我正在使用“双 NAT”配置。我感到很困惑——我以前从未见过路由器出现这样的消息,也从未遇到过双 NAT 设置的问题。我已经使用双 NAT 设置多年了。
那么,为什么双重 NAT 如此糟糕,以至于我的 Airport Extreme 想要警告我并建议改用桥接模式?抛开明显的性能/延迟考虑,为什么 NAT 之上的 NAT 是一件坏事?谢谢!
答案1
事实上,最近当我由于更换齿轮而重新配置设置时,我的设置中也出现了类似的错误。
双 NAT 消息旨在警告可能存在病态网络设置,但我认为这无关紧要,尤其是当您说您已经运行此设置一段时间时。事实上,如今许多 ISP 都在其 DSL 或有线调制解调器上使用 NAT,也就是说,每个客户都已经“处于路由器后面”,即使只有一台设备直接连接到调制解调器。只要客户为其家庭添加无线路由器,他们就会处于双 NAT 情况。显然,这对大多数人来说似乎都很好。
根据我的研究,似乎有些应用程序(主要是工业级 VPN)和其他在 OSI 堆栈较低层操作数据的应用程序可能如果他们开始在数据包内四处搜索,就会出现问题。特定的 Cisco VPN + 防火墙设置就是一个例子我碰到. 再比如,双 NAT 环境中某些 VoIP 实现的可靠性似乎存在一些争议。
正如您所指出的,由于额外的跳跃和每个路由器所做的工作,它几乎肯定会引入一些额外的延迟,但除非您是一名竞技游戏玩家......否则……嗯。
编辑:正如 Kevin 在下面指出的那样,UPnP 在双 NAT 情况下也可能出现问题,但引发这个问题的 Airport Extreme不支持 UPnP反正。
答案2
此配置将导致任何使用即插即用。这使应用软件能够向路由器询问外部 IP 是什么,并在路由器上打开端口。在内部网络上运行的应用程序将无法“看到”第二个路由器,也无法在其上打开端口。
这对您来说可能不是什么大问题,因为您正在努力确保没有任何东西可以进入您的内部网络。
答案3
家庭级设备很难处理这种情况,因为它实际上是在每个路由器上改变地址。
我建议将您的网络重新配置为几个逻辑段,而不是尝试维护相同的地址空间。
因此,对于接入网络的外部地址,请使用 ISP 分配给您的地址。对于两台设备之间的网络,请使用您的私有局域网中未使用的子网。
一个例子是两个设备之间不使用 NAT。使用真实的私有地址。例如,将每个路由器配置为 172.16.1.1 作为外部路由器的内部接口,并使用 172.16.1.2 作为内部路由器的外部接口。
然后配置两个设备相互路由,确保正确指定下一跳。
外部路由器需要知道如何到达网络内部,而内部路由器需要知道将数据包路由到外部的位置。您仍然可以使用 NAT,但您不想在两个设备之间使用 NAT。
我希望这对一些人有帮助
答案4
每个路由器都有 NAT,如果你通过 2 个路由器,那就意味着双重 NAT。这就像通过 2 个防火墙和 2 个网络。
例如:主IP 123.345.678.901 -> 本地IP 192.168.0.12 -> 本地IP2 192.168.0.13 -> 设备