为什么具有单个 NIC 且位于两个网络上的主机可以有 2 个 IP 地址?

网络工程 ip 网络 协议理论 IP地址
2021-07-30 19:18:36

我知道 IP 地址是指 NIC 而不是主机,因此单个主机可以拥有与 NIC 一样多的 IP 地址。

但坦南鲍姆说:

它实际上是指一个网络接口,所以如果一个主机在两个网络上,它必须有两个 IP 地址。

有人可以澄清这一点吗?

3个回答

IP地址分配给三层接口(IP是三层协议),可以是物理的,也可以是虚拟的,每个接口可以有多个IP地址。IPv6 甚至需要多个 IP 地址,其中每个接口都有一个本地链路地址和一个或多个全局和/或 ULA 地址。


我会给你一个发生的 IPv4 例子。DHCP 通常仅限于单个 LAN,因为它使用广播(暂时忘记 DHCP 中继,因为并非每个路由器都支持)。这意味着您将需要在您拥有的每个网络上都有一个 DHCP 服务器,但有一些原因您不想这样做。解决此问题的一种方法是通过中继链路连接 DHCP 服务器。DHCP 服务器将具有单个 NIC,但对于通过中继进入的每个网络,它都有一个地址。它可以有许多地址用于由那个 NIC 服务的网络。

  • 每个接口都需要一个自己的 IP 地址。
  • 两个不同的网络(子网)需要两个不同的 IP 地址,每个网络一个。
  • 您可以将多个 IP 地址绑定到单个接口。
  • 当接口以某种方式绑定时,它们可以共享一个 IP 地址(或地址池)。
  • 配置有多个 VLAN(在中继上)的物理接口在逻辑上代表多个(子)接口。

Zac67 和 Ron Maupin 简要解释每个 NIC 的多个 IP 地址是如何工作的,这可能是问题的意图。

在这里,我尝试解释为什么要向主机或网关添加第二个 IP 地址。

在当今的大多数情况下,人们通常会在这些情况下使用多个 VLAN,每个 VLAN 有一个子网。

历史

VLAN 的标准化比以太网晚得多(1998 年用于 IEEE 802.1Q,而 1986 年用于 IEEE 802.3),直到大约 2002 年第 3 层工作组交换机才变得负担得起。直到几年后,分支机构路由器中的 VLAN 功能才成为标准。

因此,多个 IP 地址绑定到没有 VLAN 的单个 NIC的能力在 Unix 和 Linux 中已经存在很长时间,至少从 NT4 开始在 Windows 中就已经存在。

原因一:IP地址不足

假设您有一个具有公共 /24(C 类)网络(254 个可用地址)的站点,并且您需要更多。

最简单的扩展方法是向您的 ISP 询问另一个地址块,这些地址块可以通过路由器上的辅助 IP 地址访问 Internet (暂时忽略对防火墙的需求)。

这两个子网在网络上的每个端口都可用,但没有任何其他更改,从子网 B 到子网 A 的所有流量都必须通过路由器,这会降低性能并增加路由器端口的拥塞。

如果随后向服务器添加辅助 IP 地址,子网 B 上的 PC 可以访问服务器而无需通过路由器。

原因二:IP地址迁移

将孤立的站点和新收购的站点互连到公司网络中时(尤其是在 NAT 环境中),通常需要更改所使用的子网。

如原因 1 中所述,您可以通过在新子网中向现场路由器和服务器添加辅助 IP 地址,然后随着时间的推移更改配置(静态 IP 地址、静态 DNS 地址、静态 IP 地址)来简单地做到这一点在应用程序中......),然后再停用旧的子网地址。

注意:DHCP 服务器或转发器可能会在其次要子网上分配 IP 地址时遇到问题 - 最好将新 IP 地址作为主要 IP 地址,将旧 IP 地址作为次要地址。