沈 蕾
(中國鐵路上海局集團有限公司上海通信段,上海 200080)
Intermediate System-to-Intermediate System(IS-IS)是一種基于內部網關的動態路由協議,用在自治系統內部,如圖1 所示[1]。為承載大規模的路由表項,IS-IS 協議采用分層結構,將PE 設備分成若干等級,它分為骨干區域,邊緣區域和用戶業務接入區域,并定義了路由器的3 種角色: Level-1、Level-2 和Level-1-2。

圖1 IS-IS基本模型Fig.1 IS-IS basic model
Level-1 管理域內的路由, Level-1-2 和Level-2 管理骨干區域的路由, Level-1 只與同一區域的Level-1 和Level-1-2 形成鄰居關系,只建立一個包含本區域Level-1 的鏈路狀態數據庫(LSA), 維護本區域的路由信息。Level-1-2 作為連接骨干區域與接入區域的邊緣連接點,同時擁有Level-1 和Level-2 的路由,在IS-IS 路由協議中,作為IS-IS 協議的缺省屬性,ipv4 路由默認為Level-1。因此在同一區域內Level-1 的數量非常多時,容易產生Level-1 的次優路由[2]。
為解決一級反射建立鄰居數據量的局限性,在MLPS VPN 中采用分層Hierarchy of PE(PE),將PE 分為低端用戶級和高端匯聚轉發級,讓部分PE 承擔二級反射的角色,緩解只有一級反射的壓力,并形成層次結構,共同完成一個PE 的功能[3]。
HoPE 體系結構如圖2 所示,將傳統MPLS L3 VPN 的PE 設備分為高端設備和低端設備,與用戶CE 設備直接相連的PE 設備稱為下層PE(Under-Layer PE 或User-end PE,用戶側PE),簡寫為UPE;連接UPE 并位于網絡內部的設備稱為上層PE(Super-Stratum PE 或ServiceProviderend PE,服務提供商側PE),簡寫為SPE。多個UPE 和一個SPE組成分層式PE,同時承擔PE 的功能。與用戶的CE 設備直接相連的PE 設備稱為UPE。

圖2 HoPE體系結構Fig.2 HoPE system architecture
上海局鐵路數據通信網目前在網設備共計1 053 套,由于設備數量多,規模較大,按照總公司鐵路數據網編號規則及路由規范(運電通信函[2016]369 號文),采用IS-IS 分層結構[7],分核心層(Level-2)、匯聚層(Level-1-2)和接入層(Level-1),拓撲結構如圖3 所示。
在上海虹橋北輔樓和客專調度樓各設1 套華為NE40E-X16 設備,作為鐵路數據網路由轉發核心節點,主要完成與總公司骨干數據網互聯,用于轉發出局業務。2 套核心設備采用10GE 裸纖互聯,采用Level-2 層級。

圖3 上海局鐵路數據通信組網結構示意Fig.3 Schematic diagram of railway data communication network structure of Shanghai Bureau
在客專調度樓和上海虹橋北輔樓分別設2 套一級反射節點(RR)路由器,采用華為NE20E-S8設備,主要完成與二級反射節點之間鄰居的建立,其中上海虹橋反射節點路由器作為主用,客專調度樓反射節點路由器作為備用,呈負荷分擔方式。
在上海局客專調度樓、上海虹橋北輔樓、杭州東三電綜合樓、衢州通信樓、金華通信樓、寧波東通信樓、溫州通信樓、蘇州通信樓、南京傳輸室、南京南京滬高場、安慶站、合肥RBC 機房、合肥南合福場、阜陽通信樓、淮北通信樓、徐州東通信樓、徐州傳輸室、海安通信樓各設2 套匯聚路由器(華為型號為NE40E-X3,NE40E-X8,NE40E-8,華三設備型號為CR16008)作為匯聚及二級反射節點,主要完成與接入路由器鄰居的建立和路由表的轉發。匯聚層到核心層上聯利用GE 或10GE 以上傳輸通道,口字型互聯。設備全局模式下啟用Level-1-2,作為連接Level-2 區域和Level-1 區域的邊緣設備,上海局目前采用異地雙反射方式對接入層設備進行雙重保護,即同一區域的接入層跟異地的匯聚路由器均做反射。
接入層根據不同線別,華為采用NE20E 系列設備,華三部分采用SR66 系列設備,就近接入匯聚路由器,華為和華三的設備分別采用不同區域號,以保證不同區域的接入路由器之間沒有Level-1 的路由,減少路由條目數。接入層采用異地雙反射模式,分別與不同地區的2 套匯聚路由器建立反射。接入層本線互聯通道采用裸纖GE 互聯,每條線設若干抽頭,上聯至匯聚路由器。接入層全局模式下啟用Level-1,該區域內設備作為上海局數據通信網業務承載層,與用戶側CE 相連,完成業務的互聯互通,在接入路由器通過不同VPN 來隔離業務,使各自業務系統相互獨立,不發生沖突。
由于上海局基礎網改造數據網組網采用HoPE模式,接入路由器為UPE,是承載上海局鐵路數據網業務的用戶邊緣路由器,僅能維護本Level-1 域內的VPN 站點路由, 但不維護其他區域內站點的路由。
各地區匯聚路由器作為Level-1-2 層,主要作用是維護本區域和相鄰區域VPN 的路由,保證不同區域內Level-1 接入路由器間業務能夠正常互訪。
匯聚路由器在上海局不僅承擔SPE 的角色,同時還作為二級路由反射器來使用,作為一級路由反射器的客戶機(reflect client),學習一級路由反射器發來的BGP 路由,指定接入路由器為其反射客戶端,向客戶機反射BGP 路由。由于接入路由器沒有Level-2 等級ISIS 路由表,所以需要在匯聚路由器對接入路由器反射時,修改下一跳為自身地址(next-hop-local)。接入路由器中有明細路由表,但下一跳不是真實始發路由器,而是屬性為Level-2 的匯聚路由器。這就導致接入設備間橫向流量都要通過匯聚路由器轉發的問題,如圖4 所示,按照IS-IS 協議默認情況下,AR02 訪問AR01 是按照最短路徑優先,直接優選AR02 與AR01 互聯的鏈路,但采用HoPE 后,AR02 再訪問AR01 時,AR02 的下一跳被強制為匯聚路由器,再由匯聚路由器轉發到AR01,這樣大大增加接入設備間的橫向轉發流量, 嚴重浪費帶寬資源。
在HoPE 模式下,UPE 與SPE 設備間為IS-IS Level-1 區域,所以UPE 只有本區域Level-1 設備路由一級SPE 下發的缺省路由。
匯聚路由器DR 設備作為SPE,與核心路由反射器RR 設備建立IBGP 鄰居關系,從一級反射器學習全網BGP 路由。與下掛接入路由器AR 建立IBGP 鄰居關系,通過下發缺省路由的方式,下發給接入路由器各VPNV4 業務系統缺省路由, 并將路由下一跳更改為自身loopback 地址。此時,當有新的VPN 業務接入時,SPE 需要為每個新接入的業務系統創建VPN 實例。
接入路由器作為UPE 設備,只需要與上行SPE 設備建立IBGP 鄰居關系,接收SPE 設備下發的缺省路由,并將自身路由發送給SPE, 如圖5 所示,當UPE 同左右SPE 同時做了反射,在缺省路由模式下,核心層路由器CR 與匯聚層路由器DR上行鏈路一旦斷開,匯聚路由器DR01 和DR02 可以學習到業務網段的BGP VPNV4 明細路由。但是業務網段路由沒有被優選,不能指導數據轉發,因為BGP VPNV4 路由被優選的一個必要條件為下一跳地址存在標簽交換路徑(LSP)。在HoPE 模式上行鏈路斷開后,查看匯聚路由器的LSP 表項,會發現本地不存在BGP VPNV4 路由器下一跳的LSP,因為缺省情況下SPE 只能為擁有32 位明細路由的路由器分配MPLS 標簽。所以,當一端匯聚路由器SPE 上行鏈路中斷后,本地IS-IS 協議無法通過原有Level-2 鄰居關系學習到明細路由,僅能通過另一端的匯聚路由器學習到Level-1 的缺省路由。IS-IS 缺省情況下,SPE 不會為該缺省路由分配標簽,從而導致業務BGP VPNV4 路由沒有被優先,造成上行鏈路中斷時SPE 下掛的所有UPE 設備業務中斷。
為解決HoPE 模式作為SPE 的匯聚路由器下發缺省路由問題,在相應SPE 匯聚路由器將32 位掩碼的loopback 地址路由從IS-IS 協議Level-2 區域滲透到Level-1 區域, 即路由滲透,具體配置如下:
ip prefix-list test index 10 permit 0.0.0.0 0 greater-equal 32 less-equal 32
import-route isis Level-2 into Level-1 filter-policy ip-prefix test

圖5 核心到匯聚鏈路中斷Fig.5 link between the core router and convergence router interrupted

圖6 路由滲透Fig.6 Route leaking
當匯聚路由器上行鏈路故障后,依然可以從其他做過反射的匯聚路由器學習到業務網段下一跳明細路由,如圖6 所示,查看匯聚路由器的LSP表項,本地已經能夠從另一個SPE 學習到BGP VPNV4 下一跳的LSP,即便上層鏈路中斷,下層接入路由器業務也不會中斷。
上海局基礎數據網工程中,原二級反射器配置方式為:
bgp 65133
peer 10.54.61.235 group in
ipv4-family vpnv4
peer in enable
peer in next-hop-local
peer in reflect-client
peer in upe
peer in default-route-advertise vpn-instance SCADA109
peer in default-route-adverties …
peer 10.54.61.235 enable
peer 10.54.61.235 group in
…
為解決默認下一跳為匯聚路由器的問題,通過在BGP 中配置以下的策略:
bgp 65133
peer 10.54.61.235 group in
ipv4-family vpnv4
undo policy vpn-target //新增
peer in enable
peer in reflect-client
peer in upe route-policy hope export
peer in upe
peer in default-route-advertise vpn-instance SCADA109
peer in default-route-adverties …
peer 10.54.61.235 enable
peer 10.54.61.235 group in
…
route-policy hope pemit node 10
if-match ip address acl 3000
acl advanced 3000
rule 0 permit ip
可以實現基于HoPE 架構的基礎上,由SPE 向UPE 發布全部下一跳地址為對應接入設備地址的業務明細路由,當兩個路由器之間業務互訪時,下一跳不再強制為匯聚路由器,而是根據路由表選擇路由,避免橫向轉發流量的資源浪費。
本文通過在上海局既有鐵路數據網配置路由滲透策略,保證了當區域內匯聚路由器至核心路由器上行鏈路中斷后,該區域內Level-1 接入路由器承載的所有業務不會受影響;本文通過優化BGP 策略配置,實現路由自動優選,保證了當兩個Level-1 路由器之間業務互訪時,下一跳不再強制為Level-1-2 的匯聚路由器,而是根據路由表選擇路由,避免了橫向轉發流量的資源浪費,大大提高了鐵路數據通信網業務的安全可靠性。