MPLS XXX

MPLS XXX
解决私网通信问题,5个路由器模拟,R1环回模拟私网,R2R3R4位ISP,R5环回模拟私网。
思路:1.先把私网路由传递给ISP,都与运营商之间运行IGP协议
2.在运营商边界是不能直接与R1或R5建立IGP协议的,否则学习到的路由会保存
到路由器的主路由缓存中,就会牵扯到与BGP的底层IGP协议有选路的问题,所以学习私网路由必须存放在一个虚拟的路由缓存转发表中。
3.在边界路由器上先创建虚拟路由缓存,接着为了标记不同的私网,引出了RD
4.一定把连接用户的接口划入虚拟路由转发中,每一个路由标记具有相同的RD值
5.将私网路由导入到主路由表中,是因为边界路由器并不能传递虚拟路由给中间类似于R3的路由器,所以需要重发布到主路由表中,这里是导入到BGP路由缓存中。而导入的路由是IPV4+RD,也就是XXXV4路由。
5.版本4与版本4+区别在于版本4只支持IPV4路由,现在传递的是XXXV4,只能使用MP-BGP,也就是BGPV4+,由于默认BGP传递的是IPV4路由,现在重发布XXXV4,那么也是不认识这种路由的,所以要开启VPVV4的MP-BGP功能,单播传递
6.现在数据到达R4,那么怎么确保R1发过来的就是到达R5的路由呢?引出RT,路由目标,使用了BGP的扩展的团体属性。收到带有RT值与自己导出的RT值一致
7.R4收到的路由是BGP路由,不能支持传递给R5,所以有需要把BGP协议导入到IGP协议中,R1学习R5同样的过程
8.至此还没有用到MPLS,现在只是路由传递到对端了,数据依旧不通,其实数据到达R2肯定就丢弃了,因为R2的连接R1的接口划入VRF中,只能查看VRF表,又因为路由是以BGP的形式存在,根据BGP特点可知,下一跳地址为IBGP更新源地址,也就是4.4.4.4,但是在VRF表项中,根本不可能存在到达R4的4.4.4.4路由,所以递归失败,数据不通。
9.接着做MPLS技术,数据到达R2后,查看VRF的cef表,但是针对5.5.5.0是不会打标签的,因为存在形式是BGP,标签是不支持部署在BGP路由的,于是只能针对下一跳地址分配的标签移植到BGP中,,这个时候标签是3给的,R3会收的,接着倒数第二跳弹出,变为IP数据包,到达R4后,一样只能查看主路由表中的cef表,是肯定找不到5.5.5.5的,报文丢弃。
那么问题来了。既然做了MPLS,为何还会数据不通信了?其实MPLS XXX是打了双层标签的。
R3针对R2学习路由的下一跳地址4.4.4.4分配标签传递给R2,R2把这个标签移植到BGP的私有路由里面。
另外一个标签一定是要R4给的,R3做了倒数第二跳弹出,之后应该还有一个标签,是R4给R2,R2传递过来的(打了两层标签)。又存在一个问题,R4怎么把标签信息传递给R2,之前传递R5私网路由时候都可以增加RT参数,把标签加入传递给R2当然也可以。
数据到达R4后,R4查看MPLS forwarding table,发现是自己发的,虽然是针对XXXV4发的,直接查表扔给R5.,
为啥这次会给R5呢?第一,没有做双层标签之前,由于倒数第二跳弹出,那么到达R4后直接查看的是FIB表,自然不能通信,第二,如果做了双层标签,那么由于R3过来的数据还是有label,那么R4会先查看LFIB表的,这个表里面自然就可以把数据传递给R5的。
反过来是一样的。

VRF:虚拟路由转发,
RD::路由区分器,区分不同的VRF,XX:XX 1:1 2:2
AS号:number 234:1 234:2
RT:路由目标,负责路由导入与导出
实验拓扑:
在这里插入图片描述
R1R2运行RIP,R4R5运行EIGRP,R2R3R4运行BGP,R1环回192.168.1.0 R5环回192.168.2.0

  1. 创建VRF,并将接口划入VRF中
    在这里插入图片描述
    在这里插入图片描述
    将接口划入VRF中会发现地址不存在了,所以还得手工再配置接口地址
    接着查看路由条目,发现12.1.1.0没有,直连消失,并不在主路由表中
    在这里插入图片描述
    查看VRF路由表
    在这里插入图片描述
    在这里插入图片描述
    做完这些发现一个奇怪的现象,为什么R1pingR2可以通,R2pingR1为何不通呢?
    R1查看主路由,传递给R2,又因为R2接口在VRF中,所以R1pingR2会通

同理R4到R5也要这样做
在这里插入图片描述
在这里插入图片描述
R4pingR5与R2pingR1其实是可以通信的
在这里插入图片描述

  1. 在CE与PE之间运行路由协议
    R1 R2运行RIP R4 R5运行EIGRP
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  2. 建立MP-BGP,为了传递XXXV4路由
    针对邻居开启传递XXXV4路由的能力,同时开启发送并接收团体属性的功能
    在这里插入图片描述
    关闭传递IPV4路由功能(可选)
    在这里插入图片描述

  3. 路由导入(将VRF中路由重发布进入MP-BGP中)
    在这里插入图片描述
    查看
    在这里插入图片描述
    在这里插入图片描述
    这个时候R4也收到了XXXV4路由,接着传递给R5,继续做重发布
    在这里插入图片描述在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

至此,R1的环回到达R5,继续做R5的环回到达R1
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
接着再重发布路由到RIP中
在这里插入图片描述
在这里插入图片描述

  1. 运行MPLS
    在这里插入图片描述
  2. 通信
    在这里插入图片描述

接下来观察数据为什么可以通信?
在R1上先查看追踪路径
在这里插入图片描述
由表可知,打了两个标签,301 400,怎样打了两个标签呢?
R1发送数据到达R2,R2肯定查看VRF表
在这里插入图片描述
到达192.168.2.1的下一跳是4.4.4.4,所以继续查看forwarding-table
在这里插入图片描述
到达4.4.4.4的出标签是301,
在这里插入图片描述
这个400是怎么来的?
R4针对192.168.2.0是本地打标签的,透过BGP传递给R2
在这里插入图片描述
在这里插入图片描述
抓包查看
在这里插入图片描述
在这里插入图片描述

如果再加两个路由器R6 R7,一个192.168.3.0 一个192.168.4.0
R2 R6之间运行OSPF
R6上正常配置OSPF100就行,但是在R2上面配置OSPF时候,进程号不能再是100了,这里用200,route-id改成22.2.2.2,然后OSPF没有address-family这个东西所以这样配置
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
同理,配置R4 R7上面的OSPF信息
在这里插入图片描述

接着做路由的导入与导出
导入
在这里插入图片描述
在这里插入图片描述
导出
在这里插入图片描述
在这里插入图片描述

接着再考虑192.168.4.0网段
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

现在R1 R5, R6 R7通信就完成了,那么如果这四个之间要通信呢?
主要是RT的参数问题
在这里插入图片描述
在这里插入图片描述
R2上面有了,R1上面肯定也会收到的
现在是R1可以与R6 R7通信了,
在这里插入图片描述

但是R5上面还是只能收到R1自己的路由,所以在R4上还得做以上的操作

在这里插入图片描述

发布了138 篇原创文章 · 获赞 203 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qinshangwy/article/details/99455948
xxx