FreeBSD 最常見的用途之一就是虛擬網站代管,即以一台伺服器在網路上扮演多台伺服器,這可以透過指定多個網路位置到一個網路介面來做到。
一個網路介面會有一個 “真實 (Real)” 位址且可以有許多個 “別名 (Alias)” 位址。一般會在 /etc/rc.conf
中放置別名項目來增加別名,如下例:
ifconfig_fxp0_alias0="inet xxx.xxx.xxx.xxx netmask xxx.xxx.xxx.xxx"
別名項目必須以 alias
開頭,使用連續數字例如 0
alias0
, alias1
以此類推,設定程序會在第一個遇到缺號的地方中止。
要注意別名網路遮罩 (Netmask) 的計算,使用的介面必須至少有一個正確的填寫網路遮罩的位址,而其他所有在此網路中的位址則必須使用全部 1
的網路遮罩,可用 255.255.255.255
或 0xffffffff
來表示。
舉例來說,有一個 fxp0
介面連結到兩個網路:10.1.1.0
使用網路遮罩 255.255.255.0
以及 202.0.75.16
使用網路遮罩 255.255.255.240
。而系統將要設定使用範圍 10.1.1.1
到 10.1.1.5
以及 202.0.75.17
到 202.0.75.20
。在指定的網路範圍中只有第一個位址應使用真實的網路遮罩,其餘 (10.1.1.2
到 10.1.1.5
及 202.0.75.18
到 202.0.75.20
) 則必須設定使用 255.255.255.255
的遮罩。
在此情境下正確設定網路介面的方式如下 /etc/rc.conf
中的項目:
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"
有一種更簡單的方式可以表達這些設定,便是使用以空白分隔的 IP 位址清單。只有第一個位址會使用指定的子網路遮罩,其他的位址則會使用 255.255.255.255
的子網路遮罩。
ifconfig_fxp0_aliases="inet 10.1.1.1-5/24 inet 202.0.75.17-20/28"
本文及其他文件,可由此下載: ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/。
若有 FreeBSD 方面疑問,請先閱讀
FreeBSD 相關文件,如不能解決的話,再洽詢
<questions@FreeBSD.org>。
關於本文件的問題,請洽詢
<doc@FreeBSD.org>。