沈 蕾
(中国铁路上海局集团有限公司上海通信段,上海 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 的汇聚路由器,而是根据路由表选择路由,避免了横向转发流量的资源浪费,大大提高了铁路数据通信网业务的安全可靠性。