一、BFD原理
1.1 BFD技术简介
一种全网统一、检测迅速、监控网络中链路或者IP路由的双向转发连通状况,并未上层应用提供服务的技术。
1.2 BFD会话建立方式和监测机制
●BFD的标识符:
(1)BFD建立会话存在标识符的概念,类似于OSPF建立邻居需要一个路由器的Router ID。
(2)标识符分为本地标识符和远端标识符,本地标识符用于表示本端设备,远端标识符用 于表示对端设备。
(3)静态建立BFD会话是指通过命令行手工配置BFD会话参数,包括配置本地标识符和远 端标识符等,然后手工下发BFD会话建立请求。
(4)动态建立BFD会话是指由应用程序触发创建BFD会话,当应用程序动态触发创建BFD 会话时,系统分配属于动态会话标识符区域的值作为BFD会话的本地标识符。然后向 对端发送Remote Discriminator的值为0的BFD控制报文,进行会话协商。当BFD会 话的一端收到Remote Discriminator的值为0的BFD控制报文时,判断该报文是否与 本地BFD会话匹配,如果匹配,则学习接收到的BFD报文中Local Discriminator的值,获取远端标识符。
●BFD的检测机制:
(1)BFD的检测机制是两个系统建立BFD会话,并沿它们之间的路径周期性发送BFD控制 报文,如果一方在既定的时间内没有收到BFD控制报文,则认为路径上发生了故障,BFD控制报文是UDP报文,端口号3784。
(2)BFD提供异步检测模式。在这种模式下,系统之间相互周期性地发送BFD控制报文, 如果某个系统连续3个报文都没有接收到,就认为此BFD会话的状态是Down。
1.3 BFD会话建立过程
●RTA和RTB各自启动BFD状态机,初始状态为Down,发送状态为Down的BFD报文。对于 静态配置BFD会话,报文中的Remote Discriminator的值是用户指定的;对于动态创建
●BFD会话,Remote Discriminator的值是0。
●RTB收到状态为Down的BFD报文后,状态切换至Init,并发送状态为Init的BFD报文。
●RTB本地BFD状态为Init后,不再处理接收到的状态为Down的报文。
●RTB收到状态为Init的BFD报文后,本地状态切换至Up。
●RTA的BFD状态变化同RTB。
●邻居会话建立成功后,RTA和RTB周期性的向对方发送状态为Up的控制报文。
1.4 BFD工作流程
●BGP邻居建立àBFD会话建立。
●链路故障àBFD会话downàBGP邻居关系中断。
●OSPF的BFD检测故障发现处理流程。
(1)OSPF通过自己的Hello机制发现邻居并建立连接。
(2)OSPF在建立了邻居关系后,将邻居信息(包括目的地址和源地址等)通告给BFD。
(3)BFD根据收到的邻居信息建立会话。
(4)被检测链路出现故障。
(5)BFD快速发送BFD探测报文检测到链路故障,如果在规定时间内无响应,BFD会话状 态变为Down。
(6)BFD通知本地OSPF进程BFD邻居不可达。
(7)本地OSPF进程中断OSPF邻居关系
1.5 联动功能简介
●监测模块负责对链路状态、网络性能等进行监测,并将探测结果通知给Track模块 。
●Track模块收到监测模块的探测结果后,及时改变Track项的状态,并通知应用模块。
●应用模块根据Track项的状态,进行相应的处理,从而实现联动。
1.6 BFD与BGP联动场景
场景描述:
●两台路由器经过中间网络通道建立BGP的邻居关系;
●已知RA、RA都支持BFD功能,要求使用BGP与BFD联动技术,采用BFD控制报文方式实现当RA或RB与中间网络设备以及中间网络通道内部链路出现故障时,BFD能够快速感知并通告BGP协议。
二、测试案例
2.1测试用例
(1)测试目的验证BFD与BGP的联动
(2)测试说明DUT的两个端口分别与两台二层交换机连接,通过二层交换机与测试仪两个端口连接并通信
(3)测试步骤
●按图连接好拓扑
●DUT的G0/0/1与测试仪P1端口建立IBGP邻居,配置BFD;
●DUT的G0/0/2与测试仪P2端口建立IBGP邻居,不配置BFD;
●测试仪P1端口配置BGP协议和BFD协议,并将BGP与BFD关联;
●测试仪P2端口配置BGP协议;
●测试仪上开启全部协议,查看DUT上BGP邻居和BFD会话,有预期结果1;
●SW1和SW2上同时down掉G0/0/1接口,查看DUT和测试仪上的BGP邻居和BFD会话,有预期结果2.
(4)预期结果
●预期结果1:两个BGP邻居均成功建立,DUT与P1端口成功建立BFD会话
●预期结果2:有BFD会话的BGP邻居马上断开,每月会话的BGP邻居需要等待一段时间后才会断开。
2.2 DUT配置
三、测试步骤
3.1预约测试资源
预约测试资源:添加机箱、预约端口
3.2 创建接口
P1/P2端口下,创建IPv4接口
3.3 修改接口参数
修改接口IPv4地址和IPv4网关地址;点击“所有接口发送ARP/ND”学习ARP
3.4 配置BGP协议
“2-3层协议”中选择BGP,点击菜单栏的“添加BGP”,选择P1和P2端口
3.5关联接口,调整协议参数
(1)将创建的IPv4接口与BGP协议关联,根据实际情况调整BGP协议参数
(2)P1端口下的BGP协议使能BFD;
3.6配置BFD协议
(1)“2-3层协议”中选择BFD,点击菜单栏的“添加BFD”,选择P1端口
(2)将IPv4接口与BFD协议关联
3.7启动协议
点击菜单栏的“全部开始”,启动BGP和BFD协议;
3.8查看测试仪上协议状态
●BFD协议状态变为“running”;
●P1/P2端口的BGP协议状态均变”Established”.
3.9查看统计结果
●查看BGP BFD Session Result
●IPv4源地址为测试仪接口IP,IPv4目的地址为DUT接口地址,BFD会话状态为UP。
3.10查看DUT 信息
通过dis bgp peer查看BGP邻居
通过dis bgp bfd session all查看BFD会话
3.11断开测试仪和DUT之间连接
SW1和SW2的G0/0/1口分别使用shutdown命令down端口
3.12观察测试仪和DUT的BGP状态变化
测试仪上P1端口的BGP状态因为存在BFD会话很快变为Idle,P2端口的状态依旧是Established
DUT上10.1.1.2的邻居状态立刻变为Idle,20.1.1.2的邻居状态依旧是Established,需要等待一定时间才会变为Idle