Linux單網路卡繫結多IP與多網路卡共用單IP

tolywang發表於2007-12-12
在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 網路卡的兩個口子對映為同一個虛擬介面。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/35489/viewspace-85101/,如需轉載,請註明出處,否則將追究法律責任。

相關文章