MPLS LDP标签控制--高级feature&&标签的故障排查

Technorati 标签: MPLS,CCIE,Label,LDP,标签控制ide

MPLS LDP标签控制.oop

1, mpls ldp advertise-labels [for prefix-access-list [to peer-access-list]]spa

标签过滤, 1, 给予 2, 接收3d

默认状况下,本地路由器会为IGP路由表全部前缀分配标签,而且分发到全部LDP邻居去.orm

该命令是经过命使人为的选择标签到一些LDP邻居或者TDP邻居去.router

意思就是,发多少,发不发,发给谁。都是该命令控制.blog

2, mpls ldp neighbor x.x.x.x labels accept ACL_number接口

这个命令就是,我接收哪一个邻居发送给个人ACL能匹配的前缀的标签.ip

其余都标签都进行过滤.ci

控制分发:给予:

仅仅支持基础ACL的方案,不支持前缀列表.

clip_p_w_picpath002

clip_p_w_picpath004

首先全局须要打上:no mpls ldp advertise-labels.就是不分发标签.

clip_p_w_picpath006

因此上面命令的意思是:

本台设备,只为全部的LDP邻居分发192.168.254.0/24的IGP路由分配的标签.

其余的IGP路由前缀没有标签,直接在直连设备上面除了192.168.254.0/24有上端分配的标签,其余的都是No Labels.

试验:分配标签控制----发标签控制

clip_p_w_picpath008

R3发送了三条IGP路由前缀的标签给R2.

如图:

clip_p_w_picpath010

如今要作的就是只让R3通告55.1.1.1/32的标签给R2.其余的标签都给过滤掉.

最终在R2上面对于55.1.1.1/32有标签,可是其余两个路由前缀33.1.1.1/32和35.1.1.0/24是No Label的状态.

ACL解决方案:

R3:

mpls label range 300 399

mpls label protocol ldp

no mpls ldp advertise-labels

mpls ldp advertise-labels for 2 to 1

!

interface Loopback0

ip address 33.1.1.1 255.255.255.255

!

interface Ethernet0/0

ip address 35.1.1.3 255.255.255.0

mpls ip

!

router ospf 1

router-id 33.1.1.1

network 23.1.1.3 0.0.0.0 area 1

network 33.1.1.1 0.0.0.0 area 1

network 35.1.1.3 0.0.0.0 area 1

!

mpls ldp router-id Loopback0 force

access-list 1 permit 22.1.1.1---R2LDProuter-id.

access-list 2 permit 55.1.1.1---容许放行的前缀的标签

!

上面的配置,22.1.1.1是R2的ldp router-id.

意思是说,R3将通告55.1.1.1的路由前缀分配的标签给R2,22.1.1.1

该方案是用的ACL方案.

下面是当R2清一下ldp邻居之后的结果:

clip_p_w_picpath012

对于33.1.1.1/32和35.1.1.0/24都没有分配标签。而对55.1.1.1/32是分配了标签的。

其实是在R3上面作了一个标签过滤.并不能说R3没有对33.1.1.1/32和35.1.1.0/24分配标签,而是说没有江该标签分发给R2而已:

下面是R3的标签绑定表:

clip_p_w_picpath014

这里能够看到,R3是对33.1.1.1还有35.1.1.1都分配了标签的。

只是没有发送给R2而已.

能够在同一个路由器上面作不少

mpls ldp advertise 的策略:

clip_p_w_picpath016

刚才只是一个极端的例子,之因此说极端,是由于R3是达到只发送某些标签给R2了,但是如今R5就惨了,由于R3的配置,只有对于R2分发某些标签,致使了R5什么标签都没有从R3收到:

clip_p_w_picpath018

要解决这个问题,继续在R3上面进行其余邻居的标签放行:

R3的配置:

mpls label range 300 399

mpls label protocol ldp

no mpls ldp advertise-labels-----默认不分发任何标签.

mpls ldp advertise-labels for 2 to 1 ----将35.1.1.0/24和55.1.1.1/32的前缀分发的标签通告给22.1.1.1(R2)

mpls ldp advertise-labels for 4 to 55----将全部的前缀标签通告给55.1.1.1(R5)

!

mpls ldp router-id Loopback0 force

access-list 1 permit 22.1.1.1

access-list 2 permit 35.1.1.0

access-list 2 permit 55.1.1.1

access-list 4 permit any

access-list 55 permit 55.1.1.1

!

最后,在R2上面,咱们能够看到,只有35.1.1.0和55.1.1.1从R3获得了标签,而33.1.1.1没有标签,是No Label:

下面是R2的标签表:

clip_p_w_picpath020

而R5,全部的标签都从R3分配了过来:

clip_p_w_picpath022

控制分发:标签接收

仅仅支持基础ACL的方案,不支持前缀列表.

clip_p_w_picpath024

如今在R5上面作标签接收的过滤.

在正常状况下,R5上面的标签转发表是:

clip_p_w_picpath026

R5上面作相关接收标签的策略:

mpls label range 500 599

mpls label protocol ldp

mpls ldp neighbor 33.1.1.1 labels accept 2

!

mpls ldp router-id Loopback0 force

access-list 2 permit 12.1.1.0

access-list 2 permit 22.1.1.1

!

上面R5的配置,意思是说。我R5本地,只接收邻居33.1.1.1对于IGP前缀12.1.1.0/24和22.1.1.1/32分配的标签.

clip_p_w_picpath028

这里能够看到,由于在R5上作了只接收R3通告的12.1.1.0和22.1.1.1的标签.因此只有这两个前缀有标签。其余的outgoing label所有都是no Label的。

MPLS label Troubleshooting:

就标签来讲,没有什么多说的,由于标签是系统分配的,咱们很难对每个标签去注意控制。

可是,若是路由器不管如何也收不到邻居分配过来的标签,那么下面几点是必定要注意的:

1, no ip cef

//这个是MPLS的基础,若是没有CEF,任何标签都不会收到. 首先, cisco的转发基础,cef是核心,cef是核心路由表提取出来的一个集合表,而MPLS的LDP标签是基于CEF表前缀来分发标签的,因此没有CEF,LDP也不会基于路由表来分发标签,最终什么标签都没有.

下面是一个路由器没有开启cef的MPLS forwarding table:

clip_p_w_picpath030

2, no mpls ip

cisco系统,全局的mpls ip默认是打开的,能够手工关闭.

一旦关闭,现象就是,show mpls forwarding-table是空表项,什么都没有.

而show mpls ldp binding标签库,也是空的。系统会提示:LIB not enable.

label information base not eanble. 就是全局的mpls ip被干了,必定要注意区别.

若是no ip cef,那么全部的标签都是No Label.若是干掉了mpls ip,标签表都不复存在了.

clip_p_w_picpath032

clip_p_w_picpath034

3,LDP邻居关系起不来.

这个时候就要检查transport-IP是否IGP能相互可达.

默认的状况,LDP的router-id就等于Transport-IP.

在LDP创建邻居的时候,两边路由器都在发送224.0.0.2的组播报文.

router-id是用于选举谁是LDP的邻居创建的发起方.

Transport-IP是用于创建TCP646邻居用的。

总结:在设备两端用扩展ping对方的router-id.通,再说端口是否被封,断,查IGP路由表.

troubleshooting的时候,好比:

R1--12.1.1.x--R2

R1的loop0:11.1.1.1/32, R2的loop0:22.1.1.1/32.

R1和R2上面,IGP都是宣告loop0和12.1.1.x的网段。

这个时候,在R1上面,再建一个loopback1:11.11.11.11/32,而后全局打上:mpls ldp router-id loop1 force,加了force参数,邻居会down掉,可是以后在也创建不起来了,由于R1没有network loop1的网段进行宣告.R2和R1的loop1 IGP不可达.

4, 标签控制[分发/接收]

分发过滤:mpls ldp advertise-labels [for prefix-access-list [to peer-access-list]]

接收过滤:mpls ldp neighbor x.x.x.x labels accept ACL_number

5, 标签的分发协议不匹配.TDP&LDP

clip_p_w_picpath036

NOTES:全局和接口都可修改标签协议.

在一台设备上面用默认的mpls label protocol ldp.另一个设备上面是用cisco私有的TDP协议。

两个协议是不兼容的.邻居没法创建.

6,标签的范围太小.

在作实验的时候,常常是R1就打上mpls label range 100 199.

由于用于试验,100个标签差很少够用,主要用于观察现象。

而在现网环境中,或者troubleshooting的时候,若是在一个路由器上面吧这个范围修改的很小:

R1(config)#mpls label range 100 101

那么带来的问题就是下游的路由器只能接收到1个前缀带标签,其余所有都是No Label.

例如:R1---R2直连.在R2上面作这个范围限制:

clip_p_w_picpath038

clip_p_w_picpath040

在R2上面作了一个限制,可用标签范围只有2个.

那么R1上面的结果是一堆从R2始发的路由前缀没有标签.

这也是为何现网不建议手工配置标签的范围.由于随着业务的增长,路由前缀必定会增长的,若是前期进行限制,后期故障排查很容易出错。特别是核心设备,show run都是好几屏或者是十多屏.

相关文章
相关标签/搜索