配置公网IPv6 FRR后,当主链路出现故障时,流量可以快速切换到备份链路上。
组网需求
随着网络的不断发展,语音、在线视频和金融等业务对实时性的要求越来越高。通常情况下,在网络部署时会使用主备链路来保障这些业务的稳定性。但是,在传统转发模式下,链路切换依赖于路由的收敛,所以切换速度比较慢,不能满足业务要求。IPv6 FRR功能正好可以解决上述问题。
如图1所示,网络被部署为主备备份链路,从RouterT到2001:db8:2::2/128这个网络有两条链路。用户希望使链路B作为链路A的备份,当链路A出现故障时,流量可以快速切换到链路B上。这时,通过在RouterT上配置IPv6 FRR功能即可满足上述要求。

图1 配置公网IPv6 FRR功能组网图
配置思路
采用如下的思路配置公网IPv6 FRR功能:
在各路由器上配置动态路由协议,使各路由器之间可以相互学习路由,本例选择OSPFv3。
在RouterT的接口GE2/0/0和RouterC的接口GE1/0/0上配置较大的Cost值(相对于RouterT的接口GE1/0/0和RouterC的接口GE2/0/0),使OSPFv3优选链路A。
在RouterT上配置Route-Policy,配置备份下一跳和备份出接口,使能公网IPv6 FRR功能,使链路B为链路A的备份。
数据准备
为完成此配置例,需准备如下的数据:
RouterT、RouterA、RouterB和RouterC的router ID分别为1.1.1.1、2.2.2.2、3.3.3.3和4.4.4.4。
RouterT的接口GE2/0/0和RouterC的接口GE1/0/0的Cost值100。
配置Route-Policy名称和节点号分别为ipv6_frr_rp和10,if-match子句所使用的匹配条件是IPv6地址前缀列表,名称是frr1。
Route-Policy里设置的到达目的网络2001:db8:2::2/128的路由的备份下一跳为2001:db8:2001::2,备份出接口为GE2/0/0。
操作步骤
1. 配置各接口的IPv6地址
参考图1,配置各接口的IPv6地址,具体配置请参考后面的配置文件。
2. 在RouterT、RouterA、RouterB和RouterC上配置OSPFv3基本功能
# 配置RouterT。
[RouterT] ospfv3 1
[RouterT-ospfv3-1] router-id 1.1.1.1
[RouterT-ospfv3-1] quit
[RouterT] interface GigabitEthernet 1/0/0
[RouterT-GigabitEthernet1/0/0] ospfv3 1 area 0
[RouterT-GigabitEthernet1/0/0] quit
[RouterT] interface GigabitEthernet 2/0/0
[RouterT-GigabitEthernet2/0/0] ospfv3 1 area 0
[RouterT-GigabitEthernet2/0/0] quit
# 配置RouterA。
[RouterA] ospfv3 1
[RouterA-ospfv3-1] router-id 2.2.2.2
[RouterA-ospfv3-1] quit
[RouterA] interface GigabitEthernet 1/0/0
[RouterA-GigabitEthernet1/0/0] ospfv3 1 area 0
[RouterA-GigabitEthernet1/0/0] quit
[RouterA] interface GigabitEthernet 2/0/0
[RouterA-GigabitEthernet2/0/0] ospfv3 1 area 0
[RouterA-GigabitEthernet2/0/0] quit
# 配置RouterB。
[RouterB] ospfv3 1
[RouterB-ospfv3-1] router-id 3.3.3.3
[RouterB-ospfv3-1] quit
[RouterB] interface GigabitEthernet 1/0/0
[RouterB-GigabitEthernet1/0/0] ospfv3 1 area 0
[RouterB-GigabitEthernet1/0/0] quit
[RouterB] interface GigabitEthernet 2/0/0
[RouterB-GigabitEthernet2/0/0] ospfv3 1 area 0
[RouterB-GigabitEthernet2/0/0] quit
# 配置RouterC。
[RouterC] ospfv3 1
[RouterC-ospfv3-1] router-id 3.3.3.3
[RouterC-ospfv3-1] quit
[RouterC] interface GigabitEthernet 1/0/0
[RouterC-GigabitEthernet1/0/0] ospfv3 1 area 0
[RouterC-GigabitEthernet1/0/0] quit
[RouterC] interface GigabitEthernet 2/0/0
[RouterC-GigabitEthernet2/0/0] ospfv3 1 area 0
[RouterC-GigabitEthernet2/0/0] quit
[RouterC] interface LoopBack 1
[RouterC-LoopBack1] ospfv3 1 area 0
[RouterC-LoopBack1] quit
3. 配置OSPFv3接口的Cost值
# 在RouterT的GigabitEthernet2/0/0接口上配置Cost值,使OSPFv3优选链路A。
[RouterT] interface gigabitethernet 2/0/0
[RouterT-GigabitEthernet2/0/0] ospfv3 cost 100
[RouterT-GigabitEthernet2/0/0] quit
# 在RouterC的GigabitEthernet1/0/0接口上配置较大的Cost值,使OSPFv3优选链路A。
[RouterC] interface gigabitethernet 1/0/0
[RouterC-GigabitEthernet1/0/0] ospfv3 cost 100
[RouterC-GigabitEthernet1/0/0] quit
RouterT的GigabitEthernet1/0/0接口和RouterC的GigabitEthernet2/0/0接口使用缺省开销,所以OSPFv3优选链路A。
4. 配置Route-Policy
# 在RouterT上配置Route-Policy,配置备份下一跳和备份出接口。同时配置if-match项,限制应用范围。
[RouterT] ip ipv6-prefix frr1 permit 2001:db8:2::2 128
[RouterT] route-policy ipv6_frr_rp permit node 10
[RouterT-route-policy] if-match ipv6 address prefix-list frr1
[RouterT-route-policy] apply ipv6 backup-nexthop 2001:db8:2001::2
[RouterT-route-policy] apply ipv6 backup-interface GigabitEthernet2/0/0
[RouterT-route-policy] quit
5. 使能公网IPv6 FRR功能
[RouterT] ipv6 frr route-policy ipv6_frr_rp
# 在RouterT上查看备份出接口和备份下一跳信息。
[RouterT] display ipv6 routing-table 2001:db8:2::2 verbose
Routing Table :
Summary Count : 1
Destination : 2001:db8:2::2 PrefixLength : 128
NextHop : FE80::2E0:52FF:FE10:8100 Preference : 10
Neighbour : 202:202:: ProcessID : 1
Label : NULL Protocol : OSPFv3
State : Active Adv Cost : 2
Entry ID : 267337828 EntryFlags : 0x80002100
Reference Cnt: 2 Tag : 1
Priority : medium Age : 2286sec
IndirectID : 0x0
RelayNextHop : :: TunnelID : 0x0
Interface : GigabitEthernet1/0/0 Flags : D
BkNextHop : 2001:db8:2001::2 BkInterface : GigabitEthernet2/0/0
BkLabel : NULL BkTunnelID : 0x0
BkPETunnelID : 0x0 BkIndirectID : 0x0
6. 当不需要IPv6 FRR功能时,配置undo ipv6 frr命令进行去使能操作
[RouterT] undo ipv6 frr
# IPv6 FRR去使能后,查看备份出接口和备份下一跳的信息。
[RouterT] display ipv6 routing-table 2001:db8:2::2 verbose
Routing Table :
Summary Count : 1
Destination : 2001:db8:2::2 PrefixLength : 128
NextHop : FE80::2E0:52FF:FE10:8100 Preference : 10
Neighbour : 202:202:: ProcessID : 1
Label : NULL Protocol : OSPFv3
State : Active Adv Cost : 2
Entry ID : 267337828 EntryFlags : 0x80002100
Reference Cnt: 2 Tag : 1
Priority : medium Age : 3sec
IndirectID : 0x0
RelayNextHop : :: TunnelID : 0x0
Interface : GigabitEthernet1/0/0 Flags : D
配置文件
RouterT的配置文件
#
sysname RouterT
#
ipv6
#
ipv6 frr route-policy ipv6_frr_rp
#
ospfv3 1
router-id 1.1.1.1
#
interface GigabitEthernet1/0/0
undo shutdown
ipv6 enable
ipv6 address 2001:db8:2000::1/64
ospfv3 1 area 0.0.0.0
#
interface GigabitEthernet2/0/0
undo shutdown
ipv6 enable
ipv6 address 2001:db8:2001::1/64
ospfv3 1 area 0.0.0.0
ospfv3 cost 100
#
route-policy ipv6_frr_rp permit node 10
if-match ipv6 address prefix-list frr1
apply ipv6 backup-nexthop 2001:db8:2001::2
apply ipv6 backup-interface GigabitEthernet2/0/0
#
ip ipv6-prefix frr1 index 10 permit 2001:db8:2::2 128
#
return
RouterA的配置文件
#
sysname RouterA
#
ipv6
#
ospfv3 1
router-id 2.2.2.2
#
interface GigabitEthernet1/0/0
undo shutdown
ipv6 enable
ipv6 address 2001:db8:2000::2/64
ospfv3 1 area 0.0.0.0
#
interface GigabitEthernet2/0/0
undo shutdown
ipv6 enable
ipv6 address 2001:db8:2002::1/64
ospfv3 1 area 0.0.0.0
#
return
RouterB的配置文件
#
sysname RouterB
#
ipv6
#
ospfv3 1
router-id 3.3.3.3
#
interface GigabitEthernet1/0/0
undo shutdown
ipv6 enable
ipv6 address 2001:db8:2003::1/64
ospfv3 1 area 0.0.0.0
#
interface GigabitEthernet2/0/0
undo shutdown
ipv6 enable
ipv6 address 2001:db8:2001::2/64
ospfv3 1 area 0.0.0.0
#
return
RouterC的配置文件
#
sysname RouterC
#
ipv6
#
ospfv3 1
router-id 4.4.4.4
#
interface GigabitEthernet1/0/0
undo shutdown
ipv6 enable
ipv6 address 2001:db8:2003::2/64
ospfv3 1 area 0.0.0.0
ospfv3 cost 100
#
interface GigabitEthernet2/0/0
undo shutdown
ipv6 enable
ipv6 address 2001:db8:2002::2/64
ospfv3 1 area 0.0.0.0
#
interface LoopBack1
ipv6 enable
ipv6 address 2001:db8:2::2/128
ospfv3 1 area 0.0.0.0
#
return