返回列表 发帖

LDP

对于IP路由表中每一条IGP前缀,每台LSR都会进行本地捆绑,也就是为路由条目加上一个标签,这个标签称为本地标签,到时收到一个数据包后,看到顶部标签如果是自己所拥有的本地标签,那么就根据这个标签从相应接口转发出去,所以邻居把数据包发给自己时,必须在数据包上写好自己对自己有利的标签,那么要怎样才能让邻居写上一个能让自己看了就正确转发的标签呢,这就得自己把这个标签告诉邻居,自己把本地标签发给邻居后,这个标签对于邻居来说就称为远程标签,每当邻居要发送数据包给自己的时候,就先把数据包的顶部标签改成远程标签,也就是改成之前发给邻居的标签,邻居改好标签后,把数据包发给我们,我们就能够做出正确转发了,那么邻居也会像我们一样,把自己的本地标签再发给它们的邻居,因为他要把数据正确发给我们,也是由它的邻居在数据包上写好标签告诉它的。所以在邻居和邻居之后,是要大家协商好每条路由该写上什么标签后发给邻居。LSR把自己生成的本地标签,和邻居发过来的远程标签,不管是用的着的还是用不着的,统统都保存在一张标签表里,这个表称为LIB表(标签信息库)。LDP就是用来发送标签的协议。

已经介绍过,MPLS的标签,就像帧中继的PVC号码一样,只是每台设备唯一的,但是MPLS的标签,在设备上保持唯一还分两种,基于设备唯一和基于接口唯一。

如果基于设备,就是一条路由在一台设备上只有一个唯一的标签。

如果基于接口,就是一条路由在一台设备上,是每个接口都有一个唯一的标签。也就是说标签只要能保证在每个接口上是唯一的即可,在整台设备上可以重复多次。

但LSR可能有多个远程标签,因为可能有多个邻居LSR。

路由协议EIGRP会将所有邻居发给自己的路由条目存放在拓朴表里,再从拓朴表里选中最优最好的放到路由表也供自己使用,当路由表中的条目失效后,再从拓朴表中拿出次优的使用。而MPLS标签交换的LSR也像EIGRP那样,会把所有邻居发来的标签都存放在LIB表里(就像EIGRP的拓朴表),然后从路由会条目的多个标签中选择一个最优的使用,这个选择方法可以通过IGP路由表,选到的下一跳是谁,那就用谁发来的标签,被选中的正在使用的标签,全部都是存放在LFIB(标签转发信息库)表里的,就像EIGRP的路由表。

注:IOS中,LDP不会为BGP的IPv4前缀捆绑标签。

标签的选择都是根据IGP最优路径。

标签也可以不是LDP分发,比如TE中,由RSVP分发,在MPLS VPN中,由BGP分发。

因为MPLS的标签是加在数据包的二层帧头之上,三层包头之下,三层包头,被认为是上层协议,也就是有效负载,中间的LSR并不知道上层协议类型,因为标签不会写,但它也不需要知道,自己只会根据标签来做出转发决定;但是出站LSR需要知道,所以会为FEC分配一个本地标签,以用作报文的入站标签,这样就可以了解有效负载了。

LSR在查看标签时,是要看基于接口还是设备,如果是基于接口,不能单看标签,还要看接口,如果是基于设备的那就只看标签。

注:在IOS中,所有的标签交换控制的ATM(LC-ATM)接口都采用基于接口的模式,其它通通基于设备,也就是说CCIE R&S的考生,只需要关心基于设备的标签即可。

返回列表 回复 发帖