配置LDP Auto FRR示例
介绍LDP Auto FRR的配置过程,包括配置全局使能MPLS和MPLS LDP以及IS-IS Auto FRR。
组网需求
现代网络业务对实时性的要求越来越高,例如VoIP,在线游戏,在线视频业务等,很多业务都基于VPN,而VPN业务目前通常使用LDP隧道。链路发生故障导致的数据丢失对这些业务造成比较严重的影响。
使用手工配置的LDP FRR技术,在故障发生时,可以使得公网业务流量在路由重新收敛、新的主LSP重新生成之前,沿着备份LSP转发。整个流量中断时间仅限于故障检测和切换到备份LSP的时间,从而使得丢包时间低于50ms。但是路由重新收敛结束后,VPN切换到新的主LSP的时间依赖于VPN的实现。因此VPN业务的流量中断时间要达到50ms以内,还需提高VPN切换到新的主LSP的速度。配置LDP Auto FRR可以解决这一问题。
如图4-15所示,LSRA到LSRC之间存在主备LSP,其中LSRA->LSRC为主用LSP,LSRA->LSRB->LSRC为备份LSP。要求在主用LSP发生故障的时候,流量能够快速切换到备份LSP。在LSRA上配置LDP Auto FRR功能,使能LSRA自动建立备份LSP,从而实现故障时流量的快速切换,减少流量丢失。
设备 |
接口 |
IP地址 |
---|---|---|
LSRA |
Loopback0 |
1.1.1.9/32 |
GigabitEthernet0/1/0 |
10.1.1.1/24 |
|
GigabitEthernet0/1/1 |
10.1.2.1/24 |
|
LSRB |
Loopback0 |
2.2.2.9/32 |
GigabitEthernet0/1/0 |
10.1.1.2/24 |
|
GigabitEthernet0/1/1 |
10.1.3.1/24 |
|
LSRC |
Loopback0 |
3.3.3.9/32 |
GigabitEthernet0/1/0 |
10.1.4.1/24 |
|
GigabitEthernet0/1/1 |
10.1.2.2/24 |
|
GigabitEthernet0/1/2 |
10.1.3.2/24 |
|
LSRD |
Loopback0 |
4.4.4.9/32 |
GigabitEthernet0/1/0 |
10.1.4.2/24 |
配置思路
采用如下的思路实现LDP Auto FRR:
配置各节点接口的IP地址以及作为LSR ID的Loopback地址。
配置IS-IS协议发布各节点接口所连网段和LSR ID的主机路由。
使能各节点全局和接口的MPLS和MPLS LDP。
在被保护流量的始发LSR上使能IS-IS Auto FRR。
改变LSP的触发策略,所有路由触发LDP建立LSP。
在被保护流量的始发LSR上配置备份LSP的触发策略。
操作步骤
- 配置各接口的IP地址
按照图4-15配置各接口IP地址和掩码,包括Loopback接口,具体配置过程略。
- 配置IS-IS协议发布各节点接口所连网段和LSR ID的主机路由
# 配置LSRA。
<LSRA> system-view
[~LSRA] isis 1
[*LSRA-isis-1] network-entity 10.0000.0000.0001.00
[*LSRA-isis-1] quit
[*LSRA] interface gigabitethernet 0/1/0
[*LSRA-GigabitEthernet0/1/0] isis enable 1
[*LSRA-GigabitEthernet0/1/0] quit
[*LSRA] interface gigabitethernet 0/1/1
[*LSRA-GigabitEthernet0/1/1] isis enable 1
[*LSRA-GigabitEthernet0/1/1] quit
[*LSRA] interface loopBack 0
[*LSRA-LoopBack0] isis enable 1
[*LSRA-LoopBack0] quit
[*LSRA] commit
# 配置LSRB。
<LSRB> system-view
[~LSRB] isis 1
[*LSRB-isis-1] network-entity 10.0000.0000.0002.00
[*LSRB-isis-1] quit
[*LSRB] interface gigabitethernet 0/1/0
[*LSRB-GigabitEthernet0/1/0] isis enable 1
[*LSRB-GigabitEthernet0/1/0] quit
[*LSRB] interface gigabitethernet 0/1/1
[*LSRB-GigabitEthernet0/1/1] isis enable 1
[*LSRB-GigabitEthernet0/1/1] quit
[*LSRB] interface loopBack 0
[*LSRB-LoopBack0] isis enable 1
[*LSRB-LoopBack0] quit
[*LSRB] commit
# 配置LSRC。
<LSRC> system-view
[~LSRC] isis 1
[*LSRC-isis-1] network-entity 10.0000.0000.0003.00
[*LSRC-isis-1] quit
[*LSRC] interface gigabitethernet 0/1/0
[*LSRC-GigabitEthernet0/1/0] isis enable 1
[*LSRC-GigabitEthernet0/1/0] quit
[*LSRC] interface gigabitethernet 0/1/1
[*LSRC-GigabitEthernet0/1/1] isis enable 1
[*LSRC-GigabitEthernet0/1/1] quit
[*LSRC] interface gigabitethernet 0/1/2
[*LSRC-GigabitEthernet0/1/2] isis enable 1
[*LSRC-GigabitEthernet0/1/2] quit
[*LSRC] interface loopBack 0
[*LSRC-LoopBack0] isis enable 1
[*LSRC-LoopBack0] quit
[*LSRC] commit
# 配置LSRD。
<LSRD> system-view
[~LSRD] isis 1
[*LSRD-isis-1] network-entity 10.0000.0000.0004.00
[*LSRD-isis-1] quit
[*LSRD] interface gigabitethernet 0/1/0
[*LSRD-GigabitEthernet0/1/0] isis enable 1
[*LSRD-GigabitEthernet0/1/0] quit
[*LSRD] interface loopBack 0
[*LSRD-LoopBack0] isis enable 1
[*LSRD-LoopBack0] quit
[*LSRD] commit
- 配置各节点全局和接口的MPLS和MPLS LDP能力,使网络能够转发MPLS流量,并查看LSP建立情况
# 配置LSRA。
[~LSRA] mpls lsr-id 1.1.1.9
[*LSRA] mpls
[*LSRA-mpls] quit
[*LSRA] mpls ldp
[*LSRA-mpls-ldp] quit
[*LSRA] interface gigabitethernet 0/1/0
[*LSRA-GigabitEthernet0/1/0] mpls
[*LSRA-GigabitEthernet0/1/0] mpls ldp
[*LSRA-GigabitEthernet0/1/0] quit
[*LSRA] interface gigabitethernet 0/1/1
[*LSRA-GigabitEthernet0/1/1] mpls
[*LSRA-GigabitEthernet0/1/1] mpls ldp
[*LSRA-GigabitEthernet0/1/1] quit
[*LSRA] commit
# 配置LSRB。
[~LSRB] mpls lsr-id 2.2.2.9
[*LSRB] mpls
[*LSRB-mpls] quit
[*LSRB] mpls ldp
[*LSRB-mpls-ldp] quit
[*LSRB] interface gigabitethernet 0/1/0
[*LSRB-GigabitEthernet0/1/0] mpls
[*LSRB-GigabitEthernet0/1/0] mpls ldp
[*LSRB-GigabitEthernet0/1/0] quit
[*LSRB] interface gigabitethernet 0/1/1
[*LSRB-GigabitEthernet0/1/1] mpls
[*LSRB-GigabitEthernet0/1/1] mpls ldp
[*LSRB-GigabitEthernet0/1/1] quit
[*LSRB] commit
# 配置LSRC。
[~LSRC] mpls lsr-id 3.3.3.9
[*LSRC] mpls
[*LSRC-mpls] quit
[*LSRC] mpls ldp
[*LSRC-mpls-ldp] quit
[*LSRC] interface gigabitethernet 0/1/0
[*LSRC-GigabitEthernet0/1/0] mpls
[*LSRC-GigabitEthernet0/1/0] mpls ldp
[*LSRC-GigabitEthernet0/1/0] quit
[*LSRC] interface gigabitethernet 0/1/1
[*LSRC-GigabitEthernet0/1/1] mpls
[*LSRC-GigabitEthernet0/1/1] mpls ldp
[*LSRC-GigabitEthernet0/1/1] quit
[*LSRC] interface gigabitethernet 0/1/2
[*LSRC-GigabitEthernet0/1/2] mpls
[*LSRC-GigabitEthernet0/1/2] mpls ldp
[*LSRC-GigabitEthernet0/1/2] quit
[*LSRC] commit
# 配置LSRD。
[~LSRD] mpls lsr-id 4.4.4.9
[*LSRD] mpls
[*LSRD-mpls] quit
[*LSRD] mpls ldp
[*LSRD-mpls-ldp] quit
[*LSRD] interface gigabitethernet 0/1/0
[*LSRD-GigabitEthernet0/1/0] mpls
[*LSRD-GigabitEthernet0/1/0] mpls ldp
[*LSRD-GigabitEthernet0/1/0] quit
[*LSRD] commit
# 配置完成后,在LSRA上执行display mpls lsp命令,查看已经建立的LSP。
[~LSRA] display mpls lsp
------------------------------------------------------------------------------- LSP Information: LDP LSP ------------------------------------------------------------------------------- FEC In/Out Label In/Out IF Vrf Name 1.1.1.9/32 3/NULL -/- 2.2.2.9/32 NULL/3 -/GE0/1/0 2.2.2.9/32 1024/3 -/GE0/1/0 3.3.3.9/32 NULL/3 -/GE0/1/1 3.3.3.9/32 1025/3 -/GE0/1/1 4.4.4.9/32 NULL/1026 -/GE0/1/1 4.4.4.9/32 1026/1026 -/GE0/1/1
从显示信息可以看到,缺省情况下,32位的主机路由触发LDP建立了LSP。
- 在LSRA上使能IS-IS Auto FRR,并查看路由信息,以及备份LSP的建立情况。
# 在LSRA上使能IS-IS Auto FRR。
[~LSRA] isis
[~LSRA-isis-1] frr
[*LSRA-isis-1-frr] loop-free-alternate
[*LSRA-isis-1-frr] quit
[*LSRA-isis-1] quit
[*LSRA] commit
# 查看LSRA到LSRC和LSRD之间直连链路的路由信息。
[~LSRA] display ip routing-table 10.1.4.0 verbose
Route Flags: R - relay, D - download to fib, T - to vpn-instance, B - black hole route ------------------------------------------------------------------------------ Routing Table : _public_ Summary Count : 1 Destination: 10.1.4.0/24 Protocol: ISIS Process ID: 1 Preference: 15 Cost: 20 NextHop: 10.1.2.2 Neighbour: 0.0.0.0 State: Active Adv Age: 00h05m38s Tag: 0 Priority: low Label: NULL QoSInfo: 0x0 IndirectID: 0x0 RelayNextHop: 0.0.0.0 Interface: GigabitEthernet0/1/1 TunnelID: 0x0 Flags: D BkNextHop: 10.1.1.2 BkInterface: GigabitEthernet0/1/0 BkLabel: NULL SecTunnelID: 0x0 BkPETunnelID: 0x0 BkPESecTunnelID: 0x0 BkIndirectID: 0x0
从显示信息可以看到,由于使能了IS-IS Auto FRR,IS-IS生成了一条备份路由。
# 在LSRA上执行display mpls lsp命令,查看LSP的建立情况。
[~LSRA] display mpls lsp
------------------------------------------------------------------------------- LSP Information: LDP LSP ------------------------------------------------------------------------------- FEC In/Out Label In/Out IF Vrf Name 1.1.1.9/32 3/NULL -/- 2.2.2.9/32 NULL/3 -/GE0/1/0 2.2.2.9/32 23/3 -/GE0/1/0 **LDP FRR** NULL/17 -/GE0/1/1 **LDP FRR** 23/17 -/GE0/1/1 3.3.3.9/32 NULL/18 -/GE0/1/1 3.3.3.9/32 24/18 -/GE0/1/1 **LDP FRR** NULL/18 -/GE0/1/0 **LDP FRR** 24/18 -/GE0/1/0 4.4.4.9/32 NULL/3 -/GE0/1/1 4.4.4.9/32 25/3 -/GE0/1/1 **LDP FRR** NULL/19 -/GE0/1/0 **LDP FRR** 25/19 -/GE0/1/0
从显示信息可以看到,缺省情况下,32位的备份路由触发LDP建立了备份LSP。
- 配置LSP触发策略,所有路由触发LDP建立LSP,并查看LSP建立情况
# 在LSRA上执行lsp-trigger命令,改变LSP触发策略,所有路由触发LDP建立LSP。
[~LSRA] mpls
[~LSRA-mpls] lsp-trigger all
[*LSRA-mpls] quit
[*LSRA] commit
# 在LSRB上执行lsp-trigger命令,改变LSP触发策略,所有路由触发LDP建立LSP。
[~LSRB] mpls
[~LSRB-mpls] lsp-trigger all
[*LSRB-mpls] quit
[*LSRB] commit
# 在LSRC上执行lsp-trigger命令,改变LSP触发策略,所有路由触发LDP建立LSP。
[~LSRC] mpls
[~LSRC-mpls] lsp-trigger all
[*LSRC-mpls] quit
[*LSRC] commit
# 在LSRD上执行lsp-trigger命令,改变LSP触发策略,所有路由触发LDP建立LSP。
[~LSRD] mpls
[~LSRD-mpls] lsp-trigger all
[*LSRD-mpls] quit
[*LSRD] commit
# 在LSRA上执行display mpls lsp命令,查看已经建立的LSP。
[~LSRA] display mpls lsp
------------------------------------------------------------------------------- LSP Information: LDP LSP ------------------------------------------------------------------------------- FEC In/Out Label In/Out IF Vrf Name 1.1.1.9/32 3/NULL -/- 2.2.2.9/32 NULL/3 -/GE0/1/0 2.2.2.9/32 23/3 -/GE0/1/0 **LDP FRR** NULL/17 -/GE0/1/1 **LDP FRR** 23/17 -/GE0/1/1 3.3.3.9/32 NULL/18 -/GE0/1/1 3.3.3.9/32 24/18 -/GE0/1/1 **LDP FRR** NULL/18 -/GE0/1/0 **LDP FRR** 24/18 -/GE0/1/0 4.4.4.9/32 NULL/3 -/GE0/1/1 4.4.4.9/32 25/3 -/GE0/1/1 **LDP FRR** NULL/19 -/GE0/1/0 **LDP FRR** 25/19 -/GE0/1/0 10.1.1.0/24 3/NULL -/- 10.1.2.0/24 3/NULL -/- 10.1.3.0/24 NULL/3 -/GE0/1/0 10.1.3.0/24 28/3 -/GE0/1/0 10.1.3.0/24 NULL/3 -/GE0/1/1 10.1.3.0/24 28/3 -/GE0/1/1 10.1.4.0/24 NULL/3 -/GE0/1/1 10.1.4.0/24 29/3 -/GE0/1/1
从显示信息可以看到,24位的路由也触发建立了LSP。
- 配置备份LSP的触发策略,所有备份路由触发LDP建立备份LSP
# 在LSRA上执行auto-frr lsp-trigger命令,为所有备份路由生成备份LSP。
[~LSRA] mpls ldp
[~LSRA-mpls-ldp] auto-frr lsp-trigger all
[*LSRA-mpls-ldp] quit
[*LSRA] commit
- 检查配置结果
上述配置完成后,在LSRA节点上执行display mpls lsp命令,查看备份LSP的建立情况。
[~LSRA] display mpls lsp
------------------------------------------------------------------------------- LSP Information: LDP LSP ------------------------------------------------------------------------------- FEC In/Out Label In/Out IF Vrf Name 1.1.1.9/32 3/NULL -/- 2.2.2.9/32 NULL/3 -/GE0/1/0 2.2.2.9/32 23/3 -/GE0/1/0 **LDP FRR** NULL/17 -/GE0/1/1 **LDP FRR** 23/17 -/GE0/1/1 3.3.3.9/32 NULL/18 -/GE0/1/1 3.3.3.9/32 24/18 -/GE0/1/1 **LDP FRR** NULL/18 -/GE0/1/0 **LDP FRR** 24/18 -/GE0/1/0 4.4.4.9/32 NULL/3 -/GE0/1/1 4.4.4.9/32 25/3 -/GE0/1/1 **LDP FRR** NULL/19 -/GE0/1/0 **LDP FRR** 25/19 -/GE0/1/0 10.1.1.0/24 3/NULL -/- 10.1.2.0/24 3/NULL -/- 10.1.3.0/24 NULL/3 -/GE0/1/0 10.1.3.0/24 28/3 -/GE0/1/0 10.1.3.0/24 NULL/3 -/GE0/1/1 10.1.3.0/24 28/3 -/GE0/1/1 10.1.4.0/24 NULL/3 -/GE0/1/1 10.1.4.0/24 29/3 -/GE0/1/1 **LDP FRR** NULL/26 -/GE0/1/0 **LDP FRR** 29/26 -/GE0/1/0
从显示信息可以看到,已经建立了从LSRA到达LSRC和LSRD之间直连链路的主LSP的备份LSP。
配置文件
LSRA的配置文件
# sysname LSRA # mpls lsr-id 1.1.1.9 # mpls # mpls ldp # ipv4-family auto-frr lsp-trigger all # isis 1 frr loop-free-alternate level-1 loop-free-alternate level-2 network-entity 10.0000.0000.0001.00 # interface GigabitEthernet0/1/0 undo shutdown ip address 10.1.1.1 255.255.255.0 isis enable 1 mpls mpls ldp # interface GigabitEthernet0/1/1 undo shutdown ip address 10.1.2.1 255.255.255.0 isis enable 1 mpls mpls ldp # interface LoopBack0 ip address 1.1.1.9 255.255.255.255 isis enable 1 # return
LSRB的配置文件
# sysname LSRB # mpls lsr-id 2.2.2.9 # mpls lsp-trigger all # mpls ldp # ipv4-family # isis 1 network-entity 10.0000.0000.0002.00 # interface GigabitEthernet0/1/0 undo shutdown ip address 10.1.1.2 255.255.255.0 isis enable 1 mpls mpls ldp # interface GigabitEthernet0/1/1 undo shutdown ip address 10.1.3.1 255.255.255.0 isis enable 1 mpls mpls ldp # interface LoopBack0 ip address 2.2.2.9 255.255.255.255 isis enable 1 # return
LSRC的配置文件
# sysname LSRC # mpls lsr-id 3.3.3.9 # mpls lsp-trigger all # mpls ldp # ipv4-family # isis 1 network-entity 10.0000.0000.0003.00 # interface GigabitEthernet0/1/0 undo shutdown ip address 10.1.4.1 255.255.255.0 isis enable 1 mpls mpls ldp # interface GigabitEthernet0/1/1 undo shutdown ip address 10.1.2.2 255.255.255.0 isis enable 1 mpls mpls ldp # interface GigabitEthernet0/1/2 undo shutdown ip address 10.1.3.2 255.255.255.0 isis enable 1 mpls mpls ldp # interface LoopBack0 ip address 3.3.3.9 255.255.255.255 isis enable 1 # return
LSRD的配置文件
# sysname LSRD # mpls lsr-id 4.4.4.9 # mpls # mpls ldp # ipv4-family # isis 1 network-entity 10.0000.0000.0004.00 # interface GigabitEthernet0/1/0 undo shutdown ip address 10.1.4.2 255.255.255.0 isis enable 1 mpls mpls ldp # interface LoopBack0 ip address 4.4.4.9 255.255.255.255 isis enable 1 # return