詳解HSRP和VRRP的不同之處

火星人 @ 2014-03-09 , reply:0


詳解HSRP(HotStandbyRouterProtocal 熱備路由器協議)和VRRP(Virtual Router Redundancy Protocol 虛擬路由器冗餘協議)的不同之處

1.在功能上,VRRP和HSRP非常相似,但是就安全而言,VRRP對HSRP的一個主要優勢:它允許參與VRRP組的設備間建立認證機制.並且,不像HSRP那樣要求虛擬路由器不能是其中一個路由器的ip地址,但是VRRP允許這種情況發生(如果”擁有”虛擬路由器地址的路由器被建立並且正在運行,那麼應該總是由這個虛擬路由器管理—等價於HSRP中的活動路由器),但是為了確保萬一失效發生的時候終端主機不必重新學習MAC地址,它指定使用的MAC地址00-00-5e-00-01-VRID,這裡的VRID是虛擬路由器的ID(等價於一個HSRP的組標識符).   2.另外一個不同是VRRP不使用HSRP中的政變或者一個等價消息,VRRP的狀態機比HSRP的要簡單,HSRP有6個狀態(初始(Initial)狀態,學習(Learn)狀態,監聽(Listen)狀態,對話(Speak)狀態,備份(Standby)狀態,活動(Active)狀態)和8個事件, VRRP只有3個狀態(初始狀態(Initialize)、主狀態(Master)、備份狀態(Backup和5個事件.))   3. HSRP有三種報文,而且有三種狀態可以發送報文呼叫(Hello報文 告辭(Resign)報文 突變(Coup)報文)   VRRP有一種報文   VRRP廣播報文:由主路由器定時發出來通告它的存在,使用這些報文可以檢測虛擬路由器各種參數,還可以用於主路由器的選舉.   4. HSRP將報文承載在UDP報文上,而VRRP承載在TCP報文上(HSRP 使用UDP 1985埠,向組播地址224.0.0.2 發送hello消息.)

  5.VRRP的安全:VRRP協議包括三種主要的認證方式:無認證,簡單的明文密碼和使用 MD5 HMAC ip認證的強認證.   強認證方法使用IP認證頭(AH)協議.AH是與用在IPSEC中相同的協議,AH為認證VRRP分組中的內容和分組頭提供了一個方法. MD5 HMAC 的使用表明使用一個共享的密鑰用於產生hash值.路由器發送一個VRRP分組產生MD5 hash值,並將它置於要發送的通告中,在接收時,接受方使用相同的密鑰和MD5值,重新計算分組內容和分組頭的hash值,如果結果相同,這個消息就是真正來自於一個可信賴的主機,如果不相同,它丟棄,這可以防止攻擊者通過訪問LAN而發出能影響選擇過程的通告消息或者其他一些方法中斷網路.   另外,VRRP包括一個保護VRRP分組不會被另外一個遠程網路添加內容的機制(設置TTL值=255,並在接受時檢查),這限制了可以進行本地攻擊的大部分缺陷.而另一方面,HSRP在它的消息中使用的TTL值是1.   6.VRRP的崩潰間隔時間:3*通告間隔 時滯時間(skew-time) HSRP的工作原理  在整個電力局企業網內,虛網之間的交換(三層交換)是通過7609路由交換機(多層交換特徵卡MSFC2)和5500交換機(路由交換模塊RSM)來實現的.兩台交換機通過Cisco的熱備路由器協議(HSRP)可以實現路由設備之間的冗餘,即三層交換的冗餘.HSRP協議是針對於IP協議,參與HSRP協議的路由設備為IP終端提供一個虛擬IP地址,且IPX等其它網路協議與HSRP兼容.
圖:熱備路由協議(HSRP)示意圖


HSRP的工作原理
HSRP協議利用一個優先順序方案來決定哪個配置了HSRP協議的路由器成為默認的主動路由器.如果一個路由器的優先順序設置得比所有其他路由器的優先順序高,則該路由器成為主動路由器.路由器的預設優先順序是100,如果只設置一個路由器的優先順序高於100,則該路由器將成為主動路由器.
通過在設置了HSRP協議的路由器之間廣播HSRP優先順序,HSRP協議選出當前的主動路由器.當在預先設定的一段(Hold Time 預設為10秒)時間內主動路由器不能發送hello消息,或者說HSRP檢測不到主動路由器的hello消息時,將認為主動路由器有故障,這時HSRP會選擇優先順序最高的備用路由器變為主動路由器,同時將按HSRP優先順序在配置了HSRP的路由器中再選擇一台路由器作為新的備用路由器.


所有參與HSRP的路由器共享一個虛的IP地址,網路中的工作站將預設網關指向該虛地址,被選出的主動路由器負責轉發由工作站發到虛地址的數據包.
Hello消息是基於UDP的信息包,配置了HSRP的路由器將會周期性的廣播Hello消息包,並利用Hello消息包來選擇主動路由器和備用路由器及判斷路由器是否失效.
如圖所示,PC將數據包發送到設置的預設網關(配置HSRP路由器所共享的虛擬IP地址),假設圖中的7609設置了較高的優先順序,7609將被選為主動路由器,並負責轉發網路中所有由PC發送到其網關(HSRP地址)的數據包.當7609發生故障時,7609就不會廣播Hello信息包,HSRP如果經過Hold Time還未收到來自7609的Hello信息包,將認為7609實效,這時HSRP將選擇備用的5500作為主動路由器,並由5500來負責轉發網路中所有由PC發送到其網關(HSRP地址)的數據包.而當7609恢復后,將繼續發送Hello信息包,HSRP檢測到其發送的Hello信息包具有高的優先順序,則會重新將7609選為主動路由器,5500則仍將恢復成為備用路由器.
配置了HSRP協議的路由器交換以下三種多點廣播消息:
●Hello──hello消息通知其他路由器,發送路由器的HSRP優先順序和狀態信息,HSRP路由器默認為每3秒鐘發送一個hello消息;
●Coup──當一個備用路由器變為一個主動路由器時發送一個coup消息;
●Resign──當主動路由器要宕機或者當有優先順序更高的路由器發送hello消息時,主動路由器發送一個resign消息.
在任一時刻,配置了HSRP協議的路由器處於由以下六種狀態:
●Initial ——表示路由器的HSRP還未運行,一般在配置第一台HSRP路由器時會顯示此狀態;
●Learn——表示配置HSRP的路由器還未知道虛地址,並一直監聽來自主動路由器的消息包;


●Listening──表示配置HSRP的路由器還已知道虛地址,路由器還在監聽hello消息;
●Speaking and listening──路由器正在發送和監聽hello消息;
●Standby──處於被用狀態,當主動路由器失效時路由器可被選為主動路由器,接管包轉發功能;
●Active──路由器執行包轉發功能.
Cisco HSRP(雙機熱備份)的配置 Cisco的熱備份路由協議(HSRP)可以在工作站A的確省網關失效時提供一個備份路由器, HSRP可以創建一個具有虛擬MAC地址和虛擬IP地址的虛擬路由器. 假設有兩個路由器Bluestudy A和Bluestudy B,通過兩路指向路由器Bluestudy C: 對於Bluestudy A,假設E0/0的IP地址為192.168.1.1/24對應內部網路是192.168.1.0/24 S0/0的IP地址為192.168.2.1/24 對應外部網路是192.168.2.0/24. 對於Bluestudy B,假設E0/0的IP地址為192.169.1.2/24 對應內部網路是192.168.1.0/24 S0/0的IP地址為192.168.3.1/24 對應外部網路是192.168.3.0/24. 虛擬IP地址為192.168.1.3/24 對於Bluestudy C,因與本實驗無太大聯繫,暫時不做說明. 下面給出兩隻路由器的配置,其中將Bluestudy A作為主路由器,Bluestudy B作為備份路由器.其中給出Bluestudy A的優先順序為120,而Bluestudy B採用默認優先順序100,這樣就可以使Bluestudy A成為主路由器. Bluestudy A: Interface ethernet0/0 Ip address 192.168.1.1 255.255.255.0 No ip redirects Standby 1 priority 120 Standby 1 preempt Standby 1 ip 192.168.1.3 ! interface serial0/0 ip address 192.168.2.1 255.255.255.0 no shut ! router igrp 100 network 192.168.1.0 network 192.168.2.0   Bluestudy B: Interface ethernet0/0 Ip address 192.168.1.2 255.255.255.0 Standby 1 preempt Standby 1 ip 192.168.1.3 ! interface serial0/0 ip address 192.168.3.1 255.255.255.0 no shut ! router igrp 100 network 192.168.1.0 network 192.168.3.0 只要將相應的下連主機的網關設成 192.168.1.3就可以了. 在Linux下的(VRRP)虛擬路由冗餘協議介紹 這篇文章描述的是如何在

Linux下實現VRRP (Virtual Router Redundancy Protocol 虛擬路由器冗餘協議).是我本人在學習VRRP過程的一個小總結,並結合了一些其他資料,對VRRP的一些基本概念、原理及Linux如何實現VRRP的一個介紹,
  
  包括以下幾個部分:
  1, VRRP介紹
  2, Linux下的VRRP組件
  3, 安裝Keepalived
  
  1,VRRP介紹
  
  我們在建立一個網路時,為了保證網路穩定不間斷的運行,經常採用一些動態的路由協議,如OSPF、RIP等,這些路由協議可以自動的繞開很多的網路故障,如:路由器DOWN機等.但很多時候我們可能無法使用這些高端的路由協議:
  
  (1), 有時候是用戶端,要配置OSPF、RIP等協議有上游ISP供應商的支持,但很多ISP供應商是不提供這種服務的,他們只提供靜態路由.(有時候使用OSPF、RIP等協議的目的是為了進行鏈路和路由的備份,VRRP可以完全替代他們這部分工作)
  
  (2), 我們有兩條以上的Internet線路,需要對他們進行負載均衡和路由線路、路由器的備份(VRRP也主要是為這種需求設計的)
  
  為了能夠保證網路的不間斷、穩定的運行,VRRP是一個最好的選擇,VRRP是Virtual Router Redundancy Protocol 虛擬路由器冗餘協議的縮寫,在RFC2338中有比較詳細的描述.
  
  2,VRRP概念
  
  VRRP中有很多的概念,我們結合下圖對他們進行一一的介紹:
  

 
  (1), 圖中路由器RA是虛擬路由器VRID 1的主路由器,負責掌管“內部網1”的網關;並且是虛擬路由器VRID 2的備份路由器,當VRID 2的主路由器RB不可用時,接管RB的工作.


  
  (2), 路由器RB是虛擬路由器VRID 2的主路由器,負責掌管“內部網2”的網關;並且是虛擬路由器VRID 1的備份路由器,當VRID 1的主路由器RA不可用時,接管RA的工作.
  
  3,VRRP術語:
  
  (1), Virtual Router:虛擬路由器.在我們這個圖中,是由實際路由器RA和RB使用VRRP協議組成的一個路由器鏡相.
  
  (2), Vitual Router ID:簡稱為VRID,是網路中Virtual Router的唯一的身份標示,是一個數字.
  
  (3), VRRP Instance:VRRP實體.VRRP Instance可以理解為是一個程序,運行在一台實際的路由器上,他負責掌管一些VRRP協議需要的一些信息.如:說明這台實際的路由器是主路由器還是備份路由器、這台路由器所屬的VRID等.
  
  (4), Virtual Router IP:一個Virtual Router具有一個IP,在正常情況下,有這個Vritual Router中的主路由器掌管,當主路由器出現故障時由這個Virtual Router中的備份路由器掌管.
  
  (5), Master:也就是主路由器.一個實際路由器是否是主路由器,一般在自己的VRRP Instance中作出描述.
  
  (6), Backup:備份路由器.一個實際路由器是否是備份路由器,一般在自己的VRRP Instance中作出描述.
  
  (7), Priority:優先權.在VRRP Instance中將對每個實際的路由器定義一個優先權,他是一個數字從1到254(0和254在RFC定義中被保留),當主路由器不可用時,備份路由器將根據自己的優先權來決定由誰接管主路由器的工作.數字越大,權值越大.
  
  (8), Owner:Virtual Router IP的掌管者.
  
  (9), Authentication:驗證.處在同一個VRID中的實際路由器是需要通信的,他們之間的通信需要相互驗證.一般使用密碼驗證.另外需要說明的是:同一個VRID中的實際路由器通信時使用組播地址:224.0.0.18.


  
  4,VRRP的數據包結構:
  
地址

 
  關於更詳細的說明請參考RFC2338 VRRP文檔.
  
  5,Linux下的VRRP組件
  
  在Linux下可以實現非常漂亮穩定的VRRP功能.實現這個功能的軟體是keepalived(http://www.keepalived.org),keepalived起初是為LVS(LinuxVirtualServer www.linuxvirtualserver.org Linux下的伺服器負載均衡系統)設計的,是專門監控伺服器狀態的.後來加入了VRRP的功能.Keepalived的VRRP功能是從Linux中VRRPD發展而來:http://www.off.net/~jme/vrrpd/index.html .
  
  6,Keepalived的安裝
  
  Keepalived的安裝需要先安裝下面兩個組件:
  openssl(www.openssl.org)
  popt(http://www.gnu.org/directory/libs/popt.html)
  
  (1), openssl的安裝,如果你的系統已經有了openssl系統,而且在/usr/include目錄下有openssl的目錄,那麼openssl就不需要安裝了,如果不是這樣你需要安裝.
  tar  cd openssl-0.9.7d
  configure
  make
  make test
  make install  
  然後將openssl的include目錄複製到/usr/include
  cp –r /usr/local/ssl  
  (2), tar zxvf popt-1.7.tar.gz
  cd popt-1.7
  ./configure
  make
  make install
  (3), 在安裝keepalived之前,你可能需要重新編譯Linux的內核,將Netlink、Linux Virtual Server和組播功能的選項編譯進新內核:如下面的圖:
  
/include/openssl /usr/include



zxvf openssl-0.9.7d.tar.gz
 

   
  (4), keepalived的安裝
  tar zxvf keepalived-1.1.7.tar.gz
  cd keepalived-1.1.7
  ./configure –prefix=/usr/local/keepalived
  make
  make install
實現高可靠性冗餘備份 (優化)


  VRRP協議應用於作為靜態配置預設網關上的第三層交換機和路由器上,

  為依賴預設網關進行廣域網接入或訪問其它區域網網域的終端系統提供了更快、更有效的冗餘容錯能力.

  隨著Internet和Intranet的日益普及,人們對網路的依賴性越來越強,恢復性和冗餘性已成為當今區域網中的關鍵特性.為此,IETF制定了虛擬路由器冗餘協議(Virtual Router Redundancy Protocol,VRRP),該協議應用於作為靜態配置預設網關上的第三層交換機和路由器上,為依賴預設網關進行廣域網接入或訪問其它區域網網域的終端系統提供了更快、更有效的冗餘容錯能力.


  VRRP引入到交換網


  近年來,隨著交換機的第三層交換能力的不斷提高,VRRP技術已不再僅僅局限於路由器上的使用,而是逐步引入到大規模的交換網,以實現高可靠性的第三層交換的冗餘備份.

  VRRP協議將系統中多台路由器組成VRRP組,該組中擁有一個虛擬預設網關地址.但在任何時刻,一個組內只有控制虛擬網關地址的路由器是活動路由器(Master),由它來轉發數據包.如果活動路由器發生了故障,它將選擇一個優先權最高的冗餘備份路由器(Backup)來替代活動路由器.網路內的終端配置了VRRP虛擬網關地址,發生故障時,虛擬路由器沒有改變,主機仍然保持連接,網路將不會受到單點故障的影響,這樣就較好地解決了網路中路由器切換的問題.




  圖一 VRRP交換網的拓撲結構

  典型的採用VRRP技術的交換網拓撲結構如圖一所示.


  組播通量的產生


  在大規模的交換網中,存在多個VLAN,因此,需要配置多個VRRP網關,這些網關將以默認一秒的時延不停地發送組播.此外,當生成樹中的網路拓撲結構變化時,將激活拓撲結構變化的橋接協議數據單元(BPDU)產生.當應用視頻點播、多媒體會議等流量較大的組播業務,以及網路自身所產生的數據,將會在某一時刻造成局部的網路“塞車”,甚至成為形成組播風暴的誘因.

  在圖二所示的網路中,網路內的大量應用數據流通量,搶佔了鏈路上的帶寬,使核心交換機處理壓力增加,使主幹埠無法及時轉發VRRP數據包和BPDU包,這樣就導致Switch-A沒有收到Switch-B的BPDU包(轉發時延為15秒),Switch-A交換機埠由阻塞狀態進入學習轉髮狀態.同時,Switch-A向Switch-B發送拓撲結構變化BPDU包,通知Switch-B網路拓撲結構發生變化,還將導致Switch-A的VRRP狀態由Backup變為Master,往所有轉發埠發送VRRP組播.

  當該組播到達接入層交換機后,接入層交換機向Switch-B轉發.Switch-B收到此組播后又通過互連埠向Switch-A轉發,形成了環路.


  實現網路優化


  加大核心交換機互連鏈路的帶寬

  核心交換機之間的互連鏈路有大量的廣播和組播通量,如果帶寬不夠而造成此鏈路阻塞,則VRRP的備份交換機將變為Master,這樣網路中將存在兩個Master.因此,鏈路帶寬的正常是VRRP網路正常的保證.

  修改VRRP通告間隔時間



  VRRP默認的通告間隔時間是一秒,若將此時間延長,則成倍地減少了每個埠VRRP廣播量.但是,VRRP通告間隔時間的延長,VRRP網路中主備切換的時間將延長,核心交換機更難發現網路中拓撲結構的變化.因此,不可將此時間一味延長,而是根據網路的實際情況做適當的調整.

  設定STP

  Spanning Tree協議通過優先順序的設定確定誰是根交換機,要保證根交換機和Master路由交換機的地位,直到網路拓撲結構出現改變.此外,STP還可採用DUAL-LAY和Per-VLAN模式.

  修剪Trunk口

  對Trunk口進行修剪,從綁定所有VLAN修改到只綁定該埠能接收到的部分VLAN,減少交換機的計算量和埠上的流通量.



  圖二 組播風暴形成過程

  接入層交換機使用埠冗餘

  Cisco、Avaya、3Com等廠商的接入層交換機上都具有埠冗餘,或者叫彈性鏈路的特性:在交換機的埠上,通過廠商專有的技術,實現硬體上的故障切換.在主鏈路發生中斷時,備份鏈路會在1~5秒的時間內切換到工作狀態.這樣的技術不需要有生成樹協議的運算,沒有BPDU的開銷,而且切換時間遠遠低於生成樹的收斂時間(生成樹預設的收斂時間是50秒,而且隨著網路拓撲的複雜化,收斂時間還會增加).因此,接入層交換機適合採用這種簡單易用的方式實現鏈路的冗餘備份.

  VRRP虛擬埠優先順序的設定

  建議將成為生成樹根網橋的核心交換機上VRRP的虛擬埠優先順序設置為最高,這樣保證VRRP主路由器與生成樹根網橋一致性,防止因網路拓撲的變化引起VRRP狀態的波動.



  關閉多餘的廣播和組播業務

  網路中有很多廣播和組播業務的應用,有一部分是無意義的或不需要的,如網路內部的NTP服務、ARP-TX服務等,這樣可以節省更多的帶寬.

  升級交換機軟體版本

  交換機軟體版本的升級可以給交換機增加新的功能,改進原有的演算法.因此,建議網路工程維護人員經常升級交換機軟體,提升交換機的速度,提高交換機的性能.

  VRRP網路雖然不可能完全消除組播通量的存在,但網路工程師們對其進行控制,針對不同的網路環境,為每個網路量身定做適合自己的方案,能使其不影響網路的正常運行,將為網路提供更快、更有效的冗餘容錯能力.

本文出自 「小鵬」 博客,請務必保留此出處http://xpeng.blog.51cto.com/1055542/559746





[火星人 via ] 詳解HSRP和VRRP的不同之處已經有1812次圍觀

http://www.coctec.com/docs/linux/show-post-48800.html