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:路由目标,负责路由导入与导出
实验拓扑:
MPLS XXX_第1张图片
R1R2运行RIP,R4R5运行EIGRP,R2R3R4运行BGP,R1环回192.168.1.0 R5环回192.168.2.0

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

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

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

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

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

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

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

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

如果再加两个路由器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这个东西所以这样配置
在这里插入图片描述
在这里插入图片描述
MPLS XXX_第22张图片
同理,配置R4 R7上面的OSPF信息
MPLS XXX_第23张图片

接着做路由的导入与导出
导入
在这里插入图片描述
在这里插入图片描述
导出
在这里插入图片描述
MPLS XXX_第24张图片

接着再考虑192.168.4.0网段
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
MPLS XXX_第25张图片
MPLS XXX_第26张图片
MPLS XXX_第27张图片

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

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

MPLS XXX_第30张图片

你可能感兴趣的:(CCNP学习)