Eug*_*ash 2 networking freebsd alias interface
来自关于虚拟主机主题的 FreeBSD 手册:
对于给定的接口,必须有一个地址正确表示网络的网络掩码。属于该网络的任何其他地址必须具有全 1 的网络掩码(表示为 255.255.255.255 或 0xffffffff)。
谁能解释为什么会这样?
此页面包含一个很好的解释恕我直言:
由于别名在某种意义上是重复的标签,系统需要知道标签所代表的子网是否是新的,这由网络掩码指示。使用“正常”网络掩码,系统会被告知这是一个新子网,然后它可以正确设置内部表。如果子网不是新的,并且子网掩码为“正常”,则表的设置将不正确。
网络掩码为 255.255.255.255 时,系统知道这是现有子网的副本,因此将分配地址,就像分配给环回接口一样,使用“点对点”掩码。
在大多数情况下,分配 255.255.255.0 的网络掩码似乎有效。但是,内部表将无法正确设置,如果删除别名,可能会出现问题。这可以通过在添加别名时添加适当的主机路由并在删除别名时删除路由来克服。但是,系统使用“点对点”网络掩码可以正常工作,并且维护更容易。