为 1 个 NIC 分配多个 IP 地址的用例

为 1 个 NIC 分配多个 IP 地址的用例

什么是主要的在哪些用例中您想要为 NIC 分配多个 IP 地址?

了解与每个用例相关的任何标准/众所周知的“陷阱”也会有所帮助。例如,我听到有人说,有权访问此类机器的用户将自动获得对两个网络的访问权限,这可能是一个安全问题。

您可以假设一个基于 Linux 的环境。

答案1

  • Web 服务器:需要 SSL 的网站每个站点都需要有一个 IP 地址,因此这需要 NIC 上有多个 IP 地址。
  • 电子邮件服务器:想要使用 TLS 和 SMTP 的多个域需要单独的 IP 地址
  • DHCP 服务器:如果您的作用域中的 IP 地址用完了,您可能需要路由第二个网络并创建 DHCP 超级作用域,这将要求该附加网络中的第二个 IP 地址绑定到您的 NIC。

答案2

人们在单个网卡上使用多个 IP 的原因很简单。您希望使用只有一块网卡的计算机或只有一个网络出口的地方加入多个网络。

是的,有时您可以添加第二个 NIC 或第二个插座。


I heard someone saying that a user with access to such a machine will automatically get access to both networks

是的。这通常就是重点。

答案3

一种可能的用例是在不使用 NAT 的情况下为 VPN 提供整个 LAN 访问。

但不要以为这两个地址会自动属于不同的网络。即使在 IPv4 中,计算机也可能有一个或多个来自同一网络的“外部”IP 地址直接分配给它。(例如,大多数服务器都是这种情况。)这可用于实现基于 IP 的“虚拟主机”(每个 IP 地址一个站点 - 不仅适用于旧版 SSL,还适用于各种旧协议,如 FTP)。


在 IPv6 中,多个 IP 地址非常常见。例如,单个接口可以有

  • 链路本地地址,它基于 MAC 地址,并且在任何地方都相同;它用于 IPv6 内部目的(邻居发现)。fe80::4a5d:ff60:e8fe:658f

  • 当前网络中的全局地址,它具有相同的“主机标识符”,但可能根据网络具有不同的前缀;它可用于来自其他 Internet 主机的传入连接。2001:470:1f0b:614:4a5d:ff60:e8fe:658f

  • 几个全球隐私同一网络中的地址(一个“当前”地址和几个“弃用”(已过期)地址)具有相同的网络前缀但随机生成的主机标识符,这些标识符每隔几个小时更改一次以防止跟踪;这些地址用于传出连接,例如浏览网站。2001:470:1f0b:614:a944:101:7c99:25ce


请注意,这绝对没有意义防止禁止用户分配多个地址。如果我有足够的权限来添加地址,那么我也有足够的权限来制作任意 IP 数据包(甚至是以太网帧)并通过网络发送它们,使用我想要的任何地址。

换句话说,如果您的问题是阻止用户访问网络的某些部分,那么该问题无法在用户的机器上解决 - 您应该确保网络本身是安全的(防火墙、802.1x、接入层交换机上的端口安全,或网络人员用来实现此目的的任何其他方法)。

答案4

高可用性软件通常使用共享 IP 地址 - 假设我们有两台服务器,其 IP 地址为10.0.0.110.0.0.2。此外,我们还有(例如)需要高可用性的邮件服务器软件 - 我们为其分配 IP 地址10.0.0.15,并且所有 DNS 记录都指向该 IP 地址(mail.domain.com-> 10.0.0.15)。请注意,它不是真实硬件服务器的 IP 地址 - 它是唯一标识该软件包的 IP。

最初,我们可能在服务器上运行该软件10.0.0.1,这样现在可以使用两个不同的 IP 访问该服务器。一旦该服务器发生故障,或者我们需要执行某些维护,我们就会“故障转移”到另一台服务器 - 我们将数据移动到第二台服务器,然后分配10.0.0.15给第二台服务器,我们的软件就可以再次使用了。

许多类型的软件都以这种方式运行:HP Serviceguard、OpenBSD(以及 Linux/FreeBSD 端口)的 CARP 和 Cisco 的 VRRP。

相关内容