ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

为什么MPLS VPN收到路由却不放入VPN实例?——可能是你的MPLS出现了问题

2021-07-03 23:01:05  阅读:676  来源: 互联网

标签:查看 MPLS BGP 邻居 VPN 路由


这篇文章主要是一个计算机网络的排错案例,是我在配置MPLS VPN的时候偶然发现的一些现象。写这篇文章主要是想介绍一下MPLS VPN的排错思路,另外,简单的搜索了以下各大技术论坛、博客,发现没有对文章标题介绍的现象进行排错的,在这里我也稍微设计一下。
本文适合对MPLS VPN配置有一定了解的同学阅读,通过阅读本文,可以提升对MPLS VPN配置和MPLS协议、BGP协议的理解,也能够对网络排错有所帮助。

一、实验架构介绍

实验拓扑图如下所示:
在这里插入图片描述
很简单的拓扑图,其配置目的就是使用MPLS VPN实现两个公司两个分部之间互相联通。
本来,这是一道很普遍的拓扑图,但是,如果在运行IBGP关系的时候,采用直连口而不是环回口建立IBGP邻居,此时会出现问题。
此时,我的实验现象是:
BGP关系正常建立:
在这里插入图片描述
MPLS正常建立:
在这里插入图片描述
PE设备可以收到对方的路由:
在这里插入图片描述
但是!PE收到的路由不放在路由表中。
在这里插入图片描述

二、为什么实验出现了问题

简单的对上述情景进行总结,会发现——对于PE设备,收到了对方BGP对等体传递来的路由,但是没有把该路由放入自己的VPN路由表中。
如果在配置MPLS VPN的时候出现这种问题,可能有以下两种原因:
①VPN的RT、RD值设置错误
比如说在设置VPN的时候,如果有两个RD值相同,则会出现问题,如果RT值配置不同,则VPN实例可能会造成应该收的路由信息不收。
但是,显然,在这个例子中,该效果不是由上述原因造成的。
②VPN传递来的路由不可达
除了第一条原因外?还有一种原因,就是虽然VPN实例收到了路由,但是由于MPLS VPN出现了问题,导致路由的下一条不可达,从而导致虽然放入了VPN实例中,但是没有将该路由加入到路由表里。
在本例子中,出现问题的原因就在于此。
可以在PE设备上简单的查看,执行命令:

dis bgp vpnv4 all routing-table

在这里插入图片描述
可以发现,虽然VPN传递来了路由,但是下一条却被认为不可达。在上图中可以看到红圈部分的路由没有一个尖括号,因此,该路由不会加入到路由表中。
可是为什么该路由不会加入到路由表中呢?
在PE设备上执行命令:
在这里插入图片描述
明明有150.1.67.0/24网段的路由啊?
之所以PE的BGP认为该路由不可达,是因为虽然该路由有路由表,但是该路由不走MPLS,因此在转发去往该IP地址的数据包的时候,不会走标签转发路径,而是走正常的网络层路由,因此认为该路由不可达。
可以执行命令:
在这里插入图片描述
可以看出,该路由的Tunnel ID是0 ,而0表示不走标签转发路径,而是走了正常的路由转发,因此该目的不可达,造成了实验的失败。

三、应该怎样做才能解除问题

既然底层设备运行了MPLS,为什么去往该目的IP的路由没有被加入到MPLS中呢?
这是与MPLS特性有关的。
当我们在运行MPLS协议的时候,在蓝色区域内路由器互联的接口上使能了MPSL和MPLS LDP,在这样配置的情况下,就会出现MPLS没有生成该接口IP的标签,因此也就不能被其他人学习到了,因此该路由也就不走标签转发了。
因此,本实例的问题就在于,IBGP使用的是直连口建立的邻居,如果在建立IBGP邻居关系的时候,使用环回口而不是直连口,上述问题就迎刃而解了。

四、常见MPLS VPN排错思路。

最后,再给大家介绍一下常见的MPLS VPN的排错思路。
1、查看底层路由
MPLS VPN建立的最基础便是AS域内底层路由的互通,如果底层路由都不同,那么自然MPLS VPN不可能建立起来。
可以首先查看路由表,进而查看路由协议的邻居是否正常,通过上述过程,判断底层路由协议的运转情况。
2、查看BGP
执行命令:

display bgp peer 

可以查看BGP邻居是否建立起来,如果建立起来,那么BGP邻居的状态会是Established,而如果是其他状态,则说明BGP邻居没有建立起来。
此外,即使BGP邻居建立起来的,还需要查看BGP是否为VPNv4邻居,在MPLS VPN中,由于要传递的都是带标签的路由信息,因此BGP邻居关系必须为VPNv4类型。
3、查看MPLS
此外,MPLS VPN,还需要MPLS的建立。须知,MPLS的建立与否不影响BGP的建立,因此,很容易出现的情况时BGP邻居已经建立完成,但是MPLS还没有建立起来。此时,BGP邻居是完好的,但是由于MPLS没有建立起来,因此不能够传递路由。
4、查看路由的收、发情况
执行命令:

dis bgp vpnv4 all routing-table  peer 150.1.67.7 received-routes
dis bgp vpnv4 all routing-table peer 150.1.67.7 advertised-routes  

可以查看BGP对等体对路由的收、发情况,这样可以帮助我们进一步确定故障位置,查看究竟是对端路由器没有发路由,还是本地路由器没有接收到路由。
5、查看其他信息
比如本实例提到的一些命令,查看其它可能造成路由传递失败的因素。
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200/article/details/118445428

标签:查看,MPLS,BGP,邻居,VPN,路由
来源: https://blog.csdn.net/weixin_40228200/article/details/118445428

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有