手把手教你玩转MPLS-VPN组网三---(提高篇)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/firehadoop/article/details/86217214

接前两篇MPLS-VPN的案例学习,本篇探讨的重点是:

1、抓包分析MPLS技术在MPLS VPN组网中具体分析?

2、CE的路由信息是如何被“透明”传输至对端CE路由器?

3、MPLS VPN网络故障排查?

由于客户A、客户B在技术上本质一样,所以为了聚焦主题我们本篇分析客户A网络,拓扑如下:

一、分析MPLS技术在MPLS VPN组网中的具体作用

1、在PE1、PE2上查看MPLS的LSP情况,分析vpn实例对应的标签

 

观察发现,在pe1上对应172.16.1.0/24网络的入标签是1030,pe2上对应172.16.2.0/24网络的入标签是1034

2、在pc1:172.16.1.2上ping测试pc2:172.16.2.2 并在pe1上抓包分析ge0/0/2口的数据包,查看数据包是否被加上了正确的LSP标签

3、总结分析

    通过对mpls的LSP标签生成情况可知,当VRF配置完成后,MPLS会自动为VRF的FEC添加对应的LSP标签,并且在数据的第一跳给出MPLS的出标签与入标签,在最后一跳只需要给出MPLS的入标签即可,因为第一跳以后MPLS需要根据出标签1028找到去4.4.4.4的路径,当到达4.4.4.4以后再根据入标签1034将数据导入至VRF的FEC中。

二、CE的数据是如何被“透明传输”到对端CE中去的?

1、CE1通过路由协议向PE1发送路由信息

PE1通过动态路由协议来学习客户的路由,实际工作中直接配置到达CE的静态路由,必须要让PE设备知道其直连CE设备的客户路由,CE1与CE2间是完全独立的,不同的CE与PE交互路由可以使用的方式也不同,比如站点1使用了iBGP,站点2使用了OSPF协议;

2、PE1如何区分接入的不同客户CE设备

一台城域网BRAS设备下挂的政客客户专网非常多,作为PE设备如何区分并隔离不同客户的路由呢?这里需要MPLS VPN中的重要部分VRF(虚拟路由转发)支持,在华为设备上,一个VRF也叫VPN实例或者理解为一台虚拟路由器,有多少个不同的客户接入PE,在PE上就需要创建多少个VRF为客户服务,比如前两篇有两个客户接入PE,就需要在PE上创建2个VRF。

VRF就和真实的路由器功能一样,有独立的路由表、FIB表、动态路由协议进程及接口等

ip vpn-instance A
 ipv4-family
  route-distinguisher 64538:100
  vpn-target 64538:1 export-extcommunity
  vpn-target 64539:2 import-extcommunity
route distinguisher -RD 路由区分码:用来构成唯一的VPNv4前缀,解决MPLS VPN网络中IPV4地址空间冲突问题。

RD有两种type,当type=1时,使用ipv4地址:自行分配数字,实际配置中type=2,使用AS号:自行分配数字的格式比如上例:route-distinguisher 64538:100

vpn-target -RT -route target,路由目标:用来控制VPN路由在不同站点点的发布与接收。

发布方向:直接连接CE的方向,比如:vpn-target 64538:1 export-extcommunity

接收方向:连接另一头PE的方向,比如:vpn-target 64539:2 import-extcommunity

3、PE1与PE2建立MP-BGP对等体连接,相互宣告自身的路由信息;

  PE之间运行的是MP-BGP多协议的BGP,经过扩展的BGP协议能够承载VPNv4路由,在经过第1、2步骤后,PE1的VRF路由表里已经学习到了CE1中客户的路由172.16.1.0/24,接下去要让MP-BGP知晓这些路由,如果PE1-CE1之间运行的是非BGP协议,本例中PE1-CE1运行的是BGP,PE2-CE2运行的是OSPF,所以需要将PE2的VRF路由表中的客户路由重发布到BGP中,PE1-CE1之间运行的已经是BGP了,不用再做重发布了。

    客户的IPv4路由被注入MP-BGP后,RD被添加到了这些IPv4路由前缀前面,就构成了VPNv4路由前缀,同时RTs也被附加到VPNv4路由前缀。

在PE1上通过执行disp bgp vpnv4 vpn-instance A routing-table 查看完整的VPNv4路由信息

<PE1>disp bgp vpnv4 vpn-instance A routing-table 

 BGP Local router ID is 1.1.1.1 
 Status codes: * - valid, > - best, d - damped,
               h - history,  i - internal, s - suppressed, S - Stale
               Origin : i - IGP, e - EGP, ? - incomplete


 VPN-Instance A, Router ID 172.16.0.1:

 Total Number of Routes: 3
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn

 *>i  172.16.0.4/30      4.4.4.4         0          100        0      ?
 *>   172.16.1.0/24      172.16.0.2      0                     0      64538i
 *>i  172.16.2.0/24      4.4.4.4         3          100        0      ?

观察发现PE1上的VRF A中172.16.1.0/24网络是通过IBGP的AS64538导入的路由,172.16.2.0/24,172.16.0.4/30是由MP-BGP从4.4.4.4PE2上学习到的。我们在PE2上通过执行disp bgp vpnv4 vpn-instance A routing-table 查看完整的VPNv4路由信息

<PE2>disp bgp vpnv4 vpn-instance A routing-table 

 BGP Local router ID is 4.4.4.4 
 Status codes: * - valid, > - best, d - damped,
               h - history,  i - internal, s - suppressed, S - Stale
               Origin : i - IGP, e - EGP, ? - incomplete


 VPN-Instance A, Router ID 172.16.0.5:

 Total Number of Routes: 3
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn

 *>   172.16.0.4/30      0.0.0.0         0                     0      ?
 *>i  172.16.1.0/24      1.1.1.1         0          100        0      64538i
 *>   172.16.2.0/24      0.0.0.0         3                     0      ?
如上面在PE1上查看VPNv4路由一样,172.16.1.0/24是通过MP-BGP从1.1.1.1PE1上学习的路由,其它两条是通过本地PE2-CE2的OSPF路由进程中导入的。

PE1上查看mpls分配给BGP LSP的FEC标签。

<PE1>disp mpls lsp vpn-instance A
-------------------------------------------------------------------------------
                 LSP Information: BGP  LSP
-------------------------------------------------------------------------------
FEC                In/Out Label  In/Out IF                      Vrf Name       
172.16.1.0/24      1030/NULL     -/-                            A            

PE1上查看客户A的VPNv4路由前缀

<PE1>disp ip vpn-instance A 
  VPN-Instance Name               RD                    Address-family
  A                               64538:100             IPv4       

还可以使用disp bgp vpnv4 all routing-table 172.16.1.0直接在一屏中查看VRF的RD RT,BGP-MP的对等体信息,MPLS标签信息。

PE2上查看mpls分配给BGP LSP的FEC标签。

<PE2>disp mpls lsp vpn-instance A
-------------------------------------------------------------------------------
                 LSP Information: BGP  LSP
-------------------------------------------------------------------------------
FEC                In/Out Label  In/Out IF                      Vrf Name       
172.16.0.4/30      1033/NULL     -/-                            A              
172.16.2.0/24      1034/NULL     -/-                            A      

PE2上查看客户A的VPNv4路由前缀

<PE2>disp ip vpn-instance A
  VPN-Instance Name               RD                    Address-family
  A                               64539:200             IPv4       

抓包分析PE2的GE0/0/2口观察其如何与PE1进行路由交互的详细实现过程。

 

4、总结一下

CE1上的路由通过iBGP协议交换IPV4路由信息给PE1,PE1创建VRF A并绑定接口用于接收和交互CE1的路由,同时交互来的CE1路由转换为BGP的VPNv4路由信息,由于PE1与PE2建立了扩展BGP-MP对等体关系,所以PE1和PE2通过BGP-MP的update消息来交换双方的VPNv4路由信息,最后,PE2通过将VPNv4路由注入PE2与CE2交互路由的OSPF进程中,让CE2通过OSPF协议动态学习到CE1的路由信息,完成CE1至CE2的路由信息相互学习。

三、MPLS VPN网络故障排查?

PE上没有导入CE路由信息导致链路不通

这个故障特别容易发生在PE-CE间路由交互不适用BGP协议的时候,比如在PE2-CE2上交互路由使用的是OSPF路由协议,这类故障通过在客户侧的电脑上或者在CE的路由器上追踪对方CE的客户侧地址,通过跟踪路由信息发现故障点在哪个PE节点上,比如下面:

1、跟踪从CE1->CE2的路由信息

PC>tracert 172.16.2.2

traceroute to 172.16.2.2, 8 hops max
(ICMP), press Ctrl+C to stop
 1  172.16.1.1   16 ms  <1 ms  15 ms
 2  172.16.0.1   32 ms  15 ms  16 ms
 3  10.0.23.2   47 ms  47 ms  47 ms
 4  10.0.33.2   31 ms  47 ms  47 ms
 5  172.16.0.5   46 ms  32 ms  31 ms
 6    *  *  *
 7    *  *  *
 8    *  *  *
2、跟踪从CE2->CE1的路由信息

PC>tracert 172.16.1.2

traceroute to 172.16.1.2, 8 hops max
(ICMP), press Ctrl+C to stop
 1    *  *  *
 2    *  *  *
 3    *  *  *
 4    *  *  *
 5    *  *  *
 6    *  *  *
 7    *  *
两边路由跟踪信息一结合,很明显问题出在PE2上,因为从CE1上来的路由到PE2为止没有继续转发,并且从CE2上来的信息PE2也没有转发。说明在PE2上的与CE2交互路由的OSPF中没有导入BGP信息。

下面是PE2-CE2路由交互的OSPF正确配置

ospf 100 vpn-instance A
 import-route bgp
 area 0.0.0.0 
  network 172.16.0.4 0.0.0.3 

正确配置中少了import-route bgp这一条。

PE1与PE2之间不能学习到对方的CE路由信息,主要观察BGP-MP对等体关系是否构建成功。

[PE2]disp bgp vpnv4 all peer

 BGP local router ID : 4.4.4.4
 Local AS number : 2345
 Total number of peers : 2          Peers in established state : 2

  Peer            V          AS  MsgRcvd  MsgSent  OutQ  Up/Down       State Pre
fRcv

  1.1.1.1         4        2345      415      425     0 06:50:14 Established    
   3

<PE1>disp bgp vpnv4 all peer 

 BGP local router ID : 1.1.1.1
 Local AS number : 2345
 Total number of peers : 2          Peers in established state : 2

  Peer            V          AS  MsgRcvd  MsgSent  OutQ  Up/Down       State Pre
fRcv

  4.4.4.4         4        2345      426      421     0 06:51:02 Established    
   3
 

猜你喜欢

转载自blog.csdn.net/firehadoop/article/details/86217214