FreeBSD 的一个很普通的用途是虚拟主机站点, 一个服务器虚拟成很多服务器一样提供网络服务。 这通过在一个接口上绑定多个网络地址来实现。
一个特定的网络接口有一个“真实”的地址, 也可能有一些“别名”地址。这些别名通常用 /etc/rc.conf 中的记录来添加。
一个 fxp0 的别名记录类似于:
ifconfig_fxp0_alias0="inet xxx.xxx.xxx.xxx netmask xxx.xxx.xxx.xxx"
记住别名记录必须从 alias0 开始并且按顺序递增(例如 _alias1、 _alias2)。 配置程序将会停止在第一个缺少的数字的地方。
计算别名的子网掩码是很重要的,幸运的是它很简单。 对于一个接口来说,必须有一个描述子网掩码的地址。 任何在这个网段下的地址必须有一个全是 1 的子网掩码(通常表示为 255.255.255.255 或 0xffffffff。
例如,假设 fxp0 连接到两个网段, 子网掩码是 255.255.255.0 的 10.1.1.0 和子网掩码是 255.255.255.240 的 202.0.75.16。我们将要系统使用从 10.1.1.1 到 10.1.1.5 和从 202.0.75.17 到 202.0.75.20 的地址)。 如前面说明的那样, 只有给定网络范围内的第一个地址 (在这个例子中, 10.0.1.1 和 202.0.75.17) 需要有实际的子网掩码; 所有其它地址 (10.1.1.2 到 10.1.1.5 以及 202.0.75.18 到 202.0.75.20) 必须配置为使用掩码 255.255.255.255。
下面的记录会正确的设置这个适配器:
ifconfig_fxp0="inet 10.1.1.1 netmask 255.255.255.0" ifconfig_fxp0_alias0="inet 10.1.1.2 netmask 255.255.255.255" ifconfig_fxp0_alias1="inet 10.1.1.3 netmask 255.255.255.255" ifconfig_fxp0_alias2="inet 10.1.1.4 netmask 255.255.255.255" ifconfig_fxp0_alias3="inet 10.1.1.5 netmask 255.255.255.255" ifconfig_fxp0_alias4="inet 202.0.75.17 netmask 255.255.255.240" ifconfig_fxp0_alias5="inet 202.0.75.18 netmask 255.255.255.255" ifconfig_fxp0_alias6="inet 202.0.75.19 netmask 255.255.255.255" ifconfig_fxp0_alias7="inet 202.0.75.20 netmask 255.255.255.255"