Cisco GLBP

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

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

這裡設定R1的F0/0,其IP為192.168.1.1,在此介面上啟動GLBP,群組為100,其Virtual IP為192.168.1.254(AVG),並設定為Preempt(搶占)模式。這代表若Active介面異常時,Standby介面會搶占為Active。GLBP預設的Priority為100。

Load-balancing的模式有Host-dependent(以Source MAC決定傳送路徑)、Round-robin(以輪流的方式傳遞封包)、Weighted(以加權的方式設定傳送的路徑)等三種。

在此例中,設定的是預設的Priority 100及Load-balancing Round-robin,由於是預設值,因此不會出現在設定中。此外,也指定mac-address,以便之後觀察。

接著介紹R2的設定,實際設定內容如下所示:

R2的設定和R1大同小異,只有調整Priority,從預設的100改為90,這樣在日後查看時較易於辨別。在GLBP中,Priority越大者越優先。在此例中,R1的F0/0 Priority為100,大於R2 F0/0的90,因此R1的F0/0是Active的介面(Interface)。

若兩者的Priority都為100,就會由IP Address較高的192.168.1.2取得Active State。同樣指定mac-address以便觀察。這邊要再特別說明,在同一個Interface上可以設定1,024個群組(Group),讀者可依自己的狀況設定多組GLBP。

設定完成後,將介面拉起(no shutdown),此時可以看到以下的log:


(R1的F0/0,其GLBP group 100的state為Active)


(R1的F0/0,其GLBP group 100的Forwarder 1狀態為Active)


(R2的F0/0,其GLBP的group 100的Forwarder 2狀態為Active)

▲圖2 在R1 show glbp f0/0的輸出。

也可以使用「show glbp f0/0」指令查看GLBP的狀態,查看其Group的State是Active或Standby?其Virtual IP Address為何?Active是誰?其Priority多少?Standby是誰?其Priority多大?Group Members有誰?其MAC Address是多少?以及得知前述的Forwarder資訊,如上頁圖2所示。

這裡再解釋一下Forwarder,若兩個介面設定GLBP,則會建立兩個Forwarder。在執行「show glbp f0/0」指令時,可以觀察其Forwarder的狀態。

以R1為例,Forwarder 1的Owner ID是R1的F0/0的MAC Address,Forwarder 2 Own ID是R2的F0/0的MAC Address,如果從R2觀察,也會有相同的結果。

同理可證,若有三個路由器(Router)設定GLBP,則會有三個Forwarder,Owner ID各自為Interface的MAC Address。Forwarder的狀態如圖3所示。

狀態為Active的Forwarder,在傳輸時會透過所屬的實體介面(Owner ID)進行傳輸。

▲圖3 從Forwarder的狀態可以看出Forwarder所屬實體介面的MAC Address。

在GLBP運作之後,雖然實體接線沒有改變,但是網路架構圖在邏輯上會有所改變,看起來會像圖4一樣。

▲圖4 GLBP運作後的網路架構圖。

接著做一些簡單的測試,以驗證GLBP是否能自動切換。首先,將R1的F0/0網路線拉掉,此時R1產生如下的log:

原先為Active的狀態改變為Init。接著,R2 F0/0會自動接手服務:


追蹤我們Featrue us

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

我知道了!