学习精彩网络技术老师:华为HCIA和HCIP数通eNSP实战视频课
点击学习:华为、华三、锐捷、WLAN、IPv6全套视频课程
需要增强IPv6网络可靠性时,利用IPv6静态路由绑定BFD会话,可以快速检测链路故障,提高路由的收敛速度。
组网需求
如图1所示:
- RouterA通过SwitchC和RouterB相连。
- 要求RouterA可以与其他Router和外部网络进行正常通信。
- 利用BFD检测RouterA和RouterB之间的链路。
图1 配置BFD for IPv6静态路由组网图
由于网络拓扑比较简单,所以仅仅配置静态缺省路由就可以正常通信。另外,为缺省静态路由绑定BFD会话,利用BFD检测链路故障,可以为静态路由提供保障机制。
配置思路
采用如下思路配置BFD for IPv6静态路由:
在RouterA和RouterB上配置BFD会话,检测RouterA和RouterB之间的链路。
配置RouterA到外部的缺省路由并绑定BFD会话。
数据准备
为完成此配置例,需要准备如下数据:
BFD检测的对端IPv6地址。
BFD会话的本地标志符和远端标识符。
BFD控制报文的最小发送间隔、最小接收间隔、本地检测倍数等都使用缺省值。
操作步骤
- 配置各接口IPv6地址(略)
- 配置RouterA和RouterB之间的BFD会话
# 在RouterA上配置与RouterB之间的BFD Session。
<RouterA> system-view
[RouterA] bfd
[RouterA-bfd] quit
[RouterA] bfd aa bind peer-ipv6 2001:db8:1::2
[RouterA-bfd-session-aa] discriminator local 10
[RouterA-bfd-session-aa] discriminator remote 20
[RouterA-bfd-session-aa] commit
[RouterA-bfd-session-aa] quit
# 在RouterB上配置与RouterA之间的BFD Session。
<RouterB> system-view
[RouterB] bfd
[RouterB-bfd] quit
[RouterB] bfd bb bind peer-ipv6 2001:db8:1::1
[RouterB-bfd-session-bb] discriminator local 20
[RouterB-bfd-session-bb] discriminator remote 10
[RouterB-bfd-session-bb] commit
[RouterB-bfd-session-bb] quit
- 配置静态缺省路由并绑定BFD会话
# 在RouterA上配置到外部网络的静态缺省路由,并绑定BFD会话aa。
[RouterA] ipv6 route-static 0::0 0 2001:db8:1::2 track bfd-session aa
- 验证配置结果
# 配置完成后,在RouterA和RouterB上执行display bfd session all命令,可以看到BFD会话已经建立,且状态为Up。在系统视图下执行display current-configuration | include bfd命令,可以看到静态路由已经绑定BFD会话。
以RouterA上的显示为例。
[RouterA] display bfd session all
--------------------------------------------------------------------------------
Local Remote PeerIpAddr State Type InterfaceName
--------------------------------------------------------------------------------
10 20 2001:db8:1::2
Up S_IP_PEER -
--------------------------------------------------------------------------------
Total UP/DOWN Session Number : 1/0
[RouterA] display current-configuration | include bfd
bfd
bfd aa bind peer-ipv6 2001:db8:1::2
ipv6 route-static :: 0 2001:db8:1::2 track bfd-session aa
# 在RouterA上查看IP路由表,静态路由存在于路由表中。
[RouterA] display ipv6 routing-table
Routing Table : Public
Destinations : 5 Routes : 5
Destination : :: PrefixLength : 0
NextHop : 2001:db8:1::2 Preference : 60
Cost : 0 Protocol : Static
RelayNextHop : :: TunnelID : 0x0
Interface : GigabitEthernet 1/0/0 Flags : RD
Destination : ::1 PrefixLength : 128
NextHop : ::1 Preference : 0
Cost : 0 Protocol : Direct
RelayNextHop : :: TunnelID : 0x0
Interface : InLoopBack0 Flags : D
Destination : 2001:db8:1:: PrefixLength : 64
NextHop : 2001:db8:1::1 Preference : 0
Cost : 0 Protocol : Direct
RelayNextHop : :: TunnelID : 0x0
Interface : GigabitEthernet 1/0/0 Flags : D
Destination : 2001:db8:1::1 PrefixLength : 128
NextHop : ::1 Preference : 0
Cost : 0 Protocol : Direct
RelayNextHop : :: TunnelID : 0x0
Interface : GigabitEthernet 1/0/0 Flags : D
Destination : FE80:: PrefixLength : 10
NextHop : :: Preference : 0
Cost : 0 Protocol : Direct
RelayNextHop : :: TunnelID : 0x0
Interface : NULL0 Flags : D
# 对RouterB的接口GE1/0/0执行shutdown命令模拟链路故障。
[RouterB] interface GigabitEthernet 1/0/0
[RouterB-GigabitEthernet1/0/0] shutdown
# 查看RouterA的路由表,发现静态缺省路由0::0/0也不存在了。因为静态缺省路由绑定了BFD会话,当BFD检测到故障后,就会迅速通知所绑定的静态路由不可用。如果未配置静态路由绑定BFD会话,静态缺省路由0::0/0不会从路由表删除,可能会造成流量损失。
[RouterA] display ipv6 routing-table
Routing Table : Public
Destinations : 1 Routes : 1
Destination : ::1 PrefixLength : 128
NextHop : ::1 Preference : 0
Cost : 0 Protocol : Direct
RelayNextHop : :: TunnelID : 0x0
Interface : InLoopBack0 Flags : D
配置文件
RouterA的配置文件
#
sysname RouterA
#
ipv6
#
bfd
#
interface GigabitEthernet 1/0/0
undo shutdown
ipv6 enable
ipv6 address 2001:db8:1::1/64
#
bfd aa bind peer-ipv6 2001:db8:1::2
discriminator local 10
discriminator remote 20
commit
#
ipv6 route-static :: 0 2001:db8:1::2 track bfd-session aa
#
return
RouterB的配置文件
#
sysname RouterB
#
ipv6
#
bfd
#
interface GigabitEthernet 1/0/0
undo shutdown
shutdown
ipv6 enable
ipv6 address 2001:db8:1::2/64
#
interface Pos2/0/0
link-protocol ppp
ipv6 enable
ipv6 address 2001:db8:2::1/64
#
bfd bb bind peer-ipv6 2001:db8:1::1
discriminator local 20
discriminator remote 10
commit
#
return