DHCP 和 NAT 有什么区别?它们互相排斥吗?

DHCP 和 NAT 有什么区别?它们互相排斥吗?

我知道这是一个相当基本的问题,但我正在努力在网上寻找资源来澄清它。

据我了解,在 NAT 中,将专用网络连接到公共互联网的路由器有一个 IP 地址,专用网络的所有流量都会被定向到该 IP 地址;然后路由器使用端口号来确定流量是发往专用网络上的哪个设备的。相比之下,使用 DHCP 时,网络上的每个设备都会被分配自己的公共 IP 地址,发往该设备的流量会定向到该地址。

我之所以感到困惑,是因为听说这两者可以同时使用,这似乎与以下观点相矛盾:使用 NAT 时,整个专用网络只有一个 IP 地址,而使用 DHCP 时,网络上的每个设备都有一个 IP 地址。如果它们是互斥的,那么它们通常在哪里使用?

如果您认为有帮助的话,请随意撕开上述陈述:)。

编辑:下面的答案解释得很好 - 我很笨,没有意识到 DHCP 可以分配任何“类型”的 IP 地址,它只是设备加入网络的一种协议?

答案1

NAT 是一种以多种方式转换流量的方法。家用路由器中最简单的方法就是让所有东西看起来都位于同一个 IP 地址后面。这意味着任何来自本地网络的出站连接都会被接收,其源地址将设置为路由器的公共地址,分配一个新端口,修改后的数据包将向前发送。当有数据包返回时,将反向执行相同的操作,并将数据包发送到原始设备。

NAT 不一定位于私有网络和公共网络之间。它也可以位于两个公共网络或两个私有网络之间。它只是转移流量,对公共或私有网络一无所知。

DHCP 与此完全无关。它是设备向本地网络发出请求以请求 IP 地址和其他相关信息(如网关地址、名称服务器等)的一种方式。同样,家用路由器通常有一个服务器来为本地网络中的客户端提供服务。如果没有 DHCP 服务器,您需要手动为每个设备设置所有 IP 地址(或者使用 Windows 中的自动 IP 系统,但那仅适用于本地网络,不适用于网络间通信)。除非设备有 IP 地址,否则它们无法使用 IP 进行通信,而且由于几乎所有通信都是通过 IP 进行的,因此有必要使用 IP 地址。

给出的 IP 地址不一定是公开的。这可能会让您感到困惑。它是 DHCP 池中定义的任何地址,甚至可能是该特定设备的静态地址。

因此,您可以使用 DHCP 分配 IP 地址,而无需使用 NAT。它只是从池中提供 IP,仅此而已。您也可以使用没有 DHCP 的 NAT。您可以设置固定 IP,或者您可以使用 NAT 通过防火墙将流量转移到其他机器等。它不需要 DHCP 的任何内容。

在家庭网络中,这两种方式都很有用,因为几乎总是只有一个外部 IP,而用户不想手动设置固定 IP 地址。因此,DHCP 为他们提供本地私有 IP,而 NAT 会转换连接,使它们看起来像是来自同一个地址。

答案2

DHCP 是一种协议用于配置主机,并定期运行以保持其地址和其他配置为最新。NAT过程用于在数据包通过路由器转发时重写数据包。更具体地说,它会转换地址,有时还会转换端口。

答案3

  • DHCP 会根据请求分配 IP 地址池。可以是公共的,也可以是私有的

  • NAT(通常)获取可路由的 IP 数据并将其发送到不可路由的 IP(例如无处不在的 192.168.0.0 块)

换句话说,它们不是一回事。就像发动机和轮胎一样:它们都安装在汽车上,帮助汽车行驶,但它们的作用却截然不同。

可能让你困惑的是,大多数互联网都运行在 NAT 上(通常是 IPv4 NAT)。如果你使用 NAT,那么默认配置是使用公共 IP,然后 DHCP 将非路由块分配给路由器后面连接的任何设备。这里的窍门是你不需要 DHCP NAT。您实际上可以为所有设备分配一个本地非路由 IP。事实上,大多数家用路由器都有一些阻止它们使用 DHCP 的原因,因此您可以为网络打印机分配一个固定 IP。

如果有人来你家问你“你的 Wifi 密码是多少?”而你回答“等一下,让我给你的设备分配一个 IP。你的 MAC 地址是多少?”那会很麻烦,你不仅会得到一个茫然的眼神(你的父母会因为你要求他们提供技术支持而与你断绝关系),而且这对你来说也是一个巨大的痛苦。因此,没有人会像这样运行他们的网络,因为 DHCP真的很方便。我指的是 Chef(DevOps 公司)的 Adam Jacobs讲述了一家公司认为他们不能使用 DHCP 的故事。这立即引起了技术专业人员

答案4

Nat用于将网络内部的公网IP地址转换为私网IP地址,dhcp用于自动为网络中的主机分配一个IP,以便它们可以与路由器、外界进行通信。

相关内容