LDP标签分配方式

2018年7月1日22:51:34 发表评论 1,543 views

LDP标签分配方式

----思科和华为的对比

讲了MPLS那么久,主要是用的思科的设备来学习,因为HCIE考试和课程,接触到华为的MPLS,发现里面有些不一样的地方,这次来跟大家分享一下。

MPLS在替代传统IP转发的时候,使用的是LDP协议来为路由分配标签,分配方式有两种:按序分配和独立分配;分配时使用的标签空间为全局标签空间;可以为所有路由分配标签,也可以为特定的路由分配标签。

 

在思科的路由器中,标签的分配方式为独立分配,也就是当思科的路由满足标签分配条件(1.开启cef2.在物理接口激活LDP协议)后,就可以为FIB表中每一条IGP路由,单独分配一个标签(也就是为所有路由都分配标签)。以下图举例:

LDP标签分配方式

只要R3路由器启用cef,并且在接口上激活LDP协议后,就会为所有R1 – R6所有路由器的loopback接口以及互联链路路由分配标签,保存在LIB(标签信息库)中,而不去管它的邻居是否分配了标签,甚至是它有没有LDP邻居。

在华为的路由器中,标签的分配方式为按序分配,并且默认情况下只能为/32位的主机路由分配标签。以下图举例:

LDP标签分配方式

R2 – R4之间所有路由器互联的接口都启用LDP后,LIB中只有R2R3R4lo0口(/32位路由)的标签信息,如果需要有R5lo0口的路由标签信息,必须要把R5也使能LDP,并且与R4建立邻居关系,这时由于R55.5.5.5/32路由的最末跳路由器,所以R5可以为5.5.5.5/32路由分配imp-null标签发给R4;这样R4才能为5.5.5.5/32路由分配标签发给R3R3才能为5.5.5.5/32路由分配标签发给R2R2才会为5.5.5.5/32路由分配标签。也就是必须先下游路由器分配,然后再上游一跳一跳分配标签。由于R6并不是MPLS域内的设备,所以R2 – R5这几台路由器都不会为R6lo06.6.6.6/32)的路由分配标签。

那么哪种方式比较好呢?以下是本人个人观点来对比一下思科和华为在标签分配时候的优劣对比,如有不到的地方欢迎留言大家讨论。

.思科的自主分配和华为按序分配

思科只要满足标签分配条件,就立即分配标签,而华为是需要等。为什么要等,因为这样能保证LSP不是断裂的,保证下游路由器分配、分发完标签后,上游路由器才能分配、分发,保证去往目的的数据包沿路都是有标签的。这样做完后,MPLS域内的设备只能为域内的路由分配标签,不能为域外的路由分配标签。MPLS域外的路由(比如图中R1R6的路由)是没有标签的,这样这些设备在互访的时候,走的是IP路径。思科走的是LSP路径。当然对于现在的路由器的硬件架构来说,走IP和走LSP路径,光是对IGP路由相关的数据包来说,区别可以忽略不计。

我觉得华为这样设计可能主要考虑了将来在BGPMPLS VPN环境中间的部署情况,核心的路由器可能没有BGP路由,这样一定要保证LSP不断裂,数据包才能够发送,要不然就尽早把数据包丢弃,但是这样也造成了分配、分发标签要比斯科设备要慢。

对于这一点来说,个人比较喜欢思科的方式,因为这样收敛更快。但是华为在路由器中可以通过命令修改:

Mpls ldp

  Label-distribution independent

可以将分配方式从按序分配变为独立分配(华为模拟器上不可用)。

 

二.思科为所有IGP路由分标签,华为只为/32路由分配标签

对于这点来说,个人比较喜欢华为的方式,当然思科和华为都可以通过命令来修改这种标签分配的方法:

思科在12.2(33)SRC以后的运营商级的IOS中都可以使用以下命令为/32路由或特定路由分配标签:

mpls ldp label

   allocate global [host-routes | prefix-list]

华为可以使用以下命令来为主机路由或特定路由分配标签:

mpls

lsp-trigger [host | ip-prefix | all]

对于默认的方式个人觉得实际对互联链路分配标签没有什么用处,只会增大标签信息库的容量,MPLS在现阶段来说,对于IGP加快转发速度的作用几乎没有,主要在BGPMPLS VPN部署时有更好的作用(当然MPLS还有其他应用),可以使核心路由器不要承载所有路由,而在部署BGP的时候,通常使用lo0建立iBGP邻居,所以LSP沿路设备只需要为BGP路由下一跳的lo0路由分配标签就可以了,互联链路的路由完全是没有作用的。所以个人觉得华为的默认操作更好一些。

但是华为路由器在BGP环境中部署MPLS的时候,默认情况并不能让BGP路由的标签自动等于BGP路由下一跳的标签,必须在ingress路由器上,通过命令route recursive-lookup tunnel来实现。这个设计个人感觉很奇葩,不知道出于什么考虑。相对

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: