1.MPLS出现的原因:

传统的IP转发机制速度太慢,加速数据包的转发。然而,由于硬件的速度不断提升,提速的运用已经不明显了。当前,MPLS的功能主要体现在它的拓展运用上,例如MPLS ×××和MPLS TE(流量工程)。


2.MPLS的特性:

a MPLS 是基于CEF的交换机制,是基于标签的数据包转发技术;

b MPLS 的标签是根据IP路由前缀产生的;

c MPLS是一种转发等价类FEC,它将 destination相同,forwarding path相同,service level相同的数据归为一组,以一种相同的处理方式转发之。

d MPLS 支持多种协议,包括IPX.


3.路由器的交换机制

a 基于进程的交换:每一次收到报文后,将处理报文的CPU进程加入到进程队列,轮到时,执行查找路由表的操作;

b 基于缓存的交换:第一报文使用进程交换触发,以后相同的报文使用缓存快速交换;

c 基于CEF的交换:预先建立缓存表,报文不需要经过触发,即可使用预先建立的缓存表。


4.有关MPLS的表描述

aLIB(Lable Information base):存放本地产生和收到了标签。

命令:show mpls ldpbinding [detail]

b LFIB(LabelForwarding Information base) : 标签与网段的映射表

命令:show mpls forwarding-table

c FIB(Forwarding Information base) : 是LFIB和LIB的集合

命令:show ip cef detail


3种表:

FIB:CEF从Routingtable直接Download下来的 show ip cefdetail

LIB:存放本地分配给邻居的标签+从邻居学到的标签 show mpls ldp binding[detail]

LFIB:动态形成的入标签/出标签映射 show mpls forwarding-table



5.MPLS首先启用CEF的原因:

a CEF可以将路由和下一跳直接绑定,解决了递归查找的步骤;

b CEF是唯一一种支持MPLS 插入的机制;

c CEF可以形成FIB表,而LDP根据FIB表产生标签的。

d基于拓扑的驱动


6.MPLS的体系架构


Acontrol plane(控制层面)

·exchange routing information and labels

·exchange routing information including RIP,OSPF,EIGRP,BGP

·exchange labels ,such as BGP,LDP,RSVP

B data plane(数据层面)

·forwarding packets based on labels

·complex forwarding engine


7.MPLS label的Format(32bits)


[-----Label-------][EXP] [S] [TTL]

20-bit 3-bit 1-bit 8-bit

a Label 20bits 可以有2^20个标签,但是【0-15】是保留的

b EXP 3bits 用于QOS

c S 1bit 栈底位

如: 1层Label 纯MPLS

2层Label MPLS×××

3层Label MPLSTE(流量工程)

d TTL: 8-bit(0-255)


8.Edge LSR的功能:

l impose label and forward them intothe MPLS domain

l pop label and forward IP packets outof the MPLS domain


9.这个条目是最为重要的!做实验演示,证明MPLS的分发过程

标签分发步骤:(在Frame Mode MPLS中)

1、运行路由协议,建立路由表;

2、默认开启CEF,根据Route Table形成FIB;

3、每个LSR上运行LDP/TDP,针对FIB中目标网络前缀分发标签;

——>MPLS不会给BGP路由分发标签!!!

4、 LSRs向其他LSR通告它们分配的labels

5、每个LSR建立自己的LIB、LFIB


注意:MPLS运行于ISP网络!


标签分发:

-每一台LSR针对每个目标路由分发一个标签,(BGP路由除外)

-Label本地有效

-标签的分发是异步的


Upstream/Downstream是针对数据包的流向

-数据包的源:Upstream

-数据包的目标:Downstream


入标签/出标签也是针对数据包的流向

-入标签是本端分配给邻居的

-出标签是邻居分配给本端的


在MPLS网络中,将标记L绑订到特定FEC F是由Downstream LSR决定的。同时Downstream LSR 会将绑订的信息通知Upstream LSR。因此标记是被Downstream分配的,并且标记绑订的方向是由Downstream到Upstream。若LSR是根据此机制而设计的,那么标记就必须保证在某个数值范围内。


Penultimate HopPoping(次末跳弹出)

EdgeLSR针对某条路由向邻居分发的是保留标签3,标示接收者是倒数第二跳LSR。


Configure MPLS:

0、配置路由协议

1、开启CEF

2、(在Frame Mode接口配置MPLS)在接口模式下 mpls ip

3、(可选)configure MTUsize in label switching

改动后的MTU

1504 1层标签

1508 2层标签

1512 3层标签


LDP 建立的过程:

1.show mpls ldpdiscovery detail

第一阶段:UDP 646发送hello packet 224.0.0.2;interval 5s,dead 15s

默认transport ip就是route-id 用于建立邻居(ldp的邻居建立不是通过相连链路两端的ip地址建立,而是通过

Transport ip建立,所以这里的transport ip必须“单播可通”。


注:no route to XXXX 。。。表示 transport ip 单播不可通


2.show mpls ldp neighbor detail

第二阶段:TCP 646 router-id 大的一方去执行“三次握手”过程(小的,show可以显示646)

如果是使用TDP,那么使用TCP 711建立邻居关系。


影响邻居建立的因素:

1.transport ip;

2.协议不匹配。(链路两端一端是TDP,一端是LDP)


Untag 可能的原因:show mpls forwrading-table

1.无ldp邻居

2.路由不匹配

3.关闭ip cef

4.FR map 没有配置broadcast-->IGP无法基于帧中继建立

5.label acl


补充:

1.强制定义LDP router-id(transport ip)

全局模式下 mpls ldp router-id loopback0 force

2.将物理口作为transport ip:

在对端接口下 mplsd ldp discovery transport-address interface

3.修改hello,dead时间:mpls ldp discovery hello [interval | holdtime]




Q1:MPLS转发等价类FEC体现在什么地方?标签的分配是否是随机的?如何定义想要的标签范围?

MPLS是一种转发等价类FEC,它将 destination相同,forwarding path相同,service level相同的数据归为一组,以一种相同的处理方式转发之。

便签的产生是随机的,但是,一旦给定就不会再做改变。

定义标签范围

config)#mpls label protocol [ldp|tdp]

config)#mpls lable range 30 40 (该命令必须保存配置,reload后生效!)


Q2:在LFIB表中各个参数的准确含义是什么?


入标签/出标签也是针对数据包的流向

-入标签是本端分配给邻居的

-出标签是邻居分配给本端的


便签的确是会传送给该LSR所有的LSR邻居,但是,在传送的Label中,只有downstrean向upstream的传送才是正确有效的。以为192.168.45.0/24分配标签为例,根据label的传递方向,downstream->upstream,R2处于uppstream。虽然R仍然为192.168.45.0/24网段产生了36标签,并且把他传送给了R2的LSR邻居R3,R3也确实收到了,但是,这样的标签是不会被使用的!

因为,这个标签,并不是由下行传递给上行的label。


Q3:出现Untaged,POP tag和implicit null的区别在哪里?依据untaged标签产生原因分析,产生untanged的便签是否说明标签错误?


答: 相同点 不同点

Untaged : 直接查找LFIB表 去掉所有的标签

POP tag : 直接查找LFIB表 去掉一个标签,还是隐式空标签3

Implicit null: 直接查找LFIB表 没有标签


产生Untagged并不代表是错误的!例如:R2对R1的1.1.1.0网段,就是untagged,因为R2是Edge LSR,左边的接口没有启用MPLS,不是1.1.1.0的倒数第二跳!!!


Q4:MPLS究竟如何为个网段分配标签,是只为在mpls域内的网段分配标签,还是说为所有路由可达的网段分配标签?

如果是这样的话,既然mpls不能够到达这个域,又为什么会为该网段产生标签呢?


答:

1)由以上问答中的截图可得:MPLS会为路由可达的所有网段分配标签!(笔者实验所得!)


2)首先,任何LSR或者非LSR都不会为直连的网段分配标签(或者说不会出现在标签转发表中,因为直连的网段不需要标签转发!已经是最犹的了!)

再而,我们说使用MPLS技术来答题ip转发技术室局限于MPLS域内的。(也就是运营商内部的!这样可以用来支撑其他的网络协议!)但是,分配标签是没有区域的范围的,只要存在该路由前缀,MPLS就会为他产生MPLS label,至于MPLS域,在这个角度来将的话,知识用来局限LSR标签转发的范围!(类似于,中国有可以大道别的国家的×××!但是,×××被局限在中国国内!)




转载于:https://blog.51cto.com/gdutcxh/1957542