全面详细的介绍MPLS&MPLS - VPN 下载本文

标签数据是会被分段后传输的,如果不想被分段,就得更新MTU的大小。(一般MPLS数据包加最多两个标签,一个标签4字节,所以只要改成比正常MTU多8字节即可。)而改MTU还必须在MPLS网络中所有设备上进行更 改,除非允许分段。

MPLS最大接收单元(MRU)

此内容无须配置

查看: sh mpls forwarding-table 1.1.1.1 detail

MPLS默认超过MTU的数据包是和IP数据包一样要分段传输的,分段就是LSR移除标签,对IP数据分好相应大小后,再将原来的标签加到每个包,如果 IP包头设置了不分段(DF),LSR就丢掉报文,然后返回一个需要分段的ICMP(不分段位设置为类型3,代码4),然后沿来的LSP发回去。

MTU路径发现(自动执行)

查看从源到目的的最小MTU,就是类似窗口的机制,数据包试着发出去,如果被丢了,就减小后再发,如果再丢就再减再发,直到能正常发到目的地为止。有时这个不太好用,因为ICMP不能返回,可能是防火墙挡住了。

标签分发

要让IGP全部都支持标签分发并且相互协同工作,不现实,所以新分发协议要独立于所有路由协议,那么就使用LDP,但是BGP可以广泛使用,范围大,最后 BGP就自己发标签。LDP不为BGP的IPv4路由发送标签。

LDP运行

LDP运行时有四大功能: (1)运行LDP的LSR发现

(2)会话的建立和维护 (3)标签映射通告 (4)使用通知来进行管理

LDP是需要像OSPF那样建邻居的,使用hello包发现和维护邻居关系,LDP会在启用了的接口上发送hello来找邻居,发送hello用UDP 646,目的地为224.0.0.2,hello时间和保持时间分别是5秒15秒。这个hello包是不能跨网段传递的,而这个hello包被称为LDP Link Hello。

LDP在LSR之间除了建立邻居关系之外,还要建立LDP会话,建LDP会话就是用来交换标签的,使用的是TCP连接。而这个会话也只能和直连邻居建立,这样会话被称为LDP sessions。LDP会话的hello和超时分别是60秒和180秒。如果LDP邻居关系丢失,那么LDP会话也会断开。

配置MPLS

说明:

以上图为拓朴,配置MPLS,MPLS网络区域的范围是R1、R2、R3、R4,而R1和R4同时连接MPLS区域和IP网络,最终数据包在MPLS区域内传递时,我们将看到标签交换的效果。在开始配置之前,需要申明的是,每台路由器上都已配置looback0,地址分别为X.X.X.X/32,其中X表 示设备号码,比如R2的loopback0地址为2.2.2.2/32,R5的loopback0地址为5.5.5.5/32;在所有设备中,已经启用 OSPF协议,除了每台设备的接口loopback0没有放进OSPF进程以外,其它所有接口均在OSPF进程里通告。

1.查看和修改标签范围(可选配置) (1)看默认标签数量: R1#sh mpls label range

Downstream Generic label region: Min/Max label: 16/100000 R1#

说明:默认标签范围是16到100000 (2)改标签范围:

R1(config)#mpls label range 16 1010000 R1#sh mpls label range

Downstream Generic label region: Min/Max label: 16/1010000 R1#

说明:已 将标签范围改成:16到1010000 2.查看和修改MTU(可选配置) (1)查看路由器接口MTU: R1#show mpls int s1/1 detail (2)修改路由器接口MTU:

R1(config)#int s1/1

R1 (config-if)#mpls mtu 1508 或

R1 (config)#int s1/1 R1 (config-if)#mtu 2000

注:某些IOS下的接口不能设置MTU,只能分段传输。

(3)修改交换机支持小巨型帧: sw(config)#system jumbomtu 2000 sw(config)#system mtu 2000 3.全局开启CEF(必须配置)

注:某些IOS版本已默认开启的,可跳过此步,请以自身IOS为准。

r1(config)#ip cef

4.配置LDP (必须配置) (1) 全局启用LDP:

说明:如果全局启用LDP,就将在此路由器的所有接口都开启LDP,但也可以选择

只在某接口开启。

r1(config)#mpls label protocol ldp (2) 接口启用LDP:

说明:如果路由器并非全部接口都需要开启LDP,则只在相应接口开启。

r1(config)#int s1/1

r1(config-if)# mpls label protocol ldp (3)在接口下开启发hello包找邻居: