目 錄
VRRP(Virtual Router Redundancy Protocol,虛擬路由器冗餘協議)是一種容錯協議,通過物理設備和邏輯設備的分離,為網絡提供高可靠性和高可用性,對於網絡故障的自適應至關重要。
VRRP將局域網內的一組路由器劃分在一起,稱為一個備份組。備份組由一個Master路由器和多個Backup路由器組成,功能上相當於一台虛擬路由器,通過一定選舉機製保證隻有Master路由器承擔轉發任務。當Master路由器發生故障時,Backup會自動接替成為Master。
局域網內的主機無法與外部通信時,通過display vrrp命令或者通過SNMP網管方式查看VRRP備份組中各個路由器的狀態,發現有多個VRRP路由器都處於Master狀態。
按如下步驟依次檢查:
(1) 檢查VRRP配置是否一致
VRRP要求組成備份組的多個路由器必須配置一致,即要求虛擬IP地址,VRRP報文廣播間隔時間,認證方式和認證字的配置必須相同。
(2) 檢查端口互通性
確認互連端口是否處於up狀態。檢查互連端口的配置情況,如果是trunk或者hybrid端口,要確定端口PVID是否一致,是否允許VRRP備份組所在VLAN通過,端口是否配置802.1x等協議。檢查端口是否因STP、RRPP、Smart-link或者LACP等協議而阻塞。使用display interface命令查看端口是否存在大量錯誤的報文。
(3) 檢查VRRP報文收發
打開VRRP調試開關,確定VRRP報文是否能夠正常收發。如果看不到VRRP報文調試信息,可以打開IP報文調試信息進行查看。
(4) 檢查CPU占用情況
通過命令display cpu-usage查看VRRP協議報文互通的業務板和主控板CPU占用率是否過高。可以通過命令display interface查詢端口流量,確定網絡中是否存在廣播風暴。如果存在網絡風暴,則VRRP報文無法正常送給CPU處理,VRRP狀態必然出現異常。
(1) VRRP配置不對稱
在接口視圖下使用display this命令查看配置。請確認哪一端的配置是正確的,修改另一端配置,使VRRP配置一致。
(2) 端口互通問題
如果是端口不允許VRRP備份組所在VLAN通過或者PVID問題,請更改相關配置;如果鏈路被STP等協議Discarding,導致VRRP協議報文無法正常傳送,請修改端口STP優先級等配置以保證互連端口能夠正常進行VRRP協議報文轉發。如果端口存在大量錯誤的報文,則需要檢查鏈路,如檢查兩端的光衰減是否在正常範圍。如有故障,請更換連接所用的光纖。
(3) VRRP報文收發不正常
如果在確保端口互通性的前提下仍然看不到VRRP的報文調試信息,很有可能是VRRP報文被丟棄。如果CPU限速導致報文丟棄,可根據實際組網需要適當減少配置的VRRP路由器數量或者調整VRRP報文發送時間間隔。
(4) CPU占用率過高
請關閉不必要的業務。如果CPU仍然保持比較高的占用率,不能解決問題,請聯係技術支持人員。
網絡中一台或多台VRRP路由器狀態極不穩定,頻繁發生Backup->Master->Backup,或者Master->Initialize->Backup->Master的狀態切換。
請按如下步驟依次檢查:
(1) 檢查振蕩的VRRP路由器所在鏈路的鏈路狀態
觀察日誌信息,確認VRRP狀態切換前是否發生鏈路狀態的up/down變化。因為VRRP狀態是受鏈路狀態影響的,所以鏈路的不穩定會引起VRRP狀態的振蕩。同時要關注VRRP配置的監視接口的鏈路狀態,因為VRRP路由器的優先級會隨監視接口的鏈路狀態而變化,該鏈路狀態不穩定也會引起VRRP狀態的振蕩。
(2) 檢查VRRP路由器所在網絡互通性
可采用在VRRP路由器上ping對端的接口實際IP地址的方式來檢測VRRP路由器的網絡互通性。如果不能ping通或者出現不連續中斷,請檢查鏈路是否有環路等問題。
(3) 檢查STP等協議
使用命令display stp brief查看互連端口的STP狀態是否正常。STP狀態的反複切換會造成VRRP狀態的反複切換,必須保證VRRP協議報文通過的鏈路STP狀態穩定。檢查端口是否因STP、RRPP、Smart-link或者LACP等協議而阻塞。
(4) 檢查VRRP報文收發
參見1.2.1 2. (3)。觀察VRRP的報文調試信息,在網絡比較擁塞的環境下,Backup路由器可能在等待超時後才收到Master路由器的報文,導致備份組內的成員頻繁的進行主備狀態轉換。
(5) 檢查CPU占用情況
參見1.2.1 2. (4)
(6) 尋求進一步幫助
如果上述方法不能確定問題,請聯係技術支持人員。
鏈路故障請排除組網問題;因STP等協議引起的端口阻塞問題可以參見各協議配置手冊更改配置或者根據需要關閉相應協議;報文收發問題解決參見1.2.1 3. (3)。在網絡比較擁塞的環境,可以適當增加Backup等待延遲時間;CPU占用率過高問題的解決請參見1.2.1 3. (4)。
默認網關設為VRRP虛擬IP地址的主機不能訪問外部網絡。
請按如下步驟依次檢查:
(1) 檢查VRRP備份組狀態是否穩定
查看同屬一個備份組的各個路由器的狀態是否是一主多備(通常是一主一備)。如果發現有兩個或多個Master路由器,請參見“1.2.1 配置VRRP之後出現多個Master”;如果VRRP狀態有頻繁切換的情況,請參見“1.2.2 VRRP路由器狀態不穩定”。
(2) 檢查互通性
檢查業務經過端口的配置信息,確定端口是否啟用802.1x,ACL規則,端口是否允許VRRP路由器所在VLAN通過。
使用命令display stp brief檢查業務經過端口的STP狀態,確定端口STP狀態是否正常,且端口STP狀態是否穩定。檢查端口是否因STP、RRPP、Smart-link或者LACP等協議而阻塞。
在確認vrrp ping-enable使能的情況下,檢查是否能ping通VRRP路由器的虛擬IP地址。vrrp ping-enable屬於全局配置,隻有在沒有配置VRRP備份組的情況下才能更改此配置。
(3) 檢查ARP和MAC地址表項學習情況
當網絡拓撲結構發生變化時,ARP表項和MAC地址表項可能無法及時更新,導致報文不能正常轉發。
依次檢查以下表項的正確性:
l 使用命令display arp檢查Master路由器上是否成功學習到內部網絡中主機的ARP表項。
l 檢查內部網絡中主機的ARP表項學習情況。內部網絡中主機學到的虛擬IP地址和MAC地址對應關係,應該與VRRP備份組配置的虛擬IP地址和MAC地址對應方式保持一致。即實MAC方式時,應為虛擬IP地址和Master路由器的接口MAC地址對應;虛MAC方式時,應為虛擬IP地址和VRRP備份組的虛擬MAC地址對應。
l 確認連接路由器的交換機的MAC地址表項情況,確認Master路由器的MAC(實MAC方式)或虛擬MAC地址(虛MAC方式)對應正確的交換機端口。
(4) 檢查三層互通
使用Ping功能,在業務的兩端進行互Ping,確定是否能夠Ping通。如果能夠Ping通,證明三層轉發沒有問題,需要檢查主機發送的業務報文是否正確。
(5) 檢查路由表項
如果不能ping通,檢查VRRP路由器的路由表項是否正確。是否配置了正確的靜態路由,以及路由協議是否工作正常。
(6) 檢查報文接收
通過打開IP報文調試開關,觀察TTL等字段信息,確定是否因為報文填充錯誤而被丟棄。
(1) VRRP狀態不穩定
請參見“1.2.1 配置VRRP之後出現多個Master”和“1.2.2 VRRP路由器狀態不穩定”中相應的問題解決過程。
(2) 端口配置、STP配置等故障
請更改trunk或hybrid端口上PVID配置,刪除無用的ACL規則、802.1x配置,更改STP優先級等配置,保證二層互通。
(3) 路由問題
在設備上正確配置靜態路由或動態路由協議。
(4) ARP學習問題
請參照《ARP故障處理手冊》。
(5) 報文發送和接收問題
確認是否發送的業務報文有誤。如果無誤,請聯係技術支持人員。
VRRP備份組中隻存在一個處於Master狀態的路由器,但是主機無法ping通該VRRP備份組的虛擬IP地址。
(1) 確認主機能否ping通設備接口的實際IP地址。
(2) 通過display vrrp命令,查看“Virtual IP Ping”字段,確認備份組的虛擬IP地址能否被ping通。
(3) 如果在vrrp ping-enable使能的條件下不能ping通,輸入display ip routing-table命令查看是否有VRRP虛擬IP地址對應的主機路由。
(1) 如果無法ping通接口的實際IP地址,請確認鏈路連接是否正常,報文轉發是否正常,解決方法請參見“1.2.1 配置VRRP之後出現多個Master”。
(2) 如果display vrrp的顯示信息如下,需要執行vrrp ping-enable命令使備份組的虛擬IP地址可以被ping通。在係統視圖下輸入vrrp ping-enable命令。
<sysname> display vrrp
IPv4 Standby Information:
Run Method : VIRTUAL-MAC
Virtual IP Ping : Disable
The total number of the virtual routers: 1
Interface VRID State Run Adver. Auth Virtual
Pri Time Type IP
---------------------------------------------------------------------
GE0/0 1 Master 155 1 NONE 192.168.1.1
& 說明:
vrrp ping-enable命令隻有在沒有創建VRRP備份組的情況下才允許配置。
(3) 如果通過上述步驟不能確定問題,請檢查路由表中VRRP虛擬IP地址對應的路由。如果路由表中沒有虛擬IP地址對應的路由,請通過靜態路由或動態路由協議添加。檢查對應的主機路由是否存在。如果不存在,說明是VRRP和路由的配合出現了問題,請聯係技術支持人員。
<Sysname> display ip routing-table
Routing Tables: Public
Destinations : 5 Routes : 5
Destination/Mask Proto Pre Cost NextHop Interface
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
172.1.0.0/16 Static 60 0 192.168.1.2 GE0/0
192.168.1.0/24 Direct 0 0 192.168.1.1 GE0/0
192.168.1.1/32 Direct 0 0 127.0.0.1 InLoop0
配置VRRP監視某鏈路,當該鏈路處於down狀態時對端VRRP沒有切換成為Master;或者鏈路處於up狀態時,本地VRRP優先級降低。
(1) 通過display vrrp verbose命令查看本地VRRP的運行優先級是否按預期降低。
(2) 檢查VRRP的配置是否正確。如果VRRP不是直接監視接口,而是監視Track項(當前支持BFD和NQA兩種探測協議),Master監視自己的上行鏈路時,需要通過vrrp vrid track reduced命令配置降低的優先級額度;Backup監視Master狀態時,需要通過vrrp vrid track switchover命令配置Backup路由器工作在switchover模式。
(3) 如果監視接口之後VRRP優先級始終降低,請查看所監視的鏈路協議狀態。
(1) 如果優先級已降低,但是對端沒有切換,說明優先級配置不合理。通過命令行增大優先級降低的幅度,保證本地VRRP優先級降低之後,低於對端的優先級。如果是監視Track項的模式配置錯誤,則需要更改配置;
(2) 對於不同的監視接口類型,關注的鏈路層協議類型也有所不同。確保VRRP監視了正確的協議。對於上層協議來說,如果是IPv4版本的VRRP,應該監視鏈路的IPv4協議狀態;如果是IPv6版本的VRRP,則應該監視鏈路的IPv6協議狀態。對於監視Track項的情況,確認監視項的狀態。
圖1-1 故障診斷流程圖
在接口視圖下執行display this命令,觀察兩端配置是否對稱、優先級設置(包括優先級配置和監視接口降低值)是否合理。VRRP要求組成虛擬路由器的多個路由器必須配置一致,即要求虛擬IP地址、VRRP報文廣播間隔時間、認證方式和認證字的配置必須相同。此外,設備上能夠支持的虛MAC下發的數目有規格限製。一台設備上處於Master狀態的VRRP備份組數目超過了該規格限製後,會導致部分虛擬MAC地址無法下發,相應的備份組回退到Initialize狀態。
檢查端口配置(VLAN配置、802.1x、STP狀態等),ping VRRP所在接口實IP地址,觀察是否能夠ping通。檢查互連端口的配置情況,如果是trunk或者hybrid端口,要確定端口PVID是否一致,是否允許VRRP備份組所在VLAN通過,端口是否配置802.1x等協議。使用命令display stp brief查看互連端口STP狀態是否正常。檢查端口是否因為RRPP、Smart-link或者LACP等協議而阻塞。
打開VRRP報文調試開關,檢查報文在指定接口的收發是否正常。
可以打開以太網報文調試開關debugging ethernet packet和IP報文調試開關debugging ip packet配合檢查(以太網報文的目的MAC是VRRP的組播MAC地址0100-5e00-0012,VRRP報文的IP協議號為112)。如果報文沒有到達入端口,請檢查對端信息。
在接入交換機上檢查ARP表項和MAC表項(注意MAC地址和端口以及VLAN的對應關係)是否正確,在各網絡主機上檢查VRRP虛擬IP地址對應的ARP表項是否正確。
如果出現Master不能ping通的情況,在vrrp ping-enable使能前提下,檢查VRRP的Master路由器上虛擬IP地址對應的主機路由是否存在。如果出現轉發問題,需要檢查轉發的路由。出現路由故障則需要借助路由故障處理手段檢查路由協議是否正常運作,配置的靜態路由是否正確。
使用display cpu-usage命令查看設備的CPU占用率。關閉不必要的業務,以降低CPU的利用率。
圖1-2 VRRP主備切換引起網絡中斷
如圖1-2所示,Router A和Router B上分別配置50個采用虛MAC方式的VRRP備份組。Router A為50個備份組的Master路由器,Router B為Backup路由器。Switch上虛MAC地址對應的端口為Ethernet1/0。快速shutdown,並undo shutdown接口Ethernet1/0,穩定後發現個別虛MAC地址對應的端口為Ethernet1/1,而不是Ethernet1/0。
查看Switch的MAC地址表項,發現VRRP路由器的虛擬MAC地址對應的端口是Ethernet1/1,即切換後的Backup路由器Router B所連接的端口。
l 問題原因可能是Router A切換到Master之後發送免費ARP沒有生效。所以,首先確認路由器Router A是否發送了免費ARP。通過debugging arp packet命令打開Router A的ARP報文調試開關,重現切換過程,發現Router A切換到Master時發送了免費ARP。
l 問題原因還可能是Switch的MAC地址表項沒有更新。由於配置較多VRRP備份組,會同時發送大量免費ARP,超出了Switch的處理能力,導致部分ARP沒有生效。減少備份組的數量,重現切換過程,該問題得到解決。
圖1-3 接口down引起網絡兩次流量中斷
如圖1-3所示,Router A和Router B組成VRRP備份組,Router A優先級較高,作為Master正常運行。配置Router A監視連接上行鏈路接口Ethernet1/1。在Router A、Router B和Router C上運行OSPF協議。
在Switch上進行ping Router C的操作,同時在Router A的接口Ethernet1/1上執行shutdown命令。
<Switch> ping 100.100.100.100
Reply from 100.100.100.100: bytes=56 Sequence=188 ttl=254 time=3 ms
Reply from 100.100.100.100: bytes=56 Sequence=189 ttl=254 time=2 ms
Reply from 100.100.100.100: bytes=56 Sequence=190 ttl=254 time=2 ms
Request time out
Request time out
Reply from 100.100.100.100: bytes=56 Sequence=193 ttl=254 time=3 ms
Request time out
Reply from 100.100.100.100: bytes=56 Sequence=195 ttl=254 time=3 ms
Reply from 100.100.100.100: bytes=56 Sequence=196 ttl=254 time=2 ms
當接口Ethernet1/1由up變成down時,Router A降低優先級,Router B迅速切換為Master。理論上,隻應在接口down到VRRP的主備切換完成之間出現一次流量中斷,但實際卻出現了兩次流量中斷。
(1) 打開VRRP報文和狀態轉換的調試信息開關,重現上述問題。沒有出現VRRP狀態的震蕩。從Master監視接口down引起的優先級降低,到立刻發送優先級較低的通告報文,再到Backup路由器迅速切換成Master以及發送免費ARP都完全正常。
(2) 查看Switch上ARP的表項,檢查VRRP虛擬IP地址對應的出接口,檢查各個端口的STP的狀態,確認不存在問題。
(3) 檢查Router C上接收報文情況。通過調試信息發現Router C接收報文隻出現一次中斷。很顯然,Router C上看到的中斷應該是Router A的接口Ethernet1/1鏈路故障導致Router A轉發的報文沒有送達Router C。由此可以判斷,另一次中斷是Router B已經將報文送達Router C,但是Router C的回應報文沒有送達Switch導致。
(4) 查看Router C上的路由信息。由於使用了OSPF協議,查看OSPF路由信息。
<RouterC> display ospf routing
OSPF Process 1 with Router ID 5.5.5.30
Routing Tables
Routing for Network
Destination Cost Type NextHop AdvRouter Area
100.100.100.100/32 0 Stub 100.100.100.100 5.5.5.30 0.0.0.0
5.5.5.0/24 2 Transit 2.2.2.2 10.10.10.2 0.0.0.0
5.5.5.0/24 2 Transit 10.10.10.2 10.10.10.2 0.0.0.0
2.2.2.0/24 1 Transit 2.2.2.1 5.5.5.10 0.0.0.0
10.10.10.0/24 1 Transit 10.10.10.1 5.5.5.30 0.0.0.0
Total Nets: 5
Intra Area: 5 Inter Area: 0 ASE: 0 NSSA: 0
從OSPF路由信息中可以看出,存在兩條到5.5.5.0/24網段的等價路由,其中一條的下一跳指向2.2.2.2(Router A),另一條指向10.10.10.2(Router B)。
由於存在這兩條等價路由,當Router C回應報文時,依照負載分擔原則,交替從接口Ethernet1/1和Ethernet1/2進行轉發。當Router A的接口Ethernet1/1出現故障,VRRP主備切換完成之後有一段時間這兩條等價路由還同時存在(OSPF還未能刪除到Router A的路由),導致報文仍然交替轉發,出現流量中斷。
由此可見,出現兩次流量中斷的原因是OSPF發現這兩條等價路由的變化需要一定時間。可以采取配置一條指向Router B的靜態路由的方式來避免此問題。
l debugging vrrp packet
l debugging vrrp ipv6 packet
l debugging vrrp state
l debugging vrrp ipv6 state
Copyright ©2008 杭州華三通信技術有限公司 版權所有,保留一切權利。
非經本公司書麵許可,任何單位和個人不得擅自摘抄、複製本文檔內容的部分或全部,並不得以任何形式傳播。
本文檔中的信息可能變動,恕不另行通知。