Technorati 标签: MPLS 原理
在学习MPLS之前,应该知道MPLS有两种⼯作模式。
1, 帧模式-->在第三层分组头(如IP分组头)前加⼊标签进⾏转发。
2, 信元模式.--->在ATM LSR组成的MPLS⽹络中,在控制平⾯使⽤MPLS交换VPI/VCI的信息,⽽不是采⽤ATM信令进⾏转发.1, 转发等价类。FEC
如果⼊⼝路由器收到分组都到达同⼀⼦⽹的,则这些分组就属于同⼀类。这是依据FIB中的最长匹配查找决定的。例如,假设在FIB表中有⼀项⽬的地址为1.1.1.0/24,下⼀跳是2.2.2.2.如果我收到了两个IP地址分别是1.1.1.1和1.1.1.2的分组,这两个分组都会转发给同样的下⼀条,2.2.2.2,那么这个时候这两个报⽂就属于同⼀个FEC.
这⾥可以看到,对于到6.1.1.0/24⽹段,不管后⾯的主机位,所分发的标签,20,都是⼀样的,实际上是由下游路由器对本端的outgoing label分发的20,都是⼀样的。所以6.1.1.0就是⼀个等价转发类。
这个和IP层⾯的路由表是⼀样的。
对于IP层⾯,到相同的⽬的,⾛⼀样的路由。
对于MPLS层⾯,到相同的⽬的,分发相同的标签,那就是⼀样的⾛相同的路径。2, 标签交换.
标签交换有三个过程:■根据⼊标签进⾏查找■找到分组的出接⼝和出标签.
■进⾏标签交换,然后再出接⼝发送分组.
MPLS体系结构被分为两个独⽴的单元:控制平⾯和转发转发,如下图所⽰:这⾥先来说⼀下控制平⾯。
■IGP--和在只有IP的⽹络中的⽤途相同。如果mpls⽹络使⽤了流量⼯程,IGP会作为链路状态协议,可以是OSPF或者是IS-IS.
■标签分配协议. 有三种协议可以分配标签。cisco TDP (private protocol)
LDP (standard protocol regarding the RFC)RSVP 资源预留协议,专门为TE ⼯作的。
关于转发,传统的IP与MPLS⽹络转发有什么不同呢?■IP转发是基于⽬的的IP地址和FIB的。
■MPLS转发是基于MPLS标签和标签转发信息库(LFIB)的。
■MPLS转发和IP转发都是逐跳转发的,IP转发在每⼀跳都对分组进⾏识别分类,⽽MPLS转发只在⼊⼝路由器进⾏分类,类分号了,就通过FEC进⾏转发.
PS:如果不使⽤流量⼯程TE,那么所有的IGP路由协议都可以使⽤。但是为了将来的扩展使⽤,最好使⽤OSPF或者ISIS来作为IGP,因为MPLS TE只能⽀持这两种IGP类型。具体原因以后再做详解.
假如说流量是从PE-1 R2到R6的环回10.1.1.2.
那么这个时候控制平⾯和转发平⾯的⽅向是完全相反的。
在R2上⾯show mpls forwarding-table,从R3到本地分发的标签是18,从R5到R3分发的标签是16,R6没有向R5分发标签,因为R5转发数据报⽂的时候利⽤次末节点弹出机制,将标签弹出了,这样R6负责的就是纯IP转发了。在R2上⾯:在R3上⾯:在R5上⾯:
所以这⾥可以看出,转发层⾯是从左到右,控制层⾯的标签分发是从右到左的.在MPLS转发表中,分为ilm和ftn.分别是MPLS to MPLS和MPLS to IP.
标签发布的时候,实际发布的内容是标签,IP前缀和掩码长度,这个过程称为标签发布。下⾯就来说明⼀下,标签,是如何发布的。0-15是保留的标签。0-IPv4显式空标签。1-路由器警告标签。2-IPv6显式空标签3-隐式空标签。
合法的标签范围是从16开始到2的20次⽅-1.即16--1048575.都是合法的标签。
local 的标签是我发给上游路由器的标签。⽽,outgoing label的标签是下游路由器发给我的标签。
所以转发平⾯如果是从左到右的话,那么控制平⾯的标签分发就是反的,是从右往左来进⾏标签的分发的。下⾯有⼀个例⼦,
这⾥如果在R3上⾯查看mpls 的转发表到10.1.1.2的话。
这⾥可以看到。outgoing是16,那么实际上是R5的local应该是16,是R5发给R3的16.对于R3上⾯的18,local,应该是R2的出标签。
也就是说。R5上⾯的local是16,R2上⾯对应10.1.1.2的出标签应该是18.R3:
对了,R5的local是16,分发给R3.在R2上⾯:
R2上⾯的出outgoing是18.这样就符合标签分发的原理了。
因篇幅问题不能全部显示,请点此查看更多更全内容