配置LDP Over TE
应用环境
在现有网络中,并不是所有设备都支持MPLS TE,可能仅有网络的核心部分支持TE,而在边缘使用LDP。由此产生了LDP over TE的应用,即TE Tunnel作为整个LDP LSP的“一跳”。
目前,LDP被广泛应用在MPLS VPN中,为防止VPN流量在某些节点发生拥塞,可以配置LDP over TE特性。
配置思路
采用如下的思路实现LDP over TE:
配置各路由器接口的IP地址及作为LSR ID的Loopback地址,并配置IGP。
在支持TE的区域使能OSPF TE或IS-IS TE,并创建MPLS TE隧道。
在非TE域使能MPLS LDP,并在TE边界上配置LDP远端对等体。
在TE边界上配置IGP Shortcut。
配置注意事项
如果配置IGP Shortcut时不指定IGP类型,则缺省为OSPF和IS-IS都支持。
组网需求
如下图所示,在RouterA和RouterB之间,RouterD和RouterE之间运行LDP。RouterB上配置一条RSVP Tunnel,其目的地为RouterD。要求到RouterD或RouterE的流量经过Tunnel。
RouterB、RouterC、RouterD之间不运行LDP。
LDP over TE配置组网图
适用产品和版本
路由器端可以使用任意一款NE产品。版本为(VRP5.10)及后续版本
数据准备
为完成此配置例,需准备如下的数据:
各路由器接口的IP地址如上图,区域ID为86,各路由器为Level-2。
LSP的建立触发策略为all。
RouterB的远端对等体为RouterD,其IP地址为4.4.4.4。
RouterD的远端对等体为RouterB,其IP地址为2.2.2.2。
路由器RouterB上的隧道接口为Tunnel1/0/0,借用Loopback1的IP地址,隧道封装协议为MPLS TE,目的地址为4.4.4.4,隧道ID为100,隧道信令协议为缺省的RSVP-TE,使能shortcut,TE度量值为1,链路开销值为1。
路由器RouterD上的隧道接口为Tunnel1/0/0,借用Loopback1的IP地址,隧道封装协议为MPLS TE,目的地址为2.2.2.2,隧道ID为100,隧道信令协议为缺省的RSVP-TE,使能shortcut,TE度量值为1,链路开销值为1。
配置步骤
LDP over TE的配置包括以下几个步骤:
配置静态路由或IGP协议保证各LSR之间可达
配置MPLS基本能力
配置LDP Remote Session
使用动态信令协议配置MPLS TE隧道
配置IGP shortcut
步骤 1 配置各接口的IP地址
按照上图配置各接口的IP地址和掩码,包括各Loopback接口,具体配置过程略。
步骤 2 配置IGP协议
在所有路由器上配置IS-IS协议,发布LSR ID的主机路由。
# 配置RouterA。 [RouterA] isis 1 [RouterA-isis-1] network-entity 86.1111.1111.1111.00 [RouterA-isis-1] is-level level-2 [RouterA-isis-1] cost-style wide [RouterA-isis-1] quit [RouterA] interface loopback 1 [RouterA-LoopBack1] isis enable 1 [RouterA-LoopBack1] quit [RouterA] interface pos 1/0/0 [RouterA-Pos1/0/0] isis enable 1 [RouterA-Pos1/0/0] quit # 配置RouterB。 [RouterB] isis 1 [RouterB-isis-1] network-entity 86.2222.2222.2222.00 [RouterB-isis-1] is-level level-2 [RouterB-isis-1] cost-style wide [RouterB-isis-1] traffic-eng level-2 [RouterB-isis-1] quit [RouterB] interface loopback 1 [RouterB-LoopBack1] isis enable 1 [RouterB-LoopBack1] quit [RouterB] interface pos 1/0/0 [RouterB-Pos1/0/0] isis enable 1 [RouterB-Pos1/0/0] quit [RouterB] interface pos 2/0/0 [RouterB-Pos2/0/0] isis enable 1 [RouterB-Pos2/0/0] quit # 配置RouterC。 [RouterC] isis 1 [RouterC-isis-1] network-entity 86.3333.3333.3333.00 [RouterC-isis-1] is-level level-2 [RouterC-isis-1] cost-style wide [RouterC-isis-1] traffic-eng level-2 [RouterC-isis-1] quit [RouterC] interface loopback 1 [RouterC-LoopBack1] isis enable 1 [RouterC-LoopBack1] quit [RouterC] interface pos 1/0/0 [RouterC-Pos1/0/0] isis enable 1 [RouterC-Pos1/0/0] quit [RouterC] interface pos 2/0/0 [RouterC-Pos2/0/0] isis enable 1 [RouterC-Pos2/0/0] quit # 配置RouterD。 [RouterD] isis 1 [RouterD-isis-1] network-entity 86.4444.4444.4444.00 [RouterD-isis-1] is-level level-2 [RouterD-isis-1] cost-style wide [RouterD-isis-1] traffic-eng level-2 [RouterD-isis-1] quit [RouterD] interface loopback 1 [RouterD-LoopBack1] isis enable 1 [RouterD-LoopBack1] quit [RouterD] interface pos 1/0/0 [RouterD-Pos1/0/0] isis enable 1 [RouterD-Pos1/0/0] quit [RouterD] interface pos 2/0/0 [RouterD-Pos2/0/0] isis enable 1 [RouterD-Pos2/0/0] quit # 配置RouterE。 [RouterE] isis 1 [RouterE-isis-1] network-entity 86.5555.5555.5555.00 [RouterE-isis-1] is-level level-2 [RouterE-isis-1] cost-style wide [RouterE-isis-1] quit [RouterE] interface loopback 1 [RouterE-LoopBack1] isis enable 1 [RouterE-LoopBack1] quit [RouterE] interface pos 1/0/0 [RouterE-Pos1/0/0] isis enable 1 [RouterE-Pos1/0/0] quit
配置完后,在各路由器上执行display ip routing-table,可以看到相互之间都学到了对方的路由,以RouterA的显示为例:
[RouterA] display ip routing-table
Routing Tables: Public
Destinations : 13 Routes : 13
Destination/Mask Proto Pre Cost NextHop Interface
1.1.1.1/32 Direct 0 0 127.0.0.1 InLoopBack0
2.2.2.2/32 ISIS 15 10 10.1.1.2 Pos1/0/0
3.3.3.3/32 ISIS 15 20 10.1.1.2 Pos1/0/0
4.4.4.4/32 ISIS 15 30 10.1.1.2 Pos1/0/0
5.5.5.5/32 ISIS 15 40 10.1.1.2 Pos1/0/0
10.1.1.0/24 Direct 0 0 10.1.1.1 Pos1/0/0
10.1.1.1/32 Direct 0 0 127.0.0.1 InLoopBack0
10.1.1.2/32 Direct 0 0 10.1.1.2 Pos1/0/0
20.1.1.0/24 ISIS 15 20 10.1.1.2 Pos1/0/0
30.1.1.0/24 ISIS 15 30 10.1.1.2 Pos1/0/0
40.1.1.0/24 ISIS 15 40 10.1.1.2 Pos1/0/0
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoopBack0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoopBack0
步骤 3 配置MPLS基本功能,RouterA与RouterB之间,RouterD与RouterE之间使能LDP,RouterB与RouterC、RouterD之间使能RSVP
# 配置RouterA。 [RouterA] mpls lsr-id 1.1.1.1 [RouterA] mpls [RouterA-mpls] lsp-trigger all [RouterA-mpls] quit [RouterA] mpls ldp [Quidway-mpls-ldp] quit [RouterA] interface pos 1/0/0 [RouterA-Pos1/0/0] mpls [RouterA-Pos1/0/0] mpls ldp [RouterA-Pos1/0/0] quit # 配置RouterB。 [RouterB] mpls lsr-id 2.2.2.2 [RouterB] mpls [RouterB-mpls] mpls te [RouterB-mpls] lsp-trigger all [RouterB-mpls] mpls rsvp-te [RouterB-mpls] mpls te cspf [RouterB-mpls] quit [RouterB] mpls ldp [RouterB-mpls-ldp] quit [RouterB] interface pos 1/0/0 [RouterB-Pos1/0/0] mpls [RouterB-Pos1/0/0] mpls ldp [RouterB-Pos1/0/0] quit [RouterB] interface pos 2/0/0 [RouterB-Pos2/0/0] mpls [RouterB-Pos2/0/0] mpls te [RouterB-Pos2/0/0] mpls rsvp-te [RouterB-Pos2/0/0] quit # 配置RouterC。 [RouterC] mpls lsr-id 3.3.3.3 [RouterC] mpls [RouterC-mpls] mpls te [RouterC-mpls] mpls rsvp-te [RouterC-mpls] quit [RouterC] interface pos 1/0/0 [RouterC-Pos1/0/0] mpls [RouterC-Pos1/0/0] mpls te [RouterC-Pos1/0/0] mpls rsvp-te [RouterC-Pos1/0/0] quit [RouterC] interface pos 2/0/0 [RouterC-Pos2/0/0] mpls [RouterC-Pos2/0/0] mpls te [RouterC-Pos2/0/0] mpls rsvp-te [RouterC-Pos2/0/0] quit # 配置RouterD。 [RouterD] mpls lsr-id 4.4.4.4 [RouterD] mpls [RouterD-mpls] mpls te [RouterD-mpls] lsp-trigger all [RouterD-mpls] mpls rsvp-te [RouterD-mpls] mpls te cspf [RouterD-mpls] quit [RouterD] mpls ldp [RouterD-mpls-ldp] quit [RouterD] interface pos 1/0/0 [RouterD-Pos1/0/0] mpls [RouterD-Pos1/0/0] mpls te [RouterD-Pos1/0/0] mpls rsvp-te [RouterD-Pos1/0/0] quit [RouterD] interface pos 2/0/0 [RouterD-Pos2/0/0] mpls [RouterD-Pos2/0/0] mpls ldp [RouterD-Pos2/0/0] quit # 配置RouterE。 [RouterE] mpls lsr-id 5.5.5.5 [RouterE] mpls [RouterE-mpls] lsp-trigger all [RouterE-mpls] quit [RouterE] mpls ldp [RouterE-mpls-ldp] quit [RouterE] interface pos 1/0/0 [RouterE-Pos1/0/0] mpls [RouterE-Pos1/0/0] mpls ldp [RouterE-Pos1/0/0] quit
完成上述配置后,RouterA与RouterB,RouterD与RouterE之间的本地LDP会话应该建立成功。
在路由器RouterA、RouterB、RouterD、RouterE上执行display mpls ldp session命令,可以看到LDP会话的建立情况。
执行display mpls ldp peer命令,可以看到LDP对等体情况。
执行display mpls lsp可以看到LDP LSP的信息,RSVP尚未建立LSP。以路由器RouterA的显示为例:
[RouterA] display mpls ldp session
LDP Session(s) in Public Network
---------------------------------------------------------------------
Peer-ID Status LAM SsnRole SsnAge KA-Sent/Rcv
----------------------------------------------------------------------
2.2.2.2:0 Operational DU Passive 000:00:00 1/1
-----------------------------------------------------------------------
TOTAL: 1 Session(s) Found.
LAM : Label Advertisement Mode SsnAge Unit : DDD:HH:MM
[RouterA] display mpls ldp peer
LDP Peer Information in Public network
-----------------------------------------------------------------------
Peer-ID Transport-Address Discovery-Source
-----------------------------------------------------------------------
2.2.2.2:0 2.2.2.2 Pos1/0/0
-----------------------------------------------------------------------
TOTAL:1 Peer(s) Found.
[RouterA] display mpls lsp
----------------------------------------------------------------------
LSP Information: LDP LSP
----------------------------------------------------------------------
FEC In/Out Label In/Out IF Vrf Name
2.2.2.2/32 NULL/3 -/Pos1/0/0
1.1.1.1/32 3/NULL -/-
2.2.2.2/32 1024/3 -/Pos1/0/0
20.1.1.0/24 NULL/3 -/Pos1/0/0
20.1.1.0/24 1025/3 -/Pos1/0/0
30.1.1.0/24 NULL/1025 -/Pos1/0/0
30.1.1.0/24 1026/1025 -/Pos1/0/0
4.4.4.4/32 NULL/1026 -/Pos1/0/0
4.4.4.4/32 1027/1026 -/Pos1/0/0
40.1.1.0/24 NULL/1027 -/Pos1/0/0
40.1.1.0/24 1028/1027 -/Pos1/0/0
3.3.3.3/32 NULL/1028 -/Pos1/0/0
3.3.3.3/32 1029/1028 -/Pos1/0/0
5.5.5.5/32 NULL/1029 -/Pos1/0/0
5.5.5.5/32 1030/1029 -/Pos1/0/0
步骤 4 配置RouterB与RouterD之间的LDP远端会话
# 配置RouterB。 [RouterB] mpls ldp remote-peer routerd [RouterB-mpls-ldp-remote-routerd] remote-ip 4.4.4.4 [RouterB-mpls-ldp-remote-routerd] quit # 配置RouterD。 [RouterD] mpls ldp remote-peer routerb [RouterD-mpls-ldp-remote-routerb] remote-ip 2.2.2.2 [RouterD-mpls-ldp-remote-routerb] quit
完成上述配置后,在RouterB与RouterD间建立起远端会话,在RouterB或RouterD上执行display mpls ldp remote-peer将显示远端会话实体信息,以RouterB的显示为例:
[RouterB] display mpls ldp remote-peer
LDP Remote Entity Information
------------------------------------------------------------------------
Remote Peer Name: routerd
Remote Peer IP: 4.4.4.4 LDP ID: 2.2.2.2:0
Transport Address: 2.2.2.2 Entity Status: Active
Configured Keepalive Timer: 45 Sec Configured Hello Timer: 45 Sec
Negotiated Hello Timer: 45 Sec Hello Packet sent/received: 19/16
步骤 5 配置RouterB到RouterD的Tunnel
# 配置路由器RouterB。在Tunnel接口上使能shortcut,并调整metric值,使到RouterD或RouterE的流量经过Tunnel。 [RouterB] interface tunnel 1/0/0 [RouterB-Tunnel1/0/0] ip address unnumbered interface loopback 1 [RouterB-Tunnel1/0/0] tunnel-protocol mpls te [RouterB-Tunnel1/0/0] destination 4.4.4.4 [RouterB-Tunnel1/0/0] mpls te tunnel-id 100 [RouterB-Tunnel1/0/0] mpls te igp shortcut isis [RouterB-Tunnel1/0/0] mpls te igp metric absolute 1 [RouterB-Tunnel1/0/0] mpls te commit [RouterB-Tunnel1/0/0] isis enable 1 # 设置LDP over TE。 [RouterB-Tunnel1/0/0] mpls [RouterB-Tunnel1/0/0] quit
步骤 6 配置RouterD到RouterB的Tunnel
# 配置路由器RouterD。在Tunnel接口上使能shortcut,并调整shortcut的metric值,使到RouterA或RouterB的流量经过Tunnel。 [RouterD] interface tunnel 1/0/0 [RouterD-Tunnel1/0/0] ip address unnumbered interface loopback 1 [RouterD-Tunnel1/0/0] tunnel-protocol mpls te [RouterD-Tunnel1/0/0] destination 2.2.2.2 [RouterD-Tunnel1/0/0] mpls te tunnel-id 100 [RouterD-Tunnel1/0/0] mpls te igp shortcut isis [RouterD-Tunnel1/0/0] mpls te igp metric absolute 1 [RouterD-Tunnel1/0/0] mpls te commit [RouterD-Tunnel1/0/0] isis enable 1 # 设置LDP over TE。 [RouterD-Tunnel1/0/0] mpls [RouterD-Tunnel1/0/0] quit
验证结果
完成上述配置后,Tunnel建立成功,在RouterB上使用display interface tunnel显示tunnel信息。
[RouterB] display interface tunnel
Tunnel1/0/0current state : UP
Line protocol current state : UP
Description : HUAWEI, Quidway Series, Tunnel1/0/0Interface
The Maximum Transmit Unit is 1500 bytes
Internet Address is unnumbered, using address of LoopBack1(2.2.2.2/32)
Encapsulation is TUNNEL, loopback not set
Tunnel destination 4.4.4.4
Tunnel protocol/transport MPLS/MPLS, ILM is available
Output queue : (Urgent queue : Size/Length/Discards) 0/50/0
Output queue : (Protocol queue : Size/Length/Discards) 0/1000/0
Output queue : (FIFO queuing : Size/Length/Discards) 0/75/0
5 minutes output rate 9 bytes/sec, 0 packets/sec
122 packets output, 7496 bytes
0 output error
在RouterB上使用display ip routing-table显示路由信息,发现到RouterD和RouterE的出接口为Tunnel。
[RouterB] display ip routing-table
Routing Tables: Public
Destinations : 13 Routes : 13
Destination/Mask Proto Pre Cost NextHop Interface
1.1.1.1/32 ISIS 15 10 10.1.1.1 Pos1/0/0
2.2.2.2/32 Direct 0 0 127.0.0.1 InLoopBack0
3.3.3.3/32 ISIS 15 10 20.1.1.2 Pos2/0/0
4.4.4.4/32 ISIS 15 1 2.2.2.2 Tunnel1/0/0
5.5.5.5/32 ISIS 15 11 2.2.2.2 Tunnel1/0/0
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoopBack0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoopBack0
20.1.1.0/24 Direct 0 0 20.1.1.1 Pos2/0/0
20.1.1.1/32 Direct 0 0 127.0.0.1 InLoopBack0
30.1.1.0/24 ISIS 15 11 2.2.2.2 Tunnel1/0/0
10.1.1.0/24 Direct 0 0 10.1.1.2 Pos1/0/0
10.1.1.2/32 Direct 0 0 127.0.0.1 InLoopBack0
40.1.1.0/24 ISIS 15 11 2.2.2.2 Tunnel1/0/0
在路由器RouterB、RouterC、RouterD上使用display mpls lsp显示LSP信息,发现新增了RSVP的LSP。以RouterB的显示为例:
[RouterB] display mpls lsp
-------------------------------------------------------------------------
LSP Information: RSVP LSP
-------------------------------------------------------------------------
FEC In/Out Label In/Out IF Vrf Name
4.4.4.4/32 NULL/1024 -/Pos2/0/0
2.2.2.2/32 3/NULL Pos2/0/0/-
-------------------------------------------------------------------------
LSP Information: LDP LSP
-------------------------------------------------------------------------
FEC In/Out Label In/Out IF Vrf Name
2.2.2.2/32 3/NULL -/-
20.1.1.0/24 3/NULL -/-
3.3.3.3/32 1024/NULL -/-
1.1.1.1/32 NULL/3 -/Pos1/0/0
1.1.1.1/32 1028/3 -/Pos1/0/0
4.4.4.4/32 NULL/3 -/Tun1/0/0
4.4.4.4/32 1025/3 -/Tun1/0/0
5.5.5.5/32 NULL/1029 -/Tun1/0/0
5.5.5.5/32 1026/1029 -/Tun1/0/0
30.1.1.0/24 NULL/3 -/Tun1/0/0
30.1.1.0/24 1027/3 -/Tun1/0/0
# 查看RouterA的路由表,可以看到配置shortcut后,其路由表中的Cost值也发生了变化。
[RouterA] display ip routing-table
Routing Tables: Public
Destinations : 12 Routes : 12
Destination/Mask Proto Pre Cost NextHop Interface
1.1.1.1/32 Direct 0 0 127.0.0.1 InLoopBack0
2.2.2.2/32 ISIS 15 10 10.1.1.2 Pos1/0/0
3.3.3.3/32 ISIS 15 20 10.1.1.2 Pos1/0/0
4.4.4.4/32 ISIS 15 11 10.1.1.2 Pos1/0/0
5.5.5.5/32 ISIS 15 21 10.1.1.2 Pos1/0/0
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoopBack0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoopBack0
20.1.1.0/24 ISIS 15 20 10.1.1.2 Pos1/0/0
30.1.1.0/24 ISIS 15 21 10.1.1.2 Pos1/0/0
10.1.1.0/24 Direct 0 0 10.1.1.1 Pos1/0/0
10.1.1.1/32 Direct 0 0 127.0.0.1 InLoopBack0
40.1.1.0/24 ISIS 15 21 10.1.1.2 Pos1/0/0