Cisco GLBP

輕鬆達成負載平衡 GLBP協定讓閘道器變聰明

2012-03-02
想要在網路中達成自動備援和負載平衡功能,部署在伺服器間應用的VRRP以及在Cisco設備常用的HSRP似乎不失為一個好方法,但是它們不是只能做到備援的效果,就是需要額外設定的部分較多。為此,本文介紹Cisco的GLBP技術來百分之百完成這兩項要求。以下將先介紹GLBP,然後以一個簡單的架構來說明GLBP並驗證其效果,然後介紹GLBP與Track機制的結合。最後用Wireshark來剖析GLBP使用哪些協定並且交換哪些資訊。

原先為Standby的狀態改變為Active。然後,再將R1 F0/0的網路線接回,可以看到Active又切回R1:

此刻,R2的State也會有所變化:

接著從LAN端製造封包。準備兩台電腦去ping VPN裡面的電腦。並且觀察R1和R2介面的封包進出狀態,其結果如圖5所示,確實有負載平衡的效果。

▲圖5 觀察R1及R2 F0/0的流量。

同時,觀察這兩台電腦學到的ARP資訊,可以看出同樣一個192.168.1.254卻有不同的MAC Address,如圖6所示。

▲圖6 兩台電腦學到不同的ARP資訊。

若仔細觀察的話,可以看出第一台電腦查詢時,192.168.1.254的硬體位址是Forwarder1的虛擬MAC Address;而第二台電腦查詢時,192.168.1.254的硬體位址是Forwarder2的虛擬MAC Address。接著,介紹GLBP Track的部分。

GLBP與Track機制結合

GLBP Track的功用是用來調整GLBP的權重(Weighting),藉以改變Forwarder的狀態,進而控制封包的流向。

在此架構中,R1使用Serail1/0連接至VPN網路。首先,設定一個Track來監控Serial1/0的狀態:

緊接著,在R1 F0/0增加以下的設定:

如此一來,在Serial1/0斷線(line-protocol down)時,就會減少其Weighting的數值,由原先的預設值100變為0(100-100=0)。最後,讓Serial1/0斷線,並觀察GLBP的狀態。

Track的狀態變為Down,接著Forwarder1從Active變為Listen。

此時,Weighting已經變為0,並且可以看到Track的狀態為Down(圖7)。

▲圖7 Weighting及Track的變化。

此時,若查看Forwarder的狀態,R1 F0/0的兩個Forwarder的狀態都會變成Listen,Active都會變成192.168.1.2,代表之後的封包傳輸都由R2的介面來處理(圖8)。

▲圖8 Forwarder的變化。

用Wireshark剖析GLBP

最後,透過Wireshark來收集GLBP的封包,以便觀察其交換時使用的協定、使用的通訊埠(Port)以及交換了那些資訊。圖9是Wirkshark所擷取的封包輸出結果。

▲圖9 透過Wireshark抓取GLBP的封包。

從這裡可以觀察出GLBP是採用Multicast的方式進行交換,使用的協定是UDP,而所用的Port是3222。若GLBP交換時會透過防火牆(Firewall),記得允許UDP Port 3222交換。接著針對GLBP的部分再查看其細節,以便和剛剛的設定互相驗證。

圖10是GLBP協定的說明,從這裡可以看出Group的資訊,在此例中為100,以及得知Owner ID的MAC Address (aa:aa:aa:aa:aa:aa)。

▲圖10 GLBP協定的擷圖。

圖11是Hello封包的說明,可以觀察VG的狀態。以R1為例,其狀態為Active,Priority的設定為預設的100。Hello封包交換的週期,在此未加變更,因此是預設的3秒(3000 ms),而最後是Virtual IP的位址192.168.1.254。

▲圖11 Hello封包的擷包。

結語

本文介紹了GLBP並說明其原理,而且用一個簡單的範例來展示其相關應用,最後驗證其運作的成效,再結合Track機制,讓GLBP更聰明更好用。讀者不妨也抽空檢視一下自己公司所使用的網路架構,是否有檢討或改善的空間,同時也嘗試著規劃或精進自己使用網路架構,讓公司的網路更智慧、更自動。


追蹤我們Featrue us

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!