ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

MPLS-10 LDP 标签分发控制

2020-09-24 11:01:46  阅读:223  来源: 互联网

标签:10 LDP R2 标签 labels MPLS ldp advertise 前缀


LDP控制标签通告(条件通告)

顾名思义,就是向外发送指定的标签

Advertise-labels

 Router(config)#mpls ldp advertise-labels for acl/prefix to acl

For:针对于哪些前缀

To:针对地某一个LDP的neighbor的routerid

特别注意

想要使用advertise-labels,就必须要输入一条命令,默认情况下所有设备都默认通告所有标签。所以,你需要手动的关闭这一功能,才可以使用这个条件通告。

No mpls ldp advertise-labels

否则是不生效的。

 

所以一个完整的分发控制命令应该是这样儿的
1 access-list x per x.x.x.x    //抓取具体的前缀
2 access-list y per y.y.y.y    //指定具体的LDP 邻居
查看具体的邻居rid,可以使用show mpls ldp discovery来查看,里面写着的LDP ID就是RID
3 mpls ldp advertise-labels for x to y   // for 前缀,to 邻居
4 no mpls ldp advertise-labels   //一定要记住,要关闭默认的发送所有 

实例1

 

 

 需要:

在R2上进行分发控制,R2只给R3发送一个192.168.1.0的标签,其它不发,

另外,在R1上可以看到所有的R2发过来的标签

如何操作?

 

 

 思路

1 肯定是要先抓取前缀,以及具体的邻居

 mpls ldp advertise-labels for1 to 2

然后在R2上指定这个邻居发送特写的捆绑标签

mpls ldp advertise-labels for 1 to 2

将acl 1 抓取的前缀发给ACL 2 指定的邻居

 最后的最后,千万不要忘了,那条命令

 

 

 好了,我们来看一下结果如何

如何查看呢?

Show mpls ldp bindings,查看lib表是最直观的了

因为可以很简单的看到一个前缀分别有哪几个邻居发来了标签,内容是什么

 下图为原有LIB表,

 

 

 

经过分发控制之后,是这样的

 

 

 在R3上可以看出,只有192.168.1.0/24的这个前缀有2.2.2.2的标签,

 看来第一个要求我们是满足了,那第二个要求呢?

 

我们先来分析一下R2上的配置,

抓取192.168.1.0/24这个前缀,然后指定邻居通行标签,

那么没有指定的邻居呢?是不是就不通行标签了?

是的,没错,

所以,如果想要完成要求的第二步,让R2为R1通告所有标签

但是如果你按上面的操作,不针对r1进行单独处理的话,就会出现这样的情况

在R1上根本看不到R2发过来的任何标签

 

 

 分析一下为什么?

因为我们在前面进行了no mpls ldp advertise-labels,不发送全部标签,

而只permit了R3,

针对这一情况我们可以这样做

 

 

 

 

 

针对于1.1.1.1的这个邻居,通告所有的标签,

为这操作是为了不影响之前的那条命令

Mpls ldp advertise-labels for 1 to 2

这样一来,我们看一下实际的效果会是什么样的吧

 

 

 可以看到,标签全部发送到R1上了.

 

实例2

针对于某一些/全部邻居,只发送某一个/多个指定的前缀,

什么意思?

 

 比如 R2现在只想给R1和R3通告192.168.1.0 这个网段的标签,其它的不进行通告

要如何操作呢?

 

动脑筋想一下,是不是很简单,

想一下刚刚讲到的for x to y

X 是针对的具体的前缀

Y 是针对的具体的邻居,

刚才的要求是,只通行192.168.1.0 这个前缀给R1和R3,而此时R1和R3是我的全部邻居,我可不可以用any 来代替呢?当然可以,

 

那我的命令是不是就可以这样写了

Access-list 1 per 192.168.1.0
Access-list 2 per any
Mpls ldp advertise-labels for 1 to 2
No mpls ldp advertise-labels

我这里再次强调的目的就是为了让你加深印象,而不是只会命令,一定要明白它里面的含义是什么,再有,就是要理解题目的真正意途。

总结

其实,在我看来,这个advertise-label和之前学习的那个BGP的community 属性中no-advertise值还是很像的。

反正就是一句话,关闭全部通告,指定前缀给特定的邻居(RID)

 

LDP 入站标签过滤

控制自己所接收的标签,这个人个人理解,有点儿像distribute-list xxx in 的效果

 Mpls ldp neighbor x.x.x.x labels accept acl-number

 

和上面的那个正好相反,是我想接收指定的前缀标签

 

实际的来看一下吧

还是上面的环境

 

 

 在所有的LSR上运行MPLS

然后在R1上新宣告一个接口10.0.0.1 /24 进入到网络

在R2上是可以看到这个前缀被捆绑标签并发送到R2上的,

 

 

 现在我们在R2上用标签过滤技术来控制一下,

 

需要如下,

只接收10.0.0.0这个前缀的标签,不接收R1其它的前缀标签

 

 

 

 

 先来想一下,这样的操作是不是我们想要的,

 

首先需要明确一点,在标签过滤的过程中,ACL的作用是什么?

ACL中的permit,和deny,其意义在于接收/过滤,

刚才我们用permit 10.0.0.0,那也就意味着我们接收10.0.0.0这个前缀,

而ACL的最后隐藏着deny any 会将其它的全部干掉。

 

咱们来验证一下

 

 

 看到了吧,除了这个10.0.0.0这个前缀,其它的标签全都没有1.1.1.1 发来的了。

在此图中R3按理来说是不可能收到R1的标签的,因为我们做了非直连ldp邻居,也就是targeted 了,所以会收到。

 

那要是我只拒收10.0.0.0,而放行其它 的呢?

我们可以不可以这样

Access-list 1 deny 10.0.0.0
Access-list 1 per any

?

可不可以呢?

试一下就知道了

 

 

 

所有的标签又都过来了,

不过好像有些慢,

如果想要加快它的收敛速度,可以像BGP那样,清除一下邻居表

Clear mpls ldp neighbor *

 

 

-----------------------------------------

CCIE成长之路   --- 梅利 

标签:10,LDP,R2,标签,labels,MPLS,ldp,advertise,前缀
来源: https://www.cnblogs.com/meili333/p/13723048.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有