Debian下通過Bonding實現(xiàn)雙網(wǎng)卡單IP
原創(chuàng)【51CTO獨家特稿】Linux雙網(wǎng)卡綁定一個IP地址,實質(zhì)工作就是使用兩塊網(wǎng)卡虛擬為一塊,使用同一個IP地址,是我們能夠得到更好的更快的服務(wù)。其實這項技術(shù)在Sun和Cisco中早已存在,被稱為Trunking和Etherchannel技術(shù),在Linux的2.4.x的內(nèi)核中也采用這這種技術(shù),被稱為bonding。本文以Debian為例介紹這個技術(shù)的實現(xiàn)。
bonding的原理
在正常情況下,網(wǎng)卡只接收目的硬件地址(MAC Address)是自身Mac的以太網(wǎng)幀,對于別的數(shù)據(jù)幀都過濾掉,以減輕驅(qū)動程序的負(fù)擔(dān)。但是網(wǎng)卡也支持另外一種被稱為混雜的模式,可以接收網(wǎng)絡(luò)上所有的幀,比如說很多用物抓包工具就需要讓網(wǎng)卡運行在這個模式下。bonding也運行在這個模式下,而且修改了驅(qū)動程序中的MAC地址,將兩塊網(wǎng)卡的MAC地址改成相同,可以接收特定MAC的數(shù)據(jù)幀。然后把相應(yīng)的數(shù)據(jù)幀傳送給bond驅(qū)動程序處理。
bonding模塊工作方式
bonding有0-6七種模式,常用的工作方式為0、1、6三種:
mode=0:表示load balancing(round-robin)為負(fù)載均衡模式(兩塊網(wǎng)卡都要工作),但需要交換機支持并需要在交換機上進行相應(yīng)配置。
mode=1:表示fault-tolerance(active-backup)提供冗余功能,工作方式是主務(wù)的方式,也就是說默認(rèn)情況下只有一塊網(wǎng)卡工作,另一塊做備份。
mode=6:表示load balancing(round-robin)為負(fù)載均衡模式(兩塊網(wǎng)卡都要工作),不需要交換機支持。
bonding配置
使用如下命令安裝bonding。
srv10:~# apt-get install ifenslave
使用如下命令讓系統(tǒng)開機自動加載模塊bonding。其中miimon參數(shù)是用于進行鏈路監(jiān)測的。比如:miimon=100,那么系統(tǒng)每100ms監(jiān)測一次鏈路連接狀態(tài),如果有一條線路不通就轉(zhuǎn)入另一條線路;mode的值表示bonding工作模式。
srv10:~# sh -c "echo bonding mode=6 miimon=100 >> /etc/modules"
修改/etc/network/interfaces文件為如下內(nèi)容。
auto lo iface lo inet loopback auto bond0 iface bond0 inet static#虛擬網(wǎng)卡的TCP/IP配置 address 192.168.159.100 netmask 255.255.255.0 gateway 192.168.159.1 dns-nameservers 192.168.159.1 post-up ifenslave bond0 eth0 eth1 pre-down ifenslave -d bond0 eth0 eth1
如果在安裝ifenslave后沒有重新啟動計算機,必須手動加載bonding模塊。
srv10:~# modprobe bonding mode=6 miimon=100
使用如下命令重新啟動網(wǎng)卡。
srv10:~# /etc/init.d/networking restart
作者簡介:張勤(博客),MCSE、MCDBA、RHCE,從事軟件開發(fā)(Delphi、Java)、項目管理、系統(tǒng)集成工作。曾參與多個基于Windows及Linux的大型系統(tǒng)集成項目,并在國內(nèi)多個知名IT網(wǎng)站發(fā)表技術(shù)類文章。
【編輯推薦】