对于一台
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
验证方式
配置
MPLS LSR ID
在配置其他
MPLS
命令之前,必须首先为
LSR
配置
LSR ID
。
LSR ID
一般采用
IP
地址的格式,并且要保证域内唯一。
请在系统视图下进行下列配置。
表1-1
配置
MPLS LSR ID
操作
|
命令
|
指定
LSR
的
LSR ID
|
mpls lsr-id
X.X.X.X
|
删除
LSR
的
LSR ID
|
undo mpls lsr-id
|
缺省未指定
LSR
的
LSR ID
。
配置了
LSR ID
后,通常需要使能
LSR
的
MPLS
能力。只有使能了
MPLS
能力并进入
MPLS
视图后,才可以进行相关的
MPLS
配置。
可在系统视图、路由协议视图、接口视图、虚拟接口视图下进行下列配置。在系统视图下,该命令使能
LSR
的
MPLS
能力并进入相应的
MPLS
视图。
表1-2
使能
MPLS
使能了
MPLS
能力后,要使
LSR
具有
MPLS
转发能力,必须激活
LDP
协议。
请在系统视图下进行下列配置。
表1-3
使能
/
去使能
LDP
协议
操作
|
命令
|
使能
LDP
协议
|
mpls ldp
|
去使能
LDP
协议
|
undo mpls ldp
|
缺省情况下
LDP
协议未激活。
在
LSR
上使能了
MPLS
并激活了
LDP
协议后,要使其具有
MPLS
转发和
LDP
信令功能,还要在相应的接口上使能
MPLS
能力和激活
LDP
协议。在接口上激活
LDP
协议之前,必须使能接口的
MPLS
能力。
请在接口视图下进行下列配置。
表1-4
使能接口的
MPLS
能力
使能了接口的
MPLS
能力后,要使该接口具有
LDP
功能,必须在接口模式下激活
LDP
协议。激活
LDP
协议后的接口即开始建立
LDP
会话,在拓扑驱动方式时开始建立
LSP
。
禁止端口
LDP
功能会导致接口下的所有
LDP
会话中断,基于这些会话的所有
LSP
也将被删除,建议用户谨慎使用此命令。
请在接口视图下进行下列配置。
表1-5
激活接口
LDP
协议
操作
|
命令
|
允许接口
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 { nexthopnext-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-labelin-label
|
为出口
LSR
删除一条
LSP
|
undo static-lsp
egress
lsp-name [ l2vpn ]
|
配置拓扑驱动建立
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 ]
|
请在
MPLS
视图下进行下列配置。
表1-8
配置上报统计信息的间隔时间
操作
|
命令
|
配置上报统计信息的间隔时间
|
statistics interval
interval-time
|
恢复缺省值
|
undo statistics interval
|
缺省情况是间隔为
0
,即不上报。
请在
MPLS
视图下进行下列配置。
表1-9
清除
MPLS
统计数据
操作
|
命令
|
清除
MPLS
统计数据
|
reset mpls statistics
{ interface {interface-name |interface-type interface-num | all} | { lsp {lsp-index | lsp-name | all} }
|
1.
配置
LDP
会话保持时间
一般情况下,可以直接使用缺省值。
特殊情况可以根据需要修改,但要注意,修改
holdtime
参数会导致原有的会话重新建立,原有的建立在此会话上的
LSP
也会被删除重建。
请在接口视图下进行下列配置。
表1-10
配置会话保持时间
操作
|
命令
|
配置会话保持时间
|
mpls ldp timer
{ session-hold
secs
| hellosecs }
|
恢复会话保持时间为缺省值
|
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.
进入扩展发现模式
请在系统视图下进行下列配置。
表1-12
进入扩展发现模式
操作
|
命令
|
进入扩展发现模式
|
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
视图下进行下列配置。
表1-13
配置
remote-peer
的地址
操作
|
命令
|
配置
remote-peer
的地址
|
remote-ip
ip-address
|
无缺省的
remote-peer
。
在出口节点处指明倒数第二跳分发怎样的标签。
请在系统视图下进行下列配置。
表1-14
在出口节点配置倒数第二跳的标签
操作
|
命令
|
出口节点处指明倒数第二跳分发怎样的标签
|
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
的建立过程。
请在系统视图下进行下列配置。
表1-15
环路检测使能
操作
|
命令
|
允许进行环路检测
|
mpls ldp loop-detect
|
禁止进行环路检测
|
undo mpls ldp loop-detect
|
缺省为不允许环路检测。
2.
设置环路检测最大跳数
当环路检测采用最大跳数方式时,可以规定跳数的最大值,超过该最大值即认为出现了环路,
LSP
建立失败。
请在系统视图下进行下列配置。
表1-16
设置环路检测最大跳数
操作
|
命令
|
设置环路检测的最大跳数
|
mpls ldp hops-count
hop-number
|
恢复最大跳数的缺省值
|
undo mpls ldp hops-count
|
缺省的最大值为
32
。
3.
设置路径向量的最大值
当环路检测采用路径向量方式时,也需要规定
LSP
路径的最大值。这样,在以下条件之一时即认为出现了环路,
LSP
建立失败:
(1)
路径向量记录表中已有本
LSR
的记录
(2)
路径的跳数超过这里设定的最大值
请在系统视图下进行下列配置。
表1-17
设置路径向量的最大值
操作
|
命令
|
设置路径向量的最大跳数
|
mpls ldp path-vectors
pv-number
|
恢复路径向量最大跳数的缺省值
|
undo mpls ldp path-vectors
|
路径向量的最大跳数缺省的最大值为
32
。
请在接口视图下进行下列配置。
表1-18
配置
LDP
验证方式
操作
|
命令
|
配置
LDP
验证方式
|
mpls ldp password
[ 0 | 7 ] password
|
取消该配置
|
undo mpls ldp password
|
1.4
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 }
|
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-instancevpn-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.
组网需求
图
2-1
给出一个由四台
Router
路由器组成的网络,其中
RouterB
和
RouterC
间通过
SDH
连接,
RouterB
和
RouterA
、
RouterD
间通过以太网连接。
四台路由器均支持
MPLS
,任意路由器之间都可以建立
LSP
,运行的路由协议为
OSPF
。
2.
组网图
图1-1
组网图
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
故障现象:接口使能
LDP
协议后,不能与对端建立会话。
故障排除:
原因之一:环路检测配置不同。
解决方法:检查本地和对端的配置,是否一端配了环路检测,而另一端没有配,如果是这样会导致会话协商不通过。
原因之二:标签通告方式不同。
解决方法:检查本地和对端的配置,是否一端的标签通告方式为
DoD
,而另一端为
DU
。如果没有使用
mpls ldp advertisement
命令修改过标签通告方式,应该不会有这种问题出现。
原因之三:如果本机得不到对方的
LSR ID
的路由,就不能建立
TCP
连接,会话就不可能建立。
解决方法:建立会话时默认的传输地址是
MPLS LSR ID
,本机必须将
LSR ID
的路由(一般为
loopback
地址)发布出去,同时要学到对端的
LSR ID
的路由。