一種鏈路負載均衡方法和裝置製造方法
2023-10-11 07:13:04
一種鏈路負載均衡方法和裝置製造方法
【專利摘要】本發明提供了一種鏈路負載均衡方法,該方法包括:LB檢測到各DNS伺服器的鏈路的負載;該LB接收到用戶終端發送的DNS請求時,選擇當前檢測到的負載最輕的鏈路對應的DNS伺服器為該用戶終端做DNS解析,並將接收到的DNS請求發送給該DNS伺服器;該LB接收到該DNS伺服器發送的DNS響應時,將該DNS響應發送給對應用戶終端,使所述用戶終端使用所述DNS伺服器響應的公網地址發送流量。基於同樣的發明構思,本申請還提出一種裝置,能夠避免各DNS伺服器所在運營商出口鏈路發生擁塞。
【專利說明】—種鏈路負載均衡方法和裝置
【技術領域】
[0001]本發明涉及通信【技術領域】,特別涉及一種鏈路負載均衡方法和裝置。
【背景技術】
[0002]在當前的企業或者校園網絡中,由於帶寬需求不斷增加,每隔一段時間,就會有帶寬擴容的需求,就形成了很多企業的網絡出口出現了多個運營商,多條出口鏈路的組網出現,為了更好利用鏈路的帶寬,絕大多數的企業會選擇負載均衡器(Load Balancer, LB)來實現鏈路的負載均衡,
[0003]在多條出口鏈路帶寬不均衡,或者用戶訪問流量的不均衡,經常會導致某個出口鏈路發生擁塞。當前的LB主要使用下面方法來處理某個出口鏈路擁塞的情況:
[0004]當某個運營商出口發生擁塞時,保持當前鏈路上所有出口的轉發會話的轉發;
[0005]對於新建的出口會話,不再匹配運營商地址表,強制送到其他運營商的出口做轉發處理。
[0006]這樣的處理存在這樣的問題:用戶訪問的是存在於運營商(A)的伺服器,而流量被送到了運營商(B)的網絡,用戶的訪問流量會在運營商(B)網絡中繞一大圈,經過互聯中心進入運營商(A)的網絡,訪問目的伺服器,由於運營商互聯的出口帶寬有限,相比直接進入運營商(A)的網絡,會造成用戶訪問網絡體驗變得很差。
[0007]為了解決上述問題,現有實現中在給用戶動態主機配置協議(Dynamic HostConfigurat1n Protocol,DHCP)分配IP位址時,按照帶寬的比例下發不同的DNS伺服器的IP位址,以達到統計均衡的目的,儘量避免擁塞發生。
[0008]這種解決方案只能保證用戶終端數量在出口鏈路上的均衡,當某個用戶終端存在大流量的視頻等業務時,在出口鏈路上不能做到流量的均衡,還會存在擁塞導致的強制流量調度的問題。
【發明內容】
[0009]有鑑於此,本申請提供一種鏈路負載均衡方法和裝置,以解決各DNS伺服器所在運營商的出口鏈路不均衡引起的用戶終端訪問變慢的問題。
[0010]為解決上述技術問題,本申請的技術方案是這樣實現的:
[0011]一種鏈路負載均衡方法,該方法包括:
[0012]負載均衡器LB檢測到各域名系統DNS伺服器的鏈路的負載,其中,通過LB對用戶終端進行DNS代理;
[0013]該LB接收到用戶終端發送的DNS請求時,選擇當前檢測到的負載最輕的鏈路對應的DNS伺服器為該用戶終端做DNS解析,並將接收到的DNS請求發送給該DNS伺服器;
[0014]該LB接收到該DNS伺服器發送的DNS響應時,將該DNS響應發送給對應用戶終端,使所述用戶終端使用所述DNS伺服器響應的公網地址發送流量。
[0015]一種鏈路負載均衡裝置,通過該裝置對用戶終端進行域名系統DNS代理,該裝置包括:檢測單元、接收單元、處理單元和發送單元;
[0016]所述檢測單元,用於檢測檢測本裝置到各域名系統DNS伺服器的鏈路的負載;
[0017]所述接收單元,用於接收用戶終端發送的DNS請求;接收DNS伺服器發送的DNS響應;
[0018]所述處理單元,用於當所述接收單元接收到DNS請求時,選擇所述檢測單元當前檢測到的負載最輕的鏈路對應的DNS伺服器為該用戶終端做DNS解析;
[0019]所述發送單元,用於將所述接收單元接收到的DNS請求發送給所述處理單元選擇的DNS伺服器;當所述接收單元接收到DNS響應時,將該DNS響應發送給對應用戶終端,使所述用戶終端使用所述DNS伺服器響應的公網地址發送流量。
[0020]由上面的技術方案可知,本申請中使用出口 LB作為DNS代理,通過對到各DNS伺服器的鏈路的負載進行檢測,在接收到任一用戶終端發送的DNS請求時,選擇負載最輕的鏈路對應的DNS伺服器為當前發送DNS請求的用戶終端進行DNS解析,從而能夠避免各DNS伺服器所在運營商出口鏈路發生擁塞。
【專利附圖】
【附圖說明】
[0021]圖1為本申請實施例中負載均衡方法流程示意圖;
[0022]圖2為本申請實施例中多運營商網絡組網示意圖;
[0023]圖3為本申請實施例中應用於上述技術的裝置結構示意圖。
【具體實施方式】
[0024]為了使本發明的目的、技術方案及優點更加清楚明白,下面結合附圖並據實施例,對本發明的技術方案進行詳細說明。
[0025]參見圖1,圖1為本申請實施例中負載均衡方法流程示意圖。具體步驟包括:
[0026]步驟101, LB檢測到各域名系統(Domain Name System, DNS)伺服器的鏈路的負載。
[0027]本申請實施例中的LB作為所有用戶終端的DNS代理,LB上配置到多個運營商的DNS伺服器的鏈路,以及各鏈路能夠提供的帶寬。具體實現時,可以通過埠號標識到各DNS伺服器的鏈路。
[0028]LB可以檢測到各DNS伺服器的鏈路當前流量佔用的帶寬,由於已配置各鏈路初始能夠提供的帶寬,從而可以獲得各鏈路的負載情況,如帶寬佔用率。
[0029]參見圖2,圖2為本申請實施例中多運營商網絡組網示意圖。圖2中LB作為用戶終端1、用戶終端2和用戶終端3的DNS代理。LB上配置鏈路LI的帶寬為1000M,鏈路L2的帶寬為2000M,鏈路L3的帶寬為3000M。鏈路LI對應運營商I中的DNS伺服器1,出口為接口 I ;鏈路L2對應運營商2中的DNS伺服器2,出口為接口 2 ;鏈路L3對應運營商3中的DNS伺服器3,出口為接口 3。
[0030]LB檢測各鏈路的負載,即檢測鏈路L1、L2和L3上流量佔用的帶寬。在具體實現時,LB可以周期檢測,也可以實時檢測各鏈路上流量佔用的帶寬。
[0031]步驟102,該LB接收到用戶終端發送的DNS請求時,選擇當前檢測到的負載最輕的鏈路對應的DNS伺服器為該用戶終端做DNS解析,並將接收到的DNS請求發送給該DNS伺服器。
[0032]本步驟中負載最輕的鏈路的選擇方法可以有多種實現方式,本申請給出如下兩種實現方式,但不限於如下兩種實現方式:
[0033]第一種,該LB選擇帶寬佔用率最小的鏈路作為負載最輕的鏈路;
[0034]當到各DNS伺服器的鏈路的帶寬佔用率相同時,選擇帶寬值最大的鏈路作為負載最輕的鏈路;
[0035]當到各DNS伺服器的鏈路的帶寬佔用率相同,且帶寬值相同時,選擇對應DNS伺服器編號最小的鏈路作為負載最輕的鏈路;或,隨機選擇一條鏈路作為負載最輕的鏈路。
[0036]假設當前檢測到的,或者當前周期檢測到的L1、L2和L3上流量佔用的帶寬分別為600M、1000M和1200M,則各鏈路的帶寬佔用率分別為600M/1000M = 60% U000M/2000M =50%和1200M/3000M = 40% ;則負載最輕的鏈路為鏈路L3,鏈路L3對應的DNS伺服器為DNS伺服器3。
[0037]假設當前各鏈路帶寬的佔用率相同時,則選擇鏈路帶寬值最大的鏈路L3作為負載最輕的鏈路。
[0038]在應用的過程中,在LB對帶寬佔用率進行計算的時候,可以設置以10%為單位進行跳變,例如當計算出帶寬佔用率為16%時,則記為20%,這樣一來,便可以在幾條鏈路帶寬佔用率相近的情況下,選擇帶寬較大的鏈路進行DNS請求,從而進一步避免擁堵情況的發生。
[0039]第二種,該LB確定是否存在帶寬佔用率與最小帶寬佔用率差值小於預設閾值的鏈路,如果是,在帶寬佔用率最小的鏈路,以及帶寬佔用率與最小帶寬佔用率差值小於預設閾值的鏈路中,選擇帶寬值最大的鏈路作為負載最輕的鏈路;否則,選擇帶寬佔用率最小的鏈路作為負載最輕的鏈路。
[0040]假設預設閾值為5%,當前檢測到的,或者當前周期檢測到的L1、L2和L3上流量佔用的帶寬分別為600M、1000M和1380M,則各鏈路的帶寬佔用率分別為600M/1000M = 60%,800M/2000M = 40%和1290M/3000M = 43% ;則確定各鏈路的帶寬佔用率與最小帶寬佔用率做差值,L2的帶寬佔用率最小40%,LI與L3的帶寬佔用率的差值為3%,L2與L3的帶寬佔用率的差值為20%,由預設閾值5%可知,L2與L3的帶寬佔用率的差值3%小於預設閾值,因此,選擇L2和L3中帶寬值大的L3,作為負載最輕的鏈路。
[0041]由於LB作為各用戶終端的DNS代理,因此,LB將接收到的DNS請求發送給該DNS伺服器時,建立DNS代理表項,用於在接收到DNS伺服器發送的DNS響應時,轉發給發送與該DNS響應對應的DNS請求的用戶終端。
[0042]在具體實現時,DNS代理表項的內容可以根據實際應用具體配置,能夠將響應報文發送給對應的用戶終端即可。本申請實施例中給出一種DNS代理表項實現方式,但不限於此實現方式。
[0043]DNS代理表項包括:用戶終端IP位址、交易標識(transact1n ID)標識、本LB上配置的DNS代理公網地址。其中,transact1n ID為DNS報文中的標識,用於標識一對DNS請求和響應。
[0044]如果需要替換DNS請求中攜帶的埠號,該DNS代理表項還應該包括用戶終端IP位址對應的TCP/UDP埠,本LB上配置的DNS代理公網地址對應的TCP/UDP埠,可以由LB按一定規則為該DNS請求分配DNS代理公網地址和對應的TCP/UDP埠。
[0045]LB將接收到的DNS請求的源IP位址替換為本LB上配置的DNS代理公網地址,將目的IP位址替換為選擇的DNS伺服器的IP位址,並通過到選擇的DNS伺服器對應的出口發送該處理後的DNS請求。
[0046]假設LB將用戶終端I發送的DNS請求,以及發送給DNS伺服器的DNS請求,生成的DNS代理表項包含的內容為transact1n ID1,用戶終端I的IP位址1.1.1.1+TCP/UDP埠號1,分配的DNS代理公網地址168.1.1.1+TCP/UDP埠號2。
[0047]步驟103,該LB接收到該DNS伺服器發送的DNS響應時,將該DNS響應發送給所述用戶終端,使所述用戶終端使用所述DNS伺服器響應的公網地址發送流量。
[0048]本步驟中LB接收到該DNS伺服器發送的DNS響應時,根據DNS響應攜帶的傳輸標識查找到對應的DNS代理表項,並根據查找到的DNS代理表項發送給對應用戶終端。
[0049]仍以圖2中LB接收到DNS伺服器3發送的DNS響應為例,LB根據該DNS響應中攜帶的transact1n IDl,目的IP位址168.1.1.1和TCP/UDP埠號2查找到對應的DNS代理表項內容處理該DNS請求並發送給用戶終端I。
[0050]該LB將該DNS請求的目的IP位址替換為該DNS代理表項中的用戶終端的IP位址,源IP位址替換為本LB配置的DNS代理私網地址,並替換對應埠相關內容。
[0051]下面詳細描述用戶終端根據DNS伺服器響應的公網地址,與公網進行流量交互的過程:
[0052]該LB接收到用戶終端發送的流量時,根據本地的網絡地址轉換(Network AddressTranslat1n, NAT)會話表對該流量進行NAT處理,並通過接收到的流量的目的IP位址在運營商地址表中對應的出口發送進行NAT處理後的流量。
[0053]其中的運營商地址表的實現同現有實現,運營商地址表包含的內容:運營商IP網段,出口號。
[0054]該LB接收到公網發送的流量時,根據本地的NAT會話表對該流量進行NAT處理,並發送到區域網中。
[0055]本申請實施例中的NAT處理同現有實現,這裡不再詳細描述。
[0056]基於同樣的發明構思,本申請還提出一種鏈路負載均衡裝置。通過該裝置對用戶終端進行域名系統DNS代理。參見圖3,圖3為本申請實施例中應用於上述技術的裝置結構示意圖。該裝置包括:檢測單元301、接收單元302、處理單元303和發送單元304 ;
[0057]檢測單元301,用於檢測檢測本裝置到各DNS伺服器的鏈路的負載;
[0058]接收單元302,用於接收用戶終端發送的DNS請求;接收DNS伺服器發送的DNS響應;
[0059]處理單元303,用於當接收單元302接收到DNS請求時,選擇檢測單元301當前檢測到的負載最輕的鏈路對應的DNS伺服器為該用戶終端做DNS解析;
[0060]發送單元304,用於將接收單元302接收到的DNS請求發送給處理單元303選擇的DNS伺服器;當接收單元302接收到DNS響應時,將該DNS響應發送給對應用戶終端,使所述用戶終端使用所述DNS伺服器響應的公網地址發送流量。
[0061]較佳地,
[0062]處理單元303,具體用於選擇負載最輕的鏈路時,選擇帶寬佔用率最小的鏈路作為負載最輕的鏈路;當到各DNS伺服器的鏈路的帶寬佔用率相同時,選擇帶寬值最大的鏈路作為負載最輕的鏈路;當到各DNS伺服器的鏈路的帶寬佔用率相同,且帶寬值相同時,選擇對應DNS伺服器編號最小的鏈路作為負載最輕的鏈路;或,隨機選擇一條鏈路作為負載最輕的鏈路。
[0063]較佳地,
[0064]處理單元303,具體用於選擇負載最輕的鏈路時,確定是否存在帶寬佔用率與最小帶寬佔用率差值小於預設閾值的鏈路,如果是,在帶寬佔用率最小的鏈路,以及帶寬佔用率與最小帶寬佔用率差值小於預設閾值的鏈路中,選擇帶寬值最大的鏈路作為負載最輕的鏈路;否則,選擇帶寬佔用率最小的鏈路作為負載最輕的鏈路。
[0065]較佳地,
[0066]接收單元302,進一步用於接收用戶終端發送的流量;接收公網發送的流量;
[0067]處理單元303,用於當接收單元302接收到用戶終端發送的流量時,根據接收到的流量的目的IP位址在運營商地址表中匹配出口 ;根據本地的NAT會話表對該流量進行NAT處理;當接收單元302接收到公網發送的流量時,根據本地的NAT會話表對該流量進行NAT處理;
[0068]發送單元304,進一步用於通過處理單元303匹配到的出口發送NAT處理後的流量;將處理單元303進行NAT處理後的公網發送的流量發送到區域網中。
[0069]較佳地,
[0070]處理單元303,進一步用於當發送單元304將DNS請求發送給DNS伺服器時,根據該DNS請求的交易標識生成DNS代理表項;當接收單元302接收到DNS伺服器發送的DNS響應時,根據該DNS響應攜帶的交易標識查找到對應的DNS代理表項;
[0071]發送單元304,進一步用於根據處理單元303查找到的DNS代理表項將所述DNS響應發送給對應用戶終端。
[0072]上述實施例的單元可以集成於一體,也可以分離部署;可以合併為一個單元,也可以進一步拆分成多個子單元。
[0073]綜上所述,本申請中使用出口 LB作為DNS代理,通過對到各DNS伺服器的鏈路的負載進行檢測,在接收到任一用戶終端發送的DNS請求時,選擇負載最輕的鏈路對應的DNS伺服器為當前發送DNS請求的用戶終端進行DNS解析,使得用戶後續的訪問可以通過運營商地址表匹配進入已選擇鏈路,從而能夠避免各DNS伺服器所在運營商出口鏈路發生擁塞。
[0074]以上所述僅為本發明的較佳實施例而已,並不用以限制本發明,凡在本發明的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本發明保護的範圍之內。
【權利要求】
1.一種鏈路負載均衡方法,其特徵在於,該方法包括: 負載均衡器LB檢測到各域名系統DNS伺服器的鏈路的負載,其中,通過LB對用戶終端進行DNS代理; 該LB接收到用戶終端發送的DNS請求時,選擇當前檢測到的負載最輕的鏈路對應的DNS伺服器為該用戶終端做DNS解析,並將接收到的DNS請求發送給該DNS伺服器; 該LB接收到該DNS伺服器發送的DNS響應時,將該DNS響應發送給對應用戶終端,使所述用戶終端使用所述DNS伺服器響應的公網地址發送流量。
2.根據權利要求1所述的方法,其特徵在於,所述負載最輕的鏈路的選擇方法為: 選擇帶寬佔用率最小的鏈路作為負載最輕的鏈路; 當到各DNS伺服器的鏈路的帶寬佔用率相同時,選擇帶寬值最大的鏈路作為負載最輕的鏈路; 當到各DNS伺服器的鏈路的帶寬佔用率相同,且帶寬值相同時,選擇對應DNS伺服器編號最小的鏈路作為負載最輕的鏈路;或,隨機選擇一條鏈路作為負載最輕的鏈路。
3.根據權利要求1所述的方法,其特徵在於,所述負載最輕的鏈路的選擇方法為: 確定是否存在帶寬佔用率與最小帶寬佔用率差值小於預設閾值的鏈路,如果是,在帶寬佔用率最小的鏈路,以及帶寬佔用率與最小帶寬佔用率差值小於預設閾值的鏈路中,選擇帶寬值最大的鏈路作為負載最輕的鏈路;否則,選擇帶寬佔用率最小的鏈路作為負載最輕的鏈路。
4.根據權利要求1-3任意一項所述的方法,其特徵在於,所述方法進一步包括: 該LB接收到用戶終端發送的流量時,根據本地的網絡地址轉換NAT會話表對該流量進行NAT處理,並通過接收到的流量的目的網際網路協議IP位址在運營商地址表中對應的出口發送進行NAT處理後的流量; 該LB接收到公網發送的流量時,根據本地的NAT會話表對該流量進行NAT處理,並發送到區域網中。
5.根據權利要求1-3任意一項所述的方法,其特徵在於,所述將接收到的DNS請求發送給該DNS伺服器時,所述方法進一步包括: 根據該DNS請求的交易標識生成DNS代理表項; 所述該LB接收到該DNS伺服器發送的DNS響應時,所述方法進一步包括: 根據該DNS響應攜帶的交易標識查找到對應的DNS代理表項,並根據該DNS代理表項將所述DNS響應發送給對應用戶終端。
6.一種鏈路負載均衡裝置,其特徵在於,通過該裝置對用戶終端進行域名系統DNS代理,該裝置包括:檢測單元、接收單元、處理單元和發送單元; 所述檢測單元,用於檢測檢測本裝置到各DNS伺服器的鏈路的負載; 所述接收單元,用於接收用戶終端發送的DNS請求;接收DNS伺服器發送的DNS響應;所述處理單元,用於當所述接收單元接收到DNS請求時,選擇所述檢測單元當前檢測到的負載最輕的鏈路對應的DNS伺服器為該用戶終端做DNS解析; 所述發送單元,用於將所述接收單元接收到的DNS請求發送給所述處理單元選擇的DNS伺服器;當所述接收單元接收到DNS響應時,將該DNS響應發送給對應用戶終端,使所述用戶終端使用所述DNS伺服器響應的公網地址發送流量。
7.根據權利要求6所述的裝置,其特徵在於, 所述處理單元,具體用於選擇負載最輕的鏈路時,選擇帶寬佔用率最小的鏈路作為負載最輕的鏈路;當到各DNS伺服器的鏈路的帶寬佔用率相同時,選擇帶寬值最大的鏈路作為負載最輕的鏈路;當到各DNS伺服器的鏈路的帶寬佔用率相同,且帶寬值相同時,選擇對應DNS伺服器編號最小的鏈路作為負載最輕的鏈路;或,隨機選擇一條鏈路作為負載最輕的鏈路。
8.根據權利要求6所述的裝置,其特徵在於, 所述處理單元,具體用於選擇負載最輕的鏈路時,確定是否存在帶寬佔用率與最小帶寬佔用率差值小於預設閾值的鏈路,如果是,在帶寬佔用率最小的鏈路,以及帶寬佔用率與最小帶寬佔用率差值小於預設閾值的鏈路中,選擇帶寬值最大的鏈路作為負載最輕的鏈路;否則,選擇帶寬佔用率最小的鏈路作為負載最輕的鏈路。
9.根據權利要求6-8任意一項所述的裝置,其特徵在於, 所述接收單元,進一步用於接收用戶終端發送的流量;接收公網發送的流量; 所述處理單元,用於當所述接收單元接收到用戶終端發送的流量時,根據接收到的流量的目的網際網路協議IP位址在運營商地址表中匹配出口 ;根據本地的網絡地址轉換NAT會話表對該流量進行NAT處理;當所述接收單元接收到公網發送的流量時,根據本地的NAT會話表對該流量進行NAT處理; 所述發送單元,進一步用於通過所述處理單元匹配到的出口發送NAT處理後的流量;將所述處理單元進行NAT處理後的公網發送的流量發送到區域網中。
10.根據權利要求6-8任意一項所述的裝置,其特徵在於, 所述處理單元,進一步用於當所述發送單元將DNS請求發送給DNS伺服器時,根據該DNS請求的交易標識生成DNS代理表項;當所述接收單元接收到DNS伺服器發送的DNS響應時,根據該DNS響應攜帶的交易標識查找到對應的DNS代理表項; 所述發送單元,進一步用於根據所述處理單元查找到的DNS代理表項將所述DNS響應發送給對應用戶終端。
【文檔編號】H04L12/803GK104283804SQ201410581352
【公開日】2015年1月14日 申請日期:2014年10月27日 優先權日:2014年10月27日
【發明者】傅振宇 申請人:杭州華三通信技術有限公司