vrrp 協議相關備忘


結合網盤文檔,已經基本全面介紹了vrrp相關的東西;

尊重原創,以下是本文檔原文鏈接: http://my.oschina.net/moooofly/blog/155491?p=1


我司(很有錢)vrrp的某些實現細節:

1、master及slave等的選舉,報文交互按照標準狀態機轉化,不談。


2、其實相當於vrrp組中的每個vlan端口都配置了子ip(ifconfig  eth1:0),也可以用ip addr add...實現子ip的配置。


3、當然,當l2 sw請求 vrrp組的虛ip對應的mac的時候,若不進行特殊處理,回覆的則是子ip所在的vlan的mac,而實際應該回復的是虛mac;

所以修改了協議棧,在arp回覆時,內核判斷一下 請求的ip 是不是vrrp的虛ip(CLI配置的時候內核會保存所有虛ip),如果是vrrp的虛ip,則回覆的是對應的虛mac。

4,如何使slave不回覆 虛ip 的arp請求:我司是,當處於slave狀態時,直接把其子ip給刪除了,所以即使收到arp請求也不會回覆;

但是其他公司可能是 設置該net_device的屬性,使不回覆arp。


5,每個vrrp組有一個master,所以每個master所在的vlan要週期發送vrrp通告報文;我司是每個vrrp組維護一個定時器,即thread_add_timer,所以當vrrp組二十多個過多時,導致slect一直處於有事件的情況,導致系統故障,所以是設計缺陷,需要重新設計該定時器!!!


6、處於同一vrrp group的vlan接口,可以是不同的VID,但這些vlan接口必須處於同一網段,即,和該vrrp組的虛ip是同一網段。


注: 只有一種 報文---通告報文(組播ip報文)。

  2: src mac: 00 00 5e 00 01 VRRPID

          SRC IP: vlan接口實ip

          dst mac: 01 00 5e 00 00 12

          dst  ip  :   224.0.0.18     


VRRP協議介紹 


參考資料: RFC 3768 

1. 前言 

      VRRP(Virtual Router Redundancy Protocol)協議是用於實現路由器冗餘的協議,最新協議在RFC3768中定義,原來的定義RFC2338被廢除,新協議相對還簡化了一些功能。 

2. 協議說明 
2.1 協議 

      VRRP協議是爲消除在靜態缺省路由環境下的、缺省路由器單點故障引起的網絡失效,而設計的主備模式的協議,使得在發生故障而進行設備功能切換時,可以不影響內外數據通信,不需要再修改內部網絡的網絡參數。
      VRRP協議需要具有IP地址備份優先路由選擇減少不必要的路由器間通信等功能。
 

      VRRP協議將兩臺或多臺路由器設備虛擬成一個設備,對外提供虛擬路由器IP(一個或多個),而在路由器組內部,實際擁有這個對外IP的路由器,如果工作正常,其就是MASTER,否則就通過算法選舉產生。MASTER實現針對虛擬路由器IP的各種網絡功能,如處理ARP請求,處理ICMP請求(PING包),以及數據的轉發等;其他設備不擁有該IP,狀態是BACKUP,除了接收MASTER的VRRP狀態通告信息外,不執行對外的網絡功能。當主機失效時,BACKUP將接管原先MASTER的網絡功能。 

      配置VRRP協議時需要配置每個路由器的虛擬路由器ID(VRID)和優先權值,使用VRID將路由器進行分組,具有相同VRID值的路由器爲同一個組,VRID是一個0~255的正整數;同一組中的路由器通過使用優先權值來選舉MASTER,優先權大者爲MASTER,優先權也是一個0~255的正整數 

      VRRP協議使用多播來傳輸VRRP數據,VRRP數據使用特殊的虛擬源MAC地址發送數據而不是自身網卡的MAC地址,VRRP運行時只有MASTER路由器定時發送VRRP通告信息,表示MASTER工作正常以及(宣告)虛擬路由器IP(組),BACKUP只接收VRRP數據,不發送數據,如果一定時間內沒有接收到MASTER的通告信息,各BACKUP將宣告自己成爲MASTER,發送通告信息,重新進行MASTER選舉。 

2.2 MASTER選舉
  • 如果對外的虛擬路由器IP就是路由器本身配置的IP地址的話,該路由器始終都是MASTER,這時的優先級值爲255
  • 否則如果不具備虛擬IP的話,將進行MASTER選舉,各路由器都宣告自己是MASTER,發送VRRP通告信息;
  • 如果收到其他機器的發來的通告信息的優先級比自己高,將轉回BACKUP狀態;
  • 如果優先級相等的話,將比較路由器的實際IP,IP值較大的優先權高;

2.3 協議狀態機 

VRRP協議狀態比較簡單,就三種狀態,初始化,主機,備份機。 

?
1
2
3
4
5
6
7
8
9
10
11
12
                   +---------------+
        +--------->|               |<-------------+
        |          |  Initialize   |              |
        |   +------|               |----------+   |
        |   |      +---------------+          |   |
        |   |                                 |   |
        |   V                                 V   |
+---------------+                       +---------------+
|               |---------------------->|               |
|    Master     |                       |    Backup     |
|               |<----------------------|               |
+---------------+                       +---------------+

初始化 
      路由器啓動時,如果路由器的優先級是255(最高優先級,路由器擁有虛擬路由器IP),則進入MASTER狀態,接着會發送VRRP通告信息,併發送廣播ARP信息通告虛擬路由器IP地址對應的MAC地址爲路由虛擬MAC,設置通告信息定時器,準備定時發送VRRP通告信息,轉爲MASTER狀態; 否則進入BACKUP狀態,設置定時器,定時檢查是否收到MASTER的通告信息。 

主機 
主機狀態下的路由器要完成如下功能: 
  • 設置定時通告定時器;
  • 用VRRP虛擬MAC地址響應針對虛擬路由器IP地址的ARP請求;
  • 轉發目的MAC是VRRP虛擬MAC的數據包;
  • 如果是虛擬路由器IP的擁有者,將接受目的地址是虛擬路由器IP的數據包,否則丟棄;
  • 當收到shutdown的事件時,刪除定時通告定時器,發送優先權級爲0的通告包,轉初始化狀態;
  • 如果定時通告定時器超時時,發送VRRP通告信息;
  • 收到VRRP通告信息時,如果優先權爲0,發送VRRP通告信息;
  • 否則判斷數據的優先級是否高於本機,或相等而且實際IP地址大於本地實際IP,設置定時通告定時器,復位主機超時定時器,轉BACKUP狀態;否則的話,丟棄該通告包;

備機 
備機狀態下的路由器要實現以下功能: 
  • 設置主機超時定時器;
  • 不能響應針對虛擬路由器IP的ARP請求信息;
  • 丟棄所有目的MAC地址是虛擬路由器MAC地址的數據包;
  • 不接受目的是虛擬路由器IP的所有數據包;
  • 當收到shutdown的事件時,刪除主機超時定時器,轉初始化狀態;
  • 主機超時定時器超時的時候,發送VRRP通告信息,廣播ARP地址信息,轉MASTER狀態;
  • 收到VRRP通告信息時,如果優先權爲0,表示進入MASTER選舉;否則判斷數據的優先級是否高於本機,如果高的話,承認MASTER有效,復位主機超時定時器;否則的話,丟棄該通告包;

2.4 ARP查詢處理 

       當內部主機通過ARP查詢虛擬路由器IP地址對應的MAC地址時,MASTER路由器回覆的MAC地址爲虛擬的VRRP的MAC地址,而不是實際網卡的MAC地址,這樣在路由器切換時讓內網機器覺察不到;而在路由器重新啓動時,不能主動發送本機網卡的實際MAC地址。如果虛擬路由器開啓ARP代理(proxy_arp)功能,代理的ARP迴應也迴應VRRP虛擬MAC地址。 

2.5 VRRP應用舉例 
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
          +-----------+      +-----------+
          |   Rtr1    |      |   Rtr2    |
          |(MR VRID=1)|      |(BR VRID=1)|
          |(BR VRID=2)|      |(MR VRID=2)|
  VRID=1  +-----------+      +-----------+  VRID=2
  IP A ---------->*            *<---------- IP B
                  |            |
                  |            |
------------------+------------+-----+--------+--------+--------+--
                                     ^        ^        ^        ^
                                     |        |        |        |
                                   (IP A)   (IP A)   (IP B)   (IP B)
                                     |        |        |        |
                                  +--+--+  +--+--+  +--+--+  +--+--+
                                  |  H1 |  |  H2 |  |  H3 |  |  H4 |
                                  +-----+  +-----+  +--+--+  +--+--+
   Legend:
            ---+---+---+--  =  Ethernet, Token Ring, or FDDI
                         H  =  Host computer
                        MR  =  Master Router
                        BR  =  Backup Router
                         *  =  IP Address
                      (IP)  =  default router forhosts

      這是通常VRRP使用拓撲,兩臺路由器運行VRRP互爲備份,路由器1作爲VRID組1的MASTER,IP地址A,VRID組2的BACKUP,路由器2作爲VRID組2的MASTER,IP地址B,VRID組1的BACKUP。內部網絡中一部分機器的缺省網關地址是IP地址A,一部分是IP地址B,正常情況下以A爲網關的數據將走路由器1,以B爲網關的數據將走路由器2,如果一臺路由器發生故障,所有數據將走另一臺路由器。 


3. 協議定義 
3.1 以太頭 

      源MAC地址必須爲虛擬MAC地址:00-00-5E-00-01-{VRID},VRID爲虛擬路由器ID值,16進制格式,所以同一網段中最多有255個VRRP路由器;目的MAC爲多播類型的MAC。 

這裏可以看出VRID非常重要。 

3.2 IP頭參數 

      VRRP包的源地址是本機地址,目的地址必須爲224.0.0.18,爲一多播地址;IP協議號爲112;IP包的TTL值必須爲255 

3.3 VRRP協議數據格式 

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Version| Type  | Virtual Rtr ID|   Priority    | Count IP Addrs|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|   Auth Type   |   Adver Int   |          Checksum             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                         IP Address (1)                        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                            .                                  |
|                            .                                  |
|                            .                                  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                         IP Address (n)                        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                     Authentication Data (1)                   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                     Authentication Data (2)                   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
其中: 
  • version:版本,4位,在RFC3768中定義爲2;
  • Type:類型,4位,目前只定義一種類類型:通告數據,取值爲1;
  • Virtual Rtr ID:虛擬路由器ID,8位
  • Priority:優先級,8位,具備虛擬路由器IP地址的設備的優先級爲255;
  • Count IP Addrs:VRRP包中的IP地址數量,8位;
  • Auth Type:認證類型,8位,RFC3768中認證功能已經取消,此字段值定義0(不認證),爲1,2只作爲對老版本的兼容;
  • Adver Int:通告包的發送間隔時間,8位,單位是秒,缺省是1秒;
  • Checksum:校驗和,16位,校驗數據範圍只是VRRP數據,即從VRRP的版本字段開始的數據,不包括IP頭;
  • IP Address(es):和虛擬路由器相關的IP地址,數量由Count IP Addrs決定
  • Authentication Data:RFC3768中定義該字段只是爲了和老版本兼容,必須置0。

3.4 接收數據時的必須檢查 

收到VRRP數據包時要進行以下驗證,不滿足的數據包將被丟棄: 
   -  TTL必須爲255; 
   -  VRRP版本號必須爲2; 
   -  一個包中數據字段必須完整; 
   -  校驗和必須正確; 
   -  必須驗證是否在接收的網卡上配置了VRID值,而且是否本地路由器不是路由IP地址的擁有者 
   -  必須驗證VRRP認證類型和配置的一致; 

4. 結論 

      VRRP實現了對路由器IP地址的冗餘功能,防止了單點故障造成的網絡失效,VRRP本身是熱備形式的,但可以通過互相熱備實現路由器的均衡處理,新版的VRRP較老版簡化了認證處理,實際不再進行數據的認證,這是因爲在實際應用中,經常出現由於認證造成的多個MASTER同時使用的異常情況。 


============ 我是分割線 ============= 

VRRP概述

      通常,子網內的所有主機都設置一條相同的、到網關的缺省路由。主機發出的所有目的地址不在本網段的報文將通過缺省路由發往網關,從而實現主機與外部網絡的通信。當網關發生故障時,本網段內所有以網關爲缺省路由的主機將中斷與外部網絡的通信。 
      缺省路由爲用戶的配置操作提供了方便,但是對缺省網關設備提出了很高的穩定性要求。增加出口網關是提高系統可靠性的常見方法,此時如何在多個出口之間進行選路就成爲需要解決的問題。 
      VRRP(Virtual Router Redundancy Protocol,虛擬路由冗餘協議),可以解決以上問題。在具有多播或廣播能力的局域網(如以太網)中,藉助VRRP能在某臺設備出現故障時仍然提供高可靠的缺省鏈路,而無需修改用戶的配置信息。 
      VRRP協議的實現有VRRPv2和VRRPv3兩個版本。其中,VRRPv2基於IPv4VRRPv3基於IPv6。兩個版本的VRRP在功能實現上並沒有區別。在IPv4設備上和IPv6設備上使用的命令不同。


VRRP基本概念 

VRRP備份組
 
    VRRP將局域網內的一組路由器(包括一個Master路由器和若干個Backup路由器)組成一個備份組,功能上相當於一臺虛擬路由器。

VRRP備份組具有以下特點: 
  • 局域網內的主機僅需要知道這個虛擬路由器的IP地址,並將其設置爲缺省路由的下一跳地址。
  • 網絡內的主機通過這個虛擬路由器與外部網絡進行通信。
  • 備份組內的路由器根據一定的選舉機制,分別承擔網關的功能。當備份組內承擔網關功能的路由器發生故障時,其餘的路由器將取代它繼續履行網關職責。

VRRP優先級 
      VRRP根據優先級來確定參與備份組的每臺路由器的角色(Master路由器或Backup路由器)。優先級越高,則越有可能成爲Master路由器。

搶佔方式 
      在非搶佔方式下,一旦備份組中的某臺路由器成爲Master路由器,只要它沒有出現故障,其它路由器即使隨後被配置了更高的優先級也不會成爲Master路由器。 
       如果路由器設置爲搶佔方式,它一旦發現自己的優先級比當前的Master路由器的優先級高,就會成爲Master路由器;相應地,原來的Master路由器將會變成Backup路由器。

監視接口功能 
      VRRP的監視接口功能更好地擴充了備份功能:不僅在備份組中某路由器的接口出現故障時能提供備份功能,還能在路由器的其它接口不可用時提供備份功能。當被監視的接口處於down狀態時,擁有該接口的路由器的優先級會自動降低一個指定的數額,從而可能導致備份組內其它路由器的優先級高於這個路由器的優先級,使其它優先級高的路由器轉變爲Master路由器。

認證方式 
      VRRP提供了兩種認證方式,分別是: 
  • SIMPLE:簡單字符認證
  • MD5:MD5認證
      在一個安全的網絡中,可以不設置認證方式,則路由器對要發送的VRRP報文不進行任何認證處理,而收到VRRP報文的路由器也不進行任何認證就認爲這是一個真實的、合法的VRRP報文,這種情況下,不需要設置認證字。 
      在一個有可能受到安全威脅的網絡中,可以將認證方式設置爲SIMPLE,則發送VRRP報文的路由器就會將認證字填入到VRRP報文中,而收到的VRRP報文的路由器會將收到的VRRP報文中的認證字和本地配置的認證字進行比較,如果相同則認爲接收到的報文是真實的、合法的VRRP報文,否則認爲是一個非法的報文。 
      在一個非常不安全的網絡中,可以將認證方式設置爲MD5,則路由器就會利用認證字和MD5算法來對VRRP報文進行加密,加密後的報文保存在Authentication Header(認證頭)中,收到的VRRP報文的路由器會利用認證字解密報文,檢查報文的合法性。 


============ 我是分割線 ============= 

下面爲huawei介紹VRRP的文檔 


6.1  介紹

定義

VRRP(Virtual Router Redundancy Protocol)虛擬路由冗餘協議,是一種容錯協議。該協議通過把幾臺路由設備聯合組成一臺虛擬的路由設備,使用一定的機制保證當主機的下一跳交換機出現故障時,及時將業務切換到其它交換機,從而保持通訊的連續性和可靠性。

以下是與VRRP協議相關的基本概念:

  • VRRP 交換機(VRRP Router):運行VRRP的設備,它可能屬於一個或多個虛擬交換機

  • 虛擬交換機(Virtual Router):由VRRP管理的抽象設備,又稱爲VRRP備份組,被當作一個共享局域網內主機的缺省網關。它包括了一個虛擬交換機標識符和一組虛擬IP地址。

  • 虛擬IP地址(Virtual IP Address):虛擬 交換機的IP地址,一個虛擬交換機可以有一個或多個IP地址,由用戶配置。

  • IP地址擁有者(IP Address Owner):如果一個VRRP 交換機將虛擬交換機的IP地址作爲真實的接口地址,則該設備是IP地址擁有者。當這臺設備正常工作時,它會響應目的地址是虛擬IP地址的報文,如ping、TCP連接等。

  • 虛擬MAC地址:是虛擬交換機根據虛擬交換機 ID生成的MAC地址。一個虛擬交換機擁有一個虛擬MAC地址,格式爲:00-00-5E-00-01-{VRID}(VRRP);00-00-5E-00-02-{VRID}(VRRP6)。當虛擬交換機迴應ARP請求時,使用虛擬MAC地址,而不是接口的真實MAC地址。

  • 主IP地址(Primary IP Address):從接口的真實IP地址中選出來的一個主用IP地址,通常選擇配置的第一個IP地址。VRRP廣播報文使用主IP地址作爲IP報文的源地址。

  • Master 交換機(Virtual Router Master):是承擔轉發報文或者應答ARP請求的VRRP交換機,轉發報文都是發送到虛擬IP地址的。如果IP地址擁有者是可用的,通常它將成爲Master。

  • Backup 交換機(Virtual Router Backup):一組沒有承擔轉發任務的VRRP 交換機,當Master設備出現故障時,它們將通過競選成爲新的Master。

  • 搶佔模式:在搶佔模式下,如果Backup器的優先級比當前Master的優先級高,將主動將自己升級成Master。

目的

隨着Internet的發展,人們對網絡的可靠性的要求越來越高。對於局域網用戶來說,能夠時刻與外部網絡保持聯繫非常重要。

通常情況下,內部網絡中的所有主機都設置一條相同的缺省路由,指向出口網關,實現主機與外部網絡的通信。當出口網關發生故障時,主機與外部網絡的通信就會中斷。

配置多個出口網關是提高系統可靠性的常見方法,但局域網內的主機設備通常不支持動態路由協議,如何在多個出口網關之間進行選路是一個需要解決的問題。

VRRP協議由IETF(Internet Engineering Task Force,因特網工程任務組)推出,旨在解決局域網主機訪問外部網絡的可靠性問題,包括如下應用特性:

  • 主備備份:這是VRRP提供IP地址備份功能的基本方式。主備備份方式需要建立一個虛擬交換機,該虛擬交換機包括一個Master設備和若干Backup設備,這些交換機構成一個備份組。正常情況下,業務全部由Master承擔。Master出現故障時,Backup接替工作。

  • VRRP負載分擔:負載分擔方式是指多臺交換機同時承擔業務,單個VRRP備份組是不具備負載分擔功能的,只有在多臺設備上建立兩個或更多的備份組,所有備份組均勻分擔Master狀態,此時就每臺設備只承擔了部分的業務,從而達到負載分擔的作用。

  • VRRP監視接口狀態:每個VRRP備份組可以監視所有與此VRRP備份組綁定的接口的狀態,從而當接口出現故障時,VRRP通過改變優先級來重新選擇主備關係。

  • 虛擬IP地址Ping開關:提供了控制Ping通虛擬IP地址的開關命令。

  • VRRP的安全功能:對於安全程度不同的網絡環境,可以在報頭上設定不同的認證方式和認證字。

  • VRRP快速切換:VRRP通過監視BFD會話狀態實現主備快速切換,主備切換時間毫秒級。

6.2  參考標準和協議

本特性的參考資料清單如下:

文檔

描述

備註

RFC2281

Hot Standby Router Protocol(HSRP)

 

RFC2338

Virtual Router Redundancy Protocol(version number One1998)

 

RFC2787

Definitions of Managed Objects for the Virtual Router Redundancy Protocol

 

RFC3768

Virtual Router Redundancy Protocol(version number Two 2004)

 

6.3  原理描述

VRRP將局域網的一組路由設備構成一個VRRP備份組,相當於一臺虛擬路由器。局域網內的主機只需要知道這個虛擬路由器的IP地址,並不需知道具體某臺設備的IP地址,將網絡內主機的缺省網關設置爲該虛擬路由器的IP地址,主機就可以利用該虛擬網關與外部網絡進行通信。

VRRP將該虛擬路由器動態關聯到承擔傳輸業務的物理設備上,當該設備出現故障時,再次選擇新設備來接替業務傳輸工作,整個過程對用戶完全透明,實現了內部網絡和外部網絡不間斷通信。

圖6-1  虛擬路由器示意圖 

圖6-1所示,虛擬路由器的實現原理如下:

  • SwitchA、SwitchB和SwitchC屬於同一個VRRP備份組,組成一個虛擬的路由器,這個虛擬路由器有自己的IP地址10.110.10.1。虛擬IP地址可以直接指定,也可以借用該VRRP組所包含的設備上某接口地址。

  • SwitchA、SwitchB和SwitchC的實際IP地址分別是10.110.10.5、10.110.10.6和10.110.10.7。

  • 局域網內的主機只需要將缺省路由設爲10.110.10.1即可,無需知道具體設備上的接口地址。

主機利用該虛擬網關與外部網絡通信。虛擬路由器工作機制如下:

  • 根據優先級的大小挑選Master設備。Master設備的選舉有兩種方法:
    • 比較優先級的大小,優先級高者當選爲Master設備。

    • 當兩臺優先級相同的設備同時競爭Master時,比較接口IP地址大小。接口地址大者當選爲Master設備。

  • 其它設備作爲備份設備,隨時監聽Master設備的狀態。

    • 當主設備正常工作時,它會每隔一段時間(Advertisement_Interval)發送一個VRRP組播報文,以通知組內的備份設備,主設備處於正常工作狀態。

    • 當組內的備份設備一段時間(Master_Down_Interval)內沒有接收到來自主設備的報文,則將自己轉爲主設備。一個VRRP組裏有多臺備份設備時,短時間內可能產生多個Master設備,此時,設備將會將收到的VRRP報文中的優先級與本地優先級做比較。從而選取優先級高的設備做Master。設備的狀態變爲Master之後,會立刻發送免費ARP來刷新交換機上的Mac表項,從而把用戶的流量引到此臺設備上來,整個過程對用戶完全透明。

從上述分析可以看到,主機不需要增加額外工作,與外界的通信也不會因某臺設備故障而受到影響。

VRRP報文結構

VRRP報文用來將Master設備的優先級和狀態通告給同一虛擬路由器的所有VRRP路由器。

VRRP報文封裝在IP報文中,發送到分配給VRRP的IP組播地址。在IP報文頭中,源地址爲發送報文的主接口地址(不是虛擬地址或輔助地址),目的地址是224.0.0.18,TTL是255,協議號是112。VRRP報文的結構如圖6-2所示。

圖6-2  VRRP報文結構 

各字段的含義如下:
  • Version:VRRP協議版本號。此處取值爲2。

  • Type:VRRP通告報文的類型。只有一種取值1,表示Advertisement。

  • Virtual Rtr ID(VRID):虛擬路由器ID,取值範圍是1~255。

  • Priority:發送VRRP通告報文的的設備在備份組中的優先級。取值範圍是0~255,但可用的範圍是1~254。0表示設備停止參與VRRP備份組,用來使備份設備儘快成爲Master設備,而不必等到計時器超時;255則保留給IP地址擁有者。缺省值是100。

  • Count IP Addrs:VRRP通告報文中包含的虛擬IP地址的個數。

  • Authentication Type:VRRP報文的認證類型。協議中指定了3種類型:
    • 0:Non Authentication

    • 1:Simple Text Password

    • 2:Reserved

     說明:

    目前,S5700實現了明文認證方式和MD5認證方式。

  • Advertisement Interval:發送通告報文的時間間隔。缺省值爲1秒。

  • Checksum:校驗和。

  • IP Address(es):VRRP備份組的虛擬IP地址。

  • Authentication Data:認證字。目前只有明文認證和MD5認證纔用到該部分,對於其它認證方式,一律填0。

VRRP的狀態機

VRRP協議中定義了三種狀態機:初始狀態(Initialize)、活動狀態(Master)、備份狀態(Backup)。其中,只有處於活動狀態的設備纔可以轉發那些發送到虛擬IP地址的報文。

VRRP狀態轉換如圖6-3所示。

圖6-3  VRRP狀態機的轉換 

Initialize:設備啓動時進入此狀態,當收到接口Startup的消息,將轉入Backup或Master狀態(IP地址擁有者的接口優先級爲255,直接轉爲Master)。在此狀態時,不會對VRRP通告報文做任何處理。

Master:當交換機處於Master狀態時,它將會做下列工作:
  • 定期發送VRRP通告報文。

  • 以虛擬MAC地址響應對虛擬IP地址的ARP請求。

  • 轉發目的MAC地址爲虛擬MAC地址的IP報文。

  • 如果它是這個虛擬IP地址的擁有者,則接收目的IP地址爲這個虛擬IP地址的IP報文。否則,丟棄這個IP報文。

  • 如果收到比自己優先級大的報文則轉爲Backup狀態。

  • 如果收到優先級和自己相同的報文,並且發送端的主IP地址比自己的主IP地址大,則轉爲Backup狀態。

  • 當接收到接口的Shutdown事件時,轉爲Initialize狀態。

Backup:當交換機處於Backup狀態時,它將會做下列工作:
  • 接收Master發送的VRRP通告報文,判斷Master的狀態是否正常。

  • 對虛擬IP地址的ARP請求,不做響應。

  • 丟棄目的MAC地址爲虛擬MAC地址的IP報文。

  • 丟棄目的IP地址爲虛擬IP地址的IP報文。

  • 如果收到比自己優先級小的報文時,丟棄報文,不重置定時器;如果收到優先級和自己相同的報文,則重置定時器,不進一步比較IP地址。

  • 當接收到MASTER_DOWN_TIMER定時器超時的事件時,纔會轉爲Master狀態。

  • 當接收到接口的Shutdown事件時,轉爲Initialize狀態。

6.3.1  主備備份

這是VRRP提供IP地址備份功能的基本方式。主備備份方式需要建立一個虛擬路由器,該虛擬路由器包括一個Master和若干Backup設備。

  • 正常情況下,業務全部由Master承擔。

  • Master出現故障時,Backup設備接替工作。

6.3.2  VRRP負載分擔

允許一臺設備爲多個VRRP備份組作備份。通過多個虛擬路由器可以實現負載分擔。負載分擔方式是指多臺虛擬路由器同時承擔業務,因此需要建立兩個或更多的備份組。

負載分擔方式具有以下特點:

  • 每個備份組都包括一個Master設備和若干Backup設備。

  • 各備份組的Master設備可以不同。

  • 同一臺設備上的不同接口可以加入多個備份組,在不同備份組中有不同的優先級。

圖6-4  VRRP負載分擔示意圖 

圖6-4所示,配置兩個備份組:組1和組2。

  • SwitchA在備份組1中作爲Master,在備份組2中作爲Backup。

  • SwitchB在備份組1和2中都作爲Backup。

  • SwitchC在備份組2中作爲Master,在備份組1中作爲Backup。

  • 一部分主機使用備份組1作網關,另一部分主機使用備份組2作爲網關。

這樣,可以達到分擔數據流而又相互備份的目的。

6.3.3  VRRP監視接口狀態

VRRP可以監視所有接口的狀態。當被監視的接口Down或Up時,該設備的優先級會自動降低或升高一定的數值,使得備份組中各設備優先級高低順序發生變化,VRRP設備重新進行Master設備競選。

VRRP可以通過Increase方式和Reduce方式來監視接口(一個VRRP最多可以監視8個接口)。

  • 如果VRRP以Increase方式監視一個接口,當被監視的接口狀態變成Down後,VRRP的優先級增加(增加值可以配置)。

    Increase方式只在VRRP狀態爲Backup時才生效。

  • 如果VRRP以Reduce方式監視一個接口,當被監視的接口狀態變爲Down後,VRRP的優先級降低(降低值可以配置)。

    Reduce方式在VRRP狀態爲Master或Backup時都生效。

具體的應用場景可以參考組網應用中的“VRRP監視接口狀態”。

6.3.4  VRRP快速切換

雙向轉發檢測BFD(Bidirectional Forwarding Detection)機制能夠快速檢測、監控網絡中鏈路或者IP路由的連通狀況,VRRP通過監視BFD會話狀態實現主備快速切換,主備切換的時間控制在1秒以內。

對於以下情況,BFD都能夠將檢測到的故障通知接口板,從而加快VRRP主備倒換的速度。

  • 備份組包含的接口出現故障。

  • Master和Backup不直接相連。

  • Master和Backup直接相連,但在中間鏈路上存在傳輸設備。

BFD對Backup和Master之間的實際地址通信情況進行檢測,如果通信不正常,Backup就認爲Master已經不可用,升級成Master。在以下情況下Backup轉換爲Master:

  • 當兩臺設備之間的背靠背連接全部斷開時,Backup主動升級成Master,承載上行流量。

  • 當兩臺設備之間的連接在如下情況下中斷時,Backup主動升級成Master,承載上行流量。

    • 當Master重新啓動
    • Master與交換機之間的鏈路斷開
    • 與Master相連的交換機重新啓動

VRRP快速切換的環境要求:

  • 在Backup上,BFD Session檢測的接口必須和Master設備相連;

  • 在Master不可用時,Backup的優先級增加並大於原來Master的優先級,促使自己快速切換爲Master。

6.3.5  虛擬IP地址Ping開關

VRRP備份組使用虛擬IP地址,能夠Ping通虛擬IP地址可以比較方便的監控虛擬路由器的工作情況,但是帶來可能遭到ICMP攻擊的隱患。控制Ping通虛擬IP地址的開關命令供用戶方便處理。

6.3.6  VRRP安全

對於安全程度不同的網絡環境,可以在報頭上設定不同的認證方式和認證字。

在一個安全的網絡中,可以採用缺省設置:設備對要發送的VRRP報文不進行任何認證處理,收到VRRP報文的設備也不進行任何認證,認爲收到的都是真實的、合法的VRRP報文。這種情況下,不需要設置認證字。

在有可能受到安全威脅的網絡中,VRRP提供了簡單字符(Simple)認證方式和MD5認證方式。對於簡單認證字方式,可以設置長度爲1~8的認證字;對於MD5認證方式,明文長度範圍是1~8,密文長度爲24。

6.4  應用

6.4.1  VRRP監視接口狀態

圖6-5  VRRP監視接口的典型組網圖 

解決的問題:VRRP無法感知非VRRP所在接口狀態的變化,當上行鏈路出現故障時,VRRP感知不到,從而導致業務中斷。

配置說明如下:

  • 通過配置VRRP監視指定的接口。

  • VRRP可以以Increase方式和Reduce方式來監視一個上下鏈路接口,一個VRRP最多可以監視8個接口。

  • 當VRRP監視的接口的狀態發生變化時,通知VRRP,VRRP根據接口的狀態來增加或者是減少VRRP的優先級,從而達到指導VRRP狀態切換的目的。

圖6-5所示,SwitchA和SwitchB兩臺設備上面運行VRRP協議。並且SwitchB的優先級比SwitchA的優先級的高,SwitchB以Reduce方式監視接口。SwitchB爲Master設備,用戶側的流量通過主用設備SwitchB出去,如圖6-5中綠線所示。現在SwitchB連向Internet的出接口出現故障,由於SwitchB上面VRRP以Reduce方式監視了這個接口,VRRP的優先級降低,SwitchA搶佔成爲主用設備,以後用戶側的流量則通過SwitchA出去。

6.4.2  VRRP快速切換

圖6-6  VRRP快速切換組網圖 

解決的問題:VRRP在檢測出鏈路故障後流量丟失時間較長的問題。

配置說明如下:

  • 通過在SwitchA和SwitchB上配置BFD來檢測它們之間鏈路狀態,由於BFD可以實現毫秒級別的快速鏈路檢測,所以鏈路或者遠端主機發生故障後可以迅速檢測出來。

  • 通過監視普通BFD,VRRP可以快速感知鏈路狀態,BFD檢測出鏈路故障後通知VRRP。

  • VRRP根據BFD通告過來的狀態來進行優先級調整或者是快速切換來達到快速搶佔的目的。

  • 一個VRRP可以配置監視最多8個BFD會話。

  • 通過監視普通BFD可以使VRRP主備切換的時間控制在200ms以內。

圖6-6所示,SwitchA和SwitchB之間配置VRRP備份組建立主備關係,SwitchA爲主用設備,用戶過來的流量從SwitchA出去。在SwitchA和SwitchB之間建立BFD會話,VRRP備份組監視該BFD會話,當BFD會話狀態變化時,通過修改備份組優先級實現主備快速切換。當BFD檢測到SwitchA和SwitchC之間的鏈路故障時,上報給VRRP一個BFD檢測Down事件,SwitchB上VRRP備份組的優先級增加,增加後的優先級大於SwitchA上的VRRP備份組的優先級,於是,SwitchB立刻升爲Master,後繼的用戶流量就會通過SwitchB轉發,從而實現VRRP的主備快速切換。

6.5  術語與縮略語

縮略語

縮略語

英文全稱

中文全稱

VRRP

Virtual Router Redundancy Protocol

虛擬路由冗餘協議

ARP

Address Resolution Protocol

地址解析協議

BFD

Bidirectional Forwarding Detection

雙向轉發檢測

L2VPN

Layer 2 virtual private network

二層虛擬專用網

PW

Pseudo Wire

虛電線

VSI

Virtual Switching Instance

虛擬交換實例

QinQ

802.1Q in 802.1Q

802.1Q嵌套802.1Q

ME

Metro Ethernet

城域以太



============ 我是分割線 ============= 
發佈了25 篇原創文章 · 獲贊 8 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章