第2章 MPLS配置
第2章 MPLS配置
1.1 MPLS配置总体介绍
对于一台NE路由器,要使其具有基本的MPLS功能,一般的配置过程如下:
l 配置LSR的标识ID;
l 使能LSR的MPLS能力
l 激活LDP协议;
l 进入接口模式,使能接口的MPLS能力;
l 激活接口的LDP协议。
经过上述的基本配置,路由器即可提供MPLS转发和LDP信令功能。
如果要修改一些缺省参数,或者实现一些特殊的MPLS功能,如手工建立LSP、建立显示路由等,则需要进行一些高级的配置,有些复杂的功能可能需要多个配置的组合才能实现。总的来说,MPLS配置包括两个部分:
图1-1 MPLS基本配置
MPLS基本配置用于配置LSR的MPLS基本转发能力,包括如下的配置项:
l 配置MPLS LSR ID
l 使能MPLS能力
l 使能LDP协议
l 使能接口的MPLS能力
l 在接口上激活LDP协议
图1-2 MPLS高级配置
MPLS高级配置用于修改MPLS的缺省参数和实现MPLS的特殊功能,包括如下的配置项:
l 配置静态LSP
l 配置拓扑驱动建立LSP的建立策略
l 配置上报统计信息的间隔时间
l 清除MPLS统计数据
l 配置LDP会话参数
l 配置LDP扩展发现模式
l 在出口节点配置倒数第二跳的标签
l 配置LDP环路检测
l 配置LDP验证方式
1.2 MPLS基本配置
在配置其他MPLS命令之前,必须首先为LSR配置LSR ID。LSR ID一般采用IP地址的格式,并且要保证域内唯一。
请在系统视图下进行下列配置。
操作 |
命令 |
指定LSR的LSR ID |
mpls lsr-id X.X.X.X |
删除LSR的LSR ID |
undo mpls lsr-id |
缺省未指定LSR的LSR ID。
1.2.1 使能MPLS能力
配置了LSR ID后,通常需要使能LSR的MPLS能力。只有使能了MPLS能力并进入MPLS视图后,才可以进行相关的MPLS配置。
可在系统视图、路由协议视图、接口视图、虚拟接口视图下进行下列配置。在系统视图下,该命令使能LSR的MPLS能力并进入相应的MPLS视图。
操作 |
命令 |
使能MPLS |
mpls |
1.2.2 激活LDP协议
使能了MPLS能力后,要使LSR具有MPLS转发能力,必须激活LDP协议。
请在系统视图下进行下列配置。
表1-3 使能/去使能LDP协议
操作 |
命令 |
使能LDP协议 |
mpls ldp |
去使能LDP协议 |
undo mpls ldp |
缺省情况下LDP协议未激活。
1.2.3 使能接口的MPLS能力
在LSR上使能了MPLS并激活了LDP协议后,要使其具有MPLS转发和LDP信令功能,还要在相应的接口上使能MPLS能力和激活LDP协议。在接口上激活LDP协议之前,必须使能接口的MPLS能力。
请在接口视图下进行下列配置。
操作 |
命令 |
使能接口的MPLS能力 |
mpls |
1.2.4 在接口上激活LDP协议
使能了接口的MPLS能力后,要使该接口具有LDP功能,必须在接口模式下激活LDP协议。激活LDP协议后的接口即开始建立LDP会话,在拓扑驱动方式时开始建立LSP。
禁止端口LDP功能会导致接口下的所有LDP会话中断,基于这些会话的所有LSP也将被删除,建议用户谨慎使用此命令。
请在接口视图下进行下列配置。
操作 |
命令 |
允许接口LDP功能 |
mpls ldp enable |
禁止接口LDP功能 |
mpls ldp disable |
缺省情况下禁止接口的LDP功能。
1.3 MPLS高级配置
1.3.1 配置静态LSP
可以手工设置某LSR为一条LSP上的一个节点,并可以对该LSP上承载的数据流进行限制。根据在MPLS域中的不同位置,LSR有三种节点情况:入节点(Ingress)、中间节点(Transit)、出节点(Egress)。值得注意的是,必须对指定LSP沿途的LSR均作了相应配置,这条LSP才能正常工作。
undo static-lsp用于删除指定的用手工方式建立的LSP。
请在MPLS视图下进行下列配置。
表1-6 设置本LSR为指定LSP的节点
操作 |
命令 |
设置本LSR为指定LSP的入口节点 |
static-lsp ingress lsp-name { destination-address dest-addr { addr-mask | mask-length } | l2vpn } { nexthop next-hop-addr | outgoing-interface { interface-name | interfac-type interfac-num } } out-label out-label [ l2vpn ] |
为入口LSR删除一条LSP |
undo static-lsp ingress lsp-name |
设置本LSR为指定LSP的中间节点 |
static-lsp transit lsp-name [ l2vpn ] incoming-interface { interface-name | interfac-type interfac-num } in-label in-label { nexthop next-hop-addr | outgoing-interface { interface-name | interfac-type interfac-num } } out-label out-label |
为中间传送LSR删除一条LSP |
undo static-lsp transit lsp-name [ l2vpn ] |
设置本LSR为指定LSP的出口节点 |
static-lsp egress lsp-name [ l2vpn ] incoming-interface { interface-name | interfac-type interfac-num } in-label in-label |
为出口LSR删除一条LSP |
undo static-lsp egress lsp-name [ l2vpn ] |
1.3.2 配置拓扑驱动建立LSP的建立策略
配置拓扑驱动建立LSP的建立策略,指定过滤策略为All或IP Prefix策略。
请在MPLS视图下进行下列配置。
表1-7 配置拓扑驱动建立LSP的建立策略
操作 |
命令 |
配置拓扑驱动建立LSP的建立策略 |
lsp-trigger [ all | ip-prefix address prefix-list name ] |
取消参数所指定的过滤条件,任何路由都不允许触发建立LSP |
undo lsp-trigger [all | ip-prefix address prefix-list name ] |
1.3.3 配置上报统计信息的间隔时间
请在MPLS视图下进行下列配置。
操作 |
命令 |
配置上报统计信息的间隔时间 |
statistics interval interval-time |
恢复缺省值 |
undo statistics interval |
缺省情况是间隔为0,即不上报。
1.3.4 清除MPLS统计数据
请在MPLS视图下进行下列配置。
表1-9 清除MPLS统计数据
操作 |
命令 |
清除MPLS统计数据 |
reset mpls statistics { interface {interface-name | interface-type interface-num | all } | { lsp {lsp-index | lsp-name | all} } |
1.3.5 配置LDP会话参数
1. 配置LDP会话保持时间
一般情况下,可以直接使用缺省值。
特殊情况可以根据需要修改,但要注意,修改holdtime参数会导致原有的会话重新建立,原有的建立在此会话上的LSP也会被删除重建。
请在接口视图下进行下列配置。
操作 |
命令 |
配置会话保持时间 |
mpls ldp timer { session-hold secs | hello secs } |
恢复会话保持时间为缺省值 |
undo mpls ldp timer { session-hold | hello } |
session-hold secs的缺省值为5秒,hello secs的缺省值为15秒。
2. 配置hello的传输地址
这里的传输地址就是hello消息的传输地址TLV中携带的地址。通常情况下传输地址为本LSR的MPLS LSR ID,但是有些应用需要灵活的配置。
请在接口视图下进行下列配置。
表1-11 配置hello传输地址
操作 |
命令 |
配置hello传输地址 |
mpls ldp transport-ip { interface | ip-address } |
恢复hello传输地址为默认值 |
undo mpls ldp transport-ip |
缺省传输地址为本LSR的MPLS LSR ID。
1.3.6 配置LDP扩展发现模式
对应于基本发现模式,LDP扩展发现模式与链路不直接相连的对等体建立会话。
1. 进入扩展发现模式
请在系统视图下进行下列配置。
操作 |
命令 |
进入扩展发现模式 |
mpls ldp remote-peer index |
删除相应的remote-peer |
undo mpls ldp remote-peer index |
无缺省的remote-peer。
# 进入remote-peer视图。
[Quidway] mpls ldp remote-peer 1
[Quidway-mpls-remote1]
2. 配置remote-peer的地址
用户可以指定remote-peer的任何一个使能了LDP的接口地址或发布了路由LSR的loopback地址作为remote-peer的地址。
请在remote-peer视图下进行下列配置。
操作 |
命令 |
配置remote-peer的地址 |
remote-ip ip-address |
无缺省的remote-peer。
1.3.7 在出口节点配置倒数第二跳的标签
在出口节点处指明倒数第二跳分发怎样的标签。
请在系统视图下进行下列配置。
操作 |
命令 |
出口节点处指明倒数第二跳分发怎样的标签 |
mpls ldp { implicit-null | explicit-null | non-null } |
恢复缺省值 |
undo mpls ldp { implicit-null | explicit-null | non-null } |
explicit-null-label:在出口处指定向倒数第二跳分配显式空标签。
implicit-null-label:在出口处指定向倒数第二跳分配隐式空标签。
non-null-label:在出口处指定向倒数第二跳分配普通标签。
如果倒数第二跳分配了显式空标签,则显示空标签只能位于标签栈底。
缺省为隐式标签。
1.3.8 配置LDP环路检测
1. 环路检测使能
用于控制在LDP信令过程中是否使用环路检测功能,环路检测有最大跳数和路径向量两种方式。
最大跳数方式是在传递标签绑定的消息中包含跳数信息,每经过一跳该值就加一,当该值超过规定的最大值时就认为出现了环路,从而终止LSP的建立过程。
路径向量方式是在传递标签绑定的消息中记录路径信息,每经过一跳,相应的路由器就检查自己的ID是否在此记录中,如果没有就将自己的ID添加到该记录中,若有就说明出现了环路,终止LSP的建立过程。
请在系统视图下进行下列配置。
操作 |
命令 |
允许进行环路检测 |
mpls ldp loop-detect |
禁止进行环路检测 |
undo mpls ldp loop-detect |
缺省为不允许环路检测。
2. 设置环路检测最大跳数
当环路检测采用最大跳数方式时,可以规定跳数的最大值,超过该最大值即认为出现了环路,LSP建立失败。
请在系统视图下进行下列配置。
操作 |
命令 |
设置环路检测的最大跳数 |
mpls ldp hops-count hop-number |
恢复最大跳数的缺省值 |
undo mpls ldp hops-count |
缺省的最大值为32。
3. 设置路径向量的最大值
当环路检测采用路径向量方式时,也需要规定LSP路径的最大值。这样,在以下条件之一时即认为出现了环路,LSP建立失败:
(1) 路径向量记录表中已有本LSR的记录
(2) 路径的跳数超过这里设定的最大值
请在系统视图下进行下列配置。
操作 |
命令 |
设置路径向量的最大跳数 |
mpls ldp path-vectors pv-number |
恢复路径向量最大跳数的缺省值 |
undo mpls ldp path-vectors |
路径向量的最大跳数缺省的最大值为32。
1.3.9 配置LDP验证方式
请在接口视图下进行下列配置。
表1-18 配置LDP验证方式
操作 |
命令 |
配置LDP验证方式 |
mpls ldp password [ 0 | 7 ] password |
取消该配置 |
undo mpls ldp password |
1.4 MPLS显示和调试
1.4.1 MPLS全局显示和调试
MPLS提供了丰富的显示和调试命令,可以监控LDP会话状态、隧道配置情况、所有LSP及其状态等,是调试、诊断的有力工具。
在完成上述配置后,在所有视图下执行display命令可以显示全部或单个静态LSP的运行情况,通过查看显示信息验证配置的效果。
在用户视图下,执行debugging命令可对所有使能了MPLS能力的接口的相关信息进行调试。
打开调试开关对路由器性能有一定影响,建议慎用debugging命令。
表1-19 MPLS的显示和调试
操作 |
命令 |
显示静态LSP的信息 |
display mpls static-lsp [ lsp-name ] |
显示MPLS统计数据 |
display mpls statistics { interface {interface-name | interface-type interface-num | all } | { lsp {lsp-index | lsp-name | all} } |
显示使能MPLS的接口信息 |
display mpls interfaces |
打开MPLS的各种调试信息的开关 |
debugging mpls lsp { all | packet | event | process | agent | interface | policy | vpn } |
关闭MPLS的各种调试信息的开关 |
undo debugging mpls lsp { all | packet | event | process | agent | interface | policy | vpn } |
使能MPLS的TRAP功能 |
snmp-agent trap enable { lsp | ldp } |
去使能MPLS的TRAP功能 |
undo snmp-agent trap enable { lsp | ldp } |
1.4.2 LDP协议显示和调试
VRP提供了丰富的MPLS监控操作命令,可以监控LSR状态、LDP会话状态、接口状态、对等体状态等,是调试、诊断的有力工具。
在完成上述配置后,在所有视图下执行display命令可以显示配置后LDP的运行情况,通过查看显示信息验证配置的效果。
在用户视图下,执行debugging命令可对LDP的各种消息进行调试。
表1-20 LDP协议的显示和调试
操作 |
命令 |
显示LDP协议信息 |
display mpls ldp |
显示LDP使能的接口信息 |
display mpls ldp interface |
显示LSP相关信息 |
display mpls { { lsp } | { l3vpn-lsp [ vpn-instance vpn-name ] [ ingress | egress | asbr ] } } [ verbose ] [ include LINE ] |
显示LDP会话的所有对等体信息 |
display mpls ldp peer |
显示LDP会话的远端对等体信息 |
display mpls ldp remote |
显示LDP内存池信息 |
display mpls ldp buffer-info |
显示LDP会话状态和参数 |
display mpls ldp session |
打开LDP诊断开关 |
debug ldp { all | main | advertisement | session | pdu | notification | remote } |
关闭LDP诊断开关 |
undo debug ldp { all | main | advertisement | session | pdu | notification | remote } |
1.5 MPLS典型配置举例
1. 组网需求
图2-1给出一个由四台Router路由器组成的网络,其中RouterB和RouterC间通过SDH连接,RouterB和RouterA、RouterD间通过以太网连接。
四台路由器均支持MPLS,任意路由器之间都可以建立LSP,运行的路由协议为OSPF。
2. 组网图
3. 配置步骤
RouterA上配置:
# 配置接口地址。
[Quidway] interface ethernet 8/0/0
[Quidway-Ethernet8/0/0] ip address 168.1.1.1 255.255.255.0
# 配置LSR ID并使能LDP
[Quidway] mpls lsr-id 168.1.1.1
[Quidway] mpls
[Quidway] mpls ldp
# 对以太网接口使能LDP
[Quidway] interface ethernet 8/0/0
[Quidway-Ethernet8/0/0] mpls
[Quidway-Ethernet8/0/0] mpls ldp enable
# 配置OSPF
[Quidway] router id 168.1.1.1
[Quidway] ospf
[Quidway-ospf-1] area 0
[Quidway-ospf-1-area-0.0.0.0] network 168.1.0.0 0.0.255.255
Router B上配置:
# 配置两个以太网接口
[Quidway] interface ethernet 1/0/0
[Quidway-Ethernet1/0/0] ip address 168.1.1.2 255.255.0.0
[Quidway] interface ethernet 1/0/1
[Quidway-Ethernet1/0/1] ip address 172.17.1.1 255.255.0.0
# 配置POS接口
[Quidway] interface pos 2/0/0
[Quidway-Pos2/0/0] ip address 100.10.1.2 255.255.255.0
# 配置LSR ID并使能LDP
[Quidway] mpls lsr-id 172.17.1.1
[Quidway] mpls
[Quidway] mpls ldp
# 对以太网接口1/0/0使能LDP
[Quidway] interface ethernet 1/0/0
[Quidway-Ethernet1/0/0] mpls
[Quidway-Ethernet1/0/0] mpls ldp enable
# 对以太网接口1/0/1使能LDP
[Quidway] interface ethernet 1/0/1
[Quidway-Ethernet1/0/1] mpls
[Quidway-Ethernet1/0/1] mpls ldp enable
# 对POS接口2/0/0使能LDP
[Quidway] interface pos 2/0/0
[Quidway-Pos2/0/0] mpls ldp enable
[Quidway-Pos2/0/0] quit
# 配置OSPF
[Quidway] router id 172.17.1.1
[Quidway] ospf
[Quidway-ospf-1] area 0
[Quidway-ospf-1-area-0.0.0.0] network 168.1.0.0 0.0.255.255
[Quidway-ospf-1-area-0.0.0.0] network 172.17.0.0 0.0.255.255
[Quidway-ospf-1-area-0.0.0.0] network 100.10.1.0 0.0.0.255
[Quidway-ospf-1-area-0.0.0.0] quit
Router C上配置:
# 配置POS接口
[Quidway] interface pos 7/0/0
[Quidway-Pos7/0/0] ip address 100.10.1.1 255.255.255.0
[Quidway-Pos7/0/0] quit
# 配置LSR ID并使能LDP
[Quidway] mpls lsr-id 172.16.1.2
[Quidway] mpls
[Quidway] mpls ldp
# 对POS接口7/0/0使能LDP
[Quidway] interface pos 7/0/0
[Quidway-Pos7/0/0] mpls
[Quidway-Pos7/0/0] mpls ldp enable
[Quidway-Pos7/0/0] quit
# 配置OSPF
[Quidway] router id 172.16.1.2
[Quidway] ospf
[Quidway-ospf-1] area 0
[Quidway-ospf-1-area-0.0.0.0] network 100.10.1.0 0.0.0.255
Router D上配置:
# 配置以太网接口
[Quidway] interface ethernet 2/0/1
[Quidway-Ethernet2/0/1] ip address 172.17.1.2 255.255.0.0
# 配置LSR ID并使能LDP
[Quidway] mpls lsr-id 172.17.1.2
[Quidway]
[Quidway] mpls ldp
# 使能以太网接口的LDP功能
[Quidway] interface ethernet 2/0/1
[Quidway-Ethernet2/0/1] mpls
[Quidway-Ethernet2/0/1] mpls ldp enable
# 配置OSPF
[Quidway] router id 172.17.1.2
[Quidway] ospf
[Quidway-ospf-1] area 0
[Quidway-ospf-1-area-0.0.0.0] network 172.17.0.0 0.0.255.255
1.6 MPLS配置故障诊断与排除
故障现象:接口使能LDP协议后,不能与对端建立会话。
故障排除:
原因之一:环路检测配置不同。
解决方法:检查本地和对端的配置,是否一端配了环路检测,而另一端没有配,如果是这样会导致会话协商不通过。
原因之二:标签通告方式不同。
解决方法:检查本地和对端的配置,是否一端的标签通告方式为DoD,而另一端为DU。如果没有使用mpls ldp advertisement命令修改过标签通告方式,应该不会有这种问题出现。
原因之三:如果本机得不到对方的LSR ID的路由,就不能建立TCP连接,会话就不可能建立。
解决方法:建立会话时默认的传输地址是MPLS LSR ID,本机必须将LSR ID的路由(一般为loopback地址)发布出去,同时要学到对端的LSR ID的路由。