02-MPLS基本配置
本章节下载: 02-MPLS基本配置 (734.29 KB)
目 录
目前,如果需要支持MPLS以及基于MPLS实现的相应功能,需要配备SD系列业务板,并使用这几种业务板上的端口连接用户网络和运营商网络。
MPLS(Multiprotocol Label Switching,多协议标签交换)是一种新兴的IP骨干网技术。MPLS在无连接的IP网络上引入面向连接的标签交换概念,将第三层路由技术和第二层交换技术相结合,充分发挥了IP路由的灵活性和二层交换的简捷性。
MPLS广泛应用于大规模网络中,它具有以下优点:
l 在MPLS网络中,设备根据短而定长的标签转发报文,省去了通过软件查找IP路由的繁琐过程,为数据在骨干网络中的传输提供了一种高速高效的方式。
l MPLS位于链路层和网络层之间,它可以建立在各种链路层协议(如PPP、ATM、帧中继、以太网等)之上,为各种网络层(IPv4、IPv6)提供面向连接的服务,兼容现有各种主流网络技术。
l 支持多层标签和面向连接的特点,使得MPLS在VPN、流量工程、QoS等方面得到广泛应用。
l 具有良好的扩展性,在MPLS网络基础上可以为客户提供各种服务。
FEC(Forwarding Equivalence Class,转发等价类)是MPLS中的一个重要概念。MPLS是一种分类转发技术,它将具有相同特征(目的地相同或具有相同服务等级等)的报文归为一类,称为FEC。属于相同FEC的报文在MPLS网络中将获得完全相同的处理。目前设备只支持根据报文的网络层目的地址划分FEC。
标签是一个长度固定、只具有本地意义的标识符,用于唯一标识一个报文所属的FEC。一个标签只能代表一个FEC。
如图1-1所示,标签封装在链路层报头和网络层报头之间的一个垫层中。标签长度为4个字节,由以下四个字段组成:
l Label:标签值,长度为20bits,用来标识一个FEC。
l Exp:3bits,保留,协议中没有明确规定,通常用作服务等级。
l S:1bit,MPLS支持多重标签。值为1时表示为最底层标签。
l TTL:8bits,和IP报文中的TTL意义相同,可以用来防止环路。
LSR(Label Switching Router,标签交换路由器)是具有标签分发能力和标签交换能力的设备,是MPLS网络中的基本元素。
位于MPLS网络边缘、连接其他网络的LSR称为LER(Label Edge Router,标签边缘路由器)。
属于同一个FEC的报文在MPLS网络中经过的路径称为LSP(Label Switched Path,标签交换路径)。
LSP是从MPLS网络的入口到出口的一条单向路径。在一条LSP上,沿数据传送的方向,相邻的LSR分别称为上游LSR和下游LSR。如图1-2所示,LSR B为LSR A的下游LSR,相应的,LSR A为LSR B的上游LSR。
与IP网络中的FIB(Forwarding Information Base,转发信息表)类似,在MPLS网络中,报文通过查找标签转发表确定转发路径。
MPLS节点由两部分组成:
l 控制平面(Control Plane):负责标签的分配、路由的选择、标签转发表的建立、标签交换路径的建立、拆除等工作。
l 转发平面(Forwarding Plane):依据标签转发表对收到的分组进行转发。
如图1-3所示,MPLS网络的基本构成单元是LSR,由LSR构成的网络称为MPLS域。MPLS网络包括以下几个组成部分:
l 入节点Ingress:报文的入口LER,负责为进入MPLS域的报文添加标签。
l 中间节点Transit:MPLS域内部的LSR,根据标签沿着由一系列LSR构成的LSP将报文传送给出口LER。
l 出节点Egress:报文的出口LER,负责剥离报文中的标签,并转发给目的网络。
Transit根据报文上附加的标签进行MPLS转发,Ingress和Egress负责MPLS与IP技术的转换。
LSP的建立过程实际就是将FEC和标签进行绑定,并将这种绑定通告相邻LSR,以便在LSR上建立标签转发表的过程。LSP既可以通过手工配置的方式静态建立,也可以利用标签分发协议动态建立。
(1) 手工配置的方式静态建立LSP
建立静态LSP需要用户在报文转发路径中的各个LSR上手工配置为FEC分配的标签。建立静态LSP消耗的资源比较少,但静态建立的LSP不能根据网络拓扑变化动态调整。因此,静态LSP适用于拓扑结构简单并且稳定的小型网络。
(2) 利用标签发布协议动态建立LSP
标签发布协议是MPLS的信令协议,负责划分FEC、发布标签、建立维护LSP等。标签发布协议的种类较多,有专为标签发布而制定的协议,如LDP(Label Distribution Protocol,标签分发协议),也有扩展后支持标签发布的协议,如BGP、RSVP-TE。本文只介绍LDP协议。
:
利用标签发布协议动态建立LSP的过程如图1-4所示。下游LSR根据目的地址划分FEC,为特定FEC分配标签,并将标签和FEC的绑定关系通告给上游LSR;上游LSR根据该绑定关系建立标签转发表项。报文传输路径上的所有LSR都为该FEC建立对应的标签转发表项后,就成功地建立了用于转发属于该FEC报文的LSP。
图1-4 动态LSP建立过程
标签发布就是将为FEC分配的标签通告给其他LSR。根据标签发布条件、标签发布顺序的不同,LSR通告标签的方式分为DU(Downstream Unsolicited,下游自主方式)和DoD(Downstream On Demand,下游按需方式)、独立标签控制方式(Independent)和有序标签控制方式(Ordered)几种。
标签管理,即标签保持方式,是指LSR对收到的、但目前暂时用不到的FEC和标签绑定的处理方式,分为自由标签保持方式(Liberal)和保守标签保持方式(Conservative)两种。
(1) 标签发布方式(Label Advertisement Mode)
如图1-5所示,标签发布方式分为:
l DU:对于一个特定的FEC,下游LSR自动为该FEC分配标签,并主动将标签分发给上游LSR。
l DoD:对于一个特定的FEC,上游LSR请求下游LSR为该FEC分配标签,下游LSR收到请求后,为该FEC分配标签并向上游LSR通告该标签。
l 目前,设备只支持DU标签发布方式。
l 具有标签分发邻接关系的上游LSR和下游LSR之间必须使用相同的标签发布方式,否则LSP无法正常建立。
(2) 标签分配控制方式(Label Distribution Control Mode)
标签分配控制方式分为:
l 独立标签控制方式:LSR可以在任意时间向与它连接的LSR通告标签映射。使用这种方式时,LSR可能会在收到下游LSR的标签之前就向上游通告了标签。如图1-6所示,如果标签发布方式是DU,则即使没有获得下游的标签,也会直接为上游分配标签;如果标签发布方式是DoD,则接收到标签请求的LSR直接为它的上游LSR分配标签,不必等待来自它的下游的标签。
l 有序标签控制方式:LSR只有收到它的下游LSR为某个FEC分配的标签,或该LSR是此FEC的出口节点时,才会向它的上游LSR通告此FEC的标签映射。图1-5中的标签发布过程采用了有序标签控制方式:如果标签发布模式为DU,则LSR只有收到下游LSR分配的标签后,才会向自己的上游LSR分配标签;如果标签发布模式为DoD,则下游LSR(Transit)收到上游LSR(Ingress)的标签请求后,继续向它的下游LSR(Egress)发送标签请求,Transit收到Egress分配的标签后,才会为Ingress分配标签。
(3) 标签保持方式(Label Retention Mode)
LSR接收到标签映射后,保留标签的方式分为:
l 自由标签保持方式:对于从邻居LSR收到的标签映射,无论邻居LSR是不是指定FEC的下一跳都保留。这种方式的优点是LSR能够迅速适应网络拓扑变化,但是浪费标签,所有不能生成LSP的标签都需要保留。
l 保守标签保持方式:对于从邻居LSR收到的标签映射,只有当邻居LSR是指定FEC的下一跳时才保留。这种方式的优点是节省标签,但是对拓扑变化的响应较慢。
目前只支持自由标签保持方式。
标签转发表由以下三部分构成:
l NHLFE(Next Hop Label Forwarding Entry,下一跳标签转发项):描述对标签执行的操作,用于指导MPLS报文的转发。
l FTN(FEC to NHLFE map,FEC到NHLFE表项的映射):用于在Ingress节点将FEC映射到NHLFE表项。LSR接收到不带标签的报文后,查找对应的FIB表项。如果FIB表项的Token值不是Invalid,则该报文需要进行MPLS转发。LSR根据Token值找到对应的NHLFE表项,以便确定需要执行的标签操作。
l ILM(Incoming Label Map,入标签映射):用于将入标签映射到NHLFE表项。LSR接收到带有标签的报文后,查找对应的ILM表项。如果ILM表项的Token值非空,则找到Token值对应的NHLFE表项,以便确定需要执行的标签操作。
FTN、ILM通过Token与NHLFE关联。
图1-7 MPLS转发过程示意图
如图1-7所示,MPLS网络中报文的转发过程为:
(1) Ingress(Router B)接收到不带标签的报文,根据目的地址判断该报文所属的FEC,查找FIB表,获取Token值。Token值不是Invalid,则找到Token值对应的NHLFE表项。根据NHLFE表项为报文添加标签(40),并从相应的出接口(Ethernet1/2)将带有标签的报文转发给下一跳LSR(Router C)。
(2) Router C接收到带有标签的报文,根据报文上的标签(40)查找ILM表项,获取Token值。Token值非空,则找到Token值对应的NHLFE表项。根据NHLFE表项,用新的标签(50)替换原有标签,并从相应的出接口(Ethernet1/2)将带有标签的报文转发给下一跳LSR(Router D)。
(3) Egress(Router D)接收到带有标签的报文,根据报文上的标签(50)查找ILM表项,获取Token值。Token值为空,则删除报文中的标签。如果ILM表项中记录了出接口,则通过该出接口转发报文;否则,根据IP报头转发报文。
MPLS网络中,Egress节点接收到带有标签的报文后,查找标签转发表,弹出报文中的标签后,再进行下一层的标签转发或IP转发。Egress节点转发报文之前要查找两次转发表:两次标签转发表,或一次标签转发表一次路由转发表。
为了减轻Egress节点的负担,提高MPLS网络对报文的处理能力,可以利用PHP(Penultimate Hop Popping,倒数第二跳弹出)功能,在倒数第二跳节点处将标签弹出,Egress节点只需查找一次转发表。
PHP在Egress节点上配置。支持PHP的Egress节点分配给倒数第二跳节点的标签有以下两种:
l 标签值为0表示IPv4显示空标签(Explicit-null)。Egress为FEC分配IPv4显式空标签,并通告给上游LSR后,上游LSR用这个值替代栈顶原来的标签,并将报文转发给Egress。Egress收到标签值为0的报文时,不会查找标签转发表,直接弹出标签栈,进行IPv4转发。
l 标签值3表示隐式空标签(Implicit-null),这个值不会出现在标签栈中。当一个LSR发现下游LSR通告的标签为隐式空标签时,它并不用这个值替代栈顶原来的标签,而是直接弹出标签,并将报文转发给下游LSR(即Egress)。Egress接收到报文后,直接进行下一层的转发处理。
LDP是标签发布协议的一种,用来动态建立LSP。通过LDP,LSR可以把网络层的路由信息映射到数据链路层的交换路径上。
l LDP会话
LDP会话建立在TCP连接之上,用于在LSR之间交换标签映射、标签释放、差错通知等消息。
l LDP对等体
LDP对等体是指相互之间存在LDP会话,并通过LDP会话交换标签-FEC映射关系的两个LSR。
LDP协议主要使用四类消息:
l 发现(Discovery)消息:用于通告和维护网络中LSR的存在;
l 会话(Session)消息:用于建立、维护和终止LDP对等体之间的会话;
l 通告(Advertisement)消息:用于创建、改变和删除“标签—FEC”映射关系;
l 通知(Notification)消息:用于提供建议性的消息和差错通知。
为保证LDP消息的可靠发送,除了发现消息使用UDP传输外,LDP的会话消息、通告消息和通知消息都使用TCP传输。
(1) 发现阶段
所有希望建立LDP会话的LSR都周期性地发送Hello消息,通告自己的存在。通过Hello消息,LSR可以自动发现它的LDP对等体。
LDP对等体发现机制分为两种:
l 基本发现机制:用于发现本地的LDP对等体,即通过链路层直接相连的LSR。这种方式下,LSR周期性地向“子网内所有路由器”的组播地址224.0.0.2发送LDP链路Hello消息,以便链路层直接相连的LSR发现此LDP对等体。
l 扩展发现机制:用于发现远端的LDP对等体,即不通过链路层直接相连的LSR。这种方式下,LSR周期性地向指定的IP地址发送LDP目标Hello消息,以便指定IP地址对应的LSR发现此LDP对等体。
(2) 会话建立与维护
发现LDP对等体后,LSR开始建立会话。这一过程又可分为两步:
l 建立传输层连接,即在LSR之间建立TCP连接;
l 对LSR之间的会话进行初始化,协商会话中涉及的各种参数,如LDP版本、标签发布方式、Keepalive定时器值等。
会话建立后,LDP对等体之间通过不断地发送Hello消息和Keepalive消息来维护这个会话。
(3) LSP建立与维护
LDP通过发送标签请求和标签映射消息,在LDP对等体之间通告FEC和标签的绑定关系,从而建立LSP。
LSP的建立过程,请参见“1.1.3 LSP建立与标签的发布和管理”。
(4) 会话撤销
在以下情况下,LSR将撤销LDP会话:
l LSR通过周期性发送Hello消息表明自己希望与邻居LSR继续维持这种邻接关系。如果Hello保持定时器超时仍没有收到新的Hello消息,则删除Hello邻接关系。一个LDP会话上可能存在多个Hello邻接关系。当LDP会话上的最后一个Hello邻接关系被删除后,LSR将发送通知消息,结束该LDP会话。
l LSR通过LDP会话上传送的LDP PDU(LDP PDU中携带一个或多个LDP消息)来判断LDP会话的连通性。如果在会话保持定时器(Keepalive定时器)超时前,LDP对等体之间没有需要交互的信息,LSR将发送Keepalive消息给LDP对等体,以便维持LDP会话。如果会话保持定时器超时,没有收到任何LDP PDU,LSR将关闭TCP连接,结束LDP会话。
l LSR还可以发送Shutdown消息,通知它的LDP对等体结束LDP会话。因此,LSR收到LDP对等体发送的Shutdown消息后,将结束与该LDP对等体的会话。
与MPLS相关的协议规范有:
l RFC 3031:Multiprotocol Label Switching Architecture
l RFC 3032:MPLS Label Stack Encoding
l RFC 5036:LDP Specification
配置任务 |
说明 |
详细配置 |
||||
使能MPLS功能 |
必选 |
|||||
建立静态LSP |
必选 |
两种建立LSP的方式,必选其一 |
||||
利用LDP建立动态LSP |
配置MPLS LDP能力 |
必选 |
||||
配置LDP本地会话的参数 |
可选 |
|||||
配置LDP远端会话的参数 |
可选 |
|||||
配置PHP特性 |
可选 |
|||||
配置LSP触发策略 |
可选 |
|||||
配置LDP标签分配控制方式 |
可选 |
|||||
配置LDP环路检测 |
可选 |
|||||
配置LDP MD5认证 |
可选 |
|||||
配置LDP标签过滤 |
可选 |
|||||
维护LDP会话 |
配置MPLS LDP与BFD联动 |
可选 |
||||
重启LDP会话 |
可选 |
|||||
管理及优化MPLS转发功能 |
配置Ingress节点对TTL的处理方式 |
可选 |
||||
配置MPLS的TTL超时消息发送功能 |
可选 |
|||||
配置LDP GR |
可选 |
|||||
配置MPLS统计功能 |
使能MPLS统计功能 |
可选 |
||||
检测LSP |
MPLS LSP Ping功能 |
可选 |
||||
MPLS LSP Tracert功能 |
可选 |
|||||
配置BFD检测LSP功能 |
可选 |
|||||
配置周期性LSP Tracert功能 |
可选 |
|||||
MPLS的Trap功能 |
可选 |
|||||
目前支持MPLS能力的接口类型为三层以太网接口、三层聚合接口和VLAN接口(Vlan-interface)。
MPLS域中参与MPLS转发的路由器上,必须先使能MPLS功能,才能进行MPLS其它特性的配置。
在使能MPLS功能之前,需要完成以下任务:
l 配置链路层协议,保证链路层通信正常。
l 配置接口的网络层地址,使各相邻节点网络层可达。
l 配置单播静态路由或IGP协议,保证各LSR在网络层互通。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置本节点的LSR ID |
mpls lsr-id lsr-id |
必选 缺省情况下,未配置LSR ID |
使能本节点的MPLS能力,并进入MPLS视图 |
mpls |
必选 缺省情况下,未使能本节点的MPLS能力 |
退回系统视图 |
quit |
- |
进入需要转发MPLS报文的接口视图 |
interface interface-type interface-number |
- |
使能接口的MPLS能力 |
mpls |
必选 缺省情况下,未使能接口的MPLS能力 |
LSR ID使用IP地址格式,在MPLS域内唯一。推荐使用Loopback接口的IP地址作为LSR ID。
建立静态LSP需要遵循的原则是:上游LSR出标签的值就是下游LSR入标签的值。
在配置静态LSP之前,需完成以下任务:
l 确定静态LSP的入节点、中间节点和出节点。
l 在各节点上使能MPLS功能。
l 在入节点上建立静态LSP时,需确保该节点上存在FEC目的地址对应的路由。中间节点和出节点上不需要存在FEC目的地址对应的路由。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
为Ingress节点配置静态LSP |
static-lsp ingress lsp-name destination dest-addr mask | mask-length } { nexthop next-hop-addr | out-label out-label |
必选 |
为Transit节点配置静态LSP |
static-lsp transit lsp-name incoming-interface interface-type interface-number in-label in-label nexthop next-hop-addr out-label out-label |
必选 |
为Egress节点配置静态LSP |
static-lsp egress lsp-name incoming-interface interface-type interface-number in-label in-label |
必选 |
l 在Ingress节点上配置静态LSP时,指定的下一跳或出接口必须与路由表中最优下一跳或出接口保持一致。如果是通过静态路由配置路由信息,则静态路由必须与静态LSP指定的下一跳或出接口一致。
l 配置Ingress和Transit时,本地设备上接口的公网地址不能作为下一跳地址。
l 有关IP静态路由的介绍请参见“三层技术-IP路由配置指导”中的“静态路由”。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
使能本节点的LDP能力,并进入MPLS-LDP视图 |
mpls ldp |
必选 缺省情况下,未使能LDP能力 |
配置LDP的LSR ID |
lsr-id lsr-id |
可选 缺省情况下,LDP的LSR ID与MPLS LSR ID相同 |
退回系统视图 |
quit |
- |
进入建立LDP会话的接口视图 |
interface interface-type interface-number |
- |
使能接口的LDP能力 |
mpls ldp |
必选 缺省情况下,在接口上未使能LDP能力 |
l 取消接口的LDP能力将会导致接口下的所有LDP会话中断,基于这些会话的所有LSP也将被删除。
l 通常情况下LDP使用缺省的MPLS LSR ID即可,在某些使用VPN实例(例如MPLS L3VPN)的组网方案中,如果VPN与公网地址空间重叠,则需要为LDP另外配置LSR ID,以保证TCP连接能够正常建立。
本地LDP对等体之间建立的LDP会话,称为本地会话。建立LDP本地会话前:
l 需要先确认对端的LDP传输地址,并保证两端的LDP传输地址是相互可达的,这样才能建立TCP连接。
l 如果LSR之间的LDP会话数较多或CPU利用率较高时,需要对定时器进行调节确保LDP会话的稳定性。
表1-5 配置LDP本地会话的参数
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入建立LDP会话的接口视图 |
interface interface-type interface-number |
- |
配置链路Hello保持定时器的值 |
mpls ldp timer hello-hold value |
可选 缺省情况下,链路Hello保持定时器的值为15秒 |
配置链路Keepalive保持定时器的值 |
mpls ldp timer keepalive-hold value |
可选 缺省情况下,链路Keepalive保持定时器的值为45秒 |
配置LDP传输地址 |
mpls ldp transport-address { ip-address | interface } |
可选 缺省情况下,传输地址是本LSR的LSR ID |
选择指定IP地址作为LDP传输地址时,配置的IP地址应为设备接口的IP地址,否则LDP会话将无法建立。
远端LDP对等体之间建立的LDP会话,称为远端会话。LDP远端会话主要应用于Martini方式的MPLS L2VPN、Martini方式的VPLS和MPLS LDP over MPLS TE,详细介绍请参见“MPLS配置指导”的“MPLS L2VPN”、“VPLS”和“MPLS TE”。
建立远端LDP会话前:
l 需要先确认对端的LDP传输地址,并保证两端的LDP传输地址是相互可达的,这样才能建立TCP连接。
l 如果LSR之间的LDP会话数较多或CPU利用率较高时,需要对定时器进行调节确保LDP会话的稳定性。
表1-6 配置LDP远端会话的参数
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建远端对等体实体并进入MPLS-LDP远端对等体视图 |
mpls ldp remote-peer remote-peer-name |
必选 |
指定LDP远端对等体的IP地址 |
remote-ip ip-address |
必选 |
配置通过远端会话通告基于地址前缀的标签 |
prefix-label advertise |
可选 缺省情况下,不会通过远端会话通告基于地址前缀的标签 |
配置目标Hello保持定时器的值 |
mpls ldp timer hello-hold value |
可选 缺省情况下,目标Hello保持定时器的值为45秒 |
配置目标Keepalive保持定时器的值 |
mpls ldp timer keepalive-hold value |
可选 缺省情况下,目标Keepalive保持定时器的值为45秒 |
配置LDP传输地址 |
mpls ldp transport-address ip-address |
可选 缺省情况下,传输地址是本LSR的LSR ID |
l 配置的LDP传输地址应为设备接口的IP地址,否则LDP会话将无法建立。
l 即将配置的远端对等体的IP地址不能与已经存在的远端对等体IP地址重复。
l 如果对等体与指定的远端对等体之间已经存在本地邻接关系,则远程邻接关系将不能建立。如果已经存在远程邻接关系,又为远端对等体创建了本地邻接关系,则在本地对等体和远端对等体的LDP传输地址、Keepalive保持时间配置一致时,将建立本地邻接关系,远端对等体将被删除;本地对等体和远端对等体的LDP传输地址或Keepalive保持时间配置不一致时,将无法建立本地邻接关系,继续保持远程邻接关系。即两个LSR之间只能存在一个远端会话或一个本地会话,并且本地会话的优先级高于远端会话。
l 缺省情况下,LDP不会通过远端会话通告基于地址前缀的标签映射消息,远端会话只用来为L2VPN传送消息。有关远端会话的应用请参见“MPLS配置指导”中的“MPLS L2VPN”中的“配置Martini方式MPLS L2VPN”部分。
l 通过远端会话通告基于地址前缀的标签主要用来实现MPLS LDP over MPLS TE功能。有关MPLS LDP over MPLS TE功能的应用请参见“MPLS配置指导”中的“MPLS TE”。
表1-7 配置PHP特性
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入MPLS视图 |
mpls |
- |
配置Egress节点向倒数第二跳分配的标签值 |
label advertise { explicit-null | implicit-null | non-null } |
可选 缺省情况下,Egress节点向倒数第二跳分配隐式空标签(implicit-null) |
l 选择哪种标签值需要根据倒数第二跳节点对PHP特性的支持情况而定。如果倒数第二跳节点支持PHP特性,则可以为其分配显式或隐式空标签;如果倒数第二跳节点不支持PHP特性,则为其正常分配标签。
l 设备作为倒数第二跳时,支持PHP特性。
l 会话建立后,需使用reset mpls ldp命令重启LDP会话,本命令的配置才能生效。
在LSR上通过配置LSP触发策略,可以限制只有通过策略过滤的路由信息才能触发LSP的建立,从而控制LSP的数量,避免LSP数量过多导致设备运行不稳定。
LSP触发策略包括以下两种:
l 所有路由项都会触发LDP建立LSP。
l 利用IP地址前缀列表对路由项进行过滤,被IP地址前缀列表拒绝的静态路由和IGP路由项不能触发建立LSP。采用这种LSP触发策略时,需要创建IP地址前缀列表,创建方法请参见“三层技术-IP路由配置指导”中的“路由策略”。
表1-8 配置LSP触发策略
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入MPLS视图 |
mpls |
- |
配置LSP的触发策略 |
lsp-trigger [ vpn-instance vpn-instance-name ] { all | ip-prefix prefix-name } |
可选 缺省情况下,只有32位掩码的主机路由能够触发LDP建立LSP |
l 建立LSP需要LSR上存在精确匹配的路由项。例如,要使用32位掩码的Loopback接口地址建立LSP,则LSR上必须存在精确匹配的主机路由才能触发建立LSP。
l 如果指定vpn-instance vpn-instance-name参数,则配置指定VPN的LSP触发策略;如果未指定vpn-instance vpn-instance-name参数,则配置公网路由的LSP触发策略。
使能标签重发布功能后,LSR会周期性地查找尚未分配标签的FEC,为其分配标签,并将标签和FEC绑定通告给其他的LSR。同时,用户可以根据需要控制重发布标签的时间间隔。
表1-9 配置LDP标签分配控制方式
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入MPLS-LDP视图 |
mpls ldp |
- |
配置标签分配控制方式 |
label-distribution { independent | ordered } |
可选 缺省情况下,标签分配控制方式为有序方式(ordered) 会话建立后,需重启LDP会话本命令的配置才能生效 |
使能DU模式下标签重发布功能 |
du-readvertise |
可选 缺省情况下,DU模式下已使能标签重发布功能 |
配置DU模式下定期重发布标签的时间间隔 |
du-readvertise timer value |
可选 缺省情况下,DU模式下定期重发布标签的时间间隔为30秒 |
在MPLS域中建立LSP也要防止产生环路,LDP环路检测机制可以检测LSP环路的出现,并避免发生环路。
LDP环路检测有两种方式:
(1) 最大跳数
在传递标签映射(或者标签请求)的消息中包含跳数信息,每经过一跳该值就加一。当该值达到规定的最大值时即认为出现环路,终止LSP的建立过程。
(2) 路径向量
在传递标签映射(或者标签请求)的消息中记录路径信息,每经过一跳,相应的设备就检查自己的LSR ID是否在此记录中。如果记录中没有自身的LSR ID,就会将自身的LSR ID添加到该记录中;如果记录中已有本LSR的记录,则认为出现环路,终止LSP的建立过程。
采用路径向量方式进行环路检测时,也需要规定LSP路径的最大跳数,当路径的跳数达到配置的最大值时,也会认为出现环路,终止LSP的建立过程。
表1-10 配置LDP环路检测
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入MPLS-LDP视图 |
mpls ldp |
- |
开启环路检测功能 |
loop-detect |
必选 缺省情况下,环路检测功能处于关闭状态 |
配置环路检测的最大跳数 |
hops-count hop-number |
可选 缺省情况下,环路检测最大跳数为32 |
配置路径向量方式下LSP的最大跳数 |
path-vectors pv-number |
可选 缺省情况下,路径向量方式下LSP的最大跳数为32 |
l LDP对等体上的环路检测配置必须一致,否则无法建立LDP会话。
l 如果对MPLS域进行环路检测,则必须在MPLS域内所有LSR上都开启环路检测功能。
l 环路检测功能需要在所有接口使能LDP之前进行配置。
l 所有环路检测的配置,只对修改后建立的LSP有效,修改环路检测配置不影响已经建立的LSP。可以通过在用户视图下执行reset mpls ldp命令的方法,使环路检测配置对已经建立的LSP生效。
l 使能LDP环路检测功能,可能会导致LSP重新更新,产生冗余消息,消耗过多的系统资源,推荐使用路由协议的环路预防功能。
LDP会话建立在TCP连接之上。为了提高LDP会话的安全性,可以配置在建立LDP会话使用的TCP连接时进行MD5认证,保证只有对端与本端配置了相同的认证密码时,才会与其建立TCP连接。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入MPLS-LDP视图 |
mpls ldp |
- |
使能LDP的MD5认证功能 |
md5-password { cipher | plain } peer-lsr-id password |
必选 缺省情况下,未使能LDP的MD5认证功能 |
要想在LDP对等体之间成功建立LDP会话,必须保证LDP对等体上的LDP MD5认证配置一致。
LDP标签过滤提供了标签接受控制和标签通告控制两种机制,用来实现对接收标签和通告标签的过滤。在复杂的MPLS网络环境中,通过LDP标签过滤可以规划动态建立的LSP,并避免设备接收和通告大量的标签映射。
(1) 标签接受控制
标签接受控制用来实现对接收的标签映射进行过滤,即上游LSR对指定的下游LSR通告的标签映射进行过滤,只接受指定地址前缀的标签映射。如图1-8,上游设备LSR A对下游设备LSR B通告的标签进行过滤,只有FEC的目的地址通过指定地址前缀列表过滤后,才会接受该FEC对应的标签映射;对下游设备LSR C通告的标签不进行过滤。
(2) 标签通告控制
标签通告控制用来实现对通告的标签映射进行过滤,即下游LSR只将指定地址前缀的标签映射通告给指定的上游设备。如图1-9,下游设备LSR A将FEC目的地址通过地址前缀列表B过滤的标签映射通告给上游设备LSR B;将FEC目的地址通过地址前缀列表C过滤的标签映射通告给上游设备LSR C。
在配置LDP标签过滤之前,需要先创建IP地址前缀列表,创建方法请参见“三层技术-IP路由配置指导”中的“路由策略”。
表1-12 配置LDP标签过滤
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入MPLS-LDP视图 |
mpls ldp |
- |
配置标签接受控制策略 |
accept-label peer peer-id ip-prefix ip-prefix-name |
可选 缺省情况下,接受LDP对等体通告的所有标签映射 |
配置标签通告控制策略 |
advertise-label ip-prefix ip-prefix-name [ peer peer-ip-prefix-name ] |
必选 缺省情况下,不对通告的标签映射进行过滤 |
在下游LSR上配置标签通告控制策略与在上游LSR上配置标签接受控制策略具有相同的效果,推荐使用前者,以减轻网络负担。
MPLS本身无法快速检测到邻居(或链路)的故障。LDP远端对等体之间的通信发生故障时,将导致LDP会话down,MPLS报文转发失败。MPLS LDP与BFD联动功能能够快速检测到LDP远端对等体之间的通信故障,提升现有MPLS网络的性能。
l 有关BFD的介绍及配置方法,请参见“可靠性配置指导”中的“BFD”。
l 一条LSP只能与一个BFD会话绑定。
表1-13 配置MPLS LDP与BFD联动
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入MPLS-LDP远端对等体视图 |
mpls ldp remote-peer remote-peer-name |
- |
为LDP远端对等体开启BFD链路检测功能 |
remote-ip bfd |
必选 缺省情况下,LDP远端对等体的BFD链路检测功能处于关闭状态 |
MPLS LDP与BFD联动只能用来检测远端LDP对等体之间的通信是否存在故障,相关配置举例请参见“MPLS配置指导”中的“VPLS”。
LDP会话状态为up后,修改LDP会话的任何参数,都会引起LDP会话不能正常进行。此时,需要重启LDP会话,重新协商各种参数,建立LDP会话。
在用户视图下执行reset mpls ldp命令可以重启LDP会话。
表1-14 重启LDP会话
操作 |
命令 |
重启LDP会话 |
reset mpls ldp [ all | [ vpn-instance vpn-instance-name ] [ fec mask | peer peer-id ] ] |
Ingress节点对TTL域的处理方式分为以下两种:
l 使能IP TTL复制功能:Ingress节点为报文压入标签时,将原IP报文中的TTL值复制到新增加的标签的TTL域。LSR转发标签报文时,对栈顶标签的TTL值做减一操作。标签出栈时,再将栈顶标签的TTL值复制回IP报文。使用这种方式时,报文沿着LSP传输的过程中,TTL逐跳递减,Tracert的结果将反映报文实际经过的路径。
图1-10 使能IP TTL复制功能时的处理过程
l 未使能IP TTL复制功能:Ingress节点为报文压入标签时,不会将原IP报文中的TTL值复制到新增加的标签的TTL域,标签的TTL取值为255。LSR转发标签报文时,对栈顶标签的TTL值做减一操作。标签出栈时,LSR将IP TTL和标签TTL中的较小者,作为IP TTL的值。使用这种方式时,Tracert的结果不包括MPLS骨干网络中的每一跳,就好像Ingress路由器与Egress路由器是直连的,从而隐藏MPLS骨干网络的结构。
图1-11 未使能IP TTL复制功能时的处理过程
表1-15 配置MPLS的IP TTL复制功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入MPLS视图 |
mpls |
- |
使能MPLS的IP TTL复制功能 |
ttl propagate { public | vpn } |
可选 缺省情况下,只对公网报文使能IP TTL复制功能 |
l 在MPLS域内部,MPLS报文多层标签之间的TTL值总是互相复制,ttl propagate命令只能决定是否将IP TTL复制到标签的TTL域,因此只有在Ingress上执行本命令才会生效。
l MPLS的IP TTL复制功能对本地发送报文没有影响,本地发送报文都将进行IP TTL复制,从而保证本地管理员能够使用Tracert检测网络。
l 如果配置ttl propagate vpn命令使能对VPN报文的IP TTL复制功能,则建议在所有相关PE(Provider Edge,运营商边缘)设备上都使能此功能,以保证不同的PE上执行Tracert得到的结果一致。PE的详细介绍请参见“MPLS配置指导”中的“MPLS L3VPN”。
使能MPLS的TTL超时消息发送功能后,当LSR收到TTL为1的含有标签的MPLS报文时,LSR会生成ICMP的TTL超时消息。
LSR将TTL超时消息回应给报文发送者的方式有两种:
l 如果LSR上存在到达报文发送者的路由,则可以通过IP路由,直接向发送者回应TTL超时消息。
l 如果LSR上不存在到达报文发送者的路由,则需要沿着发送MPLS报文的LSP转发TTL超时消息,由Egress节点将该消息返回给发送者。
通常情况下,收到的MPLS报文只带一层标签时,LSR采用第一种方式回应TTL超时消息;收到的MPLS报文包含多层标签时,LSR采用第二种方式回应TTL超时消息。
但是,在MPLS VPN中,ASBR(Autonomous System Boundary Router,自治系统边界路由器)、HoVPN组网应用中的SPE(Superstratum PE or Sevice Provider-end PE,上层PE或运营商侧PE)和嵌套VPN应用中的运营商骨干网PE,接收到的承载VPN报文的MPLS报文可能只有一层标签,此时,这些设备上并不存在到达报文发送者的路由,无法采用第一种方法回应TTL超时消息。通过配置undo ttl expiration pop命令,可以保证只带一层标签的MPLS报文TTL超时时,使用LSP路径转发TTL超时消息,由Egress节点将该消息返回给发送者。
有关HoVPN和嵌套VPN的详细介绍请参见“MPLS配置指导”中的“MPLS L3VPN”。
表1-16 配置MPLS的TTL超时消息发送功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入MPLS视图 |
mpls |
- |
使能MPLS的TTL超时消息发送功能 |
ttl expiration enable |
可选 缺省情况下,MPLS的TTL超时消息发送功能处于开启状态 |
配置仅有一层标签的MPLS报文TTL超时时,沿本地IP路由返回ICMP报文 |
ttl expiration pop |
可选 缺省情况下,对于一层标签的MPLS报文,TTL超时时沿本地IP路由返回ICMP差错报文 多层标签MPLS报文不受该命令控制,当MPLS报文的TTL超时时,始终沿LSP路径转发ICMP差错报文 |
LDP GR(Graceful Restart,平滑重启)利用MPLS转发平面与控制平面分离的特点,在信令协议或控制平面出现异常时,保留标签转发表项,LSR依然根据该表项转发报文,从而保证数据传输不会中断。
参与LDP GR过程的设备分为以下两种:
l GR restarter:GR重启路由器,指由管理员手工或设备故障触发而重启协议的设备,它必须具备GR能力。
l GR helper:GR restarter的邻居,与重启的GR restarter保持邻居关系,并协助其恢复重启前的转发状态,它也必须具备GR能力。
如图1-12所示,LDP对等体在建立LDP会话时协商GR能力,只有双方都支持LDP GR时,建立的LDP会话才支持LDP GR。
LDP GR的工作过程如下:
(1) GR restarter发生重启后,GR restarter启动转发状态保持定时器,保留所有MPLS转发表项,并将其标记为stale。
(2) GR helper检测到与GR restarter之间的会话down后,将所有通过此会话学习到的FEC-Label绑定标记为stale,并在FT重连时间内保留这些FEC-Label绑定。FT重连时间的取值为对端GR restarter通告的重连时间和本地配置的LDP邻居存活定时器中的较小者。
(3) 如果在FT重连时间内,LDP会话重建失败,则Helper删除这些标签为stale的FEC-Label绑定。
(4) 如果LDP会话建立成功,则GR restarter和GR helper在LDP恢复时间内,通过新建立的LDP会话交互标签映射,更新标签转发表,清除转发表项的stale标签。LDP恢复时间的取值为本地配置的LDP恢复时间和对端GR restarter设备配置的LDP恢复时间中的较小者
(5) LDP恢复定时器超时后,GR helper删除标记仍为stale的FEC-标签映射。
(6) MPLS转发状态保持定时器超时后,GR restarter删除标记仍为stale的标签转发表项。
在配置LDP GR之前,需完成以下任务:
作为GR restarter的设备上和GR helper的设备均配置MPLS LDP能力。
设备既可以作为GR restarter,又可以作为GR helper,设备的角色由该设备在LDP GR过程中的作用决定。
表1-17 配置LDP GR
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入MPLS-LDP视图 |
mpls ldp |
- |
使能MPLS LDP协议的GR能力 |
graceful-restart |
必选 缺省情况下,MPLS LDP协议的GR能力处于关闭状态 |
配置FT重连定时器的值 |
graceful-restart timer reconnect timer |
可选 缺省情况下,FT重连定时器的值为300秒 |
配置LDP邻居存活定时器的值 |
graceful-restart timer neighbor-liveness timer |
可选 缺省情况下,LDP邻居存活定时器的值为120秒 |
配置LDP恢复定时器的值 |
graceful-restart timer recovery timer |
可选 缺省情况下,LDP恢复定时器的值为300秒 |
(2) 平滑重启MPLS LDP
通过平滑重启MPLS LDP功能,可以测试LDP GR功能是否生效,即测试在LDP协议重启过程中报文转发路径是否改变,是否可以不间断地转发数据。
表1-18 平滑重启MPLS LDP
操作 |
命令 |
说明 |
平滑重启MPLS LDP |
graceful-restart mpls ldp |
必选 请在用户视图下执行此命令 |
graceful-restart mpls ldp命令用来在不发生主备倒换的情况下测试MPLS LDP GR功能。其他情况下,请不要使用此命令。
本配置任务用来开启MPLS统计功能,以便用户通过显示命令查看MPLS的统计信息。
只有配置获取LSP统计数据的时间间隔后,用户才能通过显示命令查看MPLS的统计信息。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入MPLS视图 |
mpls |
- |
配置获取LSP统计数据的时间间隔 |
statistics interval interval-time |
必选 缺省情况下,获取LSP统计数据的时间间隔为0秒,即不获取统计信息 |
在MPLS中,LSP转发数据失败时,负责建立LSP的MPLS控制平面无法检测或不能及时发现这种错误,这会给网络维护带来困难。为了及时发现LSP错误,并定位失效节点,设备上提供了如下几种机制:
l MPLS LSP Ping功能
l MPLS LSP Tracert功能
l BFD检测LSP功能
l 周期性LSP Tracert功能
MPLS LSP Ping功能用来对LSP的可达性进行检测。采取方法是:在Ingress节点为MPLS Echo Request报文压入待检测FEC对应的标签;经过LSP将该报文转发到Egress节点;Egress节点处理该报文后,回应MPLS Echo Reply报文;如果Ingress节点接收到表示成功的MPLS Echo Reply报文,则说明该LSP可以用于数据转发;如果Ingress节点接收到带有错误码的MPLS Echo Reply报文,则说明该LSP存在故障。
表1-20 MPLS LSP Ping功能
操作 |
命令 |
说明 |
通过MPLS LSP Ping检测MPLS LSP的可达性 |
ping lsp [ -a source-ip | -c count | -exp exp-value | -h ttl-value | -m wait-time | -r reply-mode | -s packet-size | -t time-out | -v ] * ipv4 dest-addr mask-length [ destination-ip-addr-header ] |
必选 可在任意视图下执行本命令 |
MPLS LSP Tracert用来对LSP的错误进行定位。MPLS LSP Tracert通过沿着LSP连续发送TTL从1到某个值的MPLS Echo Request报文,让LSP路径上的每一跳收到该报文后,返回TTL超时的MPLS Echo Reply报文。这样,Ingress节点可以收集到LSP路径上每一跳的信息,从而定位出故障节点。同时,MPLS LSP Tracert还可用于收集整条LSP上每个节点的重要信息,如分配的标签等。
表1-21 MPLS LSP Tracert功能
操作 |
命令 |
说明 |
通过MPLS LSP Tracert对MPLS LSP的错误进行定位 |
tracert lsp [ -a source-ip | -exp exp-value | -h ttl-value | -r reply-mode |-t time-out ] * ipv4 dest-addr mask-length [ destination-ip-addr-header ] |
必选 可在任意视图下执行本命令 |
BFD检测LSP功能通过在LSP的Ingress节点和Egress节点之间建立BFD会话,利用BFD快速检测LSP的连通性。在Ingress节点为BFD控制报文压入FEC对应的标签,沿着LSP转发BFD控制报文,并根据收到的Egress节点的BFD控制报文来判断LSP的状态。当BFD检测到LSP故障后,还可以触发LSP进行流量切换。
可以通过两种方式建立检测LSP的BFD会话:
l 静态方式:如果执行bfd enable命令时通过discriminator参数指定了本地和远端的鉴别值,则根据指定的鉴别值建立BFD会话。该方式用来检测两台设备间从本地到远端和从远端到本地的一对LSP隧道。
l 动态方式:如果执行bfd enable命令时没有通过discriminator参数指定本地和远端的鉴别值,则自动运行MPLS LSP Ping来协商鉴别值,并根据协商好的鉴别值建立BFD会话。该方式用来检测两台设备间从本地到远端的一条单向LSP隧道。
l BFD会话参数为MPLS LSR-ID对应的Loopback接口下配置的BFD参数,BFD报文的源地址为MPLS LSR-ID。因此,配置BFD检测LSP功能前,需要在Loopback接口下配置IP地址,并将LSR-ID配置为Loopback接口的IP地址,还可以根据需要在Loopback接口下配置BFD会话参数。BFD的详细介绍,请参见“可靠性配置指导”中的“BFD”。
l 使用静态方式建立检测LSP的BFD会话前,需要确保已经建立从本地到远端和从远端到本地的两条LSP。
表1-22 配置BFD检测LSP功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
使能LSP验证功能,并进入MPLS-LSPV视图 |
mpls lspv |
必选 缺省情况下,未使能LSP验证功能 |
配置使用BFD检测指定FEC对应LSP的连通性 |
bfd enable destination-address mask-length [ nexthop nexthop-address [ discriminator local local-id remote remote-id ] ] |
必选 缺省情况下,未使用BFD检测FEC对应LSP的连通性 |
l 不能同时使用静态方式和动态方式建立检测同一个LSP的BFD会话。
l 使用静态方式建立检测LSP的BFD会话后,不允许修改BFD会话的鉴别值。
l 协议中规定:用于检测LSP的BFD会话中,Ingress节点工作在主动(Active)模式,Egress节点工作在被动(Passive)模式。在Ingress节点和Egress节点上执行bfd session init-mode命令不会改变节点的工作模式,即使Ingress节点和Egress节点均配置为被动模式,BFD会话仍然可以正常建立。
l MPLS LDP与BFD联动功能用来检测LDP远端对等体之间的IP连通性,而BFD检测LSP功能用来检测LSP的连通性。
周期性LSP Tracert功能,即周期性地对LSP进行Tracert检测,该功能用来对LSP的错误进行定位,对转发平面和控制平面一致性进行检测,并通过日志记录检测结果。管理员可以通过查看日志信息,了解LSP是否出现故障。
如果同时配置了BFD检测LSP功能和周期性LSP Tracert功能,则周期性LSP Tracert检测到转发平面故障或转发平面与控制平面不一致时,会触发删除原有BFD会话,并基于控制平面重新建立BFD会话。
表1-23 配置周期性LSP Tracert功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
使能LSP检测功能,并进入MPLS-LSPV视图 |
mpls lspv |
必选 缺省情况下,未使能LSP检测功能 |
使能指定FEC的周期性LSP Tracert功能 |
periodic-tracert destination-address mask-length [ -a source-ip | -exp exp-value | -h ttl-value | -m wait-time | -t time-out | -u retry-attempt ] * |
必选 缺省情况下,未使能指定FEC的周期性LSP Tracert功能 |
开启MPLS模块的Trap功能后,该模块会生成级别为notifications的Trap报文,用于报告该模块的重要事件。生成的Trap报文将被发送到设备的信息中心,通过设置信息中心的参数,最终决定Trap报文的输出规则(即是否允许输出以及输出方向)。有关信息中心参数的配置请参见“网络管理和监控配置指导”中的“信息中心”。
表1-24 开启MPLS的Trap功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
开启MPLS的Trap功能 |
snmp-agent trap enable mpls |
必选 缺省情况下,MPLS的Trap功能处于关闭状态 |
snmp-agent trap enable mpls命令的详细介绍请参见“网络管理和监控命令参考/SNMP”中的snmp-agent trap enable命令。
在完成上述配置后,在任意视图下执行display命令可以显示配置后MPLS的运行情况,用户可以通过查看显示信息验证配置的效果。
表1-25 MPLS运行状态显示
操作 |
命令 |
显示使能了MPLS能力接口的MPLS相关信息 |
display mpls interface [ interface-type interface-number ] [ verbose ] [ | { begin | exclude | include } regular-expression ] |
显示ILM表项信息(分布式设备) |
display mpls ilm [ label ] [ verbose ] [ slot slot-number ] [ include text | { | { begin | exclude | include } regular-expression } ] |
显示ILM表项信息(分布式IRF设备) |
display mpls ilm [ label ] [ verbose ] [ chassis chassis-number slot slot-number ] [ include text | { | { begin | exclude | include } regular-expression } ] |
显示MPLS标签的使用状态 |
display mpls label { label-value1 [ to label-value2 ] | all } [ | { begin | exclude | include } regular-expression ] |
显示LSP信息 |
display mpls lsp [ incoming-interface interface-type interface-number ] [ outgoing-interface interface-type interface-number ] [ in-label in-label-value ] [ out-label out-label-value ] [ asbr | [ vpn-instance vpn-instance-name ] [ protocol { bgp | bgp-ipv6 | crldp | ldp | rsvp-te | static | static-cr } ] ] [ egress | ingress | transit ] [ { exclude | include } dest-addr mask-length ] [ verbose ] [ | { begin | exclude | include } regular-expression ] |
显示LSP统计信息 |
display mpls lsp statistics [ | { begin | exclude | include } regular-expression ] |
显示BFD对LSP隧道的检测信息 |
display mpls lsp bfd [ ipv4 destination-address mask-length ] [ | { begin | exclude | include } regular-expression ] |
显示NHLFE表的信息(分布式设备) |
display mpls nhlfe [ token ] [ verbose ] [ slot slot-number ] [ include text | { | { begin | exclude | include } regular-expression } ] |
显示NHLFE表的信息(分布式IRF设备) |
display mpls nhlfe [ token ] [ verbose ] [ chassis chassis-number slot slot-number ] [ include text | { | { begin | exclude | include } regular-expression } ] |
显示NHLFE表项的使用情况(分布式设备) |
display mpls nhlfe reflist token [ slot slot-number ] [ include text | { | { begin | exclude | include } regular-expression } ] |
显示NHLFE表项的使用情况(分布式IRF设备) |
display mpls nhlfe reflist token [ chassis chassis-number slot slot-number ] [ include text | { | { begin | exclude | include } regular-expression } ] |
显示静态LSP信息 |
display mpls static-lsp [ lsp-name lsp-name ] [ { exclude | include } dest-addr mask-length ] [ verbose ] [ | { begin | exclude | include } regular-expression ] |
显示路由的LSP相关信息 |
display mpls route-state [ vpn-instance vpn-instance-name ] [ dest-addr mask-length ] [ | { begin | exclude | include } regular-expression ] |
根据LSP显示MPLS统计信息 |
display mpls statistics lsp { index | all | name lsp-name } [ | { begin | exclude | include } regular-expression ] |
根据使能MPLS能力的接口显示MPLS统计信息 |
display mpls statistics interface { interface-type interface-number | all } [ | { begin | exclude | include } regular-expression ] |
根据LSP的入标签显示LSP统计信息 |
display mpls statistics lsp [ in-label in-label ] [ | { begin | exclude | include } regular-expression ] |
在完成上述配置后,在任意视图下执行display命令可以显示配置后MPLS LDP的运行情况,用户可以通过查看显示信息验证配置的效果。
表1-26 显示MPLS LDP运行状态
操作 |
命令 |
显示LDP信息 |
display mpls ldp [ all [ verbose ] [ | { begin | exclude | include } regular-expression ] ] |
显示指定FEC的标签通告信息 |
display mpls ldp fec [ vpn-instance vpn-instance-name ] dest-addr mask-length [ | { begin | exclude | include } regular-expression ] |
显示使能了LDP能力接口的LDP相关信息 |
display mpls ldp interface [ all [ verbose ] | [ vpn-instance vpn-instance-name ] [ interface-type interface-number | verbose ] ] [ | { begin | exclude | include } regular-expression ] |
显示对等体的信息 |
display mpls ldp peer [ all [ verbose ] | [ vpn-instance vpn-instance-name ] [ peer-id | verbose ] ] [ | { begin | exclude | include } regular-expression ] |
显示远端对等体信息 |
display mpls ldp remote-peer [ remote-name remote-peer-name ] [ | { begin | exclude | include } regular-expression ] |
显示对等体间会话信息 |
display mpls ldp session [ all [ verbose ] | [ vpn-instance vpn-instance-name ] [ peer-id | verbose ] ] [ | { begin | exclude | include } regular-expression ] |
显示所有LDP会话的统计信息 |
display mpls ldp session all statistics [ | { begin | exclude | include } regular-expression ] |
显示LDP创建的LSP相关信息 |
display mpls ldp lsp [ all | [ vpn-instance vpn-instance-name ] [ dest-addr mask-length ] ] [ | { begin | exclude | include } regular-expression ] |
以上显示命令中的vpn-instance vpn-instance-name参数用来显示指定LDP实例的信息。关于LDP实例的详细介绍请参见“MPLS配置指导”中的“MPLS L3VPN”。
在完成上述配置后,在用户视图下执行reset命令可以清除MPLS的相关信息。
表1-27 清除MPLS相关信息
操作 |
命令 |
清除MPLS接口统计信息 |
reset mpls statistics interface { interface-type interface-number | all } |
清除LSP统计信息 |
reset mpls statistics lsp { index | all | name lsp-name } |
l Switch A、Switch B和Switch C均支持MPLS。
l 在Switch A和Switch C之间建立静态LSP,使11.1.1.0/24和21.1.1.0/24这两个网段中互访的报文能够通过MPLS进行传输。
l 检测Switch A和Switch C之间静态LSP的可达性。
l 手工指定静态LSP的标签时,需要遵循以下原则:一条LSP上,上游LSR出标签的值与下游LSR入标签的值相同。
l LSP是一条单向路径,因此需要在数据传输的两个方向上分别配置一条静态LSP。
l 配置静态LSP时,只要求在Ingress节点上存在到达FEC目的地址的路由,Transit节点和Egress节点上不需要存在到达FEC目的地址的路由。因此,无需配置路由协议保证交换机之间路由可达,只需在Ingress节点上配置到达FEC目的地址的静态路由即可。
(1) 配置各接口的IP地址
按照图1-13配置各接口的IP地址和掩码,包括Loopback接口,具体配置过程略。
(2) 在Ingress上配置到达FEC目的地址的静态路由
# 在Switch A上配置到达21.1.1.0/24网段的静态路由。
<SwitchA> system-view
[SwitchA] ip route-static 21.1.1.0 24 10.1.1.2
# 在Switch C上配置到达11.1.1.0/24网段的静态路由。
<SwitchC> system-view
[SwitchC] ip route-static 11.1.1.0 255.255.255.0 20.1.1.1
(3) 使能MPLS功能
# 配置Switch A。
[SwitchA] mpls lsr-id 1.1.1.9
[SwitchA] mpls
[SwitchA-mpls] quit
[SwitchA] interface vlan-interface 2
[SwitchA-Vlan-interface2] mpls
[SwitchA-Vlan-interface2] quit
# 配置Switch B。
[SwitchB] mpls lsr-id 2.2.2.9
[SwitchB] mpls
[SwitchB-mpls] quit
[SwitchB] interface vlan-interface 2
[SwitchB-Vlan-interface2] mpls
[SwitchB-Vlan-interface2] quit
[SwitchB] interface vlan-interface 3
[SwitchB-Vlan-interface3] mpls
[SwitchB-Vlan-interface3] quit
# 配置Switch C。
[SwitchC] mpls lsr-id 3.3.3.9
[SwitchC] mpls
[SwitchC-mpls] quit
[SwitchC] interface vlan-interface 3
[SwitchC-Vlan-interface3] mpls
[SwitchC-Vlan-interface3] quit
(4) 创建从Switch A到Switch C的静态LSP
# 配置Ingress Switch A。
[SwitchA] static-lsp ingress AtoC destination 21.1.1.0 24 nexthop 10.1.1.2 out-label 30
# 配置Transit Switch B
[SwitchB] static-lsp transit AtoC incoming-interface vlan-interface 2 in-label 30 nexthop 20.1.1.2 out-label 50
# 配置Egress Switch C。
[SwitchC] static-lsp egress AtoC incoming-interface vlan-interface 3 in-label 50
(5) 创建从Switch C到Switch A的静态LSP
# 配置Ingress Switch C。
[SwitchC] static-lsp ingress CtoA destination 11.1.1.0 24 nexthop 20.1.1.1 out-label 40
# 配置Transit Switch B。
[SwitchB] static-lsp transit CtoA incoming-interface vlan-interface 3 in-label 40 nexthop 10.1.1.1 out-label 70
# 配置Egress Switch A。
[SwitchA] static-lsp egress CtoA incoming-interface vlan-interface 2 in-label 70
(6) 检查配置结果
# 配置完成后,可以在各交换机上通过display mpls static-lsp命令查看静态LSP的信息。以Switch A的显示信息为例:
[SwitchA] display mpls static-lsp
total statics-lsp : 2
Name FEC I/O Label I/O If State
AtoC 21.1.1.0/24 NULL/30 -/Vlan2 Up
CtoA -/- 70/NULL Vlan2/- Up
# 在Switch A上检测Switch A到Switch C静态LSP的可达性。
[SwitchA] ping lsp -a 11.1.1.1 ipv4 21.1.1.0 24
LSP Ping FEC: IPV4 PREFIX 21.1.1.0/24 : 100 data bytes, press CTRL_C to break
Reply from 20.1.1.2: bytes=100 Sequence=1 time = 2 ms
Reply from 20.1.1.2: bytes=100 Sequence=2 time = 2 ms
Reply from 20.1.1.2: bytes=100 Sequence=3 time = 1 ms
Reply from 20.1.1.2: bytes=100 Sequence=4 time = 2 ms
Reply from 20.1.1.2: bytes=100 Sequence=5 time = 2 ms
--- FEC: IPV4 PREFIX 21.1.1.0/24 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 1/1/2 ms
# 在Switch C上检测Switch C到Switch A静态LSP的可达性。
[SwitchC] ping lsp -a 21.1.1.1 ipv4 11.1.1.0 24
LSP Ping FEC: IPV4 PREFIX 11.1.1.0/24 : 100 data bytes, press CTRL_C to break
Reply from 10.1.1.1: bytes=100 Sequence=1 time = 3 ms
Reply from 10.1.1.1: bytes=100 Sequence=2 time = 2 ms
Reply from 10.1.1.1: bytes=100 Sequence=3 time = 2 ms
Reply from 10.1.1.1: bytes=100 Sequence=4 time = 2 ms
Reply from 10.1.1.1: bytes=100 Sequence=5 time = 2 ms
--- FEC: IPV4 PREFIX 11.1.1.0/24 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 2/2/3 ms
l Switch A、Switch B和Switch C均支持MPLS。
l 在Switch A和Switch C之间使用LDP动态建立LSP,使11.1.1.0/24和21.1.1.0/24这两个网段中互访的报文能够通过MPLS进行传输。
l 检测Switch A和Switch C之间LSP的可达性。
l 利用LDP动态建立LSP时,不需要手工为LSP指定标签,只要在LSR上启动LDP协议,即可动态分配标签并建立LSP。
l LDP根据路由信息动态分配标签,因此,利用LDP动态建立LSP时,需要配置路由协议,使得各交换机之间路由可达。本例中,采用的路由协议为OSPF。
(1) 配置各接口的IP地址
按照图1-14配置各接口IP地址和掩码,包括VLAN接口和Loopback接口,具体配置过程略。
(2) 配置OSPF,以保证各交换机之间路由可达
# 配置Switch A。
<Sysname> system-view
[Sysname] sysname SwitchA
[SwitchA] ospf
[SwitchA-ospf-1] area 0
[SwitchA-ospf-1-area-0.0.0.0] network 1.1.1.9 0.0.0.0
[SwitchA-ospf-1-area-0.0.0.0] network 10.1.1.0 0.0.0.255
[SwitchA-ospf-1-area-0.0.0.0] network 11.1.1.0 0.0.0.255
[SwitchA-ospf-1-area-0.0.0.0] quit
[SwitchA-ospf-1] quit
# 配置Switch B。
<Sysname> system-view
[Sysname] sysname SwitchB
[SwitchB] ospf
[SwitchB-ospf-1] area 0
[SwitchB-ospf-1-area-0.0.0.0] network 2.2.2.9 0.0.0.0
[SwitchB-ospf-1-area-0.0.0.0] network 10.1.1.0 0.0.0.255
[SwitchB-ospf-1-area-0.0.0.0] network 20.1.1.0 0.0.0.255
[SwitchB-ospf-1-area-0.0.0.0] quit
[SwitchB-ospf-1] quit
# 配置Switch C。
<Sysname> system-view
[Sysname] sysname SwitchC
[SwitchC] ospf
[SwitchC-ospf-1] area 0
[SwitchC-ospf-1-area-0.0.0.0] network 3.3.3.9 0.0.0.0
[SwitchC-ospf-1-area-0.0.0.0] network 20.1.1.0 0.0.0.255
[SwitchC-ospf-1-area-0.0.0.0] network 21.1.1.0 0.0.0.255
[SwitchC-ospf-1-area-0.0.0.0] quit
[SwitchC-ospf-1] quit
# 配置完成后,在各交换机上执行display ip routing-table命令,可以看到相互之间都学到了到对方的主机路由。以Switch A为例:
[SwitchA] display ip routing-table
Routing Tables: Public
Destinations : 11 Routes : 11
Destination/Mask Proto Pre Cost NextHop Interface
1.1.1.9/32 Direct 0 0 127.0.0.1 InLoop0
2.2.2.9/32 OSPF 10 1 10.1.1.2 Vlan2
3.3.3.9/32 OSPF 10 2 10.1.1.2 Vlan2
10.1.1.0/24 Direct 0 0 10.1.1.1 Vlan2
10.1.1.1/32 Direct 0 0 127.0.0.1 InLoop0
11.1.1.0/24 Direct 0 0 11.1.1.1 Vlan4
11.1.1.1/32 Direct 0 0 127.0.0.1 InLoop0
20.1.1.0/24 OSPF 10 2 10.1.1.2 Vlan2
21.1.1.0/24 OSPF 10 3 10.1.1.2 Vlan2
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
(3) 使能MPLS和MPLS LDP功能
# 配置Switch A。
[SwitchA] mpls lsr-id 1.1.1.9
[SwitchA] mpls
[SwitchA-mpls] quit
[SwitchA] mpls ldp
[SwitchA-mpls-ldp] quit
[SwitchA] interface vlan-interface 2
[SwitchA-Vlan-interface2] mpls
[SwitchA-Vlan-interface2] mpls ldp
[SwitchA-Vlan-interface2] quit
# 配置Switch B。
[SwitchB] mpls lsr-id 2.2.2.9
[SwitchB] mpls
[SwitchB-mpls] quit
[SwitchB] mpls ldp
[SwitchB-mpls-ldp] quit
[SwitchB] interface vlan-interface 2
[SwitchB-Vlan-interface2] mpls
[SwitchB-Vlan-interface2] mpls ldp
[SwitchB-Vlan-interface2] quit
[SwitchB] interface vlan-interface 3
[SwitchB-Vlan-interface3] mpls
[SwitchB-Vlan-interface3] mpls ldp
[SwitchB-Vlan-interface3] quit
# 配置Switch C。
[SwitchC] mpls lsr-id 3.3.3.9
[SwitchC] mpls
[SwitchC-mpls] quit
[SwitchC] mpls ldp
[SwitchC-mpls-ldp] quit
[SwitchC] interface vlan-interface 3
[SwitchC-Vlan-interface3] mpls
[SwitchC-Vlan-interface3] mpls ldp
[SwitchC-Vlan-interface3] quit
# 完成上述配置后,Switch A和Switch B、Switch B和Switch C之间的本地LDP会话建立成功。在各交换机上执行display mpls ldp session命令,可以看到LDP会话的建立情况;执行display mpls ldp peer命令,可以看到LDP的对等体情况。以Switch A为例:
[SwitchA] display mpls ldp session
LDP Session(s) in Public Network
Total number of sessions: 1
----------------------------------------------------------------
Peer-ID Status LAM SsnRole FT MD5 KA-Sent/Rcv
----------------------------------------------------------------
2.2.2.9:0 Operational DU Passive Off Off 5/5
----------------------------------------------------------------
LAM : Label Advertisement Mode FT : Fault Tolerance
[SwitchA] display mpls ldp peer
LDP Peer Information in Public network
Total number of peers: 1
-----------------------------------------------------------------
Peer-ID Transport-Address Discovery-Source
----------------------------------------------------------------
2.2.2.9:0 2.2.2.9 Vlan-interface2
----------------------------------------------------------------
(4) 配置LSP的触发建立策略为所有静态路由和IGP路由项都触发LDP建立LSP
# 配置Switch A。
[SwitchA] mpls
[SwitchA-mpls] lsp-trigger all
[SwitchA-mpls] return
# 配置Switch B。
[SwitchB] mpls
[SwitchB-mpls] lsp-trigger all
[SwitchB-mpls] quit
# 配置Switch C。
[SwitchC] mpls
[SwitchC-mpls] lsp-trigger all
[SwitchC-mpls] quit
(5) 检查配置结果
# 配置完成后,在各交换机上执行display mpls ldp lsp命令,可以看到LDP LSP的建立情况。以Switch A为例。
<SwitchA> display mpls ldp lsp
LDP LSP Information
-------------------------------------------------------------------
SN DestAddress/Mask In/OutLabel Next-Hop In/Out-Interface
------------------------------------------------------------------
1 1.1.1.9/32 3/NULL 127.0.0.1 -------/InLoop0
2 2.2.2.9/32 NULL/3 10.1.1.2 -------/Vlan2
3 3.3.3.9/32 NULL/1024 10.1.1.2 -------/Vlan2
4 11.1.1.0/24 3/NULL 0.0.0.0 -------/Vlan4
5 20.1.1.0/24 NULL/3 10.1.1.2 -------/Vlan2
6 21.1.1.0/24 NULL/1027 10.1.1.2 -------/Vlan2
-------------------------------------------------------------------
A '*' before an LSP means the LSP is not established
A '*' before a Label means the USCB or DSCB is stale
# 在Switch A上检测到达21.1.1.0/24网段的LDP LSP的可达性。
[SwitchA] ping lsp ipv4 21.1.1.0 24
LSP Ping FEC: IPV4 PREFIX 21.1.1.0/24 : 100 data bytes, press CTRL_C to break
Reply from 20.1.1.2: bytes=100 Sequence=1 time = 3 ms
Reply from 20.1.1.2: bytes=100 Sequence=2 time = 2 ms
Reply from 20.1.1.2: bytes=100 Sequence=3 time = 1 ms
Reply from 20.1.1.2: bytes=100 Sequence=4 time = 1 ms
Reply from 20.1.1.2: bytes=100 Sequence=5 time = 3 ms
--- FEC: IPV4 PREFIX 21.1.1.0/24 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 1/2/3 ms
# 在Switch C上检测到达11.1.1.0/24网段的LDP LSP的可达性。
[SwitchC] ping lsp ipv4 11.1.1.0 24
LSP Ping FEC: IPV4 PREFIX 11.1.1.0/24 : 100 data bytes, press CTRL_C to break
Reply from 10.1.1.1: bytes=100 Sequence=1 time = 2 ms
Reply from 10.1.1.1: bytes=100 Sequence=2 time = 2 ms
Reply from 10.1.1.1: bytes=100 Sequence=3 time = 2 ms
Reply from 10.1.1.1: bytes=100 Sequence=4 time = 3 ms
Reply from 10.1.1.1: bytes=100 Sequence=5 time = 2 ms
--- FEC: IPV4 PREFIX 11.1.1.0/24 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 2/2/3 ms
在图1-14的网络中,利用LDP建立11.1.1.0/24到21.1.1.0/24、21.1.1.0/24到11.1.1.0/24两条LSP后,使用BFD检测LSP隧道的连通性。
参见图1-14。
(1) 配置LDP会话,具体配置过程请参见“1.12.2 配置利用LDP动态建立LSP”
(2) 配置BFD检测LSP
# 配置Switch A。
<SwitchA> system-view
[SwitchA] mpls lspv
[SwitchA -mpls-lspv] bfd enable 21.1.1.0 24
[SwitchA -mpls-lspv] quit
# 配置Switch C。
<SwitchC> system-view
[SwitchC] mpls lspv
[SwitchC-mpls-lspv] bfd enable 11.1.1.0 24
[SwitchC-mpls-lspv] quit
(3) 检查配置结果
# 配置完成后,在设备SwitchA和SwitchC上执行display mpls lsp bfd命令,可以看到BFD检测LSP的BFD会话的建立情况。以Switch A为例。
[SwitchA] display mpls lsp bfd
MPLS BFD Session(s) Information
-----------------------------------------------------------------------------
FEC : 11.1.1.0/24 Type : LSP
Local Discr : 130 Remote Discr : 130
Tunnel ID : --- NextHop : ---
Session State : Up Source IP : 3.3.3.9
Session Role : Passive
FEC : 21.1.1.0/24 Type : LSP
Local Discr : 129 Remote Discr : 129
Tunnel ID : 0x6040000 NextHop : 10.1.1.2
Session State : Up Source IP : 1.1.1.9
Session Role : Active
Total Session Num: 2
以上显示信息表示,Switch A和Switch C之间建立了两个BFD会话,分别用来检测11.1.1.0/24到21.1.1.0/24、21.1.1.0/24到11.1.1.0/24两条LSP。
[SwitchA] display bfd session verbose
Total session number: 2 Up session number: 2 Init mode: Active
IPv4 session working under Ctrl mode:
Local Discr: 129 Remote Discr: 129
Source IP: 1.1.1.9 Destination IP: 127.0.0.1
Session State: Up Interface: LoopBack0
Min Trans Inter: 400ms Act Trans Inter: 400ms
Min Recv Inter: 400ms Act Detect Inter: 2000ms
Running Up for: 00:15:52 Auth mode: None
Connect Type: Indirect Board Num: 6
Protocol: MFW/LSPV
Diag Info: No Diagnostic
Local Discr: 130 Remote Discr: 130
Source IP: 1.1.1.9 Destination IP: 3.3.3.9
Session State: Up Interface: LoopBack0
Min Trans Inter: 400ms Act Trans Inter: 400ms
Min Recv Inter: 400ms Act Detect Inter: 2000ms
Running Up for: 00:15:44 Auth mode: None
Connect Type: Indirect Board Num: 7
Protocol: MFW/LSPV
Diag Info: No Diagnostic
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!