今天学习的是BFD(Bidirectional Forwarding Detection,双向转发检测),我们在学习的过程中应该也能感觉到,例如ospf,vrrp等协议中发生链路故障时反应速度很慢,而BFD的出现很好的改善了这一问题,接下来笔者来介绍下BFD基础。
1.BFD特点:
(1)对相邻转发引擎之间的通道提供轻负荷、快速故障检测。
(2)用单一的机制对任何介质、任何协议层进行实时检测。
(3)建立BFD后的两个系统,会建立一个BFD通道,周期性发送BFD报文,规定内未收到对端报文,则认为对端发生故障。
2.BFD作用
用于快速检测,监控网络中链路或者IP路由的转发连通状态。
3.BFD报文部分解析
- Sta:BFD本地状态。
- Detect Mult:检测超时倍数,用于检测方计算检测超时时间。
- My Discriminator:BFD会话连接本地标识符(Local Discriminator) 。发送系统产生的一个唯一的、非0鉴别值,用来区分一个系统的多个BFD会话。
- Your Discriminator:BFD会话连接远端标识符(Remote Discriminator) 。从远端系统接收到的鉴别值,这个域直接返回接收到的“My Discriminator”,如果不知道这个值就返回0。
- Desired Min TX Interval:本地支持的最小BFD报文发送间隔。
- Required Min RX Interval:本地支持的最小BFD报文接收间隔。
- Required Min Echo RX Interval:本地支持的最小Echo报文接收间隔,单位为微秒。
4.BFD建立过程
(1)BFD会话(BFD Session)分类
<1>动态回话
动态建立BFD会话的本地标识符由触发创建BFD会话的系统动态分配,远端标识符从收到对端BFD消息的Local Discriminator的值学习而来。
<2>静态会话
静态建立BFD会话是指通过命令行手工配置BFD会话参数,可选择配置包括配置本地标识符和远端标识符等,然后手工下发BFD会话建立请求。
(2)BFD会话状态
分为Down,Init,Up。
三种会话状态会相互转变:
例如:R1 和R2是两个路由器,初始状态都为Down状态,以R1为例,发送报文中Sta中为Down,对方由Down→Init,R1收到Down,Down→Init;
R1发送Init给R2,R2从Init→Up,R1收到R2发的Init,R1从Init→Up。
5.BFD检测模式
分为异步模式和查询模式:
异步模式:系统之间相互周期性地发送BFD控制包,如果某个系统在检测时间内没有收到对端发来的BFD控制报文,就宣布会话为Down。
查询模式:在需要验证连接性的情况下,系统连续发送多个BFD控制包,如果在检测时间内没有收到返回的报文就宣布会话为Down。
7.联动配置命令
(1)与vrrp联动命令展示
//上行链路bfd配置
#
bfd 13 bind peer-ip 10.1.34.3 source-ip 10.1.14.1 auto//在主路由器配置
commit
#
#
bfd 13 bind peer-ip 10.1.14.1 source-ip 10.1.34.3 auto//上行接口的ip
commit//使能BFD
#
#
interface Vlanif10
vrrp vrid 1 track bfd-session session-name 13 reduced 30//在主路由器上vrrp联动,上行链路断,则下降优先级30
#
//vrrp中间链路bfd配置
#
bfd 2 bind peer-ip 192.168.2.20 source-ip 192.168.2.10 auto//主
commit
#
#
bfd 2 bind peer-ip 192.168.2.10 source-ip 192.168.2.20 auto//备
commit
#
#
interface Vlanif20
vrrp vrid 2 track bfd-session session-name 2 increased 30//在备路由器上联动,断了则上升优先级
#
//vrrp也可以不写源地址写出接口(仅限于直连)
#
bfd 1 bind peer-ip 192.168.1.20 interface Vlanif10
discriminator local 1
discriminator remote 1
min-tx-interval 100
min-rx-interval 100
commit
#
(2)与ospf联动命令展示
#
ospf 1 router-id 1.1.1.1
bfd all-interfaces enable //bfd使能,每一个邻居都要配置
aera 0.0.0.0
bfd all-interfaces min-tx-interval 100 min-rx-interval 100 detect-multiplier 5
//发送时间间隔 倍数,可写可不写
如有需要的读者,笔者可继续更新一些BFD相关实验拓扑,欢迎读者留言。