網關備援與負載分擔
讀這篇文檔之前,請讀者先理清有關的專業術語和名詞,尤其其中的同義詞和并列詞。
還要知道,人們之是以把計算機中的一些非常簡單的邏輯複雜化,形成一個難以了解的協定,是由于“電腦實在沒人腦聰明”,cpu對邏輯語言的計算能力實在有限,是以隻能把一個簡單邏輯拆分成更多更簡單的邏輯讓計算機識别。
網關的概念在企業網中有多種含義,本章主要探索交換層(本地接入網)的網關。
首跳備援性協定FHRP(first
hop redundancy protocols)包括:
1.熱備份路由器協定HSRP(hot
standby router protocol)。
2.虛拟路由備援協定VRRP(virtual
router redundancy protocol)。
3.網關負載均衡協定GLBP(gateway
load balancing protocol)。
它們是工作在接入層與彙聚層(交換與路由)之間的網關路由器或多層交換機上的網關協定。其中HSRP和VRRP的功能機制基本相同但隻能實作網關備份,GLBP既能備份網關又能均衡負載(充分利用資源)。
先給大家普及一下需要用到的底層知識:
一般來說,一個網段就是一個子網(即使某一主類網沒劃分子網,它也可以看成是一子網網段)。一般一個子網内有以下裝置:若幹個主機,若幹個二層交換機,若幹個網關(它們是分層的,即交換機連接配接主機和網關)。可以看出,一個子網網絡屬于交換層,在子網中流量是通過mac位址來“尋路”的(子網内的主機之間通訊前通過發送arp廣播來擷取對方mac),其中交換機幫助轉發流量。當主機想要與子網外的PC或伺服器通訊,它不需要知道對方的mac,隻要知道該子網的網關mac(由arp獲得)就行,将資訊流量發給網關,剩下的事情交給網關解決就行(路由到其他子網)。是以一台主機剛開始需要知道自身ip位址,對方電腦ip位址以及網關ip位址這三個基本資訊才能正常通訊。
然後暫且先附上一張關于三個協定的表格(友善之後傳回檢視):
HSRP
VRRP(模仿HSRP)
GLBP
思科私有RFC2281
IEEE标準RFC3768
思科私有
UDP1985
IP協定112(端口号)
UDP3222
224.0.0.2
224.0.0.18(通告位址)
224.0.0.102
每組通常2台網關
最多16個網關
最多4個網關
最多16組?
最多255組(每個路由器)
最多1024組
0000.0c07.acXX
0000.5e00.01XX(虛拟mac)
0007.b4XX.XXYY
1個活躍和備份(其餘候選)
1個主用,若幹備用
1個AVG若幹AVF
一個ip一個mac
一個ip多個mac
虛拟ip與接口ip不同
虛拟ip可與接口ip相同
虛拟ip與真接口ip不同
可追蹤接口或對象
隻可追蹤對象
預設hello
3s,hold
10s
1s,有skew時間
明文認證
明/密文認證
好了,先來聊聊HSRP和VRRP。理想化的情況下子網中有一台路由器充當網關,它的一個接口的ip充當網關ip。為了防止單點故障,子網中又添加了幾個備用網關(處于閑置狀态)。為了使故障發生後其中一個備用網關能夠自動切換成主用(活躍)網關,才誕生了這兩個網關備援協定。
因為站在子網内的主機的角度,子網内隻能存在一個網關,不然流量就不知道該發向哪一個網關了(不知為什麼,交換層不能自動負載均衡,必須選出唯一的路徑,而路由表中隻要AD和metric相同就會出現負載均衡)(優先級相同就比較接口ip)。是以這個備援機制的基本思想是:将多個路由器組合成一個虛拟網關(一個備份組),它有一個虛拟ip和一個虛拟mac。子網内的主機們隻知道有一個(虛拟)網關的存在,并不知情真實網關的情況。而所有通往子網外的流量隻經過這個組中的某一個路由器(競選選出)。其餘備份網關處于不工作狀态但一直監聽active/master的工作狀态,在必要時刻替代它的角色。
HSRP與VRRP的三個重要差別:
一:HSRP組内通常隻放2台網關,一台active一台standby,若不止兩台,再添入的網關都保持在初始狀态(可以給備份做備份,但客戶難以接受);VRRP中卻有一台master和若幹個backup。
二:備份組正常運作時active與standby之間預設間隔3秒互相發送hello包(包含:active資訊,standby資訊,自身資訊,認證密碼,時間參數等資訊)(有點類似BPDU)(多點傳播位址映射mac位址)以維護組内關系,而master預設間隔一秒向外發送hello包,backup隻接收不發送。
三:standby的預設holdtime是3*3+1=10秒(可手動改),backup的預設holdtime=3*1+(skew)秒,其中skew=(256-priority)/256(取值範圍0到1,與優先級反比)。!!注意,此差別與前兩個差別有重要聯系,以為HSRP組中隻有一台standby,holdtime到期後自覺上任,但VRRP組中有多個backup,holdtime到期後并不要競選出某一個去上任,因為優先級最大的backup的holdtime最小!
此外HSRP預設關閉搶占而VRRP預設開啟,所謂的的搶占機制就是確定備份組中優先級最大的網關成為active/master(前提是網關連接配接子網的接口沒有出錯,即可以向其他網關發送hello包)。在非搶占情況下備份網關收到active/master的hello包中更大的優先級也不會去搶占它。給一副拓撲圖:

該圖也适用于glbp。接下來實作網關備份的具體過程:
若這些PC的ip都在同一個子網内,那給這個子網配置設定一個網關備份組(組編号)将若幹路由器(不同協定有數量限制)加入到這個組中給這個組配置設定唯一的一個虛拟ip(即該子網内随便一個主機号),系統給這個組自動配置設定一個虛拟mac(注:虛拟ip可以與路由器接口真實ip在同一子網,也可以是接口真實ip所在子網下再劃分的子網的主機号~)。将每台PC的網關ip都手動設定成這個虛拟ip(因為在交換層“尋路”都是通過mac位址,PC解析這個ip時,備份組回複給它虛拟mac值,同時備份組告訴交換機這個虛拟mac指向active/master)(!!!二層交換機“尋路”依靠mac位址表中的三個條目:PC的mac,網關接口mac,鄰居交換機接口mac),由此PC向外通訊都将資料幀中目的mac字段值寫為該虛拟mac。
Active/master有兩種情況被取代。第一種情況:因備份網關的holdtime到期後接任;第二種情況:Active/master所追蹤的對象“挂了”導緻自降優先級至小于某台開啟了搶占的備份機,于是被搶占。
當然,這幅實體拓撲圖可以按組劃分為多幅邏輯圖,即有多個子網多個備份組,一台PC隻能加入一個組但一個網關可以加入到多個組中。!注:若網關是多層交換機則可以使用SVI(switch
virtual interface),為每個vlan安排一個備份組,在SVI下設定ip。
!!補充實驗:
問題描述:子網内隻有一個多層交換機充當網關,要實作網關的鍊路備援,即使用EC将連接配接多層交換機的兩個接口捆綁在一起(路由器貌似做不到)。拓撲圖:

這是用Packet
Tracer模拟實驗的截圖,可以看出,子網中隻有vlan1但出現了“環路”,其實是因為EC逃避了stp計算(注:EC隻能在交換網中玩兒)。
GLBP。GLBP除了提供備援還可以讓組中所有成員共同承擔流量的轉發。它的具體思想如下:
前期與HSRP一樣,将多個實體網關加入到一個備份組中。組中的成員都叫AVF(active
virtual forwarder)(顧名思義,所有AVF都負責轉發資料),其中某一個AVF還叫做AVG(active
virtual gateway)(競選而來)。該組有一個虛拟ip但有多個虛拟mac位址:AVG給每個AVF配置設定一個虛拟mac。當備份組對應的子網内的某個PC解析虛拟ip時,AVG傳回其中的一個虛拟mac。
這裡有一個簡單易懂的循環負載分擔算法:當收到一個個PC發來的arp時,AVG在自己的虛拟mac清單中按順序循環的分發這些位址給PC,以保證每個AVF所負責的PC數量相同(或相差不超過一台)。
其實用HSRP或VRRP也能實作負載分擔,方法是:将多個實體網關共同加入到多個組,每個組虛拟ip都屬于同一個子網,實體網關在不同組有不同角色,為每個PC配置設定不同的網關ip(其實一個子網可以有多個網關,關鍵看給PC設定的網關ip,但一個PC隻能有一個對應網關)。但這個方法配置工作量很大,是以才出現了GLBP。
<b>!!!補充知識:</b>
<b>【1】 </b>
FHRP的配置都是在接口下(除了多層交換機的svi)。網關是以知道,這個接口連接配接的是該接口ip所在的子網。
<b>【2】 </b>
FHRP的認證機制是為了防止惡意網關加入到某個備份組中。和動态路由協定的認證原理相同,都是互相hello時自動進行的。
<b>【3】 </b>
當某vlan生成樹的根橋與該vlan熱備份組的active/master不是同一台多層交換機時,可能會産生次優路徑(同理于沒有備份組隻有唯一網關的子網)。
<b>【4】 </b>
資料流量從網際網路回來的時候,可能從active/master走也可能從備份網關走(假如它們都将子網宣告進路由協定)。
以上就是FHRP機制原理詳解。若發現遺漏或錯誤之處,還請自行糾正。欲求更多資訊請登入思科官網查詢。(www.cisco.com)