ensp 实验 – bfd 与静态路由联动配置
BFD 双向转发侦测,是一种轻量级、快速的网络链路检测协议。通常用来检测两台网络设备的通信状态。独立于具体的传输协议(比如支持 ip, mpls, 以太网), 可与其他路由协议比如 ospf, bgp, is-is, 静态路由进行联动,实现故障的快速切换。
BFD 的工作过程和原理
- 两台设备建立会话,可以通过 UDP (3784和3785)建立会话。同时可以设置发送间隔和超时时间。
- 两台设备建立连接后,进行持续探测,简单点说就是 周期的发送报文(类似心跳)
- 触发更新,在约定的时间未收到回应,判定故障,触发其他协议进行更新,比如静态路由协议进行切换,或者通知ospf 从新计算路由。
通过 BFD 实现静态路由备用链路进行切换
拓扑图中交换机不用配置。首先通过配置静态路由,让AR1 可以 通过 环回地址(1.1.1.1) ping 通 pc1 (2.0.0.4)的地。这里配置的结果是 1.1.1.1 ping 2.0.0.1 ,去的路径是 AR1 -> LSW1 -> AR3 -> LSW2 ->PC1。回程的路径是 PC1->LSW2->AR4->AR1。简单的说去路由走上面,回来的路走下面。

具体的配置(基础配置保证可以ping通)
R1 -- 基础配置
system-view
sysname R1
int loopback 100
ip address 1.1.1.1 24
int g0/0/0
ip address 13.0.0.1 24
int g0/0/1
ip address 14.0.0.1 24
quit
ip route-static 0.0.0.0 0 13.0.0.3 preference 50
ip route-static 0.0.0.0 0 14.0.0.4 preference 100
R3 -- 基础配置
system-view
sysname R3
int g0/0/0
ip address 13.0.0.3 24
int g0/0/1
ip address 2.0.0.3 24
quit
ip route-static 0.0.0.0 0 12.0.0.1 preference 60
R4 -- 基础配置
system-view
sysname R3
int g0/0/0
ip address 14.0.0.4 24
int g0/0/1
ip address 2.0.0.4 24
quit
ip route-static 0.0.0.0 0 14.0.0.1 preference 60
bfd 配置
# R1 -- bfd 配置
bfd
quit
bfd R1toR3 bind peer-ip 13.0.0.3 source-ip 13.0.0.1
discriminator local 1
discriminator remote 2
commit
quit
ip route-static 0.0.0.0 0 13.0.0.3 preference 50 track bfd-session r1tor3
# R3 -- bfd 配置
bfd
quit
bfd R1toR3 bind peer-ip 13.0.0.1 source-ip 13.0.0.3
discriminator local 2
discriminator remote 1
commit
quit
bfd 配置需要注意的地方
- bfd 后面无需加enble, 表示已经启用
- 本地和远程的标识符取值范围是 1到8191
- 可以跨网段,进行会话的绑定。前提是网络要通
- min-tx-interval 100 ; 100 毫秒发送一次
- min-rx-interval 100 ; 期望 100号码接受一次
- detect-multiplier 3 ; 连续丢失 3 个 BFD 报文后判定故障。
如何检测
首先在 AR1 上 ping -a 1.1.1.1 2.0.0.1
在 AR4 的g0/0/0 抓包查看结果

可以看到全部都是回来的包,符合预期。ping 的时候去的包走上面的链路,回来的包走下面的链路。
在AR1 上查看路由表
[R1]display ip routing-table protocol static
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Public routing table : Static
Destinations : 1 Routes : 2 Configured Routes : 2
Static routing table status : <Active>
Destinations : 1 Routes : 1
Destination/Mask Proto Pre Cost Flags NextHop Interface
0.0.0.0/0 Static 50 0 RD 13.0.0.3 GigabitEthernet
0/0/0
Static routing table status : <Inactive>
Destinations : 1 Routes : 1
Destination/Mask Proto Pre Cost Flags NextHop Interface
0.0.0.0/0 Static 100 0 R 14.0.0.4 GigabitEthernet
0/0/1
可以看到路由器走的上面的路, 到 13.0.0.3。
通过关闭 R3的 g0/0/0 ,看结果。
# R3
int g0/0/0
shutdown
再次查看路由表已经切换到 14.0.0.4
[R1]display ip routing-table protocol static
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Public routing table : Static
Destinations : 1 Routes : 2 Configured Routes : 2
Static routing table status : <Active>
Destinations : 1 Routes : 1
Destination/Mask Proto Pre Cost Flags NextHop Interface
0.0.0.0/0 Static 100 0 RD 14.0.0.4 GigabitEthernet
0/0/1
Static routing table status : <Inactive>
Destinations : 1 Routes : 1
Destination/Mask Proto Pre Cost Flags NextHop Interface
0.0.0.0/0 Static 50 0 R 13.0.0.3 GigabitEthernet
0/0/0
注意:在模拟器上做实验可能要等几秒钟才能看到结果。
同时在 AR4 的G0/0/0上可以看大来去的数据包。
