MPLS LSP的建立-——经典文章

2018年7月1日00:36:32

1.概述

1.1 前提说明

本小节将对per-platform label space、UD、LLR模式下的MPLS LSP建立过程进行讨论

1.2 LSP的建立过程

MPLS LSP的建立-——经典文章

1.3 Reserved Labels

(1)Implicit NULL Label

①概述

a.其label value为3

b.implicit指的是在进行数据转发时(data plane),该label不会出现在label stack中

c.引入implicit NULLlabel的目的是提高转发效率

②为何引入implicit Null label——两次查找的低效性

MPLS LSP的建立-——经典文章

如图所示,LSR 2是egress LSR,它为1.1.1.0/24分配的label为20,并且通告给其LSRneighbor LSR 1。LSR 1上将该remote binding形成关联

当LSR 1将带有label 20的packets转发给LSR 2时,LSR 2首先需要检查其labelvalue

由于LSR 2是该FEC的egress LSR,因此LSR 2根据value确定需要的操作是移除该label

LSR 2在移除label后,对该IP packet再次进行查找,确定其IP转发的下一跳,并将其转发

这里egress LSR必须进行两次查找,一次查找LFIB,一次查找CEF,而前一次查找是可以避免的

③PHP

MPLS LSP的建立-——经典文章

PHP(Penultimate Hop Popping,倒数第二跳弹出)

此时作为FEC 1.1.1.0/24的egress LSR,LSR 2为其分配一个implicit NULL label,并通告给LSR neighbors

LSR 1本地若与label value为3的implicit NULL label形成关联,LSR 1收到去往1.1.1.0/24的labeled packets时操作为POP

由于在倒数第二跳LSR 1上进行了POP操作,此时LSR 2收到的将是IP packets,转发时减少了一次查找

(2)Explicit NULL Label

①Implicit NULL Label的缺陷

提前将label弹出,造成egress LSR只能收到IPpackets,label的缺失可能会导致QoS方面的问题

②概述

①其value为0

②explicit指的是,进行数据转发时,explicit NULL label会被携带在label stack中发送,LSR读取到该label时进行pop操作

③工作过程

MPLS LSP的建立-——经典文章

作为1.1.1.0/24的egress LSR,LSR 2在启用explicit NULL label时,为本地直连、汇总前缀依然分配implicit NULL label

但是LSR 2在向其LSR neighbors通告label时,将通告explicit NULL label

LSR 1收到LSR 2通告的label,并形成关联项

当LSR 1收到去往1.1.1.0/24的labeledpackets,进行swap操作,替换top label为value为0的explicit NULL label

LSR 2收到该packets时,执行pop操作

④相关配置

由于Cisco及HUAWEI默认情况下都使用implicitNULL label,因此需要额外配置支持explicitNULL label

a.Cisco

Router(config)#mpls ldpexplicit-null [for ] [to ]

如果不添加for、to关键字,则向所有LSRneighbors发送explicit NULL label

可以使用for指定特定的FEC

使用to指定特定的LDP neighbor

注意:

这里的LDP neighbor指的是邻居LSR的Router-ID,而不是LDPtransport-address

b.HUAWEI

[Huawei-mpls]labeladvertise explicit-null

MPLS LSP的建立-——经典文章

2.Label的分配

2.1 何时分配

(1)Cisco实现

一旦IP RIB中出现了新的非BGP前缀,LSR便侦测到了新的FEC产生,并为该FEC分配local label

(2)HUAWEI实现

由于华为设备默认工作在Ordered LSP Control模式下,除非当前设备是 egress LSR,否则必须收到LDP对等体的Label Mapping message之后,才能为新发现的FEC分配label

2.2 Label分配对象

直连主机IP

直连非主机IP

聚合路由

静态路由只跟出口

学习到的路由前缀

Cisco

Implicit Null

Implicit Null

Implicit Null

Implicit Null

Normal label range

HUAWEI

Implicit Null

默认不分配label

配置后分配Implicit Null

默认不分配label

IP RIB中默认无聚合路由

默认不分配label

配置后分配常规范围label

收到label mapping后分配

(1)Cisco实现

Cisco的MPLS实现,默认对直连前缀、聚合路由、只跟出口的静态路由分配implicit Null label

由于工作在Independent LSP Control mode下,Cisco LSR默认会对学习到的FEC直接分配常规范围的label

上图中,Cisco的MPLS实现

LSR 1会为本地直连IP31.31.12.0/24分配implicit Nulllabel;为各个学习到的OSPF前缀分配常规范围的labels

LSR 2为直连IP31.31.12.0/24、31.31.23.0/24分配implicit Null label;为各个学习到的OSPF前缀分配常规范围labels

LSR 3上,为直连IP31.31.23.0/24、31.31.34.0/24以及OSPF聚合路由4.4.0.0/16分配implicitNull labels;为学习到的31.31.12.0/24以及4.4.4.4/32分配常规范围labels

LSR 4为直连IP31.31.34.0/24、4.4.4.4/32分配implicit Null labels;为各个学习到的OSPF前缀分配常规范围labels

(2)HUAWEI实现

华为设备为了节省label资源,默认只对直连主机IP分配labels。因此在如上网络环境中,只有4.4.4.4/32具有MPLS转发项

由于工作在Ordered LSP Control mode下,对于通过路由协议学习到的更新,只有在收到label mappings时,LSP上游设备才会为FEC分配local labels

在进行相关配置后,对于直连非主机前缀,LSR会为其分配implicit Null labels

对于静态路由只跟出口的情况,LSR也会为其分配labels,但是分配的是常规范围的labels

对于聚合路由,华为设备本地IP RIB中并不会产生指向Null 0的路由,因此不会分配labels

上图中,HUAWEI的MPLS实现

LSR 1默认不对31.31.12.0/24分配labels,进行相关配置后,为31.31.12.0/24分配implicitNull label;对于OSPF学习到的路由,收到remote bindings后才为其分配常规范围的labels

LSR 2同理

LSR 3上做了路由聚合,但是其IPRIB中只有4.4.4.4/32的路由,而不会像Cisco实现那样,产生4.4.0.0/16的路由。因此即便进行了相关配置,LSR 3也只会为31.31.23.0/24以及31.31.34.0/24分配implicit labels。在收到4.4.4.4/32的label mapping信息后,为其分配local label

LSR 4上由于4.4.4.4/32是主机路由,因此默认便会为其分配implicit label;而31.31.34.0/24在进行相关配置后才会为其分配

(3)HUAWEI设备所需的额外配置

[Huawei-mpls]lsp-trigger all //egress LSR上对所有静态路由及IGP获得的路由分配labels

[Huawei-mpls]lsp-trigger ip-prefix  //对前缀列表匹配的前缀触发分配labels

注意:

由于工作在Ordered LSP Control mode下,若egress LSR不分配labels,则LSP无法建立

3.Label的分发

3.1 何时分发

当LSR发现FEC,并且触发为其分配locallabels后,就将local binding分发给LDP对等体

3.2 Cisco与HUAWEI实现的区别

(1)Cisco

由于Cisco设备默认工作在Independent LSP Control mode下,因此Cisco LSR发现FEC后便能立即分配labels,并且直接通告给当前LSR的所有LDP peers

(2)HUAWEI

HUAWEI设备由于工作在OrderedLSP Control mode下,只有当前设备的直连IP会被分配labels,egress LSR分配完labels后,通告给所有LDP peers

LDP peers收到labelmappings后,才允许为发现的相关FEC分配local labels

Local labels分配完毕后,该LSP上游LSR向其所有LDP peers(包括通告mapping信息的设备)发送label mappings

4.Label的关联

4.1 LIB

(1)全称

Label Information Base

(2)作用

用于存放由邻居LSR通告的remote bindings

(3)查看命令

①Cisco

Router#show mpls ldp bindings //查看通过LDP获得的label信息

示例:

MPLS LSP的建立-——经典文章

Router#show mpls ip binding //查看LIB

示例:

MPLS LSP的建立-——经典文章

②HUAWEI

displaympls ldp lsp

示例:

MPLS LSP的建立-——经典文章

4.2 关联实现原理

(1)Address message

①作用

辅助实现label关联

②何时发送

当LSRs之间的LDP对等体关系建立完毕后,LSR发送Address message

其中包含了该LSR设备的所有直连接口IP地址

(2)关联项的形成

MPLS LSP的建立-——经典文章

LSR通过IP RIB或CEF FIB获取FEC,并为其分配local label,确定该FEC对应的IGP下一跳

当收到多个LSRs的mapping信息时,当前LSR通过IGP下一跳与LDP peer的boundaddress对比选取最佳LDP peer

当前LSR使用该FEC对应的local binding与最佳LDP peer通告的remote binding形成关联项

4.3 关联结果

(1)Cisco实现

序号

In

Out

Operation

意义

imp-null

无法形成关联项

egress LSR不会为对应的FEC形成关联项

label

imp-null

Pop

倒数第二跳设备提前弹出label

label

label

Swap/Push

ingress LSR将labels压栈

intermediate LSR对label进行交换

label

NULL

Untagged/no label

LSP出现中断,应将label移除

NULL

imp-null/label

无法形成关联

当前设备无相关FEC

注释:

imp-null——ImplicitNull label

label——常规范围的label

NULL——未收到该FEC相关的mapping信息

———表示imp-null、label、none中任意一个

注意:

Untagged与no label是一样的,不同的IOS版本对其称谓有所不同

(2)HUAWEI实现

序号

In

Out

LIB

LFIB

3

label

3/NULL

*Liberal/label

只有关联项3/NULL,无转发作用

3

NULL

3/NULL

只有关联项3/NULL,无转发作用

3

3

3/NULL

*Liberal/3

只有关联项3/NULL,无转发作用

label

3

label/3

NULL/3

label/3——实现Pop操作

NULL/3——转发IP packets用

label

label

label/label

NULL/label

label/label——实现swap操作

NULL/label——转发IP packets用

label

NULL

不存在该情况

不存在该情况

NULL

label

*Liberal/label

无转发项

NULL

3

*Liberal/3

无转发项

(3)小节

①HUAWEI设备由于工作在Ordered LSP Control mode下,不存在当前设备为FEC分配常规范围label但是未收到remote bindings的情况——Cisco的Untagged(No Label)不会在HUAWEI实现中发生

Cisco对于某个FEC的LSP建立会出现中断

HUAWEI对于某个FEC的LSP建立始终是连续的

②虽然HUAWEI与Cisco在label本地保存及关联上有许多差别,但是最后的效果是一致的

egress LSR不会为本地起源的FEC建立具有转发效应的关联项

当前设备如果没有发现某个FEC,不会为其建立转发项

默认都支持PHP

4.4 负载均衡的实现

当相关FEC在IP RIB或CEF FIB中存在多条出站路径时,来自这些路径的labels都将作为outgoing label与local binding形成关联项,加入到LFIB中

此时,一个FEC便可能对应多条LSP,具体转发与厂商的数据转发机制有关。如Cisco的MPLS实现中,此时的下一跳选择与CEF负载均衡转发机制有关

MPLS LSP的建立-——经典文章

MPLS LSP的建立-——经典文章

4.5 查看LFIB

(1)Cisco

Router#show mplsforwarding-table

示例:

MPLS LSP的建立-——经典文章

(2)HUAWEI

displaympls lsp

示例:

MPLS LSP的建立-——经典文章

本文出自 “Thely” 博客,请务必保留此出处http://thely.blog.51cto.com/2695427/1311051


  • 更新时间:2018年7月1日00:36:32 ,共 5593 字。