雙網卡單IP實現網卡冗余與負載均衡


WINDOWS下:

所謂雙網卡,就是通過軟件將雙網卡綁定為一個IP地址,這個技術對於許多朋友來說並不陌生,許多高檔服務器網卡(例如intel8255x系列、3COM服務器網卡等)都具有多網卡綁定功能,可以通過軟硬件設置將兩塊或者多塊網卡綁定在同一個IP 地址上,使用起來就好象在使用一塊網卡,多網卡綁定的優點不少.

首先,可以增大帶寬,假如一個網卡的帶寬是100M,理論上兩塊網卡就是200M,三塊就是 300M,當然實際上的效果是不會是這樣簡單的增加的,不過經實際測試使用多個網卡對於增加帶寬,保持帶寬的穩定性肯定是有裨益的,如果交換機等相關條件不錯的話,這個效果還是很能令人滿意;

其次,可以形成網卡冗余陣列、分擔負載,雙網卡被綁定成“一塊網卡”之后,同步一起工作,對服 務器的訪問流量被均衡分擔到兩塊網卡上,這樣每塊網卡的負載壓力就小多了,抗並發訪問的能力提高,保證了服務器訪問的穩定和暢快,當其中一塊發生故障的時候,另一塊立刻接管全部負載,過程是無縫的,服務不會中斷,直到維修人員到來。先下載一個軟件NIC Express下載完軟件,先不忙安裝,咱們還是先准備好硬件。

第一部分:硬件安裝

雖然,理論上講綁定越多網卡在一起,最終效果提升就越明顯,但是考慮到復雜程度,這里就以綁定 雙網卡為例進行說明,如果讀者覺得好玩,興致很高的話,按照下面方法願意綁定多少就綁定多少個網卡,其實一般同一台服務器,綁定2-3塊網卡也就夠了,太 多了,據說因為鏈路聚合的先天缺點,會過多占用服務器資源,反過來會影響服務器速度(關於這個我沒實驗,不過我覺得凡事都離不開物極必反的道理,適度最好)。打開服務器機箱,把兩塊網卡擰在主板PCI插槽上!:》 硬件的安裝很簡單,我也不在這里說了。省的大家罵我:》

第二部分:設置調試

下面要進行設置及調試了,也就是要將這兩塊8139D廉價網卡,如同高檔服務器網卡那樣綁定在一起,使用同一個IP地址,同時同步工作。其過程並不復雜,估計20分鍾足夠了。 將剛剛下載的NIC Express軟件的安裝包NIC4.rar解壓縮得到安裝文件“NICExpressW2KEE.exe”,雙擊它啟動安裝程序,一路NEXT,軟件提示輸入unlock key(注冊碼),如果沒有注冊碼,就只好點擊Demo,選擇試用,這樣可以獲得30天的免費試用期,在這30天里如果覺得不錯,你可以想辦法去弄一個注 冊碼(怎么弄?找小編問,他可能有,哈哈)。到下圖所示界面,軟件提示選擇是否開啟LOAD Balancing 功能?什么是LOAD Balancing 功能呢?LOAD Balancing的中文意思可以翻譯為負載均衡,在這里就是網絡負載均衡。也就是當多塊網卡被綁定合一之后,當數據流量很大的時候,軟件會自動調整,將數據流量負載均衡地分配到各個網卡上,以減輕單塊網卡的壓力,達到暢快的訪問效果。我們綁定雙網卡,其中目的之一就是為了實現負載均衡,我們自然要開啟這 個功能,所以,在這里一定要選擇“Enabled”。

當然,如果你在這里選擇錯了也沒關系,今后也可以通過NIC Express軟件管理界面開啟。繼續一路NEXT,在Windows XP里安裝時如果遇到提示“NIC Express Virtual Miniport”沒有通過Windows測試,無法驗證它同Windows XP的相容性,不要理會,選擇“仍然繼續”就行了。

到了下圖所示界面,就到了真正綁定網卡的時候了: 大家看到這個界面一共分為上、中、下,三個窗口,上面的是空白,中間的寫着8139-2,這個8139-2是我自己起的綁定之后的網卡組的名稱,原來這里默認寫的是New array,也可以不修改,你也可以根據自己喜好,寫成別的名字。在最下面的窗口里列出了目前服務器上安裝的兩塊網卡的名字。我們下一步就是要用鼠標選中下面的兩塊網卡名字,然后點擊界面中間的Add鍵,把兩塊網卡加入上面的窗口里,這樣兩塊網卡就這樣被加入了網卡組里,初步綁定成一塊“網卡”了,今后可 以使用同一個IP地址了。點擊OK繼續,NIC Express出現一個配置界面,選項很多,但是不必太操心,因為這些配置都不必修改,使用默認值就可以了,直接點擊OK、點擊Finish完成安裝進 程。至此軟件安裝基本結束,剩下就需要對軟件和網卡進行一些必要的設置工作。

點擊桌面“開始”菜單,選擇執行菜單里的“NIC Express Enterprise Edition”選項,這是NIC Express軟件自帶的一個監控程序,首先點擊“setting”選項,在這里可以設置網卡流量計量單位,可以按照Packets/Sec、Mbits /Sec、Kbits/Sec三種單位來計算,一般都是使用默認的Mbits/Sec來計算,也就是兆/每秒,其實在這里只需要修改一下“Graph Detail(圖形顯示)”即可,將默認的“By Protocol”改成“By Incoming/Outgoing”,別的不需要改。

如果你想分別觀察綁定組中每塊網卡的流量或者整個組的流量,只需在“Select Device”選項中選擇一下設備即可。最后點擊“Advanced”選項,設定網卡綁定的工作模式,在這里也可以點擊“Load Balancing Disable”來關閉網卡負載均衡功能。使用NIC Express綁定的雙網卡組默認工作於“NIC Express ELB”模式下,這是NIC Express所特有的一種工作模式,實際效果***。我們都知道利用昂貴的Intel PROSET綁定的Intel 8255x的組合是運行在“802.3ad”工作模式下的,這一模式在NIC Express中也可以選擇,但是多數使用者在實際使用后都認為“NIC Express ELB”模式的效果優於“802.3ad”模式,大家今后可以自己實踐測試比較一下。如果你也使用默認的“NIC Express ELB”模式,那么“Advanced”選項里也就不用改什么,一切默認即可。至此NIC Express的設置結束。

第三部分:“虛擬網卡”設定

最后還要看看網卡的設置,用鼠標在桌面“網上鄰居”上點擊右鍵彈出“網絡和撥號連接”窗口,可以看到原來的兩個網卡連接圖標已經變成了三個,多出來的一個圖標就是“NIC Express Virtual Adapter”,這個就是綁定后的網卡組,這個網卡組的使用和使用單一網卡完全一樣,相當於一個單一的“虛擬網卡”。 用鼠標在這個圖標上點擊右鍵選擇屬性,可以為這個“虛擬網卡”設定IP地址、子網掩碼、網關等等,其實在安裝“NIC Express”過程中,如果服務器原來的單一網卡已經設置了這些,那么“虛擬網卡”就會自動設定和原來的網卡一樣。在這里選擇“NIC Express Transport for Ethernet”還可以自由對網卡綁定組進行調整,例如,減少或者加入一塊網卡,這個較之Intel PROSET要方便許多,Intel PROSET在增加或者減少綁定組里的網卡之前必須刪除原來的綁定組然后重新創建。好了,好了,至此一切都已經做好,我們的服務器已經成為一台地地道道的 “雙網卡冗余服務器”了。

http://blog.163.com/handsomcyp@126/blog/static/2502114120078291460541/

LINUX下:

一、修改網卡配置文件

::::::::::::::

/etc/sysconfig/network-scripts/ifcfg-bond0

::::::::::::::

DEVICE=bond0

IPADDR=192.168.100.199

NETWORK=192.168.100.0

NETMASK=255.255.255.0

USERCTL=no

BOOTPROTO=none

ONBOOT=yes

::::::::::::::

/etc/sysconfig/network-scripts/ifcfg-eth0

::::::::::::::

# Intel Corporation 82545EM Gigabit Ethernet Controller (Copper)

DEVICE=eth0

USERCTL=no

ONBOOT=yes

MASTER=bond0

SLAVE=yes

BOOTPROTO=none

::::::::::::::

/etc/sysconfig/network-scripts/ifcfg-eth1

::::::::::::::

# Intel Corporation 82545EM Gigabit Ethernet Controller (Copper)

DEVICE=eth1

USERCTL=no

ONBOOT=yes

MASTER=bond0

SLAVE=yes

BOOTPROTO=none

::::::::::::::

# DEVICE=物理設備名   
IPADDR=IP地址    
NETMASK=掩碼值    
NETWORK=網絡地址    
BROADCAST=廣播地址    
GATEWAY=網關地址    
ONBOOT=[yes|no](引導時是否激活設備)    
USERCTL=[yes|no](非root用戶是否可以控制該設備)    
BOOTPROTO=[none|static|bootp|dhcp](引導時不使用協議|靜態分配|BOOTP協議|DHCP協議)    
HWADDR = 你的MAC地址

有的參數並非必需。

http://blog.chinaunix.net/uid-9967220-id-1995610.html

還有其實參數,比如PEERDNS=[yes|no],如果是通過DHCP獲取IP,是否要將DNS寫入/etc/resolv.conf,應該會覆蓋原來的內容!

Max_bonds=2如果綁定多個網卡,最好加上這個參數,否則可能在網絡重啟后會提示找不到BOND1之類的消息!

二、修改系統模塊組件

1、在/etc/modprobe.conf添加如下信息:

alias bond0 bonding

options bond0 miimon=100 mode=1

上面的options的配置可以寫在/etc/sysconfig/network-scripts/ifcfg-bond0:

BONDING_OPTS="mode=1 miimon=100"

這個options里還可以加primary=eth1,指定默認主網卡,默認應該是eth0

如果系統存在多塊網卡,eth0,eth1,eth2,eth3,我們現在希望兩兩做備份,這樣在系統就可以配置多個bonding了,需要在加載bonding的時候加載一個參數,max_bonds,比如:
modprobe bonding max_bonds=2

我們可以加入
alias bond0 bonding

   options bonding mod=blance-rr miimon=100 max_bonds=2

   alias bond1 bonding

   options bonding mod=active-backup miimon=100 primary=eth2 max_bonds=2

多個bonding,最好加上這個參數,否則可能在網絡重啟后會提示找不到BOND1之類的消息!

2、測試系統模塊配置信息的正確性

# modprobe bonding

3、重啟network服務或者重啟電腦,使配置生效

# service network restart或者reboot

4、核實配置的正確性

# less /proc/net/bonding/bond0

5、查看網卡狀態及相關信息

mii-tool

ethtool eth0/eth1

三、如果網卡參數里不寫MASTER=bond0和SLAVE=yes,就要執行

在/etc/rc.d/rc.local 加入如下一行(啟動時執行此行命令)   
  ifenslave bond0 eth0 eth1

如果寫了的話,這一步就可有可無了!

http://www.doc88.com/p-119695623633.html

引用:

modprobe.conf配置文件中的解釋:

miimon是用來進行鏈路檢測的。比如miimon=100,那么系統每隔100毫秒就檢測一次鏈路的 鏈接狀態,如果一條線路不通就轉入另外一天鏈路

mode的值表示bonding的工作模式,一個有0、1、2、3、4、5、6七種模式,常用的有0、1兩種,可以根據工作模式適當的選擇:

0、(balance-rr)Round-robin policy:(平衡輪循環策略):傳輸數據包的順序是一次傳輸,知道最后一個傳輸完畢,此模式提供負載均衡和容錯能力(這個好像要交換機支持,不知道什么意思), 在這種情況下,帶寬理論上是雙倍的,斷開一個網卡只是帶寬減少了

1、(active-backup)Active-backup policy:(主-備策略):只有一個設備處於活動的狀態。一個如果宕掉了則立馬有備份轉移到另外一個主設備。mac地址是外部可見的。這個模式提供了容錯能力,在這種情況下,ETH1作為備份,是NO ARP狀態的,可以使用ifconfig查看到,只有ETH0斷開,它才會接管

2、(blance-xor)XOR policy:(廣播策略):將所有數據包傳輸給所有接口。此模式提供了容錯能力

3、(blance-xor)XOR policy:(平衡策略):傳輸根據源地址布爾值選擇傳輸設備。此模式提供負載平衡和容錯能力

4、(802.3 ad)IEEE 802.3ad Dynamic link aggregation:(IEEE 802.3ad動態鏈接聚合):創建共享相同的速度和雙工設置的聚合組

5、(balance-tlb)Adaptive transmit load balancing:(適配器傳輸負載均衡):沒有特殊策略,第一個設備傳不通就用另一個設備接管第一個設備正在處理的mac地址,幫助第一個進行傳輸

6、(balance-alb)Adaptive load balancing:(適配器傳輸負載均衡):大致意思是包括mod5,bonding驅動程序截獲ARP在本地系統發送的請求,用其中之一的硬件地址覆蓋從屬設備的原地址。就像是服務器上不同的人使用不同的硬件地址一樣(這個好像不用交換機支持)

http://blog.sina.com.cn/s/blog_67be3b450101dew5.html

下面這里也有介紹

http://wenku.baidu.com/view/4acd9f3b0912a216147929aa.html

 

停止bondingifenslave -d bond0 eth0

   ifenslave -d bond0 eth1

   ifconfig bond0 down

   modprobe -r bonding
http://os.it168.com/a2008/0331/978/000000978427.shtml

 

 

對於雙網卡雙IP的那種要求,可能要手機加一條路由就可以了,因為不加的話有一個網段應該會無效的,這個網上也有,根據自己的情況設置吧,不在這篇文章的范圍內!

查看這里http://mcmvp.blog.51cto.com/5497438/1266728


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM