專利名稱:一種實現(xiàn)服務器負載均衡的方法和一種三層交換機的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡通信技術(shù)領(lǐng)域,尤指 一種實現(xiàn)服務器負載均衡的方法和 一種三層交換機。
背景技術(shù):
擁有大量的訪問和用戶是信息服務提供者的目標。但是大量的訪問量會 給服務器帶來沉重的負擔,且隨著用戶人數(shù)不斷增加,服務器變得不勝負荷, 如果無法及時處理大量用戶服務請求,將出現(xiàn)服務中斷的情況。以往在解決 這些問題時,只能采用更強計算能力的服務器來替換原來的服務器,即使這 樣,單臺服務器的負載能力也是有限的,不可能無限擴展,同時,服務器的 價格也隨著服務器性能呈現(xiàn)指數(shù)型上升。因此,采用多臺廉價服務器組成負 載分擔系統(tǒng)的方案日漸成為主流。
用多臺廉價服務器組成負載分擔系統(tǒng)是由多臺服務器以對稱的方式組 成一個服務器集合,每臺服務器都具有平等的地位,都可以單獨對外提供服 務而無需其他服務器的輔助。而負載分擔設備將外部發(fā)送來的請求均勻分配 到對稱結(jié)構(gòu)中的某一臺服務器上,而接收到請求的服務器獨立地回應客戶的 請求。
圖1是現(xiàn)有技術(shù)中的NAT方式的服務器負載均衡系統(tǒng)的示意圖。參見 圖1,服務器負載均衡包括以下幾個基本元素
負載均衡設備負責分發(fā)各種服務請求到各個服務器; 服務器負責響應和處理各種服務請求;
VSIP:服務器集群對外提供的虛擬IP地址,供用戶請求服務時使用; 服務器IP地址,對應于圖1中的IPA、 IPB和IPC,供負載均衡設備分發(fā)服務請求時使用。
圖2是圖1所示的NAT方式的服務器負載均衡系統(tǒng)處理服務請求的流 程圖。如圖2所示,包括以下步驟
步驟201,客戶端主機將目的地址為VSIP的服務請求發(fā)送給服務器集 群前端的負載均衡設備。
步驟202,負載均衡設備通過調(diào)度算法選擇一個的服務器。
步驟203,負載均衡設備通過網(wǎng)絡地址轉(zhuǎn)換,用所選擇的服務器的地址 重寫服務請求報文的目的地址后,將服務請求報文發(fā)送給所選擇的服務器。
步驟204,服務器將服務響應報文發(fā)送到負載均衡設備,其中,該服務 響應報文的源IP地址為該服務器本身的IP。
步驟205,負載均衡設備將服務響應報文的源IP地址還原為虛服務的 VSIP,再返回給客戶端主機,完成整個負載調(diào)度過程。
NAT方式的負載均衡技術(shù)雖然具有高性能、高可能性、透明性以及可 擴展性強等優(yōu)點,但是也如下缺點負載均衡設備是獨立的設備,且價格昂 貴。目前,市場上的負載均衡設備都是專業(yè)廠商的獨立設備,價格非常昂貴, 對于大多數(shù)中小型數(shù)據(jù)中心服務器而言,如此昂貴的設備是可望而不可及 的。
發(fā)明內(nèi)容
本發(fā)明提供了一種實現(xiàn)服務器負載均衡的方法,該方法使得能夠在成本 低廉的三層接入交換機上實現(xiàn)服務器負載均衡,而無需價格昂貴的專用負載 均衡設備。
本發(fā)明還提供了 一種三層交換機,該三層交換機能夠?qū)崿F(xiàn)服務器負載均衡。
為達到上述目的,本發(fā)明的技術(shù)方案具體是這樣實現(xiàn)的 本發(fā)明公開了 一種實現(xiàn)服務器負載均衡的方法,該方法應用于三層交換 機作為服務器集群的網(wǎng)關(guān)連接組成所述服務器集群的兩個以上的服務器的組網(wǎng),該方法包4舌
將三層交換機上的連接所述兩個以上服務器的端口聚合在一起,組成聚 合端口組,且指定聚合端口組中的一個端口為主端口;
為組成所述服務器集群的兩個以上的服務器分配相同的網(wǎng)際協(xié)議IP地 址和互不相同的媒質(zhì)訪問控制MAC地址;
所述三層交換機將服務器IP地址和主端口所連接服務器的MAC地址 對應保存到地址解析協(xié)議ARP表中,將聚合端口組中的每個端口以及每個 端口所連接的服務器的MAC地址對應保存到聚合端口組MAC表中;
所述三層交換機接收到服務請求報文時,根據(jù)服務請求報文的目的IP 地址查找ARP表,當從ARP表中查找到的對應MAC地址是主端口的MAC 地址時,則確定所述服務請求報文的出端口是聚合端口組;
所述三層交換機根據(jù)為聚合端口組預定的負載分擔算法從聚合端口組 中選擇一個端口作為出端口 ,并將所述服務請求報文通過所述選擇的出端口 發(fā)送到該出端口所連接的服務器。
本發(fā)明還公開了 一種三層交換機,該三層交換機作為服務器集群的網(wǎng)關(guān) 連接組成所述服務器集群的兩個以上的服務器,且所述兩個以上的服務器具 有相同的IP地址和互不相同的MAC地址,該三層交換機包括
聚合端口組,該聚合端口組中的各端口——對應地連接組成所述服務器 集群的兩個以上的服務器,且該聚合端口組中的一個指定端口為主端口 ;
存儲模塊,用于存儲ARP表和聚合端口組MAC表,所述ARP表中對 應保存有服務器IP地址和主端口所連接服務器的MAC地址,所述聚合端口 組MAC表中對應保存有聚合端口組中的每個端口以及每個端口所連接的服 務器的MAC地址;
報文轉(zhuǎn)發(fā)模塊,用于在收到服務請求報文時,根據(jù)服務請求報文的目的 IP地址查找ARP表,當從ARP表中查找到對應的MAC地址是主端口的 MAC地址,確定所述服務請求報文的出端口是聚合端口組,則向聚合模塊 發(fā)送查詢請求,將聚合模塊返回的聚合端口組中的一個端口作為出端口,將所述服務請求報文通過所述出端口發(fā)送到該出端口所連接的服務器;聚合模塊,用于在收到報文轉(zhuǎn)發(fā)模塊發(fā)送的查詢請求后,根據(jù)為聚合端 口組預定的負載分擔算法從聚合端口組中選擇一個端口返回給報文轉(zhuǎn)發(fā)模塊。由上述技術(shù)方案可見,本發(fā)明這種將三層交換機上的連接具有相同IP 地址和不同MAC地址的多個服務器的端口組成聚合端口組;將服務器IP 地址和主端口所連接服務器的MAC地址對應保存到ARP表中,以及將聚合 端口組中的每個端口以及每個端口所連接的服務器的MAC地址對應保存到 聚合端口組MAC表中;三層交換機接收到目的IP地址為服務器IP地址的 服務請求報文時,根據(jù)服務器IP地址從ARP表中查找到主端口的MAC地 址,確定出端口是聚合端口組,則從聚合端口組中選擇一個端口作為出端口 , 根據(jù)所述出端口從聚合端口組MAC表中查找到對應的MAC地址,用該 MAC地址替換服務請求報文中的目的MAC地址后,將服務請求報文通過 出端口發(fā)送出去的技術(shù)方案,使得能夠在成本低廉的三層接入交換機上實現(xiàn) 服務器負載均衡,而無需價格昂貴的專用負載均衡設備。
圖1是現(xiàn)有技術(shù)中的NAT方式的服務器負載均衡系統(tǒng)的示意圖; 圖2是圖1所示的NAT方式的服務器負載均衡系統(tǒng)處理服務請求的流 程圖;圖3是本發(fā)明實施例 一種實現(xiàn)服務器負載均衡的方法的流程圖;圖4是應用圖3所示的方法的一個實際組網(wǎng)示意圖;圖5是本發(fā)明實施例一種三層交換機的組成結(jié)構(gòu)示意圖。
具體實施方式
本發(fā)明主要是針對現(xiàn)有的服務器負載均衡方案中專業(yè)的服務器負載均衡 設備成本極其昂貴的問題,提出了一種基于三層接入交換機鏈路聚合實現(xiàn)服務器負載均衡的方案,從而可以在成本低廉的接入交換機上實現(xiàn)服務器負載 均衡功能,而無需昂貴的專業(yè)服務器負載均衡設備,為用戶提供了一種高性 價比的負載均衡方案。圖3是本發(fā)明實施例 一 種實現(xiàn)服務器負載均衡的方法的流程圖,該方法 應用于三層交換機作為服務器集群的網(wǎng)關(guān)連接組成所述服務器集群的兩個 以上的服務器的組網(wǎng),如圖3所示,該方法包括步驟301,將三層交換機上的連接兩個以上服務器的端口聚合在一起, 組成聚合端口組,且指定聚合端口組中的一個端口為主端口。步驟302,為組成所述服務器集群的兩個以上的服務器分配相同的網(wǎng)際 協(xié)議IP地址和互不相同的媒質(zhì)訪問控制MAC地址。步驟303,所述三層交換機將服務器IP地址和主端口所連接服務器的 MAC地址對應保存到地址解析協(xié)議ARP表中,將聚合端口組中的每個端口 以及每個端口所連接的服務器的MAC地址對應保存到聚合端口組MAC表中。步驟304,所述三層交換機接收到目的IP地址為服務器IP地址的服務 請求報文時,根據(jù)服務器IP地址從ARP表中查找到對應的MAC地址是主 端口的MAC地址,確定出端口是聚合端口組,根據(jù)預定的負載分擔算法從 聚合端口組中選擇 一個端口作為出端口;三層交換機根據(jù)所述選擇的端口從 聚合端口組MAC表中查找到對應的MAC地址,用該查找的MAC地址替 換所述服務請求報文中的目的MAC地址后,將所述服務請求報文通過所述 選擇的端口發(fā)送到該端口所連接的服務器。為使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下列舉一個具體 的例子,對本發(fā)明進一步詳細說明。圖4是應用圖3所示的方法的一個實際組網(wǎng)示意圖。如圖4所示,該組 網(wǎng)方案包括以下特征al、 n臺對外提供相同業(yè)務的服務器(服務器1 ~n)通過三層交換機上的端口 1 ~ n接入到三層交換機上,n為大于1的自然數(shù)。a2、三層交換機上通過靜態(tài)配置將端口 1 n聚合在一起,形成聚合端 口組,其中端口 l是主端口,作為整個聚合端口組的標志。a3、服務器的IP地址手工指定,n臺服務器的IP地址相同,這里以IP1 表示,且在同一個虛擬局域網(wǎng)VLAN內(nèi)(這是因為聚合端口組的各端口都 屬于同一個VLAN)。需要說明的是各服務器的IP地址相同,各服務器 之間的相互隔離依靠三層交換機的聚合端口之間的隔離機制,保證各服務器 之間不能互通。a4、 n臺服務器的媒質(zhì)訪問控制MAC地址各不相同,分別為MAC1、 MAC2..... MACn。a5、三層交換機是各服務器的網(wǎng)關(guān),在各服務器上分別配置三層交換機 (網(wǎng)關(guān))的ARP信息。這里在服務器上配置三層交換機的ARP信息具體為 在每個服務器上分別配置保存有三層交換機的IP地址和所述聚合端口組對 應的MAC地址的ARP表。聚合端口組對應的MAC地址具體為該聚合端口 組所屬VLAN的VLAN Interface所對應的MAC地址。在圖4中,三層交換機的ARP/MAC學習流程為bl、各服務器向三層交換機發(fā)送ARP請求報文;b2、三層交換機通過聚合端口組中的各聚合端口收到來自各服務器的 ARP請求報文,根據(jù)鏈路聚合的處理機制,只有主端口 (即端口 1)收到的 ARP請求會上送ARP模塊處理,從而三層交換機學習到的ARP表項是(IP1, MAC1 );b3、交換機在收到各服務器的ARP請求時會學習到各服務器的MAC 地址,但根據(jù)鏈路集合機制,只有主端口上學習的MAC地址才會寫入CAM 表,即(MAC1,端口 1) ; CAM表中的端口 1實際上是代表整個聚合端口 組內(nèi)的n個端口的。另外,聚合端口組中的各端口上學習到的MAC地址信 息雖然不會寫入CAM表,但也不會被丟棄,而是根據(jù)聚合端口組中的每個 端口收到的ARP請求報文將每個端口以及每個端口所連接的服務器的MAC地址對應保存到聚合端口組MAC表中,聚合端口組MAC表如表1所示:MAC地址端口MAC I端口 IMAC2端口 2MACn端口 n表 1可以看出,三層交換機作為集群服務器的網(wǎng)關(guān),將集群中的具有相同IP地址的多臺服務器的ARP廣播域控制在最小范圍內(nèi)。 在圖4中,業(yè)務訪問服務器的流程如下cl、客戶端訪問服務器的服務請求報文先到達三層交換機;該服務請求 報文的源IP地址是客戶端的IP地址,目的地址是服務器的IP地址(即IPI ), 源MAC地址是三層交換機的上一跳的MAC地址,以MACx表示,目的 MAC地址是三層交換機對外所提供的MAC地址,以MACy表示;c2、三層交換機通過路由查詢得到一條直連的路由,則根據(jù)服務請求報 文的目的IP地址(即IPI )查自身的ARP表,得到對應的MAC地址是MACl ;c3、由于MAC1對應的端口 l代表聚合端口組,因此三層交換;〖幾可知 出端口是一個聚合端口組,其主端口是端口 1;根據(jù)預定的聚合鏈路負載分 擔算法,例如,用服務請求報文的源IP地址和源端口號做哈希(Hash)算 法,從端口 l~n中選擇一個端口作為出端口等,這里假設選擇了端口2作 為出端口 。c4、三層交換機根據(jù)出端口 2查找自身維護的聚合端口組MAC表,得 到相應的MAC地址為MAC2;c5、三層交換機將服務請求報文的目的MAC地址替換為MAC2,將服 務請求4艮文的源MAC地址替換為聚合端口組對應的MAC地址,然后從端 口 2發(fā)送到服務器2。c6、服務器2處理服務請求報文,并生成服務響應報文。該服務響應報文的源IP地址是服務器2的IP地址(即IP1 ),目的IP地址是客戶端的IP地址;c7、根據(jù)服務器2上的缺省路由,下一跳網(wǎng)關(guān)是三層交換機;根據(jù)服務 器2自身的ARP表(ARP表中與三層交換機的IP地址對應的是聚合端口組 的MAC地址)配置,服務響應報文的目的MAC地址是聚合端口組的MAC 地址,源MAC地址是服務器2的MAC地址MAC2。c8、三層交換機接收到該服務響應報文后,將該報文的源MAC地址更 新為三層交換才幾對外接口的MAC地址MACy,將目的MAC地址更新為下 一跳的MAC地址MACx后轉(zhuǎn)發(fā)出去。在圖4中,三層交換機的健康檢測流程為dl、集群中的服務器出現(xiàn)異常,包括服務器宕機、網(wǎng)卡故障、電路故 障等等;這里假設服務器2出現(xiàn)異常;d2、三層交換機;險測到端口 2上報失效消息(DOWN),將端口 2從活 躍(Active)狀態(tài)轉(zhuǎn)為待命(Standby)狀態(tài),同時將端口 2從聚合端口組的 子端口池中刪除,并相應更新ARP表和聚合端口組MAC表。這里ARP表 中內(nèi)容與端口2無關(guān),因此無需更新,而聚合端口組MAC表中的與端口 2 對應的項需要刪除;d3、三層交換機為原本送到服務器2進行處理的業(yè)務流重新選擇服務 器,例如,按照遞增原則,選擇服務器3為目的服務器;d4、如果服務器2恢復到正常狀態(tài),三層交換機檢測到端口 2上報的恢 復消息(UP ),將端口 2從待命(Standby )狀態(tài)轉(zhuǎn)為活躍(Active )狀態(tài), 同時將端口 2加入到聚合端口組的子端口池中,并相應更新ARP表和聚合 端口組MAC表。這里ARP表中內(nèi)容與端口 2無關(guān),因此無需更新,而聚合 端口組MAC表中的與端口 2對應的項需要通過重新學期并增加;d5、如果與主端口連接的服務器出現(xiàn)異常,即服務器1出現(xiàn)異常,端口 l報DOWN,則三層交換機重新為聚合端口組選擇主端口 ,如選擇端口 2為 主端口 ,并相應更新ARP表和聚合端口組MAC表。這里ARP表更新為(IP1,MAC2),從聚合端口組MAC表中刪除端口 l所對應的項。通過上述方案,可以實現(xiàn)利用低成本的三層接入交換機的鏈路集合特性 為服務器集群提供負栽均衡支持,同時保證基本的服務器健康檢測機制,提 高了服務器集群的可靠性和利用率。圖5是本發(fā)明實施例一種三層交換機的組成結(jié)構(gòu)示意圖,該三層交換機 作為服務器集群的網(wǎng)關(guān)連接組成所述服務器集群的兩個以上的服務器,且所 述兩個以上的月良務器具有相同的IP地址和互不相同的MAC地址,如圖5 所示,該三層交換機包括聚合端口組501、存儲模塊502、報文轉(zhuǎn)發(fā)模塊 503和聚合模塊504,其中,聚合端口組501中的各端口——對應地連接組成所述服務器集群的兩 個以上的服務器,且該聚合端口組中的一個指定端口為主端口;存儲模塊502,用于存儲ARP表和聚合端口組MAC表,所述ARP表 中對應保存有服務器IP地址和主端口所連接服務器的MAC地址,所述聚合 端口組MAC表中對應保存有聚合端口組中的每個端口以及每個端口所連接 的服務器的MAC地址;報文轉(zhuǎn)發(fā)模塊503,用于在收到目的IP地址為服務器IP地址的服務請 求報文時,根據(jù)服務器IP地址從ARP表中查找到對應的MAC地址是主端 口的MAC地址,確定出端口是聚合端口組,則向聚合模塊發(fā)送查詢請求, 將聚合模塊返回的聚合端口組中的一個端口作為出端口;根據(jù)所述出端口從聚合端口組MAC表中查找到對應的MAC地址,用該查找的MAC地址替 換所述服務請求報文中的目的MAC地址后,將所述服務請求報文通過所述 出端口發(fā)送到該出端口所連接的服務器;聚合模塊504,用于在收到報文轉(zhuǎn)發(fā)模塊發(fā)送的查詢請求后,根據(jù)預定 的負載分擔算法從聚合端口組中選擇一個端口返回給報文轉(zhuǎn)發(fā)模塊503。在圖5中,報文轉(zhuǎn)發(fā)模塊503,進一步用于從聚合端口組中的端口接收 到來自服務器的服務響應報文時,將其源MAC地址替換為三層交換機對外 接口的MAC地址、將目的MAC地址替換為下一跳設備的MAC地址后轉(zhuǎn)發(fā)出去。如圖5所示,該三層交換機進一步包括健康檢測模塊505,用于測聚 合端口組中的各端口上報的失效消息和恢復消息;如果檢測到聚合端口組中 的一端口上報的失效消息,則將該端口從聚合端口組中刪除,如果上報失效 信息的是主端口,則還進一步重新為聚合端口組指定主端口 ,并相應更新 ARP表和聚合端口組MAC表;如果三層交換機檢測到被刪除的端口上報恢 復消息,則將該上報恢復消息的端口重新加入到聚合端口組中,相應更新 ARP表和聚合端口組MAC表。如圖5所示,該三層交換機還包括ARP模塊506;所述聚合模塊504, 進一步用于從聚合端口組中的端口接收來自每個服務器的ARP請求報文, 根據(jù)每個端口收到的ARP請求報文將每個端口以及每個端口所連接的服務 器的MAC地址對應保存到聚合端口組MAC表中,并將來自主端口的ARP 請求報文發(fā)送給ARP模塊506; ARP模塊506,用于根據(jù)來自主端口的ARP 請求報文將服務器的IP地址和主端口所連接服務器的MAC地址對應保存到 ARP表中。綜上所述,本發(fā)明這種將三層交換機上的連接具有相同IP地址和不同 MAC地址的多個服務器的端口組成聚合端口組;將服務器IP地址和主端口 所連接服務器的MAC地址對應保存到ARP表中,以及將聚合端口組中的每 個端口以及每個端口所連接的服務器的MAC地址對應保存到聚合端口組 MAC表中;三層交換機接收到目的IP地址為服務器IP地址的服務請求報 文時,根據(jù)服務器IP地址從ARP表中查找到主端口的MAC地址,確定出 端口是聚合端口組,則從聚合端口組中選擇一個端口作為出端口,根據(jù)所述 出端口從聚合端口組MAC表中查找到對應的MAC地址,用該MAC地址 替換服務請求報文中的目的MAC地址后,將服務請求報文通過出端口發(fā)送 出去的技術(shù)方案,使得能夠在成本低廉的三層接入交換機上實現(xiàn)服務器負栽 均衡,而無需價格昂貴的專用負載均衡設備。以上所述,僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護范圍,凡在本發(fā)明的精神和原則之內(nèi)所做的任何修改、等同替換、改進等, 均應包含在本發(fā)明的保護范圍之內(nèi)。
權(quán)利要求
1、一種實現(xiàn)服務器負載均衡的方法,其特征在于,該方法應用于三層交換機作為服務器集群的網(wǎng)關(guān)連接組成所述服務器集群的兩個以上的服務器的組網(wǎng),該方法包括將三層交換機上的連接所述兩個以上服務器的端口聚合在一起,組成聚合端口組,且指定聚合端口組中的一個端口為主端口;為組成所述服務器集群的兩個以上的服務器分配相同的網(wǎng)際協(xié)議IP地址和互不相同的媒質(zhì)訪問控制MAC地址;所述三層交換機將服務器IP地址和主端口所連接服務器的MAC地址對應保存到地址解析協(xié)議ARP表中,將聚合端口組中的每個端口以及每個端口所連接的服務器的MAC地址對應保存到聚合端口組MAC表中;所述三層交換機接收到服務請求報文時,根據(jù)服務請求報文的目的IP地址查找ARP表,當從ARP表中查找到的對應MAC地址是主端口的MAC地址時,則確定所述服務請求報文的出端口是聚合端口組;所述三層交換機根據(jù)為聚合端口組預定的負載分擔算法從聚合端口組中選擇一個端口作為出端口,并將所述服務請求報文通過所述選擇的出端口發(fā)送到該出端口所連接的服務器。
2、 如權(quán)利要求l所述的方法,其特征在于,所述將服務請求報文通過 所述選擇的出端口發(fā)送到該出端口所連接的服務器包括三層交換機根據(jù)所述選擇的端口從聚合端口組MAC表中查找到對應的 MAC地址,用該查找的MAC地址替換所述服務請求報文中的目的MAC地 址后,將服務請求報文通過所述選擇的出端口發(fā)送到該出端口所連接的服務 器。
3、 如權(quán)利要求l所述的方法,其特征在于,該方法進一步包括 在組成所述服務器集群的兩個以上的服務器上分別配置保存有所述三層交換機的IP地址和所述聚合端口組對應的MAC地址的ARP表;組成所述服務器集群的每個服務器接收到來自三層交換機的服務請求報文后,根據(jù)自身的ARP表向三層交換機發(fā)送源MAC地址為該服務器本身 的MAC地址、目的MAC地址為聚合端口組對應的MAC地址的服務響應 報文;所述三層交換機接收到服務響應報文后,將其源MAC地址替換為三層 交換機對外接口的MAC地址、將其目的MAC地址替換為下一跳設備的 MAC地址后轉(zhuǎn)發(fā)出去。
4、 如權(quán)利要求l所述的方法,其特征在于,該方法進一步包括 所述三層交換機檢測聚合端口組中的各端口上報的失效消息和恢復消自 如果三層交換機檢測到聚合端口組中的一端口上報的失效消息,則將該 端口從聚合端口組中刪除,如果上報失效信息的是主端口 ,則還進一步重新 為聚合端口組指定主端口 ,并相應更新ARP表和聚合端口組MAC表;如果三層交換機檢測到被刪除的端口上報恢復消息,則將該上報恢復消 息的端口重新加入到聚合端口組中,相應更新ARP表和聚合端口組MAC 表。
5、 如權(quán)利要求1所述的方法,其特征在于,所述三層交換機將服務器 IP地址和主端口所連接服務器的MAC地址對應保存到地址解析協(xié)議ARP 表中,將聚合端口組中的每個端口以及每個端口所連接的服務器的MAC地 址對應保存到聚合端口組MAC表中包括每個服務器都向三層交換機發(fā)送ARP請求報文;三層交換機從聚合端口組中的各端口收到ARP請求4艮文后,根據(jù)主端 口收到的ARP請求報文將服務器的IP地址和主端口所連接服務器的MAC 地址對應保存到ARP表中,根據(jù)聚合端口組中的每個端口收到的ARP請求 報文將每個端口以及每個端口所連接的服務器的MAC地址對應保存到聚合 端口組MAC表中。
6、 一種三層交換機,其特征在于,該三層交換機作為服務器集群的網(wǎng)關(guān)連接組成所述服務器集群的兩個以上的服務器,且所述兩個以上的服務器具有相同的IP地址和互不相同的MAC地址,該三層交換機包括聚合端口組,該聚合端口組中的各端口——對應地連接組成所述服務器 集群的兩個以上的服務器,且該聚合端口組中的一個指定端口為主端口 ;存儲模塊,用于存儲ARP表和聚合端口組MAC表,所述ARP表中對 應保存有服務器IP地址和主端口所連接服務器的MAC地址,所述聚合端口 組MAC表中對應保存有聚合端口組中的每個端口以及每個端口所連接的服 務器的MAC地址;報文轉(zhuǎn)發(fā)模塊,用于在收到服務請求報文時,根據(jù)服務請求報文的目的 IP地址查找ARP表,當從ARP表中查找到對應的MAC地址是主端口的 MAC地址,確定所述服務請求報文的出端口是聚合端口組,則向聚合模塊 發(fā)送查詢請求,將聚合模塊返回的聚合端口組中的一個端口作為出端口,將 所述服務請求報文通過所述出端口發(fā)送到該出端口所連接的服務器;聚合模塊,用于在收到報文轉(zhuǎn)發(fā)模塊發(fā)送的查詢請求后,根據(jù)為聚合端 口組預定的負載分擔算法從聚合端口組中選擇一個端口返回給報文轉(zhuǎn)發(fā)模 塊。
7、 如權(quán)利要求6所述的三層交換機,其特征在于, 所述報文轉(zhuǎn)發(fā)模塊,在將聚合模塊返回的聚合端口組中的一個端口作為出端口后,根據(jù)所述出端口從聚合端口組MAC表中查找到對應的MAC地 址,用該查找的MAC地址替換所述服務請求報文中的目的MAC地址,然 后再將所述服務請求報文通過所述出端口發(fā)送到該出端口所連接的服務器。
8、 如權(quán)利要求6所述的三層交換機,其特征在于, 所述報文轉(zhuǎn)發(fā)模塊,進一步用于從聚合端口組中的端口接收到來自服務器的服務響應報文時,將其源MAC地址替換為三層交換機對外接口的MAC 地址、將目的MAC地址替換為下一跳設備的MAC地址后轉(zhuǎn)發(fā)出去。
9、 如權(quán)利要求6所述的三層交換機,其特征在于,該三層交換機進一 步包括健康檢測模塊,用于測聚合端口組中的各端口上報的失效消息和恢復消息;如果檢測到聚合端口組中的一端口上報的失效消息,則將該端口從 聚合端口組中刪除,如果上報失效信息的是主端口 ,則還進一步重新為聚合 端口組指定主端口,并相應更新ARP表和聚合端口組MAC表;如果三層交 換機檢測到被刪除的端口上報恢復消息,則將該上報恢復消息的端口重新加 入到聚合端口組中,相應更新ARP表和聚合端口組MAC表。
10、如權(quán)利要求6所述的三層交換機,其特征在于,該三層交換機還包 括ARP模塊,所述聚合模塊,進一步用于從聚合端口組中的端口接收來自每個服務器 的ARP請求報文,根據(jù)每個端口收到的ARP請求報文將每個端口以及每個 端口所連接的服務器的MAC地址對應保存到聚合端口組MAC表中,并將 來自主端口的ARP請求報文發(fā)送給ARP模塊;所述ARP模塊,用于根據(jù)來自主端口的ARP請求報文將服務器的IP 地址和主端口所連接服務器的MAC地址對應保存到ARP表中。
全文摘要
本發(fā)明公開了一種實現(xiàn)服務器負載均衡的方法,包括將三層交換機上的連接具有相同IP地址和不同MAC地址的多個服務器的端口組成聚合端口組;三層交換機接收到目的IP地址為服務器IP地址的服務請求報文時,根據(jù)服務器IP地址從ARP表中查找到主端口的MAC地址,確定所述服務請求報文的出端口為聚合端口組,則從聚合端口組中選擇一個端口作為出端口,將服務請求報文通過該出端口發(fā)送出去。本發(fā)明還公開了一種三層交換機。本發(fā)明的技術(shù)方案,使得能夠在成本低廉的三層接入交換機上實現(xiàn)服務器負載均衡。
文檔編號H04L12/56GK101404619SQ200810226830
公開日2009年4月8日 申請日期2008年11月17日 優(yōu)先權(quán)日2008年11月17日
發(fā)明者蔚 李 申請人:杭州華三通信技術(shù)有限公司