我对 DHCP 和 NAT 有疑问。
我知道 NAT 将本地 IP 地址和端口转换为可用于与 Internet 通信的单个 IP 地址和特定端口。
我还知道 DHCP 用于为连接到网络的计算机分配或重新使用未使用的 IP 地址。
NAT 如何获取其单个 IP 地址?它使用 DHCP 吗?
答案1
NAT与DHCP是完全独立的技术,彼此之间不依赖任何关系。
首先要理解的概念是网络段 - 简单来说,同一 IP 范围内的所有 IP 地址都位于同一网段中。DHCP 服务器在给定网段上侦听 IP 地址请求,并在被要求时提供该地址。DHCP 服务器需要在与网段相同的接口上侦听 - 因此它可以在具有单个网卡的计算机上运行,也可以在路由器上运行(在家庭网络中,它通常在路由器上运行,为 LAN 网络上的地址提供服务)。
在典型的家用路由器上,NAT 在 WAN 接口上运行,并将离开网络的数据包与外部 IP 地址重新关联。它保存一个转换表,以便知道哪台内部机器请求了什么。这样,多个工作站之间就可以共享一个真实 IP 地址。
您的问题是“当我连接两台不同的计算机时,它们都获得不同的外部 IP。这怎么会发生?我的路由器不应该是 NAT 吗,因为它可以保护我的本地 IP 地址?”这有点出乎意料。答案是肯定的,在家庭网络中,NAT 后面的任何设备通常都会共享一个外部 IP 地址。
您获得不同 IP 地址的原因有多种可能,包括:
您的提供商正在使用运营商级 NAT,并且实际上正在执行双重 NAT。运营商级 NAT 需要使用 1 个以上的 IP 地址,因此不同的 TCP 会话可能会被分配不同的 IP
您可能根本没有使用 NAT,而您的提供商为您提供了可在现实世界路由的 IP 地址子网。这在家庭环境中似乎不太可能(而且确实存在安全隐患),但如果在企业帐户上提出请求,这种情况并不罕见。
可以想象,您的路由器上有超过 1 个真实世界 IP 地址,并且正在执行更复杂的 NATTING(类似于运营商级 nat)以克服 NAT 的一些限制。