本發(fā)明涉及網(wǎng)絡(luò)技術(shù)領(lǐng)域,尤其是涉及一種基于linux系統(tǒng)的多鏈路負(fù)載均衡方法及裝置。
背景技術(shù):
企業(yè)網(wǎng)絡(luò)鏈路負(fù)載均衡服務(wù)能夠平衡網(wǎng)絡(luò)鏈路的通信負(fù)載,根據(jù)實(shí)時(shí)響應(yīng)時(shí)間進(jìn)行判斷,將任務(wù)交由負(fù)載最輕的鏈路來(lái)處理。
常用的實(shí)現(xiàn)鏈路負(fù)載均衡的方法中,teql(truelinkequalizer)方法只能夠適用于廣域網(wǎng)中,不能夠適用于局域網(wǎng),且其實(shí)現(xiàn)負(fù)載均衡是通過(guò)數(shù)據(jù)包均衡的方式,不考慮各個(gè)數(shù)據(jù)鏈路之間的速率差異。網(wǎng)卡bonding模式是將兩塊具有相同的ip地址的網(wǎng)卡并行鏈接聚合成一個(gè)邏輯鏈路工作,其中,在網(wǎng)卡bonding模式0/4中,需要交換機(jī)支持端口聚合,且不支持多對(duì)多鏈路方式,網(wǎng)卡bonding模式6中不支持基于三層網(wǎng)絡(luò)ip包的多鏈路負(fù)載均衡。
如何在局域網(wǎng)中實(shí)現(xiàn)基于三層網(wǎng)絡(luò)ip包的多鏈路負(fù)載均衡是亟需解決的問(wèn)題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于克服現(xiàn)有技術(shù)的缺陷,提供一種基于linux系統(tǒng)的多鏈路負(fù)載均衡方法及裝置,能夠在局域網(wǎng)中實(shí)現(xiàn)基于ip數(shù)據(jù)包的多鏈路負(fù)載均衡。
為實(shí)現(xiàn)上述目的,本發(fā)明提出如下一種技術(shù)方案:一種基于linux系統(tǒng)的多鏈路負(fù)載均衡方法,包括:
s1,在運(yùn)行l(wèi)inux系統(tǒng)的網(wǎng)絡(luò)設(shè)備中創(chuàng)建用于接收ip數(shù)據(jù)包的虛擬網(wǎng)絡(luò)接口設(shè)備;
s2,所述虛擬網(wǎng)絡(luò)接口設(shè)備將接收到的ip數(shù)據(jù)包構(gòu)造成以太網(wǎng)數(shù)據(jù)幀并將所述以太網(wǎng)數(shù)據(jù)幀發(fā)送至目的網(wǎng)絡(luò)設(shè)備中。
優(yōu)選地,步驟s1中,虛擬網(wǎng)絡(luò)設(shè)備包括虛擬網(wǎng)絡(luò)接口,以及與所述虛擬網(wǎng)絡(luò)接口相對(duì)應(yīng)的隊(duì)列規(guī)則,所述運(yùn)行l(wèi)inux系統(tǒng)的網(wǎng)絡(luò)設(shè)備的物理網(wǎng)絡(luò)接口需綁定至虛擬網(wǎng)絡(luò)接口對(duì)應(yīng)的隊(duì)列規(guī)則中。
優(yōu)選地,步驟s2中,對(duì)接收到的ip數(shù)據(jù)包進(jìn)行分包,并將分包后的ip數(shù)據(jù)包構(gòu)造以太網(wǎng)數(shù)據(jù)幀。優(yōu)選地,步驟s2中,虛擬網(wǎng)絡(luò)接口設(shè)備在所述物理網(wǎng)絡(luò)接口上輪轉(zhuǎn)轉(zhuǎn)發(fā)以太網(wǎng)數(shù)據(jù)幀。
還提供另一種技術(shù)方案:一種基于linux系統(tǒng)的多鏈路負(fù)載均衡裝置,包括
虛擬網(wǎng)絡(luò)接口設(shè)備創(chuàng)建單元,在運(yùn)行l(wèi)inux系統(tǒng)的網(wǎng)絡(luò)設(shè)備中創(chuàng)建用于接收ip數(shù)據(jù)包的虛擬網(wǎng)絡(luò)接口設(shè)備;
以太網(wǎng)幀構(gòu)造單元,用于將接收到的ip數(shù)據(jù)包構(gòu)造成以太網(wǎng)數(shù)據(jù)幀,并將所述以太網(wǎng)數(shù)據(jù)幀發(fā)送至目的網(wǎng)絡(luò)設(shè)備中。
優(yōu)選地,虛擬網(wǎng)絡(luò)設(shè)備包括虛擬網(wǎng)絡(luò)接口,以及與所述虛擬網(wǎng)絡(luò)接口相對(duì)應(yīng)的隊(duì)列規(guī)則,所述運(yùn)行l(wèi)inux系統(tǒng)的網(wǎng)絡(luò)設(shè)備的物理網(wǎng)絡(luò)接口需綁定至虛擬網(wǎng)絡(luò)接口對(duì)應(yīng)的隊(duì)列規(guī)則中。
優(yōu)選地,所述以太網(wǎng)幀構(gòu)造單元對(duì)ip數(shù)據(jù)包進(jìn)行分包,并構(gòu)造以太網(wǎng)數(shù)據(jù)幀。
優(yōu)選地,所述虛擬網(wǎng)絡(luò)接口設(shè)備在所述物理網(wǎng)絡(luò)接口上輪轉(zhuǎn)轉(zhuǎn)發(fā)以太網(wǎng)數(shù)據(jù)幀。
本發(fā)明的有益效果是:
與現(xiàn)有技術(shù)相比,本發(fā)明所述的基于linux系統(tǒng)的多鏈路負(fù)載均衡方法及裝置,能夠?qū)崿F(xiàn)基于ip數(shù)據(jù)包的多鏈路負(fù)載均衡,進(jìn)一步提高網(wǎng)絡(luò)吞吐性能;同時(shí)還能夠是實(shí)現(xiàn)基于ip數(shù)據(jù)報(bào)的多鏈路連接,提供鏈路冗余。
附圖說(shuō)明
圖1是本發(fā)明的方法流程圖示意圖;
圖2是本發(fā)明的實(shí)施例結(jié)構(gòu)框圖示意圖;
圖3是本發(fā)明的裝置結(jié)構(gòu)框圖示意圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明的附圖,對(duì)本發(fā)明實(shí)施例的技術(shù)方案進(jìn)行清楚、完整的描述。
本發(fā)明所揭示的一種基于linux系統(tǒng)的多鏈路負(fù)載均衡方法,應(yīng)用于局域網(wǎng)中,能夠?qū)崿F(xiàn)基于三層ip數(shù)據(jù)包的多鏈路負(fù)載均衡。
如圖1所示,一種基于linux系統(tǒng)的多鏈路負(fù)載均衡方法,包括
s1,在運(yùn)行l(wèi)inux系統(tǒng)的網(wǎng)絡(luò)設(shè)備中創(chuàng)建用于接收ip數(shù)據(jù)包的虛擬網(wǎng)絡(luò)接口設(shè)備;
具體的,負(fù)載均衡需要雙向?qū)崿F(xiàn),鏈路兩端的網(wǎng)絡(luò)設(shè)備需要同時(shí)參與,才能夠很好的實(shí)現(xiàn)負(fù)載鏈路均衡。因此,需要在鏈路兩端運(yùn)行l(wèi)inux系統(tǒng)的網(wǎng)絡(luò)設(shè)備中創(chuàng)建用于接收ip數(shù)據(jù)包的虛擬網(wǎng)絡(luò)接口設(shè)備。
虛擬網(wǎng)絡(luò)設(shè)備包括虛擬網(wǎng)絡(luò)接口,以及與所述虛擬網(wǎng)絡(luò)接口相對(duì)應(yīng)的qdisc(queueingdiscipline,排隊(duì)規(guī)則)。linux內(nèi)核若通過(guò)網(wǎng)絡(luò)設(shè)備上的某個(gè)物理網(wǎng)絡(luò)接口發(fā)送數(shù)據(jù)包,則需要按照為這個(gè)物理網(wǎng)絡(luò)接口配置的qdisc把數(shù)據(jù)包加入數(shù)據(jù)包隊(duì)列中,內(nèi)核盡可能多地從qdisc里面取出數(shù)據(jù)包,將其從物理網(wǎng)絡(luò)接口中轉(zhuǎn)發(fā)出去。
為了實(shí)現(xiàn)負(fù)載均衡,需要將虛擬網(wǎng)絡(luò)接口與物理網(wǎng)絡(luò)接口進(jìn)行關(guān)聯(lián),因此,需要將物理網(wǎng)絡(luò)接口綁定至虛擬網(wǎng)絡(luò)接口對(duì)應(yīng)的隊(duì)列規(guī)則中,通過(guò)如下命令將物理接口設(shè)備綁定至隊(duì)列規(guī)則中:
tcqdiscadddevdevrootteq10,其中,dev為網(wǎng)絡(luò)設(shè)備上的物理網(wǎng)絡(luò)接口,teq10為虛擬網(wǎng)絡(luò)接口對(duì)應(yīng)的隊(duì)列規(guī)則。
如圖2所示,本實(shí)施例中,以局域網(wǎng)中的兩個(gè)運(yùn)行l(wèi)inux系統(tǒng)的網(wǎng)絡(luò)設(shè)備為例進(jìn)行詳細(xì)的說(shuō)明。所述兩個(gè)網(wǎng)絡(luò)設(shè)備均包括兩個(gè)物理網(wǎng)絡(luò)接口ethernet2和ethernet3,所述兩個(gè)網(wǎng)絡(luò)設(shè)備通過(guò)交換機(jī)相連,建立兩個(gè)數(shù)據(jù)鏈路。接下來(lái),在數(shù)據(jù)鏈路兩端的網(wǎng)絡(luò)設(shè)備上創(chuàng)建虛擬網(wǎng)絡(luò)接口設(shè)備,根據(jù)如下命令創(chuàng)建:
網(wǎng)絡(luò)設(shè)備1:
tcqdiscadddeveth2rootteq10
tcqdiscadddeveth3rootteq10
iplinksetteq10up
網(wǎng)絡(luò)設(shè)備2:
tcqdiscadddeveth2rootteq10
tcqdiscadddeveth3rootteq10
iplinksetteq10up
接下來(lái)配置網(wǎng)絡(luò)設(shè)備1的物理網(wǎng)絡(luò)接口和虛擬網(wǎng)絡(luò)接口的ip地址:
ipaddradddevteq10192.168.4.82/24
ipaddradddeveth2192.168.2.82/24
ipaddradddeveth3192.168.3.82/24
配置網(wǎng)絡(luò)設(shè)備2的物理網(wǎng)絡(luò)接口和虛擬網(wǎng)絡(luò)接口的ip地址:
ipaddradddevteq10192.168.4.82/24
ipaddradddeveth2192.168.2.82/24
ipaddradddeveth3192.168.3.82/24
其中,網(wǎng)絡(luò)設(shè)備1上物理網(wǎng)絡(luò)接口ethernet2接口收到的數(shù)據(jù)通過(guò)交換機(jī)發(fā)送至網(wǎng)絡(luò)設(shè)備2上的物理網(wǎng)絡(luò)接口ethernet2上,網(wǎng)絡(luò)設(shè)備上物理網(wǎng)絡(luò)接口ethernet3接口收到的數(shù)據(jù)通過(guò)交換機(jī)發(fā)送至網(wǎng)絡(luò)設(shè)備2上物理網(wǎng)絡(luò)接口ethernet3上,共形成兩個(gè)數(shù)據(jù)鏈路。
結(jié)合圖1和圖2所示,步驟s2,所述虛擬網(wǎng)絡(luò)接口設(shè)備將接收到的ip數(shù)據(jù)包構(gòu)造成以太網(wǎng)數(shù)據(jù)幀并將所述以太網(wǎng)數(shù)據(jù)幀發(fā)送至目的網(wǎng)絡(luò)設(shè)備中。
具體的,網(wǎng)絡(luò)設(shè)備1上的虛擬網(wǎng)絡(luò)接口teq10接口收到ip數(shù)據(jù)包時(shí),根據(jù)調(diào)度算法對(duì)ip數(shù)據(jù)包進(jìn)行分包,并在包頭加入14個(gè)字節(jié)的內(nèi)容構(gòu)成以太網(wǎng)幀,即6個(gè)字節(jié)的目的mac,6個(gè)字節(jié)的源mac,以及2個(gè)字節(jié)的類型,2個(gè)字節(jié)的類型指示的上層ip協(xié)議。
當(dāng)ip數(shù)據(jù)包被轉(zhuǎn)換為以太網(wǎng)幀后,接口對(duì)應(yīng)的隊(duì)列規(guī)則從物理接口中輪轉(zhuǎn)選擇物理接口,并從選擇的物理接口中將以太網(wǎng)幀發(fā)送至交換機(jī)中。
當(dāng)網(wǎng)絡(luò)設(shè)備1上隊(duì)列規(guī)則將以太網(wǎng)數(shù)據(jù)幀分配至ethernet2時(shí),ethernet2接口轉(zhuǎn)發(fā)至交換機(jī)中,由于網(wǎng)絡(luò)設(shè)備1上的ethernet2接口與網(wǎng)絡(luò)設(shè)備2上的ethernet2屬于同一子網(wǎng),因此,以太網(wǎng)數(shù)據(jù)幀被轉(zhuǎn)發(fā)至網(wǎng)絡(luò)設(shè)備2上的ethernet2接口中。
如圖3所示,一種基于linux系統(tǒng)的多鏈路負(fù)載均衡裝置,包括
虛擬網(wǎng)絡(luò)接口設(shè)備創(chuàng)建單元,在運(yùn)行l(wèi)inux系統(tǒng)的網(wǎng)絡(luò)設(shè)備中創(chuàng)建用于接收ip數(shù)據(jù)包的虛擬網(wǎng)絡(luò)接口設(shè)備;
以太網(wǎng)幀構(gòu)造單元,用于將接收到的ip數(shù)據(jù)包構(gòu)造成以太網(wǎng)數(shù)據(jù)幀,并將所述以太網(wǎng)數(shù)據(jù)幀發(fā)送至目的網(wǎng)絡(luò)設(shè)備中。
進(jìn)一步地,虛擬網(wǎng)絡(luò)設(shè)備包括虛擬網(wǎng)絡(luò)接口,以及與所述虛擬網(wǎng)絡(luò)接口相對(duì)應(yīng)的隊(duì)列規(guī)則。linux內(nèi)核若通過(guò)網(wǎng)絡(luò)設(shè)備上的某個(gè)物理網(wǎng)絡(luò)接口發(fā)送數(shù)據(jù)包,則需要按照為這個(gè)物理網(wǎng)絡(luò)接口配置的qdisc把數(shù)據(jù)包加入數(shù)據(jù)包隊(duì)列中,內(nèi)核盡可能多地從qdisc里面取出數(shù)據(jù)包,將其從物理網(wǎng)絡(luò)接口中轉(zhuǎn)發(fā)出去,因此,需要將所述網(wǎng)絡(luò)設(shè)備上的物理網(wǎng)絡(luò)接口需綁定至虛擬網(wǎng)絡(luò)接口對(duì)應(yīng)的隊(duì)列規(guī)則中,根據(jù)如下命令進(jìn)行綁定:
tcqdiscadddevdevrootteq10
其中,dev為物理網(wǎng)絡(luò)接口,teq10為虛擬網(wǎng)絡(luò)接口對(duì)應(yīng)的隊(duì)列規(guī)則。
所述以太網(wǎng)幀構(gòu)造單元將接收到ip數(shù)據(jù)包后根據(jù)算法對(duì)ip數(shù)據(jù)包進(jìn)行分包,并構(gòu)造以太網(wǎng)數(shù)據(jù)幀。具體的,在ip包頭加入14個(gè)字節(jié)的內(nèi)容構(gòu)成以太網(wǎng)幀,即6個(gè)字節(jié)的目的地址mac,6個(gè)字節(jié)的源地址mac,以及2個(gè)字節(jié)的類型,2個(gè)字節(jié)的類型指示以太網(wǎng)幀中所包含的協(xié)議類型為ip協(xié)議。
進(jìn)一步的,所述虛擬網(wǎng)絡(luò)接口設(shè)備在所述物理網(wǎng)絡(luò)接口上輪轉(zhuǎn)轉(zhuǎn)發(fā)以太網(wǎng)數(shù)據(jù)幀。具體的,當(dāng)ip數(shù)據(jù)包被轉(zhuǎn)換為以太網(wǎng)幀后,接口對(duì)應(yīng)的隊(duì)列規(guī)則從物理接口中輪轉(zhuǎn)選擇物理接口,并從選擇的物理接口中將以太網(wǎng)幀發(fā)送至交換機(jī)中。
本發(fā)明能夠?qū)崿F(xiàn)基于ip數(shù)據(jù)包的多鏈路負(fù)載均衡,進(jìn)一步提高網(wǎng)絡(luò)吞吐性能;同時(shí)還能夠是實(shí)現(xiàn)基于ip數(shù)據(jù)報(bào)的多鏈路連接,提供鏈路冗余。
本發(fā)明的技術(shù)內(nèi)容及技術(shù)特征已揭示如上,然而熟悉本領(lǐng)域的技術(shù)人員仍可能基于本發(fā)明的教示及揭示而作種種不背離本發(fā)明精神的替換及修飾,因此,本發(fā)明保護(hù)范圍應(yīng)不限于實(shí)施例所揭示的內(nèi)容,而應(yīng)包括各種不背離本發(fā)明的替換及修飾,并為本專利申請(qǐng)權(quán)利要求所涵蓋。