專利名稱:實現vrrp負載均衡的方法和路由設備的制作方法
技術領域:
本發明涉及網絡通信技術,特別涉及 一 種實現虛擬路由器冗余協議 (VRRP, Virtual Router Redundancy Protocol)負載均衡的方法和路由設備。
背景技術:
在實現客戶端與外部網絡通信時,通常為同 一網段內的所有客戶端設置 同一缺省網關,即配置以同一網關為下一跳的缺省路由,客戶端發往其他網 ^:的才艮文將通過該缺省路由發往下一跳的網關,再由網關進行轉發,然而當 網關出現故障時,本網段內所有以該網關為缺省路由的客戶端將無法與外部 網絡進行通信。缺省路由雖然為用戶的配置操作提供了方便,但是對網關提 出了很高的穩定性要求,增加出口網關是提高系統可靠性的常見方法,此時, 如何在多個出口之間進行選路就成為需要解決的問題。逐漸發展起來的VRRP是用于解決多個出口之間如何進行選路的容錯 協議,其在提高可靠性的同時,簡化了客戶端的配置。標準的VRRP是將多 個具有網關功能的路由設備組成一 臺虛擬路由器,該虛擬路由器中的多個路 由設備按照VRRP的選舉機制選舉出 一個作為主用(master)路由設備負責 流量轉發,其他作為備用(back叩)路由設備負責對master路由設備進行監 聽,在監聽到master路由設備出現故障時,重新選舉master路由設備。雖 然這種方式提高了系統可靠性,但是,虛擬路由器中的多個路由設備只有主 路由設備負責流量轉發,顯然在路由設備資源和網絡帶寬上都存在浪費。為了解決上述資源和帶寬浪費的問題,現有技術提供了 一種實現VRRP 負載均衡的方法,即利用多個路由設備創建多個虛擬路由器,每個虛擬路由 器中具有一個master路由設備和至少一個backup路由設備。其中, 一個路由設備可能在一個虛擬路由器中做master路由設備,也可能在另 一個虛擬路 由器中做backup路由設備。可以預先為各客戶端按照負載均衡策略配置不 同的虛擬路由器的虛IP地址作為缺省網關IP地址,各客戶端按照配置的虛 擬IP地址發送地址解析協議(ARP)請求,與該客戶端對應的虛擬路由器 中的master路由設備將自身的MAC地址攜帶在ARP應答中回復給該客戶 端,該客戶端利用ARP應答中攜帶的MAC地址創建ARP表項,并利用該 ARP表項發送報文,即各客戶端的報文通過配置給該客戶端的虛擬路由器中 的master路由設備進行轉發。如圖l所示,假設存在路由設備A、路由設備B和路由設備C,利用該 三個路由設備構建三個虛擬路由器,即以路由設備A作為master路由設備、 路由設備B和路由設備C作為backup路由設備的虛擬路由器1,以路由設 備B作為master路由設備、路由設備A和路由設備C作為backup路由設備 的虛擬路由器2,以及以路由設備C作為master路由設備、路由設備A和 路由設備B作為backup路由設備的虛擬路由器3。預先配置客戶端A、客 戶端B和客戶端C的缺省網關分別為虛擬路由器1、虛擬路由器2和虛擬路 由器3,客戶端A按照虛擬路由器1的虛IP地址發送ARP請求,虛擬路由 器1中的master路由設備即路由設備A將自身的MAC地址回復給客戶端A, 客戶端A利用路由設備A的MAC地址創建ARP表項,客戶端A的報文就 通過路由設備A進行轉發;客戶端B和客戶端C通過類似的方式分別通過 路由設備B和路由設備C轉發報文,這樣就可以實現報文流量在路由設備A、 路由設備B和路由設備C之間的負載均衡。但是,現有技術中實現VRRP負載均衡的方式需要利用多個路由設備配 置不同的虛擬路由器并為各虛擬路由器配置不同的虛IP地址,并且為各客 戶端配置不同的虛擬路由器作為缺省網關,顯然在存在大量客戶端的情況下 配置十分復雜。并且,由于上述負載均衡方式是基于預先的靜態配置的,因 此,無法實現動態的負載均衡。發明內容有鑒于此,本發明提供了一種實現VRRP負載均衡的方法和路由設備, 以便于簡化配置和實現動態的負載均衡。一種實現VRRP負載均衡的方法,該虛擬路由器包含多個路由設備,同 一網段各客戶端的缺省網關IP地址配置為該虛擬^各由器的虛IP地址;該方 法包括虛擬路由器中選舉出的主用路由設備為自身分配虛MAC地址,并在接 收到其他路由設備發送的虛MAC分配請求報文后,為所述其他路由設備分 配不同的虛MAC地址,并通過地址應答報文發送給所述其他路由設備;所述主用路由設備接收到來自客戶端的地址解析請求后,按照負載均衡 策略,將分配給所述虛擬路由器中各路由設備的虛MAC地址攜帶在地址解 析應答中回復給所述客戶端,以供所述客戶端利用接收到的虛MAC地址進 行報文的發送。一種路由設備,多個該路由設備用于構成一個虛擬路由器,且該虛擬路由 器的虛IP地址配置為同一網段各客戶端的缺省網關IP地址;該路由設備包括 角色選舉單元、請求接收單元和應答發送單元以及地址分配單元或地址獲取單元;所述角色選舉單元,用于選舉虛擬路由器中的主用路由設備; 所述地址分配單元,用于在所述角色選舉單元選舉出的主用路由設備為該路由設備時,為該路由設備分配虛MAC地址,并在接收到其他路由設備發送的虛MAC分配請求報文后,為所述其他路由設備分配不同的虛MAC地址,并通過地址應答報文發送給所述其他路由設備;所述地址獲取單元,用于在所述角色選舉單元選舉出的主用路由設備不是該路由設備時,向主用路由設備發送虛MAC分配請求報文;接收主用路由設所述請求接收單元,用于在所述角色選舉單元選舉出的主用路由設備為該路由設備時,接收來自客戶端的地址解析請求;所述應答發送單元,用于在所述請求接收單元接收到所述地址解析請求后,按照負載均衡策略,將分配給所述虛擬路由器中各路由設備的虛MAC 地址攜帶在地址解析應答中回復給所述客戶端,以供所述客戶端利用接收到 的虛MAC地址進行報文的發送。由以上技術方案可以看出,在本發明提供的方法和路由設備中,該虛擬 路由器包含多個路由設備,只需要在同一網段的各客戶端配置同一虛IP地 址作為缺省網關IP地址,即為各客戶端配置同一個虛擬路由器,而不需要 針對不同的客戶端配置不同的虛擬路由器;并且,將多個路由設備配置為同 一個虛擬路由器即可,而不需要將多個路由設備配置為多個虛擬路由器且同 一個路由設備在不同虛擬路由器中的角色也不相同,顯然簡化了實現VRRP 負載均衡的配置工作。另外,本發明在多個路由設備構成的一個虛擬路由器 中,由選舉出的主用路由設備通過與各路由設備之間的報文交互為虛擬路由 器中的各路由設備分配虛MAC地址,并按照負載均衡策略將分配給各路由 設備的虛MAC地址回復給客戶端,而不是通過將客戶端固定分配給不同的 虛擬路由器來實現負載均衡,顯然,本發明能夠根據各路由設備實際的負載 狀況實現動態的負載均衡,且不會導致客戶端數目變化所引起的路由設備負 載不均衡的問題。
圖1為現有技術中實現VRRP負載均衡的示意圖;圖2為本發明實施例提供的實現VRRP負載均衡的網絡架構圖;圖3為本發明實施例提供的虛MAC地址的接管使用示意圖;圖4為本發明實施例提供的VRRP標準協議報文格式;圖5為本發明實施例提供的通告報文所使用的Option字段格式;圖6為本發明實施例提供的路由設備的結構圖。
具體實施方式
為了使本發明的目的、技術方案和優點更加清楚,下面結合附圖和具體 實施例對本發明進行詳細描述。本發明提供的方法涉及的虛擬路由器包含多個路由設備,將該虛擬路由器的虛IP地址配置為所有客戶端的缺省網關IP地址;該方法主要包括虛 擬路由器中選舉出的master路由設備為自身分配虛MAC地址,并在接收到 其他路由設備發送的虛MAC分配請求報文后,為其他路由設備分配不同的 虛MAC地址,并通過地址應答報文發送給其他路由設備;接收到來自客戶 端的地址解析請求后,按照負載均衡策略,將分配給該虛擬路由器中各路由 設備的虛MAC地址包含在地址解析應答中回復給該客戶端,以供該客戶端 利用接收到的虛MAC地址進行報文的發送。其中,在IPv4中地址解析請求可以是ARP請求,地址解析應答可以是 ARP應答,客戶端利用接收到的虛MAC構建ARP表項后,利用該ARP表 項進行報文的發送;在IPv6中地址解析請求可以是鄰居發現(ND, Neighbor Discovery)請求,地址解析應答可以是ND應答,客戶端利用接收到的虛 MAC構建ND表項后,利用該ND表項進行報文的發送。在以下描述中以 IPv4為例。下面結合具體實施例對上述方法進行詳細描述。以圖2所示網絡架構為 例,客戶端A、客戶端B和客戶端C為同 一網段的三個客戶端,路由設備A、 路由設備B和路由設備C是出口的三個路由器,本發明實施例中,將路由 設備A、路由設備B和路由設備C僅構成一個虛擬路由器,為該虛擬路由 器配置一個虛IP地址,并且,同一網段的所有客戶端可以采用相同的配置 即將該虛擬IP地址配置為所有客戶端的缺省網關IP地址,也就是說,客戶 端A、客戶端B和客戶端C都向同一個虛擬路由器發送ARP請求。在該虛擬路由器中需要選舉一個master路由設備,具體的選舉方式可 以為選舉任意一個運行正常的路由設備作為master路由設備,或者選舉性能最高的作為master路由器,或者按照VRRP協議中已定義的路由設備的 VRRP優先級進行選舉等。該選舉發生的狀況主要有兩種, 一種是虛擬路由 器剛構建時,另一種是master路由設備發生故障時,其他作為backup的路 由設備需要重新選舉出一 個運行正常的路由設備作為master路由設備。該master路由器負責處理各客戶端發送來的ARP請求,按照負載均衡 策略將虛擬路由器中其中 一個路由設備的虛MAC地址攜帶在ARP應答中回 復給相應的客戶端。也就是說,該虛擬路由器中的各路由設備都進行報文轉 發工作,分擔來自不同客戶端的報文流量。各路由設備為了要實現對客戶端 報文的轉發,其上需要配置MAC地址,這里虛擬路由器中路由設備的MAC 地址為虛MAC地址。下面將介紹有關虛MAC地址的分配。各路由設備的虛MAC地址是動態分配的,master路由設備負責分配該 虛擬路由器中所有路由設備的虛MAC地址。路由設備一旦轉換成為master 設備,如果自身尚沒有被分配虛MAC地址,則在預先設置的虛MAC地址 范圍內分配一個尚未使用的虛MAC地址給自身;另外,backup路由設備如 果沒有被分配虛MAC地址,則會向master路由設備發送地址請求(request) 報文,master路由設備接收到該request報文后,從預先設置的虛MAC地址 范圍內分配一個尚未^f吏用的虛MAC地址給該backup路由i殳備,該分配的虛 MAC地址通過攜帶在地址應答(Reply)報文發送中發送給backup路由設 備。其中,r叫uest報文丟失或者master路由設備沒有及時處理request報文 都有可能使得某些backup ^各由設備獲取不到虛MAC地址,為了保證backup 路由設備能夠獲取到虛MAC地址,backup路由設備在發送request報文后, 會啟動申請定時器(Request Timer)用于循環發送request才艮文直至收到分 配的虛MAC i也址。另外,master路由設備在為各路由設備分配了虛MAC地址后,可以啟 動分配狀態;險查定時器(Offer Timer),如果Offer Timer達到設定時長仍 沒有接收到攜帶該虛MAC地址的通告報文,則將該虛MAC地址標識為未分配,可以繼續用于分配給其他路由設備。關于通告報文在下文中將會有進 一步的描述。master路由設備在對各路由設備分配虛MAC地址時,可以為每個路由 設備僅分配一個虛MAC地址,這種情況下,master路由i殳備進行虛MAC 地址的分配后,會記錄分配的虛MAC地址和3各由設備的對應關系,當多次 接收到該^各由設備的request報文時,會將同一個虛MAC地址分配給該 backup路由設備。master路由設備也可以根據各路由設備的報文轉發能力,為各路由設備 分配一個或多個虛MAC地址。該報文轉發能力可以根據該路由設備的權重 值來表征,簡單地,可以根據每個路由設備的實際情況給它配置一個權重值, 當然權重值還可能根據網絡的情況動態進行調整。處于不同范圍內的權重值 對應不同數量的虛MAC地址,從而實現報文轉發能力強的分配數目較多的 虛MAC地址,報文轉發能力弱的分配數據較少的虛MAC地址。Master路由設備所依據的負載均衡策略可以采用多種方式,在此舉以下 幾種例子1 )采用輪詢負載均衡策略,即按照固定的順序依次將各路由設 備的虛MAC地址攜帶在ARP響應中進行回復。尤其是上述按照權重值給不 同的路由設備分配不同個數的虛MAC地址后,只要簡單的順序將這些分配 出去的MAC地址依次回復給發送地址請求的客戶端即可。這樣很方4更的就 實現了負載均衡。2)采用加權負載均衡策略,即將各設備的報文轉發能力 和/或當前負載狀況作為加權因素,來選擇虛MAC地址攜帶在ARP響應中 進行回復。3)采用基于客戶端的負載均衡策略,即在以上兩種方式的基礎 上,盡量保證為同一客戶端回復同一虛MAC地址,即記錄為客戶端回復的 虛MAC地址,如果接收到某客戶端的ARP請求后,查找是否保存了該客戶 端對應的虛MAC地址的記錄,如果是,則將記錄的虛MAC地址攜帶在ARP 響應中進行回復;否則,可以采用1)或2)的方式選擇一個虛MAC地址 攜帶在ARP響應中進行回復。以上僅是本發明所舉的幾個例子,并不限于 以上三種策略。假設圖2所示架構中,選舉路由設備B為master路由設備,路由設備B 為自身分配虛擬MAC地址為MAC 2,作為backup的路由設備A和路由設 備C向路由設備B發送request報文,路由設備B分別為路由設備A和路由 設備C分配尚未使用的虛MAC地址MAC 1和MAC3。對于客戶端A、客 戶端B和客戶端C發送來的ARP請求,作為master路由設備的路由設備B 按照負載均衡策略分別向客戶端A、客戶端B和客戶端C回復攜帶MAC 1、 MAC 2和MAC 3的ARP響應(如圖2中虛線箭頭所示)。客戶端A利用 MAC 1建立ARP表項,客戶端B利用MAC 2建立ARP表項,客戶端C利 用MAC 3建立ARP表項,就實現了客戶端A的報文由路由設備A進行轉 發,客戶端B的報文由路由設備B進行轉發,客戶端C的報文由路由設備 C進行轉發(如圖2中實線箭頭所示),從而實現了虛擬路由器中報文流量 的分擔。在被分配了虛擬MAC地址之后,各路由^L備就開始使用該虛MAC地 址承擔起目的MAC地址為該虛MAC地址的報文的轉發。為了保證該虛 MAC地址的使用和防止路由設備故障后,利用該虛MAC地址發送報文的 客戶端無法與外部網絡通信,各路由設備可以在正常狀態時,在該虛擬路由 器中周期性地發送包含其所分配到的虛MAC地址的通告報文,以說明其轉 發性能正常。其它路由設備在接收到該通告報文后,啟動活躍(Active)定 時器對該路由設備周期性發送的通告報文進行監聽,當間隔設定時長沒有接 收到該通告報文,則確定該虛MAC地址原來分配給的路由設備出現故障。 由于其他各個路由設備的間隔設定時長不一定一致,所以先到達設定時長的 路由設備將會接管使用該虛MAC地址,即接管該虛MAC地址的轉發工作, 并周期性地發送包含其所接管使用的虛MAC地址的通告報文。這里Active定時器的設定時長(Active_Time )可以#>據通告才艮文的發 送周期(Hello_Time)、虛MAC地址的接管延遲時長(Delay—Time )以及 修正時長(Skew_Time )來確定。例如,可以設定Active_Time = 3 x Hello_Time + Delay_Time + Skew_Time , 或者,Active—Time = Delay—Time+ Skew—Time 等。其中的 Skew_Time 可以為Skew—Time -((P-X—P)xHello—Time )。其中,P為該路由設備的竟爭優先級,P^為竟Pmax爭優先級最大值。竟爭優先級的含義將在以下做具體描述。這里,接管延遲 時長是預先配置的一個延遲時間,以便在接管該虛MAC之前路由設備能夠 進行諸如路由學習等的其他處理操作,其設置時間可以根據具體應用需求確 定。從上面的公式我們可以看出,各個路由設備的Active Time不一定一致, 所以可能會出現一個路由設備來接管使用該虛MAC地址。除了上面描述的情況,也有可能會出現多個路由設備都接管使用該虛 MAC地址的情況,此時,接管該虛MAC地址的多個路由設備都會發送包 含該虛MAC地址的通告報文,這就需要在多個路由設備中竟爭出一個路由 設備來接管使用該虛MAC地址的轉發工作。可以為各路由設備配置竟爭優 先級,在發送通告報文時,該通告報文中還可以包含自身的竟爭優先級,當 監聽到其他路由設備也發送了包含該虛MAC地址的通告報文時,如果自身 的竟爭優先級比通告報文中包含的竟爭優先級低,則退出該虛MAC地址的 接管使用;如果自身的竟爭優先級比通告報文中包含的竟爭優先級高,則保 持該虛MAC地址的接管使用。最終便可以竟爭出竟爭優先級最高的路由設 備來接管該虛MAC地址的報文轉發工作。路由設備的竟爭優先級可以根據該路由設備的報文轉發能力和當前使 用的虛MAC地址數目來確定。報文轉發能力越強竟爭優先級越高,當前使 用的虛MAC地址越多,竟爭優先級越低。可以具體采用以下方式確定竟爭 優先級如果該路由設備是被master路由設備所分配的該虛MAC地址的使 用者,則在該路由設備的報文轉發能力大于設定的轉發能力閾值的情況下, 將該路由設備的竟爭優先級設置為最大值,在該路由設備的報文轉發能力小 于設定的轉發能力閾值的情況下,將該路由設備的竟爭優先級設置為最小 值;如果該路由設備不是被master路由設備所分配的該虛MAC地址的使用 者,而是該虛MAC地址的接管使用者,則可以設置該路由設備的竟爭優先級P為P = Wmax/(C+l),其中,W,為該路由設備的轉發能力量化值,C 為當前所使用的虛MAC地址數量。由于將被master路由設備所分配的該虛MAC地址的使用者設置為竟爭 優先級最高,因此,當故障恢復后,該路由設備能夠將原來所使用的虛MAC 地址搶占回來。原因為該路由設備故障恢復后,會發送包含其使用的虛 MAC地址的通告報文,而接管使用該虛MAC地址的路由設備也會發送包 含該虛MAC地址的通告報文,由于該虛MAC地址的原有使用者竟爭優先 級最高,因此會將該虛MAC地址搶占回來,而接管使用該虛MAC地址的 路由設備會退出該虛MAC地址的接管使用。假設圖2所示架構中路由設備A發生故障,則路由設備B和路由設備 C間隔設定時間沒有接收到路由設備A的通告報文,則路由設備B和路由 設備C會接管使用MAC 1,并發送包含MAC 1和自身竟爭優先級的通告報 文,假設路由設備C的竟爭優先級較大,則路由設備C保留接管使用該MAC 1,而路由設備B則退出該MAC 1的接管使用,最終的報文轉發如圖3所示。 由路由設備C負責客戶端1和客戶端3的報文轉發工作,即接替了路由設備 A的報文轉發工作。另外,所有路由設備都會對接收到的通告報文中的虛MAC地址和使用 該虛MAC地址的路由設備進行記錄,使得master路由設備發生故障后,按 照現有技術選舉出的新master路由設備中具有已分配的虛MAC地址和使用 該虛MAC地址的路由設備的記錄,能夠繼續承擔虛MAC地址的分配工作 和ARP請求的應答工作。當竟爭優先級最高的路由設備成功接管了虛MAC地址后,可以啟動重 定向(Redirect)定時器和生存(Time-out)定時器。當Redirect定時器超時 后,接管虛MAC地址的該路由設備通知master路由設備該接管的虛MAC 地址不再作為ARP響應才良文的攜帶內容,這是為了防止該虛MAC地址的原 使用者長時間不能恢復正常而將原使用者所有的客戶端都轉移到接管的路由設備,造成長時間無法及時負載均衡。當Time-out定時器超時后,接管 該虛MAC地址的路由設備在該虛擬路由器中發送包含接管的虛MAC地址 的釋放報文以通告該虛MAC地址不再使用,其他路由設備接收到該釋放報 文后,停止對該虛MAC地址的通告報文進行監聽。且master路由設備接收 到包含該虛MAC地址的釋放報文后,可以將該虛MAC地址標識為未分配, 繼續按照負載均衡策略分配給其他路由設備。其中,為了保證學習到該虛 MAC地址的客戶端后續的報文能夠正常轉發,需要設置Time-out的定時時 長大于Redirect定時器,且Time-out的定時時長大于或等于ARP表項的老 化時間。仍以上述例子進4亍說明,路由設備C在接管使用了 MAC 1后,啟動 Redirect定時器和Time-out定時器。當Redirect定時器超時后,通知master 路由器該MAC 1不再作為ARP響應報文的攜帶內容。當Time-out定時器超 時后,路由設備C在該虛擬路由器中發送包含MAC 1的釋放報文以通告 MAC1不再使用,其他路由設備接收到該釋放報文后,停止對MACl的通 告報文進行監聽。且master路由設備接收到包含MAC 1的釋放報文后,可 以將該MAC 1標識為未分配,繼續按照負載均tf策略分配給其他路由設備。上述方法中所涉及的通告報文、Request報文、Reply報文和釋放報文可 以采用擴展VRRP標準協議報文的形式,增加選項(Option )字段以實現功 能擴充;也可以通過重新定義新的協議報文的方式來實現,例如在用戶數據 報協議(UDP)之上封裝成上述報文。下面以擴展VRRP標準協議報文為例進行簡單描述,VRRP標準協議報 文可以如圖4所示,其中的固定報文頭中,報文類型可以用來標識該報文具 體是通告報文、Request報文、Reply報文或者釋放報文;且該虛擬路由器中 的各虛IP地址都相同,即該虛擬路由器采用同 一個虛IP地址。根據具體報 文的不同,該報文中的選項字段內容不同,例如,當該報文是通告報文時, 其中需要包含路由設備自身所使用的虛MAC地址和自身的竟爭優先級信 息,其采用的擴展Option字段格式可以如圖5所示。如果該路由設備使用多個虛MAC地址,則可以包含多個圖5所示的Option字段,如果該路由設 備是該虛MAC地址的接管使用者,則該Option字段中的重定向定時器時長 字段可以攜帶接管使用該虛MAC地址時啟動的Redirect定時器時長,生存 定時器時長字段可以攜帶接管使用該虛MAC地址時啟動的Time-out定時器時長。以上是對本發明所提供的方法進行的詳細描述,下面對本發明所提供的路 由設備進行詳細描述。圖6為本發明實施例提供的路由設備的結構圖,多個該 路由設備可以用于構成一個虛擬路由器,且該虛擬路由器的虛IP地址配置為同 一網段各客戶端的缺省網關IP地址。如圖6所示,該路由設備可以包括角色 選舉單元601、請求接收單元602和應答發送單元603,還包括地址分配單元 604或地址獲取單元605。角色選舉單元601 ,用于選舉虛擬路由器中的master路由設備。 具體的選舉方式可以為選舉任意一個運行正常的路由設備作為master路 由設備,或者選舉性能最高的作為master路由器,或者按照VRRP協議中已定 義的路由設備的VRRP優先級進行選舉等。該選舉發生的狀況主要有兩種,一 種是虛擬路由器剛構建時,另一種是master路由設備發生故障時,其他作為 backup的路由設備需要重新選舉出一個運行正常的路由設備作為master路由設 備。地址分配單元604,用于在角色選舉單元601選舉出的主用路由設備為該 路由設備時,為該路由設備分配虛MAC地址,并在接收到其他路由設備發送 的虛MAC分配請求報文后,為所述其他路由設備分配不同的虛MAC地址,并 通過地址應斜艮文發送給所述其他路由設備。地址獲取單元605,用于在角色選舉單元601選舉出的主用路由設備不是 該路由設備時,向主用路由設備發送虛MAC分配請求報文;接收主用路由設 備發送的包含分配給該路由設備的虛MAC分配應斜艮文。請求接收單元602,用于在角色選舉單元601選舉出的master路由設備為 該路由設備時,接收來自客戶端的地址解析請求。由于本發明是將虛擬路由器的虛IP地址配置為各客戶端的缺省網關IP地址,因此,各客戶端在進行報文轉發之前,需要進行缺省網關MAC地址的學 習,即向虛擬路由器發送地址解析請求,虛擬路由器中的master路由設備負責 所有地址解析請求的代答。應答發送單元603,用于在請求接收單元602接收到地址解析請求后,按 照負載均衡策略,將分配給虛擬路由器中各路由設備的虛MAC地址攜帶在地 址解析應答中回復給客戶端,以供客戶端利用接收到的虛MAC地址進行報文 的發送。上述地址解析請求可以為IPv4中的ARP請求,相應地,地址解析應答為 ARP應答;也可以是IPv6中的ND請求,相應地,地址解析應答為ND應答。為各路由設備分配的虛MAC地址可以是由該虛擬^各由器中的master路由 設備動態分配的,具體為地址分配單元604在角色選舉單元601選舉出的 master路由設備為該路由設備時,如果該路由設備尚沒有虛MAC地址,則從 預先設置的虛MAC地址范圍內分配一個尚未分配的虛MAC地址給該路由設 備,在接收到其他路由設備發送的虛MAC分配請求報文后,從虛MAC地址范 圍內分配一個尚未分配的虛MAC地址給其他路由設備;或者如果該路由設備 尚沒有虛MAC地址,則按照預設的報文轉發能力與虛MAC地址數目的對應關 系,從尚未分配的虛MAC地址中分配與該路由設備的報文轉發能力對應數目 的虛MAC地址給該路由設備,在接收到其他路由設備發送的虛MAC分配請求 報文后,按照預設的報文轉發能力與虛MAC地址數目的對應關系,從尚未分力對應數目的虛MAC地址,并將分配的虛MAC地址攜帶在虛MAC分配應答 報文中回復給發送虛MAC分配請求報文的路由設備。另外,為了保證路由設備能夠被分配虛MAC地址,地址獲取單元605,還 可以用于在該路由設備尚沒有虛MAC地址時,循環發送虛MAC分配請求報文, 直至接收到虛MAC分配應^艮文。相應地,地址分配單元604,還可以用于分配虛MAC地址給其他路由設備后,記錄分配的虛MAC地址和該其他路由設備的對應關系,當多次接收到該其他路由設備的虛MAC分配請求報文時,仍將該發送虛MAC分配請求報文的 路由設備對應的虛MAC地址分配給該發送虛MAC分配請求報文的路由設備。 另外,該路由設備還可以包括地址使用單元606和地址監聽單元607。 地址使用單元606,用于在該路由設備被分配了虛MAC地址后,開始使用 該虛MAC地址;接收到地址監聽單元607發送的接管通知后,使用該接管通 知中包含的虛MAC地址。其中,使用虛MAC地址具體為承擔目的MAC地址為該虛MAC地址的 報文轉發,且在該路由設備處于正常狀態時,在虛擬路由器中周期性地發送包 含該路由設備所使用虛MAC地址的通告報文。地址監聽單元607,用于接收到其他路由設備發送的攜帶虛MAC地址的通 告報文后,對包含該虛MAC地址的通告報文進行監聽,如杲間隔設定時長沒 有接收到包含該虛MAC地址的通告報文,則向地址使用單元606發送包含該 虛MAC的接管通知。地址監聽單元607如果間隔設定時長沒有接收到包含該虛MAC地址的通 告報文,則確定該虛MAC地址被分配的原使用者發生故障,則最先確定該虛 MAC地址被分配的原使用者發生故障的路由設備接管使用該虛MAC地址。 為了防止多個路由設備同時對同 一虛MAC地址進行接管使用,更優地,-該路由i;還用于在通告報文中攜帶該路由設備使用該虛MAC地址的竟爭優先級。此時,該路由設備還可以包括優先級比較單元608,用于在地址監聽單 元607接收到的通告報文中所包含的虛MAC地址與地址使用單元606所使用 的虛MAC地址相同時,判斷該路由設備使用該虛MAC地址的竟爭優先級是否 大于通告報文中包含的竟爭優先級,如果是,則控制地址使用單元606保持對 該虛MAC地址的使用,否則,控制地址使用單元606退出該虛MAC地址的使 用。更進一步地,為了防止發生故障的路由設備長時間不能恢復正常,而將故障的路由設備對應地所有客戶端都轉移到接管的路由設備上,并且將新分配了 故障路由設備所使用的虛MAC地址的客戶端定向到該路由設備上,從而造成接管該虛MAC的路由設備長時間負擔過重,因此,可以在該路由設備中設置 重定向定時器609、生存定時器610和到時通知單元611。重定向定時器609和生存定時器610,用于在地址使用單元606接收到接 管通知后啟動。到時通知單元611,用于在重定向定時器609超時后,通知master路由設 備的應答發送單元不再將該虛MAC地址攜帶在地址解析響應中;在生存定時 器610超時后,在虛擬路由器中發送包含該虛MAC地址的釋放報文以通告該 虛MAC地址不再使用。地址監聽單元607,還用于接收其他路由設備發送的包含虛MAC地址的釋 放報文,并停止對包含該虛MAC地址的通告報文進行監聽。另外,master路由設備接收到包含該虛MAC地址的釋放報文后,可以將 該MAC地址標識為未分配,該虛MAC地址可以繼續參與按照負載均衡策略進 行的地址解析應答的回復。更優地,該路由設備還可以包括分配狀態纟企查定時器612,用于在地址 分配單元604將分配的虛MAC地址攜帶在虛MAC分配應答報文中回復給發送 虛MAC分配請求報文的路由設備之后開始計時;地址監聽單元607還可以用于在該路由設備為主用路由設備時,如果分配 狀態檢查定時器612達到設定時長仍沒有監聽到包含該分配的虛MAC地址的 通告才艮文,則通知地址分配單元604將該虛MAC地址標識為未分配。由以上描述可以看出,在本發明提供的方法和路由設備中,該虛擬路由 器包含多個路由設備,只需要在同一網段的各客戶端配置同一虛IP地址作 為缺省網關IP地址,即為各客戶端配置同一個虛擬路由器,而不需要針對 不同的客戶端配置不同的虛擬路由器;并且,將多個路由設備配置為同一個 虛擬路由器即可,而不需要將多個路由設備配置為多個虛擬路由器且同一個 路由設備在不同虛擬路由器中的角色也不相同,顯然簡化了實現VRRP負載均衡的配置工作。另外,本發明在多個路由設備構成的一個虛擬路由器中,由選舉出的master路由設備通過與各路由設備之間的報文交互為虛擬路由 器中的各路由設備分配虛MAC地址,并按照負載均衡策略將分配給各路由 設備的虛MAC地址回復給客戶端,而不是通過將客戶端固定分配給不同的 虛擬路由器來實現負載均衡,顯然,本發明能夠根據各路由設備實際的負載 狀況實現動態的負載均衡,且不會導致客戶端數目變化所引起的路由設備負 載不均衡的問題。以上所述僅為本發明的較佳實施例而已,并不用以限制本發明,凡在本 發明的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在 本發明保護的范圍之內。
權利要求
1、一種實現虛擬路由器負載均衡的方法,其特征在于,該虛擬路由器包含多個路由設備,同一網段各客戶端的缺省網關IP地址配置為該虛擬路由器的虛IP地址;該方法包括虛擬路由器中選舉出的主用路由設備為自身分配虛MAC地址,并在接收到其他路由設備發送的虛MAC分配請求報文后,為所述其他路由設備分配不同的虛MAC地址,并通過地址應答報文發送給所述其他路由設備;所述主用路由設備接收到來自客戶端的地址解析請求后,按照負載均衡策略,將分配給所述虛擬路由器中各路由設備的虛MAC地址攜帶在地址解析應答中回復給所述客戶端,以供所述客戶端利用接收到的虛MAC地址進行報文的發送。
2、 根據權利要求1所述的方法,其特征在于,該方法還包括當所述主用 路由設備發生故障時,其他各路由設備重新選舉出一個主用路由設備。
3、 根據權利要求1所述的方法,其特征在于,所述選舉出的主用路由設備 為自身分配虛MAC地址,并在接收到其他路由設備發送的虛MAC分配請求報 文后,為所述其他路由設備分配不同的虛MAC地址具體為所述選舉出的主用路由設備在自身尚沒有虛MAC地址時,從預先設置的 虛MAC地址范圍內分配一個尚未分配的虛MAC地址給自身,在接收到其他路 由設備發送的虛MAC分配請求報文后,從所述虛MAC地址范圍內分配一個尚 未分配的虛MAC地址給所述其他路由設備;或者,所述選舉出的主用路由設備在自身尚沒有虛MAC地址時,按照預設的報 文轉發能力與虛MAC地址數目的對應關系,從尚未分配的虛MAC地址中分配 與自身的報文轉發能力對應數目的虛MAC地址給自身,在接收到其他路由設 備發送的虛MAC分配請求報文后,按照預設的報文轉發能力與虛MAC地址數 目的對應關系,從尚未分配的虛MAC地址中分配與發送虛MAC分配請求報文 的路由設備的報文轉發能力對應數目的虛MAC地址給發送所述虛MAC分配請求報文的路由設備。
4、 根據權利要求1或3所述的方法,其特征在于,所述其他路由設備在尚沒有虛MAC地址時循環發送所述虛MAC分配請求報文,直至接收到所述虛 MAC分配應^艮文;所述主用路由設備分配虛MAC地址給路由設備后,記錄分配的虛MAC地 址和路由設備的對應關系,當多次接收到其他路由設備的虛MAC分配請求報 文時,仍將該發送虛MAC分配請求報文的^各由設備所對應的虛MAC地址分配 給該路由設備。
5、 根據權利要求1所述的方法,其特征在于,所述虛擬路由器中的路由設 備4皮分配了虛MAC地址后,開始^f吏用該虛MAC地址;其中,所述^f吏用該虛 MAC地址具體為承擔目的MAC地址為該虛MAC地址的報文轉發,且在該 路由設備處于正常狀態時,在所述虛擬路由器中周期性地發送包含該路由設備 所使用虛MAC地址的通告報文。
6、 根據權利要求5所述的方法,其特征在于,所述主用路由設備分配虛 MAC地址給路由設備后,啟動分配狀態檢查定時器,如果該分配狀態檢查定時 器達到設定時長仍沒有接收到包含該虛MAC地址的通告報文,則所述主用路 由設備將該虛MAC地址標識為未分配。
7、 根據權利要求5所述的方法,其特征在于,所述虛擬路由器中的路由設 備接收到包含虛MAC地址的通告報文后,對包含該虛MAC地址的通告報文進 行監聽,如果間隔設定時長沒有接收到包含該虛MAC地址的通告報文,則接 管使用該虛MAC地址。
8、 根據權利要求7所述的方法,其特征在于,所述通告報文除了包含虛 MAC地址之外還包括發送該通告報文的路由設備使用該虛MAC地址的竟爭 優先級;如果路由設備接收到的通告報文所包含的虛MAC地址與自身所使用的虛 MAC地址相同,則判斷該路由設備自身使用該虛MAC地址的竟爭優先級是否 大于通告報文中包含的竟爭優先級,如果是,則保持該虛MAC地址的使用,否則,退出該虛MAC地址的使用。
9、 根據權利要求8所述的方法,其特征在于,路由設備使用虛MAC地址 的竟爭優先級根據該路由設備的報文轉發能力和當前使用的虛MAC地址數目確定。
10、 根據權利要求8或9所述的方法,其特征在于,確定所述路由設備使 用虛MAC地址的竟爭優先級具體包括如果所述路由設備是主用路由設備所分配的該虛MAC地址的使用者,則 在該路由設備的報文轉發能力大于設定的轉發能力閾值的情況下,設置該路由 設備使用該虛MAC地址的竟爭優先級為竟爭優先級最大值,在該路由設備的 報文轉發能力小于設定的轉發能力閾值的情況下,設置該路由設備使用該虛 MAC地址的竟爭優先級為竟爭優先級最小值;如果該路由設備是該虛MAC地址的接管使用者,則設置該路由設備使用 該虛MAC地址的竟爭優先級P為P = W/(C+1),其中,W為該路由設備的報文轉發能力量化值,C為該路由設備當前所使用的虛MAC地址數量。
11、 根據權利要求7至IO任一權項所述的方法,其特征在于,該方法還包 括路由設備接管使用虛MAC地址后,啟動重定向定時器,當重定向定時器 超時后,通知主用路由設備不再將該虛MAC地址攜帶在地址解析響應中。
12、 根據權利要求11所述的方法,其特征在于,該方法還包括路由設備 接管使用虛MAC地址后,啟動生存定時器,當生存定時器超時后,在所述虛 擬路由器中發送包含該虛MAC地址的釋放報文以通告該虛MAC地址不再使用;其他路由設備接收到包含該虛MAC地址的釋放報文后,停止對包含該虛 MAC地址的通告報文進行監聽;主用路由設備接收到包含該虛MAC地址的釋 放報文后,將該虛MAC地址標識為未分配;其中,所述生存定時器的定時時長大于所述重定向定時器的定時時長
13、 根據權利要求1所述的方法,其特征在于,所述按照負載均衡策略,將分配給所述虛擬路由器中各路由設備的虛MAC地址攜帶在地址解析應答中具體包括所述主用路由設備按照固定的順序依次選擇已分S己給路由設備的虛 MAC地址攜帶在地址解析應答中;或者,所述主用路由設備將各路由設備的報文轉發能力和/或當前負載狀況作為 加權因素,選擇已分配給路由設備的虛MAC地址攜帶在地址解析應答中。
14、 一種路由設備,其特征在于,多個該路由設備用于構成一個虛擬路由 器,且該虛擬路由器的虛IP地址配置為同 一網段各客戶端的缺省網關IP地址; 該路由設備包括角色選舉單元、請求接收單元和應答發送單元以及地址分配 單元或地址獲取單元;所述角色選舉單元,用于選舉虛擬路由器中的主用路由設備; 所述地址分配單元,用于在所述角色選舉單元選舉出的主用路由設備為該路由設備時,為該路由設備分配虛MAC地址,并在接收到其他路由設備發送的虛MAC分配請求報文后,為所述其他路由設備分配不同的虛MAC地址,并通過地址應答報文發送給所述其他路由設備;所述地址獲取單元,用于在所述角色選舉單元選舉出的主用路由設備不是該路由設備時,向主用路由設備發送虛MAC分配請求報文;接收主用路由設所述請求接收單元,用于在所述角色選舉單元選舉出的主用路由設備為該 路由設備時,接收來自客戶端的地址解析請求;所述應答發送單元,用于在所述請求接收單元接收到所述地址解析請求后, 按照負載均衡策略,將分配給所述虛擬路由器中各路由設備的虛MAC地址攜 帶在地址解析應答中回復給所述客戶端,以供所述客戶端利用接收到的虛MAC 地址進行報文的發送。
15、 根據權利要求14所述的路由設備,其特征在于,所述地址分配單元在 所述角色選舉單元選舉出的主用路由設備為該路由設備時,如果該路由設備尚 沒有虛MAC地址,則從預先設置的虛MAC地址范圍內分配一個尚未分配的虛 MAC地址給該路由設備;在接收到其他路由設備發送的虛MAC分配請求報文后,從所述虛MAC地址范圍內分配一個尚未分配的虛MAC地址給所述其他路 由設備;或者如果該路由設備尚沒有虛MAC地址,則按照預設的報文轉發能 力與虛MAC地址數目的對應關系,從尚未分配的虛MAC地址中分配與該路由 設備的報文轉發能力對應數目的虛MAC地址給該路由設備,在接收到其他路 由設備發送的虛MAC分配請求報文后,按照預設的報文轉發能力與虛MAC地 址數目的對應關系,從尚未分配的虛MAC地址中分配與發送虛MAC分配請求 報文的路由設備的報文轉發能力對應數目的虛MAC地址> 并將分配的虛MAC 地址攜帶在虛MAC分配應答報文中回復給發送虛MAC分配請求報文的路由設 備。
16、 根據權利要求14所述的路由設備,其特征在于,所述地址獲取單元, 還用于在該路由設備尚沒有虛MAC地址時,循環發送所述虛MAC分配請求報 文,直至接收到所述虛MAC分配應答報文;所述地址分配單元,還用于分配虛MAC地址給其他路由設備后,記錄分 配的虛MAC地址和該其他路由設備的對應關系,當多次接收到該其他路由設 備的虛MAC分配請求報文時,仍將該發送虛MAC分配請求報文的路由設備對 應的虛MAC地址分配給該發送虛MAC分配請求報文的路由設備。
17、 根據權利要求14至16任一權項所述的路由設備,其特征在于,該路 由設備還包括地址使用單元,用于在該路由設備被分配了虛MAC地址后, 開始使用該虛MAC地址;接收到所述地址監聽單元發送的接管通知后,使用 該接管通知中包含的虛MAC地址;其中,使用虛MAC地址具體為承擔目的MAC地址為該虛MAC地址的 報文轉發,且在該路由設備處于正常狀態時,在所述虛擬路由器中周期性地發 送包含該路由設備所使用虛MAC地址的通告報文。
18、 根椐權利要求17所述的路由設備,其特征在于,該路由設備還包括 地址監聽單元,用于接收到其他路由設備發送的攜帶虛MAC地址的通告報文 后,對包含該虛MAC地址的通告報文進行監聽,如果間隔設定時長沒有接收 到包含該虛MAC地址的通告報文,則向所述地址使用單元發送包含該虛MAC的接管通知。
19、 根據權利要求17所述的路由設備,其特征在于,所述地址使用單元, 除了在所述通告報文中包含該路由設備所使用虛MAC地址之外,還用于在所 述通告報文中攜帶該路由設備使用該虛MAC地址的竟爭優先級;該路由設備還包括優先級比較單元,用于在所述地址監聽單元接收到的同時,判斷該路由設備使用該虛MAC地址的竟爭優先級是否大于通告報文中 包含的竟爭優先級,如果是,則控制所述地址使用單元保持對該虛MAC地址 的使用,否則,控制所述地址使用單元退出該虛MAC地址的使用。
20、 根據權利要求17所述的路由設備,其特征在于,該路由設備還包括 重定向定時器和到時通知單元;所述重定向定時器,用于在所述地址使用單元接收到所述接管通知后啟動; 所述到時通知單元,用于在所述重定向定時器超時后,通知主用路由設備 的應答發送單元不再將該虛MAC地址攜帶在地址解析響應中。
21、 根據權利要求20所述的路由設備,其特征在于,該路由設備還包括、 生存定時器,用于在所述地址使用單元接收到所述接管通知后啟動;所述到時通知單元,還用于在所述生存定時器超時后,在所述虛擬路由器,滋所述地址監聽單元,還用于接收其他路由設備發送的包含虛MAC地址的 釋放報文,并停止對包含該虛MAC地址的通告報文進行監聽
22、 根據權利要求17所述的路由設備,其特征在于,該路由設備還包括 分配狀態檢查定時器,用于在所述地址分配單元將分配的虛MAC地址攜帶在 虛MAC分配應答報文中回復給發送虛MAC分配請求報文的路由設備之后開始計時;所述地址監聽單元,還用于在該路由設備為主用路由設備時,如果所述分配狀態檢查定時器達到設定時長仍沒有監聽到包含所述分配的虛MAC地址的 通告才艮文,則通知所述地址分配單元將該虛MAC地址標識為未分配。
全文摘要
本發明提供了一種實現虛擬路由器冗余協議(VRRP)負載均衡的方法和路由設備,其中,該虛擬路由器包含多個路由設備,同一網段各客戶端的缺省網關IP地址配置為該虛擬路由器的虛IP地址,方法包括虛擬路由器中選舉出的主用路由設備為自身分配虛MAC地址,并在接收到其他路由設備發送的虛MAC分配請求報文后,為其他路由設備分配不同的虛MAC地址,并通過地址應答報文發送給其他路由設備;接收到來自客戶端的地址解析請求后,按照負載均衡策略,將分配給該虛擬路由器中各路由設備的虛MAC地址攜帶在地址解析應答中回復給該客戶端。從而簡化VRRP的配置和實現動態的VRRP負載均衡。
文檔編號H04L12/56GK101404621SQ200810227138
公開日2009年4月8日 申請日期2008年11月24日 優先權日2008年11月24日
發明者甘長華, 邱元香, 鄭艷濤 申請人:杭州華三通信技術有限公司