本發(fā)明涉及網(wǎng)絡(luò)通信技術(shù)領(lǐng)域,具體地講,是涉及一種多運營商接入情況下基于策略的多WAN口路由器的選路方法。
背景技術(shù):
隨著網(wǎng)絡(luò)普及和運用越來越廣泛,用戶的網(wǎng)絡(luò)使用的規(guī)模越來越大,對帶寬的要求也越來越高。隨著我國網(wǎng)絡(luò)建設(shè)的發(fā)展,入門低帶寬的寬帶接入日益普及,成本低廉。但商用高帶寬接入的成本依然高昂。因而,使用多個低帶寬的同時接入,來改善整網(wǎng)帶寬,成為了中小企業(yè)廣泛采用的另一種性價比極高的替代解決方案。
在這種需求的推動下,標準單Wan口的寬帶路由器設(shè)備已經(jīng)無法滿足,多Wan口寬帶路由器設(shè)備應(yīng)運而生。
和單Wan口設(shè)備相比,由于多個同權(quán)WAN口的存在,給設(shè)備在轉(zhuǎn)發(fā)數(shù)據(jù)報文時,對指定出口有了可選擇性。只有合理的選擇出口并正確的建立數(shù)據(jù)連接,能夠盡可能的提升多個WAN口帶來的整網(wǎng)效率提升。
因此,多Wan口路由設(shè)備在出口選路上需要一套完整成熟的機制。這不僅是多Wan口路由設(shè)備轉(zhuǎn)發(fā)性能,訪問正確性的保證,更是衡量多Wan口路由設(shè)備品質(zhì)的重要指標。
如果在出口的選擇上沒有有效的策略,會造成很多網(wǎng)絡(luò)應(yīng)用出現(xiàn)錯誤。
比如:根據(jù)TCP/IP協(xié)議特性,多個數(shù)據(jù)報文之間以連接會話為單位劃分。同一個連接會話中,IP地址、端口等基本特征必須相同。路由設(shè)備的轉(zhuǎn)發(fā)都是以網(wǎng)絡(luò)連接為基本單位的,只在新建連接時會有指定出口的選擇動作。同一連接內(nèi)的數(shù)據(jù)報文必須遵從相同的選路結(jié)果進行轉(zhuǎn)發(fā),不能用不同的WAN口進行傳輸。
現(xiàn)在很多網(wǎng)絡(luò)應(yīng)用,由于安全性的考慮,會采用多重加密認證。在認證過程中,可能存在多次網(wǎng)絡(luò)跳轉(zhuǎn),會有多次連接會話建立和關(guān)閉動作。如果在這多個連接中,采用了不同的WAN口地址作為出口,就可能會產(chǎn)生認證失敗的情況。用戶的直接體驗就是網(wǎng)站無法訪問或連接掉線。
采用多個Wan口接入的用戶,有很大幾率是同時使用多個不同寬帶運營商的服務(wù)。由于我國的特殊原因,各運營商之間的互聯(lián)互通問題仍舊凸顯。從早期的“北網(wǎng)通、南電信”發(fā)展到網(wǎng)通、聯(lián)通合并;再隨著4G時代的來臨,移動整合鐵通后逐漸發(fā)展為以電信、聯(lián)通、移動三大接入為首,教育網(wǎng)以及各地廣電網(wǎng)等二級運營商并存的局面。從正確的運營商接入,對指定的地址進行網(wǎng)絡(luò)訪問,是多WAN口路由設(shè)備的基本規(guī)則。
為應(yīng)對不同運營商并存的現(xiàn)狀,各大門戶網(wǎng)站以及有一定規(guī)模的內(nèi)容服務(wù)商,都積極準備了多個不同歸屬的網(wǎng)絡(luò)地址,以供不同從不同運營商接入的用戶能夠有良好的體驗。在這種情況下,多運營商同時接入時,DNS解析也會存在運營商的選擇問題。不同的運營商都有著自己的DNS服務(wù)器,對同一個域名的解析請求,會優(yōu)先響應(yīng)符合自己歸屬的網(wǎng)絡(luò)地址。因此,多WAN口路由設(shè)備,在DNS解析請求時候的選路策略,必須與后續(xù)的數(shù)據(jù)訪問連接的選路有著相關(guān)性。否則會造成通過一個運營商DNS服務(wù)器解析回來的屬于該運營商的網(wǎng)絡(luò)地址,在數(shù)據(jù)訪問的時候,卻使用了另一個運營商的接入進行。這樣很大幾率會由于互聯(lián)互通的瓶頸,造成網(wǎng)絡(luò)訪問的卡頓,無法達到更好的網(wǎng)絡(luò)體驗。
技術(shù)實現(xiàn)要素:
針對上述現(xiàn)有技術(shù)的不足,本發(fā)明提供一種多運營商接入情況下基于策略的多WAN口路由器的選路方法。
為了實現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案如下:
一種多運營商接入情況下基于策略的多WAN口路由器的選路方法,包括如下步驟:
(S1)所述路由器接收內(nèi)網(wǎng)用戶發(fā)送的DNS解析請求,根據(jù)預設(shè)的策略路由規(guī)則為該DNS解析請求選定一WANx口作為出口,并發(fā)出該DNS解析請求,其中x為WAN口設(shè)定的編號;
(S2)所述路由器收到DNS服務(wù)器返回的DNS響應(yīng)報文后,解析報文獲得域名對應(yīng)的至少一個IP地址,并按IP地址與所述選定的WANx口對應(yīng)的形式保存于配置在所述路由器內(nèi)的選路緩存模塊中,再將所述IP地址轉(zhuǎn)發(fā)至發(fā)送該DNS解析請求的用戶設(shè)備;
(S3)所述路由器接收所述用戶設(shè)備向所述任一IP地址發(fā)送的數(shù)據(jù)包,根據(jù)預設(shè)的策略路由規(guī)則判斷是否有指定的出口,若有且只有一個指定的出口,則選擇該WANx口作為數(shù)據(jù)包出口,若有兩個以上指定的出口,則跳轉(zhuǎn)到步驟(S5),若沒有指定的出口,則執(zhí)行步驟(S4);
(S4)根據(jù)路由器內(nèi)配置的ISP策略為數(shù)據(jù)包選擇出口:
(S4.1)根據(jù)所述數(shù)據(jù)包中攜帶的該用戶設(shè)備選定的目的IP地址判斷其是否歸屬于已知運營商ISP,若是,則確定該IP地址的歸屬并執(zhí)行步驟(S4.2),否則跳轉(zhuǎn)到步驟(S5);
(S4.2)判斷所述路由器接入的多運營商中是否有該IP地址歸屬的運營商ISP,若有,則選擇該運營商ISP對應(yīng)的WANx口并執(zhí)行步驟(S4.3),否則跳轉(zhuǎn)到步驟(S5);
(S4.3)判斷該運營商ISP對應(yīng)的WANx口是否唯一,若是,則選擇該WANx口作為數(shù)據(jù)包出口,否則執(zhí)行步驟(S5);
(S5)查詢所述選路緩存模塊中是否存在所述數(shù)據(jù)包中攜帶的該用戶設(shè)備選定的目的IP地址與選定WANx口的對應(yīng)關(guān)系,若存在,則選擇該目的IP地址對應(yīng)的WANx口作為數(shù)據(jù)包出口,若不存在,則執(zhí)行步驟(S6);
(S6)根據(jù)路由器內(nèi)配置的負載規(guī)則選擇數(shù)據(jù)包出口,若負載不均衡,則選擇負載低的WANx口作為數(shù)據(jù)包出口,若負載均衡,則隨機選擇一WANx口作為數(shù)據(jù)包出口。
其中具體地,所述預設(shè)的策略路由規(guī)則包括缺省策略和由用戶手動配置的手動策略,在根據(jù)預設(shè)的策略路由規(guī)則為DNS解析請求或數(shù)據(jù)包選擇出口時,優(yōu)先判斷是否存在所述手動策略,若存在,則選擇手動策略指定的WANx口作為出口,若不存在,則根據(jù)缺省策略選擇出口。
進一步地,所述步驟(S1)中,當所述手動策略指定的WANx口有兩個以上時,根據(jù)所述路由器內(nèi)配置的負載規(guī)則選定所述DNS解析請求的指定出口,若負載不均衡,則在這些指定的WANx口中選擇負載低的一WANx口作為所述DNS解析請求的指定出口,若負載均衡,則在這些指定的WANx口中隨機選擇一WANx口作為所述DNS解析請求的指定出口;
所述步驟(S3)中,當所述手動策略指定的WANx口有兩個以上時,則跳轉(zhuǎn)到步驟(S5)。
進一步地,所述缺省策略為負載均衡優(yōu)先策略、指定運營商ISP優(yōu)先策略和指定WAN口優(yōu)先策略中任一種;
所述步驟(S1)中,當所述缺省策略為負載均衡優(yōu)先策略時,根據(jù)所述路由器內(nèi)配置的負載規(guī)則選定所述DNS解析請求的出口,若負載不均衡,則選擇負載低的一WANx口作為所述DNS解析請求的出口,若負載均衡,則隨機選擇一WANx口作為所述DNS解析請求的出口;
當所述缺省策略為指定運營商ISP優(yōu)先策略或指定WAN口優(yōu)先策略時,先判斷所述指定的運營商ISP對應(yīng)的WANx口或所述指定的WAN口是否唯一,若是,則將該唯一的WANx口作為所述DNS解析請求的指定出口,否則根據(jù)所述路由器內(nèi)配置的負載規(guī)則選定所述DNS解析請求的出口;
所述步驟(S3)中,當所述缺省策略為指定WAN口優(yōu)先策略時,先判斷所述指定的WAN口是否唯一,若是選擇該WANx口作為數(shù)據(jù)包出口,否則跳轉(zhuǎn)到步驟(S5);
當所述缺省策略為負載均衡優(yōu)先策略或指定運營商ISP優(yōu)先策略時,沒有指定的出口,執(zhí)行步驟(S4)。
更具體地,所述路由器內(nèi)配置的負載規(guī)則中負載均衡的判斷方法:
根據(jù)每個WANx口接入的運營商ISP的線路帶寬,預先配置每個WANx口的基準流量比例,實時檢測每個WANx口的流量,計算并對比所涉及的WANx口之間的當前實時流量比例與所配置的基準流量比例,當其比例一致時為負載均衡狀態(tài),當其比例不一致時當前實時流量比例最小的WANx口為負載低的出口。
其中,所述負載均衡狀態(tài)時的比例一致,允許各WANx口的當前實時流量比例在相對于所配置的基準流量比例的占比的80%~120%范圍內(nèi)浮動。
為了提高選路效率,所述步驟(S2)中,當解析DNS響應(yīng)報文獲得的IP地址在選路緩存模塊中存在時,則更新選路緩存模塊中IP地址對應(yīng)的WANx口為最新確定的WANx口,并刷新該條記錄表項的保存時間。
與現(xiàn)有技術(shù)相比,本發(fā)明具有以下有益效果:
(1)本發(fā)明通過選路緩存模塊的設(shè)置,提高了并發(fā)訪問同一服務(wù)的處理效率,可使得選路查詢直接選擇出口,避免了路由器大量進行重復操作而消耗性能,同時通過ISP策略的配置,有效地解決了國內(nèi)不同運營商線路間相互訪問會出現(xiàn)域名解析失敗、響應(yīng)長等缺點,真正做到訪問那個運營商的服務(wù),就從那個運營商線路出口發(fā)送,并且本發(fā)明針對性強,應(yīng)用性好,網(wǎng)絡(luò)使用靈活,負載更加人性化,具有廣泛的應(yīng)用前景,適合推廣應(yīng)用。
(2)本發(fā)明有效地解決了一內(nèi)網(wǎng)接入多條運營商線路的問題,尤其是這多條線路不太相同時,本發(fā)明通過ISP策略從根源上做到按線路選路,解決互訪瓶頸,保證訪問線路選擇的確定無誤。
附圖說明
圖1為本發(fā)明中DNS解析請求的選路流程示意圖。
圖2為本發(fā)明中數(shù)據(jù)包的選路流程示意圖。
具體實施方式
下面結(jié)合附圖和實施例對本發(fā)明作進一步說明,本發(fā)明的實施方式包括但不限于下列實施例。
實施例
如圖1至圖2所示,該多運營商接入情況下基于策略的多WAN口路由器的選路方法,包括如下步驟:
(S1)所述路由器接收內(nèi)網(wǎng)用戶發(fā)送的DNS解析請求,根據(jù)預設(shè)的策略路由規(guī)則為該DNS解析請求選定一WANx口作為出口,并發(fā)出該DNS解析請求,其中x為WAN口設(shè)定的編號。
其中具體地,所述預設(shè)的策略路由規(guī)則包括缺省策略和由用戶手動配置的手動策略,在根據(jù)預設(shè)的策略路由規(guī)則為DNS解析請求或數(shù)據(jù)包選擇出口時,優(yōu)先判斷是否存在所述手動策略,若存在,則選擇手動策略指定的WANx口作為出口,若不存在,則根據(jù)缺省策略選擇出口。
所述步驟(S1)中,當所述手動策略指定的WANx口有兩個以上時,根據(jù)所述路由器內(nèi)配置的負載規(guī)則選定所述DNS解析請求的指定出口,若負載不均衡,則在這些指定的WANx口中選擇負載低的一WANx口作為所述DNS解析請求的指定出口,若負載均衡,則在這些指定的WANx口中隨機選擇一WANx口作為所述DNS解析請求的指定出口。
所述缺省策略為負載均衡優(yōu)先策略、指定運營商ISP優(yōu)先策略和指定WAN口優(yōu)先策略中任一種;
當所述缺省策略為負載均衡優(yōu)先策略時,根據(jù)所述路由器內(nèi)配置的負載規(guī)則選定所述DNS解析請求的出口,若負載不均衡,則選擇負載低的一WANx口作為所述DNS解析請求的出口,若負載均衡,則隨機選擇一WANx口作為所述DNS解析請求的出口;
當所述缺省策略為指定運營商ISP優(yōu)先策略或指定WAN口優(yōu)先策略時,先判斷所述指定的運營商ISP對應(yīng)的WANx口或所述指定的WAN口是否唯一,若是,則將該唯一的WANx口作為所述DNS解析請求的指定出口,否則根據(jù)所述路由器內(nèi)配置的負載規(guī)則選定所述DNS解析請求的出口。
(S2)所述路由器收到DNS服務(wù)器返回的DNS響應(yīng)報文后,解析報文獲得域名對應(yīng)的至少一個IP地址,并按IP地址與所述選定的WANx口對應(yīng)的形式保存于配置在所述路由器內(nèi)的選路緩存模塊中,再將所述IP地址轉(zhuǎn)發(fā)至發(fā)送該DNS解析請求的用戶設(shè)備。
為了提高選路效率,所述步驟(S2)中,當解析DNS響應(yīng)報文獲得的IP地址在選路緩存模塊中存在時,則更新選路緩存模塊中IP地址對應(yīng)的WANx口為最新確定的WANx口,并刷新該條記錄表項的保存時間。
(S3)所述路由器接收所述用戶設(shè)備向所述任一IP地址發(fā)送的數(shù)據(jù)包,根據(jù)預設(shè)的策略路由規(guī)則判斷是否有指定的出口,若有且只有一個指定的出口,則選擇該WANx口作為數(shù)據(jù)包出口,若有兩個以上指定的出口,則跳轉(zhuǎn)到步驟(S5),若沒有指定的出口,則執(zhí)行步驟(S4);具體如下:
所述步驟(S3)中,當所述手動策略指定的WANx口有兩個以上時,則跳轉(zhuǎn)到步驟(S5);
當所述缺省策略為指定WAN口優(yōu)先策略時,先判斷所述指定的WAN口是否唯一,若是選擇該WANx口作為數(shù)據(jù)包出口,否則跳轉(zhuǎn)到步驟(S5);
當所述缺省策略為負載均衡優(yōu)先策略或指定運營商ISP優(yōu)先策略時,沒有指定的出口,執(zhí)行步驟(S4)。
(S4)根據(jù)路由器內(nèi)配置的ISP策略為數(shù)據(jù)包選擇出口:
(S4.1)根據(jù)所述數(shù)據(jù)包中攜帶的該用戶設(shè)備選定的目的IP地址判斷其是否歸屬于已知運營商ISP,若是,則確定該IP地址的歸屬并執(zhí)行步驟(S4.2),否則跳轉(zhuǎn)到步驟(S5);
(S4.2)判斷所述路由器接入的多運營商中是否有該IP地址歸屬的運營商ISP,若有,則選擇該運營商ISP對應(yīng)的WANx口并執(zhí)行步驟(S4.3),否則跳轉(zhuǎn)到步驟(S5);
(S4.3)判斷該運營商ISP對應(yīng)的WANx口是否唯一,若是,則選擇該WANx口作為數(shù)據(jù)包出口,否則執(zhí)行步驟(S5);
(S5)查詢所述選路緩存模塊中是否存在所述數(shù)據(jù)包中攜帶的該用戶設(shè)備選定的目的IP地址與選定WANx口的對應(yīng)關(guān)系,若存在,則選擇該目的IP地址對應(yīng)的WANx口作為數(shù)據(jù)包出口,若不存在,則執(zhí)行步驟(S6);
(S6)根據(jù)路由器內(nèi)配置的負載規(guī)則選擇數(shù)據(jù)包出口,若負載不均衡,則選擇負載低的WANx口作為數(shù)據(jù)包出口,若負載均衡,則隨機選擇一WANx口作為數(shù)據(jù)包出口。
更具體地,所述路由器內(nèi)配置的負載規(guī)則中負載均衡的判斷方法:
根據(jù)每個WANx口接入的運營商ISP的線路帶寬,預先配置每個WANx口的基準流量比例,實時檢測每個WANx口的流量,計算并對比所涉及的WANx口之間的當前實時流量比例與所配置的基準流量比例,當其比例一致時為負載均衡狀態(tài),當其比例不一致時當前實時流量比例最小的WANx口為負載低的出口。
進一步地,所述負載均衡狀態(tài)時的比例一致,允許各WANx口的當前實時流量比例在相對于所配置的基準流量比例的占比的80%~120%范圍內(nèi)浮動。
上述實施例僅為本發(fā)明的優(yōu)選實施例,并非對本發(fā)明保護范圍的限制,但凡采用本發(fā)明的設(shè)計原理,以及在此基礎(chǔ)上進行非創(chuàng)造性勞動而作出的變化,均應(yīng)屬于本發(fā)明的保護范圍之內(nèi)。