MPLS L3VPN实例默认路由问题分析
2018-12-24
项目背景
本文中所涉及项目为某能源集团互联网出口整合项目。该项目主要是将其下属子、分公司自有互联网出口按所属地址区域整合至4个区域中心,本例即为4区域中心之一,该区域中心示例拓扑如图1。
区域中心互联网接入核心设备连接情况及路由走向说明
1.该区域中心互联网接入核心设备逻辑连接情况如图2所示,各子、分公司通过租用专线、自有传输、集团广域网方式连接区域中心汇聚交换机,并通过上网行为管理设备、防火墙、负载均衡设备进行NAT(网络地址转换)后访问互联网。
2.相关设备主要路由配置示例
图1 区域中心示例拓扑
图2 互联网接入核心区域拓扑
图3 汇聚交换机下一跳指向静态路由
(1) 汇 聚交换机下一跳指向广域网汇聚路由器互联接口地址的10.0.0.0/8前缀静态路由,以保证通过集团广域网接入的分、子公司业务网段回程路由可达,如图3。
(2)汇聚交换机配置下一跳指向分、子公司互联设备接口地址的静态路由,从而保证通过点对点专线接入的分、子公司业务网段回程路由可达(仅显示一条);
(3)在汇聚交换机上配置下一跳指向出口防火墙内网接口的默认路由;
(5)出口负载均衡器路由配置如图5,其中10、192路由指向防火墙外网接口保证下行流量正常返回,默认路由指向网关池保证互联网上行流量转发至相应运营商链路。
问题描述及解决过程
1.路由调整及问题描述
(1)本次割接涉及单位为集团二级能源公司下属某露天矿,其接入方式为利用集团原有MPLS广域网,接入区域中心广域网汇聚路由器(接入方式如图6右侧所示)。
图4 出口防火墙配置3条静态路由
图5 出口负载均衡器路由配置
图6 接入区域中心广域网汇聚路由器
图7 可以ping通区域中心侧广域网汇聚路由器
(2)路由切换主要是通过调整露天矿侧路由器与交换机的默认路由,使互联网流量切换至集团广域网传送,配置示例如下:
ip route vrf vpn_temp 0.0.0.0 0.0.0.0 10.255.9.2 //在路由器vpn_temp实例中增加一条下一跳指向区域中心广域网汇聚路由器上联还汇聚交换机接口地址的默认路由;
ip route 0.0.0.0 0.0.0.0 10.26.96.2 //在露天矿核心交换机配置下一跳地址为路由器互联地址的默认路由。
(3)经过上述路由配置调整后,在露天矿核心交换机上使用各业务网段网关地址作为源地址ping省联通DNS服务器地址,结果无法ping通;但可以ping通区域中心侧广域网汇聚路由器上联接口地址及下一跳地址(默认路由下一跳地址),说明从露天矿至区域中心数据传输正常,如图7。
对于影像学检查和介入超声技术仍无法做出准确诊断,且患者症状较重、体征明显,而患者本人又有强烈治疗愿望时,可试行剖腹探查术或腹腔镜探查术。手术可以直接对囊肿组织进行观察,并可在直视下进行活体组织检查,外科医师可以对病变组织进行初步评估,又可以在病理结果出来后直接行外科干预[19]。相对于传统的剖腹探查术,微创手术并发症少,患者疼痛较轻,体表无明显手术瘢痕,心理打击小,术后恢复较快,目前已广泛应用于临床,并取得了良好的诊疗效果[20]。但需注意的是,剖腹探查术或腹腔镜探查术存在一定的麻醉和手术风险及阴性探查的可能性,应用时应充分评估患者情况,向患者及家属做好解释工作,严格把握适应证。
(4)由于集团核心广域网为MPLS L3VPN环境,按照控制平面、数据平面分别排查的思路进行后续测试、分析。首先,查看露天矿侧PE与区域中心侧PE的MP-BGP邻居,由于现网中为了增强扩展性,部署了2台BGP RR(路由反射器),所有PE路由器仅与2台RR路由建立BGP邻居关系,PE路由器的路由均是通过RR进行反射的,根据调试信息可以判断矿区侧PE、区域中心侧PE均与2台RR建立的正常的BGP邻居关系,如图8。
(5)接着查看矿区侧与区域中心侧PE路由器的VPN实例相关路由表项,其中矿区侧 PE VRF中到10.255.9.0/28前缀是通过RR 10.60.7.254反射后学到的,由于RR默认不会修改路由的下一跳属性,且路由器间都是使用loopback 0接口作为源地址,建立的BGP邻居关系,并作为update源,因此路由的下一跳地址为区域中心汇聚PE路由器loopback0接口地址10.224.7.246。
slq#show ip route vrf vpn_temp 10.255.9.0 //查看矿区PE路由器VRF中10.255.9.0的路由
图8 根据调试信息判断的结果
图9 查看区域中心广域网汇聚PE路由器路由信息
区域中心侧PE相应vpn-instance中到达矿区侧业务网段路由,也是通过RR反射的,下一跳为矿区侧PE loopback 0接口地址10.28.7.251;如图9。
(6)由于BGP路由下一跳最终需要递归到IGP物理下一跳及相应出接口才能完成数据转发,因此查看了矿区侧与区域中心侧PE到达对端loopback 0接口的IGP路由(本例中为ISIS协议)。通过如下信息可以判断两端的PE已都通过ISIS协议学习到了对端loopback 0接口的32位前缀主机路由,如图10。
图10 两端的PE都已学习到loopback 0接口的主机路由
(7)经过上述验证过程基本可证明MPLS L3VPN环境,控制平面(路由平面)不存在问题,下面继续对转发平面进行测试。基于MPLS L3VPN工作原理,各PE路由器保存VPN实例路由表并分配MPLS服务标签(内层标签),而P路由器仅保存全局路由,并仅将外层标签做转发依据。因此,要实现端到端VPN数据正常转发,首先要保证PE到PE的双向LSP(标签交换路径)正常,因此需要在两台PE上通过tracert结合观察标签转发表进行测试,如图11。
(8)在Cisco路由器中MPLS转发需依靠CEF(Cisco快速转发)表解析下一跳、出接口、出标签信息,因此进一步查看VRF中 0.0.0.0 0.0.0.0路由所对应的CEF表项,由下面结果可知路由可正常递归出接口与下一跳,但是没有出标签信息。
图11 对转发平面进行测试
对于一个VPN实例内的路由项,只有在CEF中有出接口、下一跳、和出标签(内、外层标签)才能正常转发,例如下面的相应示例就具备上述说有信息。
基于上述的调试信息,造成目前问题的主要原因主要是当矿区侧PE在VPN实例中接收到目的地址没有预支对应转发表项的数据包时,会根据默认路由进行转发。但在CEF表象中没有与默认路由匹配的出标签信息,数据将按照普通IP转发而MPLS标签转发。这样当数据到达P路由器后,P路由器的路由表中并不存在221.11.1.67的路由表项,数据包将被直接丢弃,从而产生控制平面存在路由表项,转发平面无法转发的路由黑洞问题。
如果需要解决该问题,必须使CEF表项中默认路由同时具备下一跳、出接口、出标签信息。对于Cisco IOS而言,对于全局路由表中的0.0.0.0/0路由默认不会分配MPLS标签,可通过“slq(config)#mpls ip default-route”改变该默认行为, 但该配置仅能影响全局路由表对应的默认路由CEF表项,并不能影响VRF中的默认路由CEF项,因此无法使用该特性解决问题。
MPLS技术有一个重要的应用场景就是仅在AS(自制系统)边缘路由器运行BGP的前提下,使Internet穿越流量正常转发,中间的经过的P节点既不需要开启BGP协议,也不需要保存互联网路由表。基于此思想及设备特性,做了如下调整:
首先,在矿区侧PE的VRF配置默认路由时,将下一跳指向中心侧PE loopback 0接口。同时,在配置下一跳时,在全局路由表中进行解耦。完成下面改配置后,观察对应CEF表项,可以看到VRF中默认路由已经有了相应的出接口、下一跳、出标签信息,压入标签与MPLS转发表中,到中心侧BGP下一跳loopback0地址标签一致。
ip route vrf vpn_temp 0.0.0.0 0.0.0.0 10.224.7.246 global //在vrf中配置一条指向全局下一跳地址的默认路由
slq#show ip cef vrf vpn_temp 0.0.0.0 0.0.0.0//查看vrf默认路由对应的cef表项
完成上述配置后,进行ping联通DNS地址,依旧无法ping通,tracert也没有路径信息,由于前面已经进行了端到端LSP检测,524标签交换路径是正常的,问题应该在中心侧PE。
s l q#
进一步分析,根据MPLS的转发逻辑,到达中心侧PE路由器loopback 0接口的标签数据包会在倒数第二跳P设备执行PHP(倒数第二条弹出),中心侧PE接收到的将是目的地址为211.11.1.67的IP数据包,PE路由器将查找全局路由表做基本的IP转发。但区域中心PE的全局路由表中并不存在默认路由表项,因此将数据包丢弃了。解决方法显而易见,应增加一条默认路由,本例中的特殊之处在于,PE的上行接口在vpn-instance中,因此在配置全局路由表默认路由时,应指定在vpninstance中解析下一跳,示例配置如下:
完成上述配置后,在矿区侧PE ping和tracert验证均已正常,矿区侧交换机使用各业务网段网关地址作为源地址,可正常ping通联通DNS地址,用户可以正常接入互联网,至此问题解决。