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.路由器的交换机制

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

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

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


4.有关MPLS的表描述

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

命令:show mpls ldpbinding [detail]

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

命令:show mpls forwarding-table

FIB(Forwarding Information base) : LFIBLIB的集合

命令: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,OSPFEIGRP,BGP

·exchange labels ,such as BGP,LDP,RSVP

data plane(数据层面)

·forwarding packets based on labels

·complex forwarding engine


7.MPLS labelFormat(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建立自己的LIBLFIB

注意: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

2Frame 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标签转发的范围!(类似于,中国有可以大道别的国家的×××!但是,×××被局限在中国国内!)