轉貼:http://www.pcworld.com.cn/how_to_use/1/2006/0707/6804.shtml
引:在Linux下有時候需要給一個網卡綁定多個IP,本文介紹在Redhat系列(redhat,Fedora Core,Centos)中的實現方法和一種在Gentoo等其他Linux中普遍適用的方法。
在Linux下有時候需要給一個網卡綁定多個IP,本文介紹在Redhat系列(redhat,Fedora Core,Centos)中的實現方法和一種在Gentoo等其他Linux中普遍適用的方法。
1、單網卡綁定多IP在Redhat系列中的實現方法
假設需要綁定多IP的網卡是eth0,請在/etc/sysconfig/network-scripts目錄裡面建立一個名為ifcfg-eth0:0的檔案,
內容範例為:
DEVICE=”eth0:0″ IPADDR=”192.168.0.2″ BROADCAST=”172.168.0.255″ NETMASK=”255.255.255.0″ ONBOOT=”yes” |
其中的DEVICE為裝置的名稱,
IPADDR為此裝置的IP地址,
BROADCAST是廣播位址,
NETMASK為子網路遮罩,
ONBOOT 表示在系統啟動時自動啟動。
如果需要再綁定多一個IP地址,
只需要把檔案名稱和檔案內的DEVICE中的eth0:x加一即可。
LINUX最多可以支援255個IP別名
2、普遍適用的單網卡綁定多IP實現方法
ifconfig eth0:1 192.168.0.3 broadcast 192.168.0.255 netmask 255.255.255.0 |
可以把上述命令加在啟動自運行檔案裡面,在Gentoo下是/etc/conf.d/local.start,而某些版本的Linux是/etc/rc.d/rc.local。
3、多網卡共用單IP的實現方法
使用多塊網卡虛擬成為一塊網卡,具有相同的IP地址。這項技術其實在sun和cisco中已經存在,分別稱為Trunking和 etherchannel技術,在linux中,這種技術稱為bonding。因為bonding在核心2.4.x中已經包含了,只需要在編譯的時候把網路裝置選項中的 Bonding driver support選中就可以了。
然後,重新編譯核心,重新起動電腦,執行如下命令:
ismod bonding ifconfig eth0 down ifconfig eth1 down ifconfig bond0 ipaddress ifenslave bond0 eth0 ifenslave bond0 eth1 |
現在兩塊網卡已經象一塊一樣工作了,這樣可以提高叢集節點間的資料轉送。
你最好把這幾句寫成一個指令碼,再由/etc/rc.d/rc.local或者/etc/conf.d/local.start調用,以便一開機就生效。
bonding對於伺服器來是個比較好的選擇,在沒有千兆網卡時,用兩三塊100兆網卡作 bonding,可大大提高伺服器到交換器之間的頻寬。但是需要在交換器上設定串連bonding 網卡的兩個口子映射為同一個虛擬介面。
瞧瞧,這位仁兄說他在“最近的測試在網卡上bind 16384個IP”, 好不厲害!
http://gentoo-wiki.com/HOWTO_IP_Aliasing
http://mlsx.xplore.cn/post/724/
http://www.oreilly.com.cn/book.php?m=toc&bn=7-5641-0367-1
http://www.faqs.org/docs/Linux-mini/IP-Alias.html