假設(shè)網(wǎng)卡lnc0原IP地址為192.168.0.2,現(xiàn)在為它綁定另一個IP:
CODE
# ifconfig lnc0 192.168.0.3 netmask 255.255.255.255 alias
解釋:
CODE
如果別名IP地址和網(wǎng)卡原IP地址在同一個子網(wǎng)上,就需要設(shè)置掩碼為255.255.255.255
如果位于不同的子網(wǎng),就直接使用相應(yīng)子網(wǎng)的正常網(wǎng)絡(luò)掩碼
從TCP/IP的角度來看,這樣做意味著什么呢?
網(wǎng)絡(luò)掩碼的所有位都設(shè)置成1,就會保證ICP/IP棧這樣來看待包:
只要包的目標(biāo)地址匹配所有位,就把該包看成本地子網(wǎng)上的包;它創(chuàng)建了只有一個地址的“子網(wǎng)”。
所有發(fā)送給該地址的包以及該地址接受的包都會發(fā)送給路由器,而不會發(fā)送到LAN上。
如果多個別名使用了同一個網(wǎng)絡(luò)掩碼,這些別名的廣播地址也應(yīng)該相同,而這樣卻導(dǎo)致了TCP/IP棧的混亂。
使用全1的網(wǎng)絡(luò)掩碼,才能騙過ifconfig,讓該命令允許單個接口卡上有多個IP地址。
要在/etc/rc.conf中設(shè)置別名,應(yīng)該使用 ifconfig_xxx#_alias# 關(guān)鍵字,該關(guān)鍵字的使用形式類似于 ifconfig_xxx#:
CODE
ifconfig_lnc0="inet 192.168.0.2 netmask 255.255.255.0"
ifconfig_lnc0_alias0="inet 192.168.0.3 netmask 255.255.255.255"
ifconfig_lnc0_alias1="inet 192.168.1.2 netmask 255.255.255.0"
ifconfig_lnc0_alias2="inet 192.168.1.3 netmask 255.255.255.255"