簡介
本文檔介紹了ASR 9000的一些nV群集功能以及如何進行解聚。
此程式已在實際環境中與思科客戶進行測試,思科客戶已決定採用本文檔中介紹的撤銷流程。
必要條件
需求
思科建議您瞭解以下主題:
採用元件
本文檔中的資訊基於運行IOS XR 5.x的ASR 9000平台。
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路運作中,請確保您瞭解任何指令可能造成的影響。
背景資訊
產品業務部(BU)宣佈在ASR 9000平台上終止nV群集銷售(EOS): 思科nV集群的銷售終止和生命週期終止公告
正如您在公告中所看到的,訂購此產品的最後一天是2018年1月15日,而nV群集的最後一個支援版本是IOS-XR 5.3.x。
下表列出了要瞭解的里程碑:
ASR9k nV集群基礎和注意事項
本節的目的是簡要刷新瞭解瞭解本文檔後續部分所需的群集設定和概念。
乙太網路帶外通道(EOBC)
乙太網帶外通道擴展了兩個ASR9k機箱之間的控制平面,理想情況下由4個互連組成,可在不同機箱的路由交換處理器(RSP)之間構建網狀。此設定可在EOBC鏈路出現故障時提供額外冗餘。 單向連結偵測通訊協定(UDLD)可確保雙向資料轉送,並快速偵測連結失敗。所有EOBC鏈路故障都會嚴重影響群集系統,並可能產生嚴重的後果,這些後果將在後續的「分割節點場景」一節中介紹。
機架間連結(IRL)
機架間鏈路擴展兩個ASR9k機箱之間的資料平面。理想情況下,只有通訊協定分支和通訊協定注入封包會通過IRL(單宿主服務除外)或發生網路故障期間。理論上,所有終端系統均採用雙宿主,並帶有到兩個ASR9K機箱的連結。與EOBC連結類似,UDLD在IRL上執行,並監控連結的雙向轉送健康狀況。
例如,可以定義IRL閾值來防止擁塞的IRL在LC故障的情況下丟棄資料包。如果IRL鏈路的數量低於為該機箱配置的閾值,則機箱的所有介面都會因為錯誤而禁用並關閉。這基本上會隔離受影響的機箱,並確保所有流量都流經其它機箱。
註:預設配置相當於nv edge data minimum 1 backup-rack-interfaces,這表示如果沒有IRL處於轉發狀態,則備份指定擴展架控制器(DSC)被隔離。
分割節點方案
在本子部分中,您可以找到處理ASR9k群集時可能遇到的不同故障場景:
IRL關閉
這是唯一一個在分路過程中可以預期的拆分節點方案,或者如果其中一個機箱低於IRL閾值並因此被隔離。
EOBC關閉
如果EOBC鏈路不提供擴展控制平面,則ASR9k的兩個機箱不能作為一個。通過IRL鏈路定期交換信標,因此每個機箱都知道另一個機箱已啟動。因此,其中一個機箱(通常是具有Backup-DSC的機箱)會自行停止服務並重新啟動。只要Backup-DSC機箱通過IRL接收主DSC機箱的信標,它就會保留在引導環路中。
裂腦
在Split Brain場景中,IRL和EOBC連結已關閉,每個機箱宣告自己為Primary-DSC。相鄰網路裝置突然看到IGP和BGP的路由器ID重複,這可能會導致網路中出現嚴重問題。
搭售方案
許多客戶使用邊緣和核心端捆綁包來簡化ASR9K群集設定,並便於將來增加頻寬。由於不同的套件組合成員連線到不同的機箱,這可能導致拆卸時出現問題。可以採用以下方法:
- 為連線到機箱1(Backup-DSC)的所有介面建立新的捆綁包。
- 介紹多機箱鏈路聚合(MCLAG)。
L2域
如果訪問中沒有交換機與兩個獨立的機箱互連,則拆分群集可能會分離L2域。為了不使流量成為黑洞,您需要擴展第2層域,這可以在先前的IRL上配置第2層本地連線、機箱之間的偽線(PW)或使用任何其他第2層虛擬專用網路(L2VPN)技術時完成。當橋接域拓撲隨解包而變化時,當您選擇所選擇的L2VPN技術時,請注意可能的環路建立。
對ASR9K群集上的橋接組虛擬介面(BVI)介面的訪問中的靜態路由,可能會使用以前的BVI IP地址作為虛擬IP,轉變為基於熱備份路由器協定(HSRP)的解決方案。
單宿主服務
單宿主服務在解除封裝過程中具有延長的關閉時間。
管理訪問
在分路過程中,至少在從靜態路由(BVI)轉換到靜態路由(HSRP)時,兩個機箱都會在短時間內被隔離,以避免出現意外和非對稱路由。
您必須先驗證控制檯和帶外管理訪問的工作方式,然後才能將您自己鎖定。
ASR9000分路程式
初始狀態
假設在初始狀態下,機箱0處於活動狀態,而機箱1處於備份狀態(為了簡便起見)。在現實生活中,它可能是相反的方式,甚至機箱0中的RSP1也可能處於活動狀態。
維護視窗(MW)之前的檢查清單
- 準備新的ASR9K機箱0和機箱1配置(管理配置+配置)。
- 準備新的終端系統配置(客戶邊緣(CE)、防火牆(FW)、交換機等)。
- 準備新的核心系統配置(P節點、提供商邊緣(PE)節點、路由反射器(RR)等)。
- 驗證新配置,將其儲存在裝置上,並遠端儲存在簡單式檔案傳輸協定(TFTP)伺服器上。
- 定義必須在MW之前/期間/之後運行的可達性測試。
- 收集內部閘道通訊協定(IGP)、邊界閘道通訊協定(BGP)、多重通訊協定標籤交換(MPLS)、標籤發佈通訊協定(LDP)等的控制平面輸出,以供比較前/後使用。
- 向思科提交主動服務請求。
步驟 1.登入到ASR9000群集並驗證當前配置
1.驗證主 — 備用機箱的位置。在本示例中,主機箱為0:
RP/0/RSP0/CPU0:Cluster(admin)# show dsc
---------------------------------------------------------
Node ( Seq) Role Serial# State
---------------------------------------------------------
0/RSP0/CPU0 ( 1279475) ACTIVE FOX1441GPND PRIMARY-DSC <<< Primary DSC in Ch1
0/RSP1/CPU0 ( 1223769) STANDBY FOX1432GU2Z NON-DSC
1/RSP0/CPU0 ( 0) ACTIVE FOX1432GU2Z BACKUP-DSC
1/RSP1/CPU0 ( 1279584) STANDBY FOX1441GPND NON-DSC
2.驗證所有線卡(LC)/RSP是否處於「IOS XR RUN」狀態:
RP/0/RSP0/CPU0:Cluster# sh platform
Node Type State Config State
-----------------------------------------------------------------------------
0/RSP0/CPU0 A9K-RSP440-TR(Active) IOS XR RUN PWR,NSHUT,MON
0/RSP1/CPU0 A9K-RSP440-TR(Standby) IOS XR RUN PWR,NSHUT,MON
0/0/CPU0 A9K-MOD80-SE IOS XR RUN PWR,NSHUT,MON
0/0/0 A9K-MPA-4X10GE OK PWR,NSHUT,MON
0/0/1 A9K-MPA-20X1GE OK PWR,NSHUT,MON
0/1/CPU0 A9K-MOD80-TR IOS XR RUN PWR,NSHUT,MON
0/1/0 A9K-MPA-20X1GE OK PWR,NSHUT,MON
0/2/CPU0 A9K-40GE-E IOS XR RUN PWR,NSHUT,MON
1/RSP0/CPU0 A9K-RSP440-TR(Active) IOS XR RUN PWR,NSHUT,MON
1/RSP1/CPU0 A9K-RSP440-SE(Standby) IOS XR RUN PWR,NSHUT,MON
1/1/CPU0 A9K-MOD80-SE IOS XR RUN PWR,NSHUT,MON
1/1/1 A9K-MPA-2X10GE OK PWR,NSHUT,MON
1/2/CPU0 A9K-MOD80-SE IOS XR RUN PWR,NSHUT,MON
1/2/0 A9K-MPA-20X1GE OK PWR,NSHUT,MON
1/2/1 A9K-MPA-4X10GE OK PWR,NSHUT,MON
步驟 2.配置備用機箱的最小IRL閾值
備用機箱是具有BACKUP-DSC的機箱,將首先退出服務並降級。在本示例中,BACKUP-DSC位於機箱1中。
通過此配置,如果IRL的數量低於配置的最小閾值(本例中為1),則指定機架(本例中備份機架 — 機箱1)上的所有介面都會關閉:
RP/0/RSP0/CPU0:Cluster(admin-config)# nv edge data min 1 spec rack 1
RP/0/RSP0/CPU0:Cluster(admin-config)# commit
步驟 3.關閉機箱1上的所有IRL並驗證錯誤禁用介面
1.關閉所有現有的IRL。 在此範例中,您可以看到兩個機箱(主用Ten0/x/x/x和備用Ten1/x/x/x)中的手動介面關閉:
RP/0/RSP0/CPU0:Cluster(config)#
interface Ten0/x/x/x
shut
interface Ten0/x/x/x
shut
[…]
interface Ten1/x/x/x
shut
interface Ten1/x/x/x
shut
[…]
commit
2.檢驗所有配置的IRL是否已關閉:
RP/0/RSP0/CPU0:Cluster# show nv edge data forwarding location
<location>的一個示例是0/RSP0/CPU0。
關閉所有IRL後,必須將所有外部介面移至錯誤禁用狀態,使機箱1與資料平面完全隔離。
3.確認機箱1上的所有外部介面都處於err-disabled狀態,並且所有流量都流經機箱0:
RP/0/RSP0/CPU0:Cluster# show error-disable
步驟 4.關閉所有EOBC鏈路並驗證其狀態
1.關閉所有RSP上的EOBC連結:
RP/0/RSP0/CPU0:Cluster(admin-config)#
nv edge control control-link disable 0 loc 0/RSP0/CPU0
nv edge control control-link disable 1 loc 0/RSP0/CPU0
nv edge control control-link disable 0 loc 1/RSP0/CPU0
nv edge control control-link disable 1 loc 1/RSP0/CPU0
nv edge control control-link disable 0 loc 0/RSP1/CPU0
nv edge control control-link disable 1 loc 0/RSP1/CPU0
nv edge control control-link disable 0 loc 1/RSP1/CPU0
nv edge control control-link disable 1 loc 1/RSP1/CPU0
commit
2.檢驗所有EOBC鏈路是否已關閉:
RP/0/RSP0/CPU0:Cluster#
show nv edge control control-link-protocols location 0/RSP0/CPU0
在此步驟之後,集群機箱在控制 — 和資料平面方面完全彼此隔離。機箱1的所有鏈路都處於err-disable狀態。
注意:從現在起,必須在機箱1上通過RSP控制檯完成配置,並且僅影響本地機箱!
步驟 5.登入到機箱1的活動RSP並刪除舊配置
清除機箱1上的現有配置:
RP/1/RSP0/CPU0:Cluster(config)# commit replace
RP/1/RSP0/CPU0:Cluster(admin-config)# commit replace
註意:您需要先替換運行配置的配置,然後才清除管理員運行配置。這是因為刪除admin running-configuration中的IRL閾值會使「no shut」所有外部介面。這會導致路由器ID重複等問題。
步驟 6.將機箱1引導至ROMMON模式
1.將配置暫存器設定為引導到ROMMON:
RP/1/RSP0/CPU0:Cluster(admin)# config-register boot-mode rom-monitor location all
2.驗證開機變數:
RP/1/RSP0/CPU0:Cluster(admin)# show variables boot
3.重新載入機箱1的兩個RSP:
RP/1/RSP0/CPU0:Cluster# admin reload location all
在此步驟之後,通常機箱1會引導至ROMMON。
步驟 7.在兩台RSP的ROMMON中,取消設定機箱1上的CLuster變數
警告:現場技術人員必須在繼續之前刪除所有EOBC連結。
提示:也可以設定系統集群變數。檢查附錄2部分:設定集群變數而不將系統引導至rommon。
1.標準過程要求將控制檯電纜連線到機箱1上的活動RSP,並取消設定並同步群集ROMMON變數:
unset CLUSTER_RACK_ID
sync
2.將配置暫存器重置為0x102:
confreg 0x102
reset
活動RSP已設定。
3.將控制檯電纜連線到機箱1的備用RSP。理想情況下,集群的所有4個RSP在維護時段都能夠訪問控制檯。
註:此步驟中所述的操作需要在機箱1的兩個RSP上完成。必須首先引導活動RSP。
步驟 8.將機箱1引導為獨立系統,並對其進行相應配置
理想情況下,新的配置或幾個配置片段儲存在每個ASR9k機箱上,並在解包後載入。之前必須在實驗室中測試正確的配置語法。如果沒有,請先配置控制檯和MGMT介面,然後再通過複製並貼上到Virtual Teletype(VTY)或從TFTP伺服器遠端載入配置完成機箱1上的配置。
註:load config和commit命令使所有介面保持關閉,這樣可以控制服務升級。 load config和commit replace完全替換配置並啟動介面。因此,建議使用load config和commit。
將連線的終端系統(FW、交換機等)和核心裝置(P、PE、RR等)的配置調整為機箱1。
步驟 9.恢復機箱1上的核心服務
- 首先手動取消關閉核心介面。
- 驗證LDP、中間系統到中間系統(IS-IS或ISIS)、BGP鄰接關係/對等關係。
- 檢驗路由表並確保已交換所有字首。
警告:在繼續故障轉移之前,請注意計時器,如ISIS過載(OL)位、HSRP延遲、BGP更新延遲等!
步驟 10.故障轉移 — 登入到機箱0的活動RSP並使所有介面進入錯誤禁用狀態
注意:接下來的步驟會導致服務中斷。機箱1南向介面仍被禁用,而機箱0被隔離
預設保留時間等於180秒(3x60秒),代表BGP收斂的最糟糕情況。有多種設計選項和BGP功能可以大大縮短收斂時間,例如BGP下一跳跟蹤。假設核心中存在與Cisco IOS XR行為不同的其他第三方供應商,您最終需要在觸發故障轉移之前通過軟體關閉機箱0和RR之間的BGP鄰居或類似的裝置來手動加快BGP融合:
RP/0/RSP0/CPU0:Cluster(admin-config)# nv edge data minimum 1 specific rack 0
RP/0/RSP0/CPU0:Cluster(admin-config)# commit
由於所有IRL都關閉,因此必須隔離機箱0,並將所有外部介面移到錯誤禁用狀態。
驗證機箱0上的所有外部介面是否都處於err-disabled狀態:
RP/0/RSP0/CPU0:Cluster# show error-disable
機箱1已重新配置為獨立機箱,因此不能存在任何已錯誤禁用的介面。在機箱1上唯一需要做的就是開啟邊緣的介面。
步驟 11.恢復機箱1上的南側
1. no shut all access interface。
暫時使互連連結(先前的IRL)處於關閉狀態。
2.檢驗IGP和BGP鄰接關係/對等關係/資料庫。當IGP和BGP融合時,您預計會看到從遠端PE ping的部分流量丟失。
步驟 12.登入到機箱0的活動RSP並刪除配置
清除活動機箱上的現有配置:
RP/0/RSP0/CPU0:Cluster(config)# commit replace
RP/0/RSP0/CPU0:Cluster(admin-config)# commit replace
注意:必須首先替換運行配置的配置,然後才清除管理員運行配置。這是因為刪除admin running-configuration中的IRL閾值不會關閉所有外部介面。這會導致路由器ID重複等問題。
步驟 13.將機箱0引導至ROMMON
1.將配置暫存器設定為引導到ROMMON:
RP/0/RSP0/CPU0:Cluster(admin)# config-register boot-mode rom-monitor location all
2.驗證開機變數:
RP/0/RSP0/CPU0:Cluster# admin show variables boot
3.重新載入備用機箱的兩個RSP:
RP/0/RSP0/CPU0:Cluster# admin reload location all
執行此步驟後,機箱0通常會引導至ROMMON模式。
步驟 14.在兩個RSP的ROMMON中取消設定機箱0上的群集變數
1.將控制檯電纜連線到機箱0上的活動RSP。
2.取消設定並同步群集ROMMON變數:
unset CLUSTER_RACK_ID
sync
3.將配置暫存器重置為0x102:
confreg 0x102
reset
活動RSP已設定。
4.將控制檯電纜連線到機箱0上的備用RSP。
註:此步驟中所述的操作需要在機箱1的兩個RSP上完成。必須首先引導活動RSP。
步驟 15.將機箱0引導為獨立系統,並相應地對其進行配置
理想情況下,新的配置或幾個配置片段儲存在每個ASR9k機箱上,並在解包後載入。之前必須在實驗室中測試正確的配置語法。如果沒有,請先配置控制檯和管理介面,然後再通過VTY(複製和貼上)完成機箱0上的配置或從TFTP伺服器遠端載入配置。
註:load config和commit命令使所有介面保持關閉,這樣可以控制服務升級。 load config和commit replace完全替換配置並啟動介面。因此,建議使用load config和commit。
將連線的終端系統(FW、交換機等)和核心裝置(P、PE、RR等)的配置調整為機箱0。
步驟 16.恢復機箱0上的核心服務
- 首先手動取消關閉核心介面。
- 驗證LDP、ISIS、BGP鄰接關係/對等關係。
- 檢驗路由表並確保已交換所有字首。
警告:在繼續故障轉移之前,請注意計時器,如ISIS OL-Bit、HSRP延遲、BGP更新延遲等!
步驟 17.恢復機箱0上的南側
1. no shut all access interface。
2.驗證IGP和BGP鄰接關係/對等關係/DB
3.確保啟用機箱間鏈路(以前的IRL)(如果需要,用於L2擴展等)。
附錄1:單機箱配置
常規配置更改
需要在一個機箱上修改此路由器配置:
- 環回介面地址。
- 介面編號(例如Te1/x/x/x -> Te0/x/x/x)。
- 介面說明。
- 介面定址(拆分現有捆綁包時)。
- 新BVI(當L2域為雙宿主時)。
- L2擴展(當L2域為雙宿主時)。
- HSRP,用於訪問中的靜態路由。
- BGP/開放最短路徑優先(OSPF)/LDP路由器ID。
- BGP路由區分器。
- BGP對等。
- OSPF網路型別。
- 簡易網路管理通訊協定(SNMP)ID等
- 存取控制清單(ACL)、首碼集、LLAN(低功率和有損網路)的路由通訊協定(RPL)等。
- 主機名。
套件組合概觀
確保所有捆綁包都經過稽核並應用於新的雙PE設定。也許您不再需要捆綁包,並且雙宿主客戶端設備(CPE)裝置適合您的設定,或者您需要PE裝置上的MCLAG並將捆綁包保留給CPE。
附錄2:設定集群變數而不將系統引導至ROMMON
也可以設定群集變數。可以使用以下過程預先設定群集變數:
RP/0/RSP0/CPU0:xr#run
Wed Jul 5 10:19:32.067 CEST
# cd /nvram:
# ls
cepki_key_db classic-rommon-var powerup_info.puf sam_db spm_db
classic-public-config license_opid.puf redfs_ocb_force_sync samlog sysmgr.log.timeout.Z
# more classic-rommon-var
PS1 = rommon ! > , IOX_ADMIN_CONFIG_FILE = , ACTIVE_FCD = 1, TFTP_TIMEOUT = 6000, TFTP_CHECKSUM = 1, TFTP_MGMT_INTF = 1, TFTP_MGMT_BLKSIZE = 1400, TURBOBOOT = , ? =
0, DEFAULT_GATEWAY = 127.1.1.0, IP_SUBNET_MASK = 255.0.0.0, IP_ADDRESS = 127.0.1.0, TFTP_SERVER = 127.1.1.0, CLUSTER_0_DISABLE = 0, CLUSTERSABLE = 0, CLUSTER_1_DISABLE
= 0, TFTP_FILE = disk0:asr9k-os-mbi-5.3.4/0x100000/mbiasr9k-rp.vm, BSS = 4097, BSI = 0, BOOT = disk0:asr9k-os-mbi-6.1.3/0x100000/mbiasr9k-rp.vm,1;, CLUSTER_NO_BOOT =
, BOOT_DEV_SEQ_CONF = , BOOT_DEV_SEQ_OPER = , CLUSTER_RACK_ID = 1, TFTP_RETRY_COUNT = 4, confreg = 0x2102
# nvram_rommonvar CLUSTER_RACK_ID 0 <<<<<<< to set CLUSTER_RACK_ID=0
# more classic-rommon-var
PS1 = rommon ! > , IOX_ADMIN_CONFIG_FILE = , ACTIVE_FCD = 1, TFTP_TIMEOUT = 6000, TFTP_CHECKSUM = 1, TFTP_MGMT_INTF = 1, TFTP_MGMT_BLKSIZE = 1400, TURBOBOOT = , ? =
0, DEFAULT_GATEWAY = 127.1.1.0, IP_SUBNET_MASK = 255.0.0.0, IP_ADDRESS = 127.0.1.0, TFTP_SERVER = 127.1.1.0, CLUSTER_0_DISABLE = 0, CLUSTERSABLE = 0, CLUSTER_1_DISABLE
= 0, TFTP_FILE = disk0:asr9k-os-mbi-5.3.4/0x100000/mbiasr9k-rp.vm, BSS = 4097, BSI = 0, BOOT = disk0:asr9k-os-mbi-6.1.3/0x100000/mbiasr9k-rp.vm,1;, CLUSTER_NO_BOOT =
, BOOT_DEV_SEQ_CONF = , BOOT_DEV_SEQ_OPER = , TFTP_RETRY_COUNT = 4, CLUSTER_RACK_ID = 0, confreg = 0x2102
#exit
RP/0/RSP0/CPU0:xr#
重新載入路由器並將其作為獨立裝置啟動。通過此步驟,您可以跳過從ROMMON引導路由器。