(轉)虛擬路由器冗余協議【原理篇】VRRP詳解
原文:http://blog.51cto.com/zhaoyuqiang/1166840
為什麽要使用VRRP技術
我們知道,為了實現不同子網之間的設備通信,需要配置路由。目前常用的指定路由方法有兩種:
第一種是通過路由協議 :RIP、OSPF動態學習
第二種是通過靜態路由: 對終端PC機配置靜態路由。
這兩種路由各有各的優缺點:
第一種路由可以自動尋找最優路徑,鄰居路由也可以通過學習來獲得路由表,但是動態路由占用線路帶寬和CPU處理時間。
第二種路由是不需要CPU處理時間同樣也不占用線路帶寬,但是這個路由需要對終端的PC機進行配置網關來實現,工作量是比較大的。
對於以上的兩種路由在現在來說都是廣泛應用的。
我們現在只來分析靜態路由的缺點,因為VRRP技術就是使用在靜態路由上,而不是動態路由上。
對於靜態路由來說,對終端PC機配置默認網關。如果作為默認網關的路由器出現故障,所有使用該網關為下一跳的主機的通信是要中斷的。如下圖所示;
在上圖中,主機A—D都配置了一個默認的網關:10.1.1.1,網關路由的下一跳指向主機所在網段內的一個路由器RouterA,RouterA將報文發送到外網,但是如果現在RouterA壞掉了,那麽所有的主機將無法與其他網段進行通信了。
為了解決以上的問題,我們可以加一個路由器RouterB,如下圖所示:
當RouterA壞掉時,所有的PC機將網關切換到RouterB
VRRP簡介(轉發機制)
1. VRRP(Virtual Router Redundancy Protocol,虛擬路由器冗余協議)將可以承擔網關功能的路由器加入到備份組中,形成一臺虛擬路由器,由VRRP的選舉機制決定哪臺路由器承擔轉發任務,局域網內的主機只需將虛擬路由器配置為缺省網關
2. VRRP是一種容錯協議,在提高可靠性的同時,簡化了主機的配置。在具有多播或廣播能力的局域網(如以太網)中,借助VRRP 能在某臺設備出現故障時仍然提供高可靠的缺省鏈路,有效避免單一鏈路發生故障後網絡中斷的問題,而無需修改動態路由協議、路由發現協議等配置信息
3. VRRP協議的實現有VRRPv2和VRRPv3兩個版本,VRRPv2於IPv4,VRRPv3基 於IPv6
路由器: 所有運行VRRP協議的路由器就叫做VRRP路由器
5. VRRP備份組: 多臺路由器被分到一個組中,在這個組中選舉出一臺主路由器,其他作為備份路由器。平常時候都是主路由器一個工作,備份路由器空閑,當主路由器故障後,從多臺備份路由器中選舉出一臺替代故障的主路由器工作。這一組中的路由器構成了一個備份組。
如下圖所示: 有兩個路由器,兩個網關,從兩個路由器中選舉出一個路由器作為主路由器,其他的都是備份路由器,主路由器負責發轉發數據報,而備份路由器處於空閑狀態,當主路由器出現故障後,備份路由器會成為主路由器,代替主路由器實現轉發功能。
6. 虛擬路由器:虛擬路由器是VRRP備份組中所有路由器的集合,它是一個邏輯概念,並不是正真存在的。從備份組外面看備份組中的路由器,感覺組中的所有路由器就像一個 一樣,你可以理解為 在一個組中: 主路由器+所有備份路由器=虛擬路由器。虛擬路由器有一個虛擬的IP地址和MAC地址。如果虛擬IP和備份組中的某臺路由器的IP相同的話,那麽這臺路由器稱為IP地址擁有者,並且作為備份組中的主路由器。
如下圖所示: RA、RB和RC都是VRRP路由器,他們構成了一個VRRP備份組,RA為主路由器,RB和RC為備份路由器,這三臺路由器從外界來看就像一臺一樣,這樣構成一個虛擬路由器Router Group,虛擬路由器有一個虛擬的IP地址為10.1.1.1(RA主路由器的IP)。RA是IP地址擁有者,也是主路由器。
7. 虛擬IP地址和MAC地址:VRRP組(備份組)中的虛擬路由器對外表現為唯一的虛擬MAC地址,地址格式為00-00-5E-00-01-【VRID】,VRID為VRRP組的編號,範圍是0~255.
上圖中,三臺路由器在一個組中,這個組可以起一個0~255之間的編號。
註意:1.虛擬路由器具有IP地址。局域網內的主機僅需要知道這個虛擬路由器的IP地址, 並將其設置為缺省路由的下一跳地址 2. 虛擬路由器的 IP 地址可以是備份組所在網段中未被分配的IP 地址,也可以和備份組內的某個路由器的接口IP 地址相同 3.接口 IP 地址與虛擬IP 地址相同的路由器被稱為“IP 地址擁有者” 在同一個 VRRP 備份組中,只允許配置一個IP 地址擁有者 |
VRRP狀態
VRRP路由器在運行過程中有三種狀態:
狀態: 系統啟動後就進入Initialize,此狀態下路由器不對VRRP報文做任何處
處理,可以理解為初始化
2. Master狀態: 路由器會發送VRRP通告,發送免費ARP報文。
3. Backup狀態: 接受VRRP通告。
一般主路由器處於Master狀態,備份路由器處於Backup狀態。
VRRP選舉機制
VRRP使用選舉機制來確定路由器的狀態,運行VRRP的一組路由器對外構成了一個虛擬路由器,其中一臺路由器處於Master狀態,其他處於Backup狀態。所以主路由器又叫做Master路由器,備份路由器又叫做Backup路由器。
優先級選舉:
1.VRRP組中IP擁有者。如果虛擬IP地址與VRRP組中的某臺VRRP路由器IP地址相同,則此路由器為IP地址擁有者,這臺路由器將被定位主路由器。
2.比較優先級。如果沒有IP地址擁有者,則比較路由器的優先級,優先級的範圍是0~255,大的作為主路由器
3.比較IP地址。在沒有Ip地址擁有者和優先級相同的情況下,IP地址大的作為主路由器。
如下圖所示: 虛擬IP為10.1.1.254,在VRRP組中沒有IP地址擁有者,則比較優先級,很明顯RB和RA的優先級要大於RC,則比較RA和RB的IP地址,RB的IP地址大。所以RB為組中的主路由器。
VRRP定時器
① VRRP通告報文時間間隔定時器
1> VRRP備份組中的Master路由器會定時發送VRRP通告報文,通知備份組內的
路由器自己工作正常
2> 用戶可以通過設置VRRP定時器來調整Master路由器發送VRRP 通告報文的
時間間隔
3> 如果Backup路由器在等待了3個間隔時間後,依然沒有收到VRRP 通告報文,則認為自己是Master路由器,並對外發送VRRP通告報文,重新進行Master路由器的選舉
② VRRP搶占延遲時間定時器
1> 為了避免備份組內的成員頻繁進行主備狀態轉換,讓Backup路由器有足夠的
時間搜集必要的信息(如路由信息),Backup 路由器接收到優先級低於本地優 先級的通告報文後,不會立即搶占成為Master
2> 而是等待一定時間——搶占延遲時間後,才會對外發送VRRP通告報文取代原 來的Master路由器
VRRP報文格式
VRRP只使用VRRP通告報文。
VRRP通告報文使用Ip組播數據包進行封裝,組播地址為223.0.0.18,IANA給其分配的協議號為112。
VRRP通告報文的TTL值必須是255,如果VRRP路由器接受到TTL值不為255的VRRP通告報文,必須丟棄。
VRRP組中的主路由器會定期發送通告報文,備份路由器接受,他們通過這種方式來交流選舉
VRRP工作過程總結:
1. 路由器使能VRRP 功能後,會根據優先級確定自己在備份組中的角色。優先級高的路由器成為Master 路由器,優先級低的成為Backup 路由器。Master 路由器定期發送VRRP
通告報文,通知備份組內的其他設備自己工作正常;Backup 路由器則啟動定時器等待通告報文的到來。
2. 在搶占方式下,當Backup 路由器收到VRRP 通告報文後,會將自己的優先級與通告報 文中的優先級進行比較。如果大於通告報文中的優先級,則成為Master 路由器;否則將保持Backup狀態
3. 在非搶占方式下,只要Master 路由器沒有出現故障,備份組中的路由器始終保持Master 或Backup 狀態,Backup 路由器即使隨後被配置了更高的優先級也不會成為Master 路由器
4. 如果Backup 路由器的定時器超時後仍未收到Master 路由器發送來的VRRP 通告報文,則認為Master 路由器已經無法正常工作,此時Backup 路由器會認為自己是Master 路由器,並對外發送VRRP 通告報文。備份組內的路由器根據優先級選舉出Master 路由 器,承擔報文的轉發功能
VRRP基本配置
配置VRRP組
要啟用VRRP,最基本的配置就是要創建VRRP組,並為VRRP組配置虛擬IP地址
Vrrp group-number ip ip-address [secondary]
group-number 為VRRP組的編號。即VRID 範圍1~255,
ip-address 虛擬IP地址。
Secondary 輔助IP地址
需要在主路由器和備份路由器上配置
配置VRRP優先級
如果希望指定某臺路由器稱為主路由器,可以手工調整其優先級
Vrrp group-number priority number
Group-number VRRP組號 VIRD
Priority 表示優先級
Number 表示優先級 範圍,0~255,默認為100,但是0被保留為特殊用途,255表示IP地址擁有者。
優先級的配置在沒有IP地址擁有者的情況下。想讓哪臺路由器成為主路由器就在哪臺路由器上配置
配置VRRP接口跟蹤
如上圖所示:RA為主路由器,RB為備份路由器,但是當RA上的接口S0發生故障時,RA依然從接口E0發送通告報文,聲明自己為主路由器,但是RA實際上已經不能進行轉發了。也就是說路由器網路中不能判定路由器接口是否發生了故障。
VRRP接口跟蹤機制就是檢測接口故障的一種機制。配置了接口跟蹤機制的路由器,當自己的接口發生故障時會將自己的路由器優先級降低,從而使自己從主路由器變為備份路由器,然後原來的備份路由器此時將成為主路由器。
Vrrp group-nunmber track interface [priority-decrement]
priority-decrement為降低的優先級數
註意: priority-decrement是降低了多少而不是降低到多少,比如priority-decrement為30,那麽此路由器的優先級在原來基礎上降低30.
配置VRRP搶占模式
搶占模式: 指當原來的路由器從故障中回復並接入到網絡層後,配置了VRRP搶占模式的路由器將奪回原來屬於自己的角色(主路由器),如果沒有配置,回復之後將保持備份路由器的狀態。
推薦使用啟用搶占模式
vrrp group-number preempt {delay [Delay-time] }
Delay 取值範圍為1~255之間,如果不配置delay時間,那麽其默認值為0秒。
delay-time 為延遲搶占的時間即從該路由器發現自己的優先級大於MASTER的優先級開始 經過delay-time這樣長的一段時間之後才允許搶占。
在主路由器中配置該命令
配置VRRP定時器
VRRP定時器可以修改通告報文的發送時間
vrrp group-number timers advertise vrrp-advertise-interval
adver_interval為設置定時器adver_timer的時間間隔。MASTER每隔這樣一個時間間隔,就會發送一個advertisement報文以通知組內其他路由器自己工作正常,
vrrp-advertise-interval的取值範圍為0~254。
在主路由器上配置
VRRP
配置此命令的路由器會學習發送通告報文時間,進而計算出失效間隔,否則默認3s,
這條命令對於上面的配置VRRP定時器,在主路由器中配置了發送時間間隔,那麽在備份路由器上就需要配置定時學習功能來計算失效間隔,因為失效間隔是發送時間的3倍
vrrp group-number times learn
VRRP負載均衡
在一組VRRP組中,主路由器承擔數據轉發任務的同時,備份路由器的鏈路將處於空閑狀態,這必然造成了帶寬資源的浪費。為了避免這種浪費,使用VRRP負載均衡。
VRRP負載均衡是通過實現將路由器加入到多個VRRP組實現的,使VRRP路由器在不同的組中擔任不同的角色。
如下圖所示:RA為組35的主路由器,同時又是組36的備份路由器
RB為組36的主路由器,同時又是組35的備份路由器。
在正常狀態下,PC1、PC2走RA,PC3和PC4走RB,但是兩個路由器一旦出現故障,就將網關切換到備份路由器。RA和RB可以說是相輔相成的。
VRRP並不具備對流量進行監控的機制,它的負載均衡只是通過使用多個VRRP組來實現的。
版權聲明:原創作品,如需轉載,請註明出處。否則將追究法律責任
(轉)虛擬路由器冗余協議【原理篇】VRRP詳解