'primary address' 对接口意味着什么

What does the 'primary address' mean about the interface

接口主地址是什么意思?在我看来,一个接口只有一个地址。这样对吗?

不,您可以为接口分配额外的 "secondary" 或 "alias" 地址。 例如,这个接口有 3 个地址。主要是“127.0.0.1”。

# ifconfig lo0
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 33648
        inet 127.0.0.1 netmask 0xff000000
        inet alias 192.168.1.200 netmask 0xffffffff
        inet alias 192.168.140.200 netmask 0xffffffff

这意味着该接口可以接受发往这三个地址的数据包。它还可以使用所有这三个作为源地址发送,但正如 Unix 网络编程 所说,您需要专门绑定到辅助地址,因为默认情况下它将使用主地址。

您为什么要这样做?一些原因是:

  • 您正在更改计算机的 IP 地址并希望接受流量 一段时间内的旧地址(比如等待 DNS 更改 传播)。
  • 您正在使用 anycasting 或其他 High-Availability 技术,其中每个 机器有自己的地址,并且有一个 "service address" 可以 从一台机器移动到另一台机器。
  • 您的机器正在充当路由设备。