載分擔(dān)配置實(shí)踐:雙網(wǎng)關(guān)冗余與故障切換)
在園區(qū)網(wǎng)絡(luò)或企業(yè)分支網(wǎng)絡(luò)中網(wǎng)關(guān)設(shè)備一旦故障所有依賴(lài)該網(wǎng)關(guān)下行的終端都會(huì)斷網(wǎng)這是典型的“單點(diǎn)故障”問(wèn)題。而采用 VRRP 做網(wǎng)關(guān)冗余時(shí)如果只是簡(jiǎn)單地把兩臺(tái)設(shè)備配成一主一備備用設(shè)備常年閑置鏈路利用率又太低。本文將圍繞“配置 VRRP 實(shí)現(xiàn)多 VLAN 的鏈路負(fù)載分擔(dān)”展開(kāi)先帶你理解 VRRP 的工作原理和“負(fù)載分擔(dān)”的實(shí)現(xiàn)方式再給出一個(gè)可以在 eNSP 中完整復(fù)現(xiàn)的多 VLAN 場(chǎng)景實(shí)驗(yàn)包含 VRRP 組規(guī)劃、交換機(jī) VLAN/Trunk 配置、路由器子接口配置、驗(yàn)證與故障切換測(cè)試最后整理常見(jiàn)雙主、搶占、通信異常等問(wèn)題的排查思路。內(nèi)容偏實(shí)踐適合正在學(xué)習(xí)華為設(shè)備、準(zhǔn)備網(wǎng)絡(luò)工程師認(rèn)證或在企業(yè)網(wǎng)中做網(wǎng)關(guān)冗余改造的讀者。1. 背景與核心概念1.1 什么是 VRRPVRRPVirtual Router Redundancy Protocol虛擬路由器冗余協(xié)議是一種容錯(cuò)協(xié)議。它的核心作用是把網(wǎng)絡(luò)中兩臺(tái)或多臺(tái)路由器“編成一個(gè)組”對(duì)外提供一個(gè)虛擬 IP 作為終端網(wǎng)關(guān)。終端只會(huì)感知到這個(gè)虛擬 IP而不會(huì)關(guān)心真正轉(zhuǎn)發(fā)流量的是哪一臺(tái)物理設(shè)備。在這個(gè)虛擬路由器組中Master 路由器負(fù)責(zé)轉(zhuǎn)發(fā)終端發(fā)往網(wǎng)關(guān)的流量同時(shí)周期性發(fā)送 VRRP 通告報(bào)文。Backup 路由器監(jiān)聽(tīng) Master 的通告報(bào)文處于待命狀態(tài)。Virtual IP終端配置的網(wǎng)關(guān)地址由 Master 和 Backup 共同“虛擬”出來(lái)。當(dāng) Master 出現(xiàn)故障、鏈路中斷或優(yōu)先級(jí)變化時(shí)Backup 會(huì)在短暫的時(shí)間后切換為 Master繼續(xù)承擔(dān)網(wǎng)關(guān)轉(zhuǎn)發(fā)工作。對(duì)終端來(lái)說(shuō)網(wǎng)關(guān) IP 沒(méi)有變化ARP 緩存也會(huì)在虛擬 MAC 切換后得到刷新因此用戶(hù)幾乎感知不到切換過(guò)程。1.2 為什么需要 VRRP在一個(gè)沒(méi)有冗余設(shè)計(jì)的網(wǎng)絡(luò)中終端默認(rèn)網(wǎng)關(guān)通常指向一臺(tái)路由器或三層交換機(jī)。這臺(tái)設(shè)備一旦斷電、重啟、板卡故障或上行鏈路中斷所有終端將無(wú)法訪問(wèn)外部網(wǎng)絡(luò)。雖然可以通過(guò)堆疊、鏈路聚合等方式提高可靠性但如果設(shè)備本身沒(méi)有堆疊能力或者轉(zhuǎn)發(fā)節(jié)點(diǎn)不在同一臺(tái)設(shè)備上就需要在三層網(wǎng)關(guān)層面做冗余。VRRP 解決的核心問(wèn)題就是“網(wǎng)關(guān)冗余”。它不要求兩臺(tái)設(shè)備型號(hào)相同不要求運(yùn)行相同路由協(xié)議甚至不需要兩臺(tái)設(shè)備都在同一個(gè)廣播域內(nèi)直連只要它們能夠通過(guò)二層網(wǎng)絡(luò)互通即可。加上 VRRP 配置簡(jiǎn)單、對(duì)現(xiàn)有網(wǎng)絡(luò)結(jié)構(gòu)改動(dòng)小所以成為園區(qū)網(wǎng)中部署最廣泛的網(wǎng)關(guān)冗余協(xié)議之一。1.3 什么是鏈路負(fù)載分擔(dān)很多人會(huì)把“負(fù)載分擔(dān)”理解成流量逐包或逐流的負(fù)載均衡也就是一條流量同時(shí)均勻分?jǐn)偟絻蓷l鏈路上。這種技術(shù)在華為設(shè)備上通常稱(chēng)為負(fù)載均衡或負(fù)載分擔(dān)常見(jiàn)于等價(jià)路由ECMP和鏈路聚合中。而 VRRP 本身的模型是“一主一備”或“一主多備”。在默認(rèn)配置下備用路由器不承載流量形成了一定程度上的資源浪費(fèi)。為了提升鏈路和設(shè)備利用率可以利用“多個(gè) VRRP 組”來(lái)實(shí)現(xiàn)另一種負(fù)載分擔(dān)將 VLAN 10 的虛擬網(wǎng)關(guān)綁定到 VRRP 組 1由路由器 A 做 Master。將 VLAN 20 的虛擬網(wǎng)關(guān)綁定到 VRRP 組 2由路由器 B 做 Master。當(dāng) VLAN 10 流量到達(dá)路由器 A 時(shí)VLAN 20 流量到達(dá)路由器 B兩臺(tái)設(shè)備同時(shí)工作。這種方式的本質(zhì)是把“網(wǎng)關(guān)層面的主備”轉(zhuǎn)化為“不同 VLAN 之間的互為主備”所以它分擔(dān)的是不同用戶(hù)群經(jīng)過(guò)網(wǎng)關(guān)的流量而不是單條數(shù)據(jù)流的拆分。本文標(biāo)題里說(shuō)的“多 VLAN 的鏈路負(fù)載分擔(dān)”指的就是這種通過(guò)多 VRRP 組實(shí)現(xiàn)的雙設(shè)備同時(shí)轉(zhuǎn)發(fā)方案。1.4 VRRP 負(fù)載分擔(dān)與普通負(fù)載均衡的區(qū)別這里需要特別區(qū)分一個(gè)容易混淆的概念。對(duì)比維度VRRP 負(fù)載分擔(dān)等價(jià)路由 / 鏈路聚合負(fù)載均衡實(shí)現(xiàn)層三層網(wǎng)關(guān)冗余協(xié)議三層路由 / 二層鏈路技術(shù)轉(zhuǎn)發(fā)方式不同 VLAN/網(wǎng)段的流量走不同 Master同一條路由下一跳哈希分配到多條鏈路可靠性主備互為備份故障可切換單鏈路故障后重新哈希配置位置網(wǎng)關(guān)接口或子接口上路由表、鏈路聚合組內(nèi)適用場(chǎng)景網(wǎng)關(guān)冗余同時(shí)兼顧設(shè)備利用率多條鏈路帶寬聚合、流量均衡因此本文的“負(fù)載分擔(dān)”不是 VRRP 的默認(rèn)行為而是利用多個(gè) VRRP 組規(guī)劃出來(lái)的結(jié)果。理解了這一點(diǎn)后面的拓?fù)浜团渲镁蜁?huì)更有針對(duì)性。2. 負(fù)載分擔(dān)的設(shè)計(jì)思路與需求分析2.1 典型業(yè)務(wù)場(chǎng)景假設(shè)某公司內(nèi)部網(wǎng)絡(luò)按部門(mén)劃分了兩個(gè) VLANVLAN 10辦公區(qū)終端網(wǎng)段 192.168.10.0/24。VLAN 20研發(fā)區(qū)終端網(wǎng)段 192.168.20.0/24。為了提高可靠性網(wǎng)絡(luò)管理員準(zhǔn)備部署兩臺(tái)路由器作為終端網(wǎng)關(guān)而不是只使用一臺(tái)。如果只配一個(gè) VRRP 組比如虛擬 IP 為 192.168.10.254那么無(wú)論終端屬于哪個(gè) VLAN流量都會(huì)匯聚到 Master 設(shè)備上。結(jié)果是一臺(tái)路由器 CPU 和鏈路繁忙。另一臺(tái)路由器雖然在線(xiàn)卻沒(méi)有任何轉(zhuǎn)發(fā)任務(wù)。一旦 Master 設(shè)備發(fā)生故障備用設(shè)備接管但在切換瞬間可能存在丟包。更合理的做法是為 VLAN 10 和 VLAN 20 分別創(chuàng)建獨(dú)立的 VRRP 組并讓兩臺(tái)路由器分別成為不同 VLAN 的主網(wǎng)關(guān)。這樣兩臺(tái)路由器都在工作即使其中一臺(tái)故障另一臺(tái)也能同時(shí)接管兩個(gè) VLAN 的網(wǎng)關(guān)不影響整個(gè)網(wǎng)絡(luò)的連通性。2.2 負(fù)載分擔(dān)后的流量路徑以雙路由器雙 VLAN 場(chǎng)景為例配置完成后流量走向大致如下PC1 (VLAN 10) - 虛擬網(wǎng)關(guān) 192.168.10.254 - R1 (Master of VRID 1) PC2 (VLAN 20) - 虛擬網(wǎng)關(guān) 192.168.20.254 - R2 (Master of VRID 2)當(dāng) R1 故障或下行鏈路斷開(kāi)時(shí)PC1 (VLAN 10) - 虛擬網(wǎng)關(guān) 192.168.10.254 - R2 (Backup - Master of VRID 1)當(dāng) R2 故障或下行鏈路斷開(kāi)時(shí)R1 也會(huì)接管 VRID 2 的轉(zhuǎn)發(fā)任務(wù)。整個(gè)過(guò)程不需要修改終端 IP 和網(wǎng)關(guān)配置這也是 VRRP 負(fù)載分擔(dān)方案在工程中受歡迎的重要原因。2.3 設(shè)計(jì)目標(biāo)在動(dòng)手配置前先明確幾個(gè)設(shè)計(jì)目標(biāo)第一冗余性。任意一臺(tái)路由器故障另一個(gè) VLAN 的流量仍能通過(guò)另一臺(tái)路由器轉(zhuǎn)發(fā)且兩個(gè) VLAN 都不會(huì)長(zhǎng)時(shí)間中斷。第二負(fù)載均衡。正常情況下 VLAN 10 流量走 R1VLAN 20 流量走 R2避免單臺(tái)設(shè)備或單條鏈路成為瓶頸。第三配置可驗(yàn)證。所有配置均可通過(guò)display vrrp、ping等命令驗(yàn)證能夠模擬主備切換并觀察結(jié)果。有了這些目標(biāo)接下來(lái)的規(guī)劃和配置就不會(huì)跑偏。3. 拓?fù)湟?guī)劃與地址設(shè)計(jì)3.1 實(shí)驗(yàn)拓?fù)湔f(shuō)明本文實(shí)驗(yàn)基于華為 eNSP 模擬器完成設(shè)備類(lèi)型為 AR2220 路由器和 S5700 交換機(jī)。命令在 V2/V3 系列版本上均可使用如果你使用的是不同版本個(gè)別命令可能略有差異但配置思路完全一致。拓?fù)溥B接方式路由器 R1 的 GE0/0/0 接口連接交換機(jī) SW1 的 GE0/0/24 接口。路由器 R2 的 GE0/0/0 接口連接交換機(jī) SW1 的 GE0/0/23 接口。交換機(jī) SW1 的 GE0/0/1 接口連接 PC1PC1 屬于 VLAN 10。交換機(jī) SW1 的 GE0/0/2 接口連接 PC2PC2 屬于 VLAN 20。R1 和 R2 之間不額外連接互聯(lián)鏈路因?yàn)閮烧咄ㄟ^(guò) SW1 的 Trunk 鏈路已經(jīng)是二層互通。R1 (AR2220) --------- Trunk --------- SW1 (S5700) GE0/0/0 - GE0/0/24 |-- GE0/0/1 - PC1 (VLAN 10) R2 (AR2220) --------- Trunk ----------|-- GE0/0/2 - PC2 (VLAN 20) GE0/0/0 - GE0/0/233.2 VLAN 規(guī)劃VLAN ID名稱(chēng)用途接口10OFFICE辦公區(qū)SW1 GE0/0/120RD研發(fā)區(qū)SW1 GE0/0/23.3 IP 地址規(guī)劃設(shè)備接口IP 地址所屬 VLANPC1-192.168.10.1/24網(wǎng)關(guān) 192.168.10.254VLAN 10PC2-192.168.20.1/24網(wǎng)關(guān) 192.168.20.254VLAN 20R1GE0/0/0.10192.168.10.251/24VLAN 10R1GE0/0/0.20192.168.20.252/24VLAN 20R2GE0/0/0.10192.168.10.252/24VLAN 10R2GE0/0/0.20192.168.20.251/24VLAN 203.4 VRRP 組規(guī)劃VRRP 組虛擬 IP關(guān)聯(lián) VLANMaster 設(shè)備Backup 設(shè)備VRID 1192.168.10.254VLAN 10R1優(yōu)先級(jí) 120R2優(yōu)先級(jí) 100VRID 2192.168.20.254VLAN 20R2優(yōu)先級(jí) 120R1優(yōu)先級(jí) 100可以看到兩臺(tái)路由器各自在一個(gè) VRRP 組中是 Master在另一個(gè) VRRP 組中是 Backup。這就是“負(fù)載分擔(dān)”的核心設(shè)計(jì)讓兩臺(tái)設(shè)備都有流量可轉(zhuǎn)發(fā)同時(shí)又互為備份。4. VRRP 核心原理拆解4.1 VRRP 的角色與狀態(tài)VRRP 組中的設(shè)備有三種角色Master負(fù)責(zé)轉(zhuǎn)發(fā)目的 MAC 為虛擬 MAC 的報(bào)文并周期發(fā)送 VRRP 通告報(bào)文。Backup監(jiān)聽(tīng) Master 的通告報(bào)文當(dāng) Master 失效時(shí)切換為 Master。Initialize設(shè)備剛啟動(dòng)、接口未就緒或配置未完成時(shí)的初始狀態(tài)不參與選舉。協(xié)議狀態(tài)機(jī)從 Initialize 開(kāi)始當(dāng)接口 UP、VRRP 配置生效后進(jìn)入 Backup 或 Master。如果交換機(jī)上某個(gè) VLANIF 接口處于 DOWN 狀態(tài)VRRP 也會(huì)進(jìn)入 Initialize這是排查時(shí)需要注意的細(xì)節(jié)。4.2 優(yōu)先級(jí)與搶占機(jī)制VRRP 組內(nèi)設(shè)備的優(yōu)先級(jí)范圍是 1 到 254默認(rèn)值為 100。優(yōu)先級(jí)最高的設(shè)備會(huì)成為 Master。如果一臺(tái) Backup 設(shè)備的優(yōu)先級(jí)高于當(dāng)前 Master且開(kāi)啟了搶占Preempt Mode那么該 Backup 會(huì)立即成為新的 Master。這樣做的目的是讓網(wǎng)絡(luò)在故障恢復(fù)后能自動(dòng)回到最優(yōu)路徑上。但搶占也可能帶來(lái)問(wèn)題。比如設(shè)備剛重啟、路由協(xié)議還沒(méi)收斂時(shí)如果立即搶占可能造成流量轉(zhuǎn)發(fā)異常。因此生產(chǎn)中通常建議開(kāi)啟搶占并配置“搶占延遲”比如延遲 20 秒再搶占給設(shè)備留出收斂時(shí)間。華為設(shè)備上的相關(guān)命令如下# 開(kāi)啟搶占模式默認(rèn)開(kāi)啟 vrrp vrid 1 preempt-mode enable # 配置搶占延遲 20 秒 vrrp vrid 1 preempt-mode timer delay 20不同版本命令可能稍有差異比如部分低版本使用preempt-mode timer delay或preempt-mode直接開(kāi)啟配置前建議先確認(rèn)當(dāng)前設(shè)備版本。4.3 虛擬 MAC 地址的作用VRRP 組會(huì)生成一個(gè)虛擬 MAC 地址格式為00-00-5E-00-01-{VRID}。對(duì)于 VRID 1虛擬 MAC 為00-00-5E-00-01-01對(duì)于 VRID 11虛擬 MAC 為00-00-5E-00-01-0B。終端發(fā)出 ARP 請(qǐng)求詢(xún)問(wèn)網(wǎng)關(guān) IP 對(duì)應(yīng)的 MAC 時(shí)Master 會(huì)使用虛擬 MAC 回復(fù)。這樣即使 Master 切換虛擬 IP 和虛擬 MAC 關(guān)系不變終端 ARP 緩存也不會(huì)失效因此切換過(guò)程對(duì)終端更友好。在 eNSP 中可以通過(guò)在終端上執(zhí)行arp -a或ping網(wǎng)關(guān)后查看 ARP 緩存觀察網(wǎng)關(guān) MAC 是否為虛擬 MAC。4.4 多 VRRP 組如何實(shí)現(xiàn)負(fù)載分擔(dān)VRRP 協(xié)議本身不會(huì)自動(dòng)做負(fù)載分擔(dān)它是通過(guò)在同一接口上創(chuàng)建多個(gè) VRRP 組來(lái)實(shí)現(xiàn)的。以本文場(chǎng)景為例R1 和 R2 的 GE0/0/0 接口上都開(kāi)啟了子接口在子接口GE0/0/0.10上創(chuàng)建 VRID 1虛擬 IP 為 VLAN 10 的網(wǎng)關(guān)。在子接口GE0/0/0.20上創(chuàng)建 VRID 2虛擬 IP 為 VLAN 20 的網(wǎng)關(guān)。將 VRID 1 的 Master 設(shè)置為 R1VRID 2 的 Master 設(shè)置為 R2。這樣做的結(jié)果是不同 VLAN 的終端通過(guò)各自的 VRRP 組選擇到了不同的活躍網(wǎng)關(guān)。VLAN 10 的流量走 R1VLAN 20 的流量走 R2兩條網(wǎng)關(guān)鏈路都處于工作狀態(tài)實(shí)現(xiàn)“鏈路負(fù)載分擔(dān)”。需要注意的是如果 VLAN 數(shù)量很多也可以創(chuàng)建多個(gè) VRRP 組并交叉分布。比如 VLAN 10、30 走 R1VLAN 20、40 走 R2分配原則以流量模型和鏈路帶寬為依據(jù)。4.5 雙主問(wèn)題VRRP 最典型的故障是“雙主”也就是同一個(gè) VRRP 組里同時(shí)出現(xiàn)兩個(gè) Master。此時(shí)網(wǎng)絡(luò)會(huì)震蕩終端網(wǎng)關(guān)時(shí)而可達(dá)、時(shí)不可達(dá)。產(chǎn)生雙主的原因通常是Master 和 Backup 之間的 VRRP 通告報(bào)文無(wú)法到達(dá)。比如交換機(jī) Trunk 沒(méi)有放通對(duì)應(yīng) VLAN。子接口沒(méi)有配置arp broadcast enable。兩臺(tái)路由器之間的二層鏈路中斷。防火墻或 ACL 過(guò)濾了 VRRP 組播報(bào)文。排查雙主時(shí)重點(diǎn)確認(rèn)兩臺(tái)設(shè)備之間是否能正常通信以及 VRRP 通告報(bào)文是否被丟棄。后面的常見(jiàn)問(wèn)題章節(jié)會(huì)詳細(xì)介紹排查方法。5. 完整配置實(shí)戰(zhàn)5.1 交換機(jī) SW1 配置交換機(jī)部分主要負(fù)責(zé) VLAN 劃分和 Trunk 放通。先把 VLAN 創(chuàng)建出來(lái)再把下行接口劃入對(duì)應(yīng) VLAN最后把連接兩臺(tái)路由器的接口配置為 Trunk 并放通 VLAN 10 和 20。system-view sysname SW1 # 創(chuàng)建 VLAN vlan batch 10 20 # 連接 PC1 的接口劃入 VLAN 10 interface GigabitEthernet0/0/1 port link-type access port default vlan 10 quit # 連接 PC2 的接口劃入 VLAN 20 interface GigabitEthernet0/0/2 port link-type access port default vlan 20 quit # 連接 R2 的 Trunk 口 interface GigabitEthernet0/0/23 port link-type trunk port trunk allow-pass vlan 10 20 quit # 連接 R1 的 Trunk 口 interface GigabitEthernet0/0/24 port link-type trunk port trunk allow-pass vlan 10 20 quitport trunk allow-pass vlan 10 20意思是該 Trunk 口只放行 VLAN 10 和 VLAN 20 的報(bào)文。默認(rèn)交換機(jī) Trunk 口只放行 VLAN 1如果沒(méi)有放行對(duì)應(yīng) VLANVRRP 報(bào)文和終端業(yè)務(wù)報(bào)文都會(huì)丟失。5.2 路由器 R1 配置R1 的配置重點(diǎn)有兩個(gè)在物理接口上創(chuàng)建子接口終結(jié)對(duì)應(yīng)的 VLAN Tag。在子接口上創(chuàng)建 VRRP 組并配置虛擬 IP。首先創(chuàng)建 VLAN 10 對(duì)應(yīng)的子接口system-view sysname R1 # 進(jìn)入物理接口 GE0/0/0它是連接 SW1 的接口 interface GigabitEthernet0/0/0 quit # 子接口 .10 用于終結(jié) VLAN 10 interface GigabitEthernet0/0/0.10 dot1q termination vid 10 ip address 192.168.10.251 255.255.255.0 arp broadcast enable # VRRP 組 1虛擬 IP 等于 VLAN10 的網(wǎng)關(guān) vrrp vrid 1 virtual-ip 192.168.10.254 # 設(shè)置高優(yōu)先級(jí)讓 R1 成為 Master vrrp vrid 1 priority 120 # 開(kāi)啟搶占延遲防止頻繁切換 vrrp vrid 1 preempt-mode timer delay 20 quit接著創(chuàng)建 VLAN 20 對(duì)應(yīng)的子接口R1 在這個(gè) VRRP 組里做 Backupinterface GigabitEthernet0/0/0.20 dot1q termination vid 20 ip address 192.168.20.252 255.255.255.0 arp broadcast enable # VRRP 組 2虛擬 IP 等于 VLAN20 的網(wǎng)關(guān) vrrp vrid 2 virtual-ip 192.168.20.254 # 不配置 priority保持默認(rèn) 100讓 R2 成為 Master # 如果需要顯式指定也可以配置 priority 100 vrrp vrid 2 preempt-mode timer delay 20 quit這里需要解釋一個(gè)細(xì)節(jié)為什么不把a(bǔ)rp broadcast enable放在物理接口上在華為路由器子接口上默認(rèn)不處理廣播報(bào)文。VRRP 通告報(bào)文是一種組播報(bào)文子接口終結(jié) VLAN 后必須允許廣播/組播處理否則 VRRP 鄰居關(guān)系無(wú)法建立。arp broadcast enable的作用就是為了讓子接口能夠處理收到的 ARP 廣播和 VRRP 組播報(bào)文。這一步在 eNSP 中尤其容易遺漏。5.3 路由器 R2 配置R2 的配置邏輯與 R1 完全對(duì)稱(chēng)只是優(yōu)先級(jí)分配相反VRID 1 保持默認(rèn)優(yōu)先級(jí)做 BackupVRID 2 配置高優(yōu)先級(jí)做 Master。system-view sysname R2 interface GigabitEthernet0/0/0 quit # 子接口 .10VLAN 10R2 在 VRID 1 中做 Backup interface GigabitEthernet0/0/0.10 dot1q termination vid 10 ip address 192.168.10.252 255.255.255.0 arp broadcast enable vrrp vrid 1 virtual-ip 192.168.10.254 vrrp vrid 1 preempt-mode timer delay 20 quit # 子接口 .20VLAN 20R2 在 VRID 2 中做 Master interface GigabitEthernet0/0/0.20 dot1q termination vid 20 ip address 192.168.20.251 255.255.255.0 arp broadcast enable vrrp vrid 2 virtual-ip 192.168.20.254 vrrp vrid 2 priority 120 vrrp vrid 2 preempt-mode timer delay 20 quit5.4 終端 PC 配置在 eNSP 中直接為 PC1、PC2 配置 IP 地址、掩碼和網(wǎng)關(guān)即可不需要其他協(xié)議配置。PC1IP 地址192.168.10.1子網(wǎng)掩碼255.255.255.0默認(rèn)網(wǎng)關(guān)192.168.10.254PC2IP 地址192.168.20.1子網(wǎng)掩碼255.255.255.0默認(rèn)網(wǎng)關(guān)192.168.20.2545.5 配置要點(diǎn)回顧總結(jié)一下整個(gè)配置過(guò)程的關(guān)鍵點(diǎn)有四個(gè)第一交換機(jī) Trunk 必須放通所有涉及 VLAN。如果漏掉 VLAN 20VRID 2 的 VRRP 報(bào)文就無(wú)法在 R1 和 R2 之間傳遞兩個(gè) VRRP 組都會(huì)異常。第二路由器子接口必須配置dot1q termination vid否則無(wú)法識(shí)別帶 VLAN Tag 的報(bào)文。第三子接口必須配置arp broadcast enable否則 VRRP 組播報(bào)文和終端 ARP 請(qǐng)求無(wú)法被處理。第四VRRP 虛擬 IP 必須與終端默認(rèn)網(wǎng)關(guān)一致否則終端雖然能學(xué)到網(wǎng)關(guān) MAC但數(shù)據(jù)包目的 IP 仍指向錯(cuò)誤的網(wǎng)段。6. 配置驗(yàn)證與故障切換測(cè)試6.1 查看 VRRP 狀態(tài)配置完成后在 R1 上執(zhí)行display vrrp可以看到 VRID 1 為 MasterVRID 2 為 Backup虛擬 IP 與規(guī)劃一致。display vrrp示例輸出GigabitEthernet0/0/0.10 | Virtual Router 1 State : Master Virtual IP : 192.168.10.254 Master IP : 192.168.10.251 Priority : 120 Preempt : YES Delay Time : 20s ...在 R2 上執(zhí)行display vrrp則應(yīng)該是 VRID 2 為 Master、VRID 1 為 Backup。如果兩邊顯示狀態(tài)不符合預(yù)期優(yōu)先檢查物理鏈路、Trunk 配置和子接口 ARP 配置。也可以使用display vrrp brief快速查看所有 VRRP 組的摘要信息display vrrp brief輸出里會(huì)列出接口、VRID、狀態(tài)、虛擬 IP 和主用 IP適合快速判斷是否出現(xiàn)雙主或狀態(tài)卡住的問(wèn)題。6.2 驗(yàn)證終端與網(wǎng)關(guān)的連通性在 PC1 上執(zhí)行 ping 命令驗(yàn)證 VLAN 10 終端能否訪問(wèn)虛擬網(wǎng)關(guān)ping 192.168.10.254在 PC2 上執(zhí)行ping 192.168.20.254如果能 ping 通說(shuō)明對(duì)應(yīng) VLAN 的 VRRP 組工作正常。如果不能 ping 通按順序檢查SW1 是否正確創(chuàng)建 VLAN 并劃分接口。兩臺(tái)路由器的子接口 IP 是否配置正確。子接口上是否配置了arp broadcast enable。Trunk 口是否放通了對(duì)應(yīng) VLAN。6.3 模擬 R1 故障接下來(lái)驗(yàn)證冗余切換能力。在 R1 上關(guān)閉連接 SW1 的物理接口system-view interface GigabitEthernet0/0/0 shutdown quit此時(shí) VRID 1 的 Master 變?yōu)?R2VLAN 10 的虛擬網(wǎng)關(guān)也由 R2 接管。在 PC1 上再次 ping 192.168.10.254正常情況下仍然可以 ping 通只是中間可能因?yàn)?R2 的 VRRP Master 切換觸發(fā)一次短暫的 ARP 刷新存在極少數(shù)丟包。驗(yàn)證完成后恢復(fù) R1 接口system-view interface GigabitEthernet0/0/0 undo shutdown quit由于 R1 在 VRID 1 中優(yōu)先級(jí)為 120且開(kāi)啟了搶占延遲等延遲時(shí)間結(jié)束后會(huì)重新成為 Master網(wǎng)絡(luò)自動(dòng)回到原有負(fù)載分擔(dān)狀態(tài)。6.4 模擬 R2 故障同樣可以在 R2 上關(guān)閉連接 SW1 的接口驗(yàn)證 R1 是否接管 VRID 2。關(guān)閉后R1 會(huì)同時(shí)成為 VRID 1 和 VRID 2 的 Master。在網(wǎng)絡(luò)規(guī)模不大時(shí)這種“單機(jī)兜底”完全可以滿(mǎn)足可靠性要求如果業(yè)務(wù)量很大這種狀態(tài)下可能出現(xiàn)帶寬瓶頸需要在設(shè)計(jì)階段就意識(shí)到這一點(diǎn)。6.5 負(fù)載分擔(dān)效果分析正常狀態(tài)下通過(guò)流量查看功能可以觀察到VLAN 10 終端訪問(wèn)外部網(wǎng)絡(luò)的報(bào)文會(huì)經(jīng)過(guò) R1。VLAN 20 終端訪問(wèn)外部網(wǎng)絡(luò)的報(bào)文會(huì)經(jīng)過(guò) R2。兩臺(tái)設(shè)備同時(shí)工作鏈路不再閑置。從協(xié)議角度看VRRP 組 1 和組 2 互不影響任何一組的主備切換都不會(huì)影響另一組的轉(zhuǎn)發(fā)。這也是多 VRRP 組負(fù)載分擔(dān)方案的最大優(yōu)勢(shì)。7. 常見(jiàn)問(wèn)題與排查思路VRRP 配置不難但在實(shí)際實(shí)驗(yàn)和生產(chǎn)環(huán)境中經(jīng)常遇到的問(wèn)題往往集中在幾個(gè)共性點(diǎn)上。問(wèn)題現(xiàn)象常見(jiàn)原因解決思路同一個(gè) VRRP 組出現(xiàn)兩個(gè) MasterVRRP 通告報(bào)文無(wú)法互通或中間設(shè)備過(guò)濾組播檢查 Trunk 放通、子接口 ARP 配置、中間安全策略VRRP 狀態(tài)一直為 Initialize物理接口或子接口 DOWN或配置未下發(fā)完整檢查接口狀態(tài)、子接口 VID 配置可以 ping 通虛擬 IP但 PC 無(wú)法上網(wǎng)缺少默認(rèn)路由或上網(wǎng)鏈路未配置檢查路由器上行路由和 NAT 配置子接口無(wú)法 ping 通對(duì)端缺少 arp broadcast enable在子接口下補(bǔ)充配置arp broadcast enable主備切換非常頻繁搶占延遲未配置或鏈路抖動(dòng)配置preempt-mode timer delay建議 20-60 秒終端 ARP 表里的網(wǎng)關(guān) MAC 不正確虛擬 MAC 學(xué)習(xí)錯(cuò)誤或中間交換機(jī) MAC 表異常檢查交換機(jī) MAC 表查看是否存在漂移配置后 VLAN 間無(wú)法通信交換機(jī)未創(chuàng)建 VLAN 或 Trunk 未放通在交換機(jī)上查看display vlan和display int trunk7.1 出現(xiàn)雙主怎么排查雙主是 VRRP 故障中最嚴(yán)重的現(xiàn)象。一旦出現(xiàn)兩個(gè) Master 都會(huì)回復(fù)終端的 ARP 請(qǐng)求終端 ARP 表會(huì)在兩個(gè) MAC 之間抖動(dòng)導(dǎo)致網(wǎng)絡(luò)時(shí)通時(shí)斷。排查步驟在 R1 和 R2 上分別執(zhí)行display vrrp確認(rèn)雙主現(xiàn)象。從 R1 ping R2 的物理接口直連 IP驗(yàn)證基礎(chǔ)二層連通性。查看 SW1 的 Trunk 配置確認(rèn) VLAN 10、20 已放通。檢查子接口下是否配置了arp broadcast enable。如果仍然無(wú)法解決使用display vrrp interface GigabitEthernet0/0/0.10查看 VRRP 收到的通告報(bào)文計(jì)數(shù)確認(rèn)報(bào)文是否到達(dá)。7.2 VRRP 狀態(tài)一直是 InitializeInitialize 狀態(tài)通常說(shuō)明 VRRP 組所在的接口沒(méi)有處于 UP 狀態(tài)??赡茉蚴俏锢斫涌跊](méi)有連接或線(xiàn)纜故障。子接口配置了dot1q termination vid但物理接口 DOWN。設(shè)備上沒(méi)有創(chuàng)建對(duì)應(yīng)的 VLAN。排查時(shí)先看display interface brief確認(rèn)物理接口狀態(tài)為 UP再檢查子接口是否綁定正確 VID。7.3 搶占導(dǎo)致頻繁切換沒(méi)有配置搶占延遲時(shí)如果物理鏈路出現(xiàn)短時(shí)間抖動(dòng)Backup 會(huì)立刻搶占造成不必要的切換。網(wǎng)絡(luò)規(guī)模越大路由收斂時(shí)間越長(zhǎng)頻繁切換的影響越明顯。解決辦法是在兩個(gè) VRRP 組的 Master 上配置搶占延遲vrrp vrid 1 preempt-mode timer delay 30延遲時(shí)間可以按業(yè)務(wù)容忍度設(shè)置。對(duì)丟包敏感的業(yè)務(wù)建議設(shè)置為 30 秒以上對(duì)切換時(shí)間要求高的場(chǎng)景需要結(jié)合 BFD 或接口監(jiān)視功能綜合設(shè)計(jì)。8. 工程落地最佳實(shí)踐8.1 規(guī)劃優(yōu)先先設(shè)計(jì)后配置多 VLAN 負(fù)載分擔(dān)方案的核心不是命令而是規(guī)劃。正式配置前建議先畫(huà)一張表明確每個(gè) VLAN 對(duì)應(yīng)哪個(gè) VRID、虛擬 IP 是多少、哪臺(tái)設(shè)備是 Master、優(yōu)先級(jí)是多少。否則 VLAN 一多很容易在優(yōu)先級(jí)和 VRID 上寫(xiě)錯(cuò)。規(guī)劃表可以按下面格式維護(hù)VLAN網(wǎng)段VRID虛擬網(wǎng)關(guān) IPR1 角色R2 角色10192.168.10.0/241192.168.10.254MasterBackup20192.168.20.0/242192.168.20.254BackupMaster8.2 合理設(shè)置優(yōu)先級(jí)與搶占優(yōu)先級(jí)建議根據(jù)設(shè)備性能和鏈路帶寬來(lái)分配。默認(rèn) 100 表示平等配置 120 或更高表示更優(yōu)。不要讓兩臺(tái)設(shè)備優(yōu)先級(jí)完全一致否則 VRRP 的 Master 選舉可能會(huì)不穩(wěn)定。生產(chǎn)環(huán)境建議開(kāi)啟搶占但必須配置搶占延遲。不要為了“切換快”關(guān)閉搶占這樣故障恢復(fù)后流量可能長(zhǎng)期停留在備用設(shè)備上無(wú)法回到最優(yōu)路徑。8.3 注意二層網(wǎng)絡(luò)邊界VRRP 要求 Master 和 Backup 之間二層互通。如果兩臺(tái)路由器中間跨越了三層設(shè)備或交換機(jī) Trunk 過(guò)濾了 VRRP 組播就會(huì)出現(xiàn)雙主或狀態(tài)異常。在接入交換機(jī)上Trunk 口要明確放通涉及 VRRP 的 VLANinterface GigabitEthernet0/0/24 port link-type trunk port trunk allow-pass vlan 10 20不建議使用port trunk allow-pass vlan all這種方式雖然配置簡(jiǎn)單但會(huì)讓 VLAN 廣播域無(wú)謂擴(kuò)大增加廣播風(fēng)暴風(fēng)險(xiǎn)。8.4 子接口場(chǎng)景不要漏掉 arp broadcast enable在 eNSP 和真實(shí)路由器子接口場(chǎng)景中arp broadcast enable很容易被忽略。少了這條命令VRRP 報(bào)文和終端 ARP 請(qǐng)求無(wú)法被子接口正確處理VRRP 組會(huì)停留在 Initialize 或無(wú)法選舉出 Master。如果是三層交換機(jī)使用 VLANIF 接口不需要配置這條命令這也是生產(chǎn)環(huán)境更常見(jiàn)的方式。但很多實(shí)驗(yàn)和中小網(wǎng)絡(luò)仍使用路由器子接口配置時(shí)要注意區(qū)分。8.5 安全與維護(hù)VRRP 組的數(shù)量不宜太多。每個(gè) VRRP 組都會(huì)占用設(shè)備資源并產(chǎn)生通告報(bào)文。VLAN 很多時(shí)可以按業(yè)務(wù)網(wǎng)段合并不必每個(gè) VLAN 都創(chuàng)建一個(gè)獨(dú)立組。如果需要提高安全性可以在支持 VRRP 認(rèn)證的設(shè)備上配置認(rèn)證模式防止非法設(shè)備偽造 VRRP 報(bào)文干擾選舉。不過(guò) eNSP 對(duì)認(rèn)證命令支持有限生產(chǎn)環(huán)境應(yīng)查閱設(shè)備手冊(cè)后按需配置。8.6 持續(xù)監(jiān)控配置完成后建議在網(wǎng)管平臺(tái)監(jiān)控以下內(nèi)容每臺(tái)路由器的 VRRP 狀態(tài)是否長(zhǎng)期保持預(yù)期角色。VRRP 主備切換次數(shù)是否異常頻繁。Master 設(shè)備接口流量是否超過(guò)閾值。是否有 VRRP 狀態(tài)抖動(dòng)告警。如果出現(xiàn)切換次數(shù)過(guò)多優(yōu)先檢查鏈路穩(wěn)定性和搶占延遲配置而不是盲目調(diào)整優(yōu)先級(jí)。9. 總結(jié)與后續(xù)學(xué)習(xí)方向通過(guò)本文的配置實(shí)驗(yàn)?zāi)銘?yīng)該已經(jīng)掌握了利用多個(gè) VRRP 組實(shí)現(xiàn)多 VLAN 網(wǎng)關(guān)負(fù)載分擔(dān)的核心方法。整個(gè)方案的本質(zhì)并不復(fù)雜在同一個(gè)接口上為不同 VLAN 創(chuàng)建不同的 VRRP 組然后通過(guò)調(diào)整優(yōu)先級(jí)讓不同組的主設(shè)備錯(cuò)開(kāi)實(shí)現(xiàn)兩臺(tái)路由器的雙活轉(zhuǎn)發(fā)。下一步可以繼續(xù)學(xué)習(xí)的內(nèi)容包括在 eNSP 中使用三層交換機(jī) VLANIF 接口替代路由器子接口配置 VRRP 負(fù)載分擔(dān)。結(jié)合 VRRP 與 BFD 實(shí)現(xiàn)快速故障檢測(cè)縮短切換時(shí)間。研究 VRRP 與 MSTP多生成樹(shù)協(xié)議的配合避免二層環(huán)路和冗余路徑浪費(fèi)。將 VRRP 與 DHCP、DHCP Relay 配合實(shí)現(xiàn)終端地址自動(dòng)獲取場(chǎng)景下的網(wǎng)關(guān)冗余。配置再多最終還是要回到“為業(yè)務(wù)服務(wù)”這一點(diǎn)上。設(shè)計(jì)網(wǎng)絡(luò)時(shí)先想清楚哪些流量該走哪條路徑故障時(shí)誰(shuí)能接管切換時(shí)間是否滿(mǎn)足業(yè)務(wù)要求再動(dòng)手敲命令這樣的配置才會(huì)有意義。