0103 BGP MPLS IP VPN故障处理.docx
- 文档编号:16673438
- 上传时间:2023-07-16
- 格式:DOCX
- 页数:36
- 大小:310.94KB
0103 BGP MPLS IP VPN故障处理.docx
《0103 BGP MPLS IP VPN故障处理.docx》由会员分享,可在线阅读,更多相关《0103 BGP MPLS IP VPN故障处理.docx(36页珍藏版)》请在冰点文库上搜索。
0103BGPMPLSIPVPN故障处理
插图目录
3BGP/MPLSIPVPN故障处理
关于本章
本章描述内容如下表所示。
标题
内容
3.1BGP/MPLSIPVPN简介
介绍了进行MPLSL3VPN故障处理时用户所需的知识要点。
3.2MPLSL3VPN故障处理
针对典型的MPLSL3VPN组网环境,介绍配置MPLSL3VPN时要注意的事项,故障处理的流程和详细的故障处理步骤。
3.3故障处理案例
介绍了6个实际的故障处理案例。
3.4FAQ
列出了用户常问的问题,并给出了相应的解答。
3.5故障诊断工具
介绍了为进行故障处理所需的故障诊断工具,包括使用display命令和debugging命令、告警信息、日志信息等。
3.1BGP/MPLSIPVPN简介
3.1.1VPN简介
公共网络是允许自由相互交换信息的许多不相关系统的集合,专用网络则由单一组织拥有并管理、且互相共享信息的设备组成。
专用网络中,不同的站点使用专用租赁线路实现互连,保证站点之间的连接是独占的。
对部署了专用网络的企业,可以保证企业是唯一使用该网络的机构。
尽管部署单一的VPN服务模型可以简化网络运行,但这种方法并不能满足各种客户要求。
每个客户在安全问题、站点数量、用户数量、路由复杂性、关键事务型应用、流量模式、通信流量、人员网络经验、以及外包网络服务意愿等方面都有所不同。
为了满足广泛的客户需求,服务供应商必须为用户提供一系列服务,其中包含各种不同的VPN服务提供模型。
至今,人们已提出了许多不同的VPN模型:
●传统VPN
●帧中继(第二层)
●ATM(第二层)
●基于CPE的VPN
●L2TP和PPTP(第二层)
●IPSec(第三层)
●供应商开通的VPN(PP-VPNs)
●基于MPLS的L2VPN(第二层)
●BGP/MPLSL3VPN或RFC2547bis(第三层)
RFC2547bis定义了一种机制,允许服务供应商使用自己的IP骨干,为客户提供VPN服务。
之所以叫BGP/MPLSL3VPN,是因为它使用BGP把VPN路由信息从一个Site传递到另一个Site上,并使用MPLS建立隧道把VPN流量从骨干网的一个PE传到另一个PE上。
3.1.2网络拓扑
图3-1BGP/MPLSVPN基本网络拓扑
图3-1是BGP/MPLSVPN的基本网络拓扑。
其中,CE设备可以是一台主机或交换机或路由器。
CE和与之直连的PE路由器建立邻接关系。
在建立邻接后,CE路由器把站点的本地VPN路由发送到PE路由器,并从PE学习远程VPN路由。
PE路由器使用静态路由、RIP、OSPF、IS-IS或EBGP与CE路由器交换路由信息。
每台PE路由器为与之直连的每个站点(Site)维护一个VPN路由和转发表VRF(VPNRoutingandForwardingtable)。
PE路由器能够维护多个VRF。
一个VRF可以关联多个端口。
PE路由器从CE路由器学习到本地VPN路由后,使用IBGP与其它PE路由器交换VPN路由信息。
P路由器是没有连接CE设备的供应商网络中的路由器。
P路由器作为MPLSLSR,在PE路由器之间转发VPN数据流量。
由于MPLS骨干网采用两层标签,故P路由器只需维护到PE路由器的路由,而不需维护VPN路由信息。
3.1.3运行模型
BGP/MPLSVPN中有两个基本的通信流量:
●控制流量:
分配交换VPN路由和建立标记交换路径(LSP)。
●数据流量:
转发客户数据流量。
BGP/MPLSVPN流量转发的基本实现过程如下:
●交换路由信息
●建立LSP
●数据流转发
图3-1BGP/MPLSVPN实例
图3-2是一个BGP/MPLSVPN网络拓扑实例,其中一个服务供应商为不同的企业客户提供BGP/MPLSVPN服务。
在网络中,有两台PE路由器与四个不同的客户站点相连。
交换路由信息
图3-2中,PE1上与CE1相连的接口或子接口与VRF1进行了关联。
当CE1把前缀10.1.0.0/16的路由发布到PE1时,PE1在VRF1中添加10.1.0.0/16的本地路由。
PE1先后对10.1.0.0/16路由打上私网标签和公网标签,发布给PE2。
PE间采用MP-IBGP携带VT和RD信息,并使用环回地址作为IBGP路由的下一跳,从而解决路由过滤和重叠地址空间问题。
在PE2收到PE1发布的路由信息时,在路由携带的BGP扩展区属性基础上进行路由过滤,确定是否把到前缀10.1.0.0/16的路由添加到VRF1中。
如果PE2确定在VRF1中添加到前缀10.1.0.0/16的路由,那么它将把此路由发布给CE2。
建立LSP
为了使P路由器感知不到私网路由的存在,而使VPN路由从一个PE传到另一个PE,可以使用LDP或RSVP,在服务供应商网络中建立和维护LSP。
为了保证不同厂商的设备之间能够互通,所有PE和P路由器都要支持LDP。
基于LDP的LSP和基于RSVP的LSP都建立在一对PE路由器之间。
在PE路由器之间可以建立一个LSP或多个并行的LSP。
通过配置,LSP可以实现不同的QoS功能。
数据流转发
假设图3-2中的Site2上有台主机(10.2.3.4/16)把到服务器(10.1.3.8/16)的数据包转发到服务器的默认网关CE2。
CE2执行IP最长匹配查找,把报文转发给PE2。
MPLS使用两层标签,把报文从PE2转发到PE1。
对这一数据流,PE2是LSP的入口LSR,PE1是LSP的出口LSR。
在传输报文前,PE2把标签109569压入标签栈,使其成为底部(内层)标签。
当PE2收到PE1通过IBGP发布的到10.1.0.0/16网段的路由信息时,标签109569被分配到VRF1中。
然后,PE2把到路由的下一跳P路由器的基于LDP的或基于RSVP的初始MPLS标签压入标签栈,使其成为顶部(外层)标签。
在标签入栈后,PE2收到报文,在VRF1中查找路由,获得下述信息:
●PE1发布的私网标签(标签值为109569)
●路由的BGP下一跳(PE1的环回地址)
●从PE2到PE1的LSP出接口(或子接口)
●从PE2到PE1的初始MPLS标签
接着,PE2沿着LSP,把MPLS报文从出接口转发到第一台P路由器上。
P路由器根据顶部标签交换报文。
PE1的倒数第二台P路由器弹出外层标签(此时只剩内层标签),把报文转发到PE1上。
当PE1收到报文时,弹出内层标签109569。
PE1使用内层标签识别出到10.1.0.0/16网段的下一跳是直连的CE1。
于是,PE1把本机IPv4报文转发给CE1,CE1再把该报文转发到Site1的服务器10.1.3.8/16上。
3.2MPLSL3VPN故障处理
3.2.1典型组网环境
MPLSL3VPN的典型组网如图3-3所示。
MPLSL3VPN的故障处理将基于该网络。
图3-1BGP/MPLSVPN基本组网图
在上述组网图中,采用了如下的方案:
●CE1和PC1属于vpna的Site1,CE2和PC2属于vpna的Site2。
●PE1和CE1之间,PE2和CE2之间均采用EBGP连接。
●PE1和PE2间建立IBGP邻居关系传递携带内层标签的VPNv4路由信息。
●PE1、P、PE2上配置MPLS和LDP。
3.2.2配置注意事项
配置项
子项
注意事项
VPN实例
RouteDistinguisher
VPN实例在本地的路由标识,用于区分不同VPN实例的路由。
ExportVPNtarget
标记发布路由的属性,需与对端PE的ImportVPNtarget一致。
ImportVPNtarget
标记期望接收路由的属性,需与对端PE的ExportVPNtarget一致。
VPN与接口的绑定
先进入和CE连接的接口视图,再配置接口与VPNinstance绑定。
接口上绑定VPN后,该接口上的IP地址等网络层的配置会被删除,需要重新配置。
MPLS
LSR-ID
LSR-ID类似于RouterID。
LSR-ID其实指定了一个地址。
缺省情况下,LDP使用这个地址建立LDPSession,所以需要保证该IP的可达性。
配置LSR-ID有两种方式:
●一般将LSR-ID配置成Loopback接口的地址。
●如果在与公网连接的接口下配置了mplsldptransport-address命令,则LDP使用该命令指定的地址建立LDPSession。
MPLS
需要在系统视图和与公网连接的接口上使能MPLS,同时在MPLS视图下配置触发建立LSP的策略。
LDP
需要在系统视图和与公网连接的接口上使能LDP。
BGP
AS
-
IBGP
BGP视图下指定对端PE为本端IBGPpeer。
BGP连接使用的接口
需要将PE间建立IBGP连接所使用的会话出接口指定为Loopback接口(32位掩码)。
VPNv4地址族
需要在VPNv4地址族下使能该IBGPPeer。
IPv4地址族的VPN实例
指定直连的CE为EBGP对等体。
并引入直连路由,即,将PE与CE的网段路由引入到BGP中。
下面以PE1为例,说明配置MPLSL3VPN时需要注意的事项。
以下所列的配置命令只包含MPLSL3VPN相关部分的命令。
详细的配置请参见《VRP配置指南VPN》。
1.VPNinstance部分的配置
#创建VPN实例。
[PE1]ipvpn-instancevpna
#指定RD。
[PE1-vpn-instance-vpna]route-distinguisher100:
101
#指定ExportVPNtarget,标记发布路由的属性,与对端PE的ImportVPNtarget一致。
[PE1-vpn-instance-vpna]vpn-target100:
1export-extcommunity
#指定ImportVPNtarget,标记期望接收路由的属性,与对端PE的ExportVPNtarget一致。
[PE1-vpn-instance-vpna]vpn-target100:
1import-extcommunity
#将和CE连接的接口与VPNinstance绑定,绑定之后该接口就属于这个VPN了,其地址只在这个VPN以及需要和这个VPN进行通信的VPN中可见,在别的VPN中不可见。
[PE1]interfacegigabitethernet2/0/0
[PE1-GigabitEthernet2/0/0]ipbindingvpn-instancevpna
#配置该接口私网IP地址。
[PE1-GigabitEthernet2/0/0]ipaddress10.1.1.101255.255.255.0
2.MPLS部分的配置
#配置LSR-ID。
[PE1]mplslsr-id1.1.1.1
#全局使能MPLS能力。
[PE1]mpls
#配置触发建立LSP的策略,简单地可使用参数all。
[PE1-mpls]lsp-triggerall
#全局使能MPLSLDP能力。
[PE1]mplsldp
#在与公网连接的接口上使能MPLS能力。
[PE1]interfacegigabitethernet1/0/0
[PE1-GigabitEthernet1/0/0]mpls
#在与公网连接的接口上使能MPLSLDP能力。
[PE1-GigabitEthernet1/0/0]mplsldp
3.BGP部分的配置
#指定PE所在的AS为100,PE1和PE2上所指定的AS应相同。
[PE1]bgp100
#配置PE的BGPPeer,其作用只在公网内建立BGPPeer。
[PE1-bgp]peer3.3.3.3as-number100
#指定与对端PE建立BGPPeer(即TCP连接)所使用的接口,需要指定为LoopBack接口。
[PE1-bgp]peer3.3.3.3connect-interfaceloopback0
#指定需要根据策略(匹配VPNtarget)来接收VPNv4路由,此为缺省配置。
[PE1-bgp]ipv4-familyvpnv4
[PE1-bgp-af-vpnv4]policyvpn-target
#在VPNv4地址族下使能该IBGPPeer。
[PE1-bgp-af-vpnv4]peer3.3.3.3enable
在VPNv4地址族下使能该IBGPPeer后才能传递VPNv4路由。
通过displaybgpvpnv4allpeer命令可查看所有的VPNv4BGPPeer。
#配置在vpna中引入PE与CE之间直连网段的路由。
[PE1-bgp]ipv4-familyvpn-instancevpna
[PE1-bgp-vpna]peer10.1.1.102as-number65410
[PE1-bgp-vpna]import-routedirect
3.2.3故障诊断流程
针对图3-3所示的网络,在配置各路由器后发现VPN用户PC1和PC2不能互相访问。
可按照故障诊断流程图3-4排除故障。
图3-1MPLSVPN故障诊断流程图
3.2.4故障处理步骤
步骤1检查CE-CE之间是否有可达的路由
在本端CE上ping对端CE,查看是否可以ping通。
●如果可以ping通,则说明CE之间有可达的路由,可以排除CE之间的路由故障。
故障可能出在VPN用户主机和CE之间,需要检查用户主机和CE之间是否有可达路由。
如果没有,则添加该路由。
如果用户主机和CE之间有可达路由但不能ping通,请联系华为技术工程师。
●如果不能ping通,在本端CE上执行命令displayiprouting-table,查看本端路由表中是否有到对端CE的路由。
然后在对端CE上执行命令displayiprouting-table,查看对端路由器是否有到本端CE的路由。
如果各个CE都没有到对端的路由,或者只有本端CE到对端CE的路由,而对端CE没有到本端CE的路由,则CE之间存在路由故障,请执行步骤2。
在确认CE和与之直连的PE之间可以互相ping通的情况下,也可以在该直连的PE上执行ping-vpn-instancevpn-instance-name–asource-ip-addressdest-ip-address命令检查该PE是否有到对端CE的路由。
其中,vpn-instance-name是CE所在的VPN的名字,source-ip-addresss是PE与CE直连接口的IP地址,dest-ip-address是对端CE的某个接口的IP地址。
步骤2检查CE-CE之间的各个网段路由
CE之间的网段有3个:
●本端CE到本端PE
●本端PE到对端PE
●对端PE到对端CE
本端CE到本端PE和对端PE到对端CE的路由故障可通过下面的子步骤1来进行排除,本端PE到对端PE的路由故障可通过下面的子步骤2来进行排除。
1.检查本端和对端CE是否将自己的路由信息发布到与其直连的PE上。
在PE上执行displayiprouting-tablevpn-instancevpn-instance-name命令,查看VPN路由表中是否有从直连CE发布来的路由表项。
该命令中需要指定参数vpn-instancevpn-instance-name才能显示指定VPN内的路由。
如果不指定该参数,将显示PE的公网路由。
如果PE上显示的VPN路由表中不存在CE的路由,则执行displaybgpvpnv4allpeer命令检查PE-CE之间的EBGPPeer是否建立。
−如果在PE-CE之间已经建立EBGPPeer,则检查CE的BGP配置中是否引入(import-route)直连路由和CE所在AS的域内路由。
然后检查PE的BGPIPv4地址族的VPN实例视图下是否引入直连路由。
−如果在PE-CE之间还没有建立BGPPeer,则检查PE和CE的BGP配置中AS号是否对应。
详细的故障处理方法请参见《VRP故障处理路由篇》。
2.检查本端PE上的私网路由是否发布到对端PE上。
在对端PE上执行displayiprouting-tablevpn-instancevpn-instance-name命令,检查是否存在本端CE的路由。
−如果对端PE上显示的VPN路由表中存在到本端CE的路由,在本端PE上执行displayiprouting-tablevpn-instancevpn-instance-name命令,VPN路由表中也存在到对端CE的路由,则说明PE-PE之间的路由没有故障。
−如果对端PE上显示的VPN路由表中不存在到本端CE的路由,执行displaybgpvpnv4allpeer命令,检查PE-PE之间的BGPVPNv4Peer是否建立。
−如果PE-PE之间BGPVPNv4Peer已经建立,检查两个PE上的VPN配置中的VPNTarget是否匹配。
即,本端PE的ExportVPNTarget应与对端PE的ImportVPNTarget一致,同理,本端PE的ImportVPNTarget应与对端PE的ExportVPNTarget一致。
如果不一致,需要修改配置使之一致。
−如果PE-PE之间BGPVPNV4Peer还没有建立,可能原因是PE-PE之间BGPPeer没有建立。
执行命令displaybgppeer查看PE的公网的BGPPeer。
PE-PE之间的公网路由故障请参考《通用路由平台VRP故障处理手册路由篇》。
PE-PE间的VPNv4路由是通过VPNv4地址族中的Peer传递的。
而BGPVPNv4Peer的建立依赖于公网内的BGPPeer。
配置IBGP邻居时,需要指明建立BGP连接时使用Loopback接口,即使用peerpeer-ip-addressconnect-interfaceloopbackinterface-number命令来指定IBGP对等体。
在PE上配置到远端CE的VPN静态路由时,如果命令中指定了下一跳,但此下一跳不是对端PE的Loopback接口,私网路由将不能关联到公网LSP隧道。
如果能确认BGP的配置正确,并且所有BGPPeer也都正确建立,但在PE上执行命令displayiprouting-tablevpn-instance,没有到对端CE的路由,则是由于PE到该路由的下一跳的LSP没有建立,导致这条路由没有找到关联的LSP。
执行displayiprouting-tablevpn-instancevpn-nameip-address[mask|mask-length]verbose命令,可以看到TunnelID的值为0x0,举例如下。
Destination:
10.1.1.202/32
Protocol:
BGPProcessID:
0
Preference:
255Cost:
0
NextHop:
3.3.3.3Interface:
NULL0
RelayNextHop:
0.0.0.0Neighbour:
3.3.3.3
Label:
15360TunnelID:
0x0
SecTunnelID:
0x0
BkNextHop:
0.0.0.0BkInterface:
BkLabel:
NULLTunnelID:
0x0
SecTunnelID:
0x0
State:
InactiveAdvWaitQAge:
00h01m05s
Tag:
0
分别在本端PE和对端PE上执行displaybgpvpnv4allrouting-tablelabel命令查看两端的标签是否对应(本PE分配的私网标签在本PE上为入标签,在对端PE上为出标签)。
如果对应,请继续下面的步骤。
步骤3检查PE-PE之间的LSP是否已建立
MPLSVPN的私网流量是通过公网的LSP传递到远端的,因此系统需要将私网路由的下一跳与LSP进行绑定。
●在LSP先生成的情况下,这个绑定关系是路由管理(RM)使用私网路由的下一跳IP地址到隧道管理(TNLM)中查询到的。
●在先学到路由,后生成LSP的情况下,由TNLM通告给RM,RM根据通告的隧道目的IP地址等信息找到相应的私网路由进行迭代完成的。
所以需要检查PE-PE间的以私网路由下一跳地址为两端地址的LSP是否建立。
在PE上执行displaymplslspincludeip-addressmask命令。
其中,ip-address是私网路由下一跳IP地址。
如果发现以私网路由下一跳为目的的LSP没有建立,则执行如下子步骤:
●检查LDP会话是否建立。
执行displaymplsldpsession命令,检查LDP会话是否建立。
LDP会话建立不成功的常见原因有:
−LSR-ID配置错误,对端PE无法找到去往LSR-ID的路由,从而PE-PE间不能建立LDP会话。
建议将LSR-ID配置为本端Loopback接口的IP地址,并通过路由协议或静态路由发布出去。
−LSR-ID配置错误的情况下,没有在接口上配置mplsldptransport-address命令。
在接口上没有配置mplsldptransport-address命令的情况下,PE会使用LSR-ID与对端PE建立LDP会话。
如果LSR-ID错误,则不能成功建立LDP会话。
为防止LSR-ID错误而导致对端PE无法找到去往LSR-ID的路由,可在接口配置mplsldptransport-address命令。
●查看LDPSession的TCP连接是否建立。
执行displaytcpstatus命令,查看LDPSession的TCP连接是否建立。
如果路由信息正确,可以查看LDPSession的TCP连接已建立,即显示结果中的“State”项对应的值为“Established”。
如果TCP没建立,请检查IP的连通性。
●检查LSP两端设备之间的LDP参数配置是否一致。
LSP两端设备之间的LDP参数的配置必须一致。
如果不一致,例如一端配置的标签分发方式为DOD方式,另一端为DU方式,则LDP会话不能建立。
●检查是否配置了触发建立LSP的策略。
缺省情况下仅触发主机地址建立LSP的策略。
因此必须要在MPLS中配置lsp-triggerall命令以触发所有路由建立LSP。
●检查MPLSLDP维护的接口状态。
执行displaymplsinterface和displaymplsldpinterface命令,查看MPLSLDP维护的接口状态是否为“Up”或“Active”。
如果发现接口状态为“Down”或“Inactive”,在接口视图执行shutdown,然后执行undoshutdown。
如果还是Down状态,则
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 0103 BGP MPLS IP VPN故障处理 VPN 故障 处理