ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

BFD 快速故障检测(eNSP 实战・静态路由联动篇)

BFD 快速故障检测(eNSP 实战・静态路由联动篇) 一、实验介绍实验目的理解 BFDBidirectional Forwarding Detection双向转发检测的工作原理与价值掌握 eNSP 上 BFD 会话的配置方法掌握静态路由绑定 BFD 实现毫秒级故障检测与路由快速切换通过对照实验直观感受 有 BFD 与无 BFD 的天壤之别。适用环境eNSP 模拟器路由器选型AR2220 / AR3260 均可VRP5 平台命令以华为 VRP5 为准网上常见的老式peer-ip/local-ip写法在 eNSP 上易报错本实验全部使用标准语法。二、实验拓扑与规划2.1 拓扑图为什么中间要加交换机因为 BFD 的价值恰恰体现在 本端接口仍 Up、但远端 / 中间链路已断 的场景。若两台路由器直连对端 shutdown 会连带本端接口也 down普通静态路由同样会删除就体现不出 BFD 的优势。加交换机后故障模拟在交换机侧断开R1 的接口保持 Up对照效果才能出来。2.2 地址规划表表格设备接口IP 地址掩码用途R1GE0/0/010.1.1.1255.255.255.252/30经交换机与 R2 互联R1LoopBack 01.1.1.1255.255.255.255/32本端业务地址ping 源SW1GE0/0/19 / GE0/0/20——二层透传默认 VLAN1无需配置R2GE0/0/010.1.1.2255.255.255.252/30经交换机与 R1 互联R2LoopBack 020.0.0.1255.255.255.0/24模拟分公司内网2.3 BFD 会话标识规划重点别配错表格设备会话名discriminator localdiscriminator remoteR1112R2121匹配规则R1 的local1必须等于 R2 的remote1R1 的remote2必须等于 R2 的local2。两端标识符不匹配BFD 会话永远起不来。三、BFD 原理速览1. 为什么需要 BFD静态路由是 静态 的它只会在直连接口 down时自动失效如果对端设备或中间链路故障、而本端接口还是 Up静态路由完全无感知流量照样发出去 →黑洞丢包OSPF/IS-IS 等协议的 Hello 检测通常是秒级如 10s/40s故障恢复太慢。2. BFD 怎么做到快两端建立 BFD 会话后周期性发送 BFD 报文毫秒级间隔连续丢失detect-multiplier个报文即判定故障立刻通知上层协议这里是静态路由快速撤销 / 切换路由检测时间 协商后的发送间隔 × 检测倍数。华为默认间隔 1000ms、倍数 3即默认约 3 秒把间隔配到 100ms 后检测时间约为100ms × 3 300ms这就是 毫秒级 的来源。四、实验步骤步骤 1搭建拓扑拖入2 台 AR2220 路由器 1 台 S5700 交换机连线R1 GE0/0/0 ↔ SW GE0/0/19SW GE0/0/20 ↔ R2 GE0/0/0全部启动设备等待指示灯由黄变绿AR 启动较慢请耐心。步骤 2基础配置接口 IPR1 配置shellsystem-view # 进入系统视图 sysname R1 # 修改设备名称方便区分 interface GigabitEthernet0/0/0 # 进入与R2互联的接口 ip address 10.1.1.1 255.255.255.252 # 配置互联IP掩码/30 undo shutdown # 确保接口开启eNSP默认开写上更规范 quit # 返回系统视图 interface LoopBack 0 # 创建回环接口模拟本端业务地址 ip address 1.1.1.1 255.255.255.255 # 环回地址用/32 quitR2 配置shellsystem-view sysname R2 interface GigabitEthernet0/0/0 ip address 10.1.1.2 255.255.255.252 undo shutdown quit interface LoopBack 0 # 用回环模拟分公司内网20.0.0.0/24 ip address 20.0.0.1 255.255.255.0 quit交换机 SW 无需任何配置二层交换机的端口默认都在 VLAN 1BFD 报文和业务报文都会原样透传。步骤 3配置 BFD 会话核心步骤关键点BFD 会话必须两端都配置只有一端配置是永远建立不起来的BFD 是 双向 检测协议。R1 配置 BFDshellbfd # 进入BFD视图同时全局使能BFD功能 quit # 退出BFD视图 # 创建BFD会话1绑定对端IP 10.1.1.2 本端出接口GE0/0/0单跳场景必须绑接口 bfd 1 bind peer-ip 10.1.1.2 interface GigabitEthernet0/0/0 discriminator local 1 # 本端标识符1对端remote必须1 discriminator remote 2 # 对端标识符2对端local必须2 min-tx-interval 100 # 最小发送间隔100ms min-rx-interval 100 # 最小接收间隔100ms detect-multiplier 3 # 检测倍数3检测时间100*3300ms commit # 提交配置BFD参数必须commit后才生效 quit # 返回系统视图R2 配置 BFDshellbfd quit bfd 1 bind peer-ip 10.1.1.1 interface GigabitEthernet0/0/0 discriminator local 2 # 与R1的remote2呼应 discriminator remote 1 # 与R1的local1呼应 min-tx-interval 100 min-rx-interval 100 detect-multiplier 3 commit quit逐条解析bfd进入 BFD 视图即完成全局使能bfd 1 bind peer-ip ... interface ...创建名为1的 BFD 会话。1可以是数字也可以是字符串后面静态路由里的bfd-session 1引用的就是这个名字必须一一对应discriminator local/remoteBFD 协商标识符两端必须严格匹配否则会话无法 Upmin-tx-interval/min-rx-interval发送 / 接收 BFD 报文的最小间隔毫秒。协商后实际发送间隔取两端较大值这里两端都是 100ms所以协商为 100msdetect-multiplier检测倍数连续丢多少个报文判故障commit最容易忘的命令。discriminator 等参数必须commit才会下发生效忘了它会话起不来。步骤 4静态路由绑定 BFDR1 配置关键到分公司 20.0.0.0/24 的路由shellip route-static 20.0.0.0 255.255.255.0 10.1.1.2 track bfd-session 1解析去往20.0.0.0/24下一跳10.1.1.2并绑定track bfd-session 1即刚才创建的 BFD 会话。绑定后这条路由的存活就由 BFD 说了算BFD 会话 Down → 路由立即从路由表删除BFD 恢复 Up → 路由自动回填。R2 配置回程路由保证双向能 ping 通shellip route-static 1.1.1.1 255.255.255.255 10.1.1.1 track bfd-session 1解析当 R1 用环回 1.1.1.1 作为源 ping 20.0.0.1 时R2 需要知道怎么回包这条去 1.1.1.1/32 的静态路由同样绑定 BFD形成双向联动步骤 5验证 BFD 会话与路由5.1 查看 BFD 会话状态R1、R2 都要看shelldisplay bfd session all预期看到State为Up示意输出shell-------------------------------------------------------------------------------- Local Remote PeerIpAddr State Type InterfaceName -------------------------------------------------------------------------------- 1 2 10.1.1.2 Up S_IP_IF GigabitEthernet0/0/0 -------------------------------------------------------------------------------- Total UP/DOWN Session Number : 1/0 -------------------------------------------------------------------------------- Local Remote PeerIpAddr State Type InterfaceName -------------------------------------------------------------------------------- 2 1 10.1.1.1 Up S_IP_IF GigabitEthernet0/0/0 -------------------------------------------------------------------------------- Total UP/DOWN Session Number : 1/05.2 查看 BFD 详细参数间隔、检测时间shelldisplay bfd session all verbose重点看Desired Min TX Interval、Required Min RX Interval、Detect Multiplier是否生效约 100ms / 100ms / 3。5.3 查看静态路由是否在路由表shelldisplay ip routing-table 20.0.0.0能看到一条Proto: Static的路由下一跳10.1.1.2。5.4 连通性测试shellping -a 1.1.1.1 20.0.0.1-a 1.1.1.1指定源地址顺便验证 R2 的回程路由应Reply from 20.0.0.1全部通。步骤 6故障演练本实验的精华强烈建议先做 6.1 对照实验再进入 6.2否则体会不到 BFD 的价值。6.1 对照实验不绑定 BFD 时远端故障 流量黑洞把 R1 的静态路由临时改回普通形式不绑 BFDshell# 先删除带BFD的路由再配置普通静态路由 undo ip route-static 20.0.0.0 255.255.255.0 10.1.1.2 track bfd-session ip route-static 20.0.0.0 255.255.255.0 10.1.1.2在R2上模拟故障shutdown 互联接口shellinterface GigabitEthernet0/0/0 shutdown quit回到R1观察shelldisplay ip routing-table 20.0.0.0 # 路由仍然存在R1接口还是Up ping -a 1.1.1.1 20.0.0.1 # 丢包流量黑洞结论R1 的接口明明是 Up 的它根本感知不到 R2 已经掉线数据照发 → 全部丢失。这就是普通静态路由的致命弱点。6.2 正式实验绑定 BFD 后毫秒级感知并撤销路由把 R1 路由改回绑定 BFDshellundo ip route-static 20.0.0.0 255.255.255.0 10.1.1.2 ip route-static 20.0.0.0 255.255.255.0 10.1.1.2 track bfd-session 1确认 BFD 会话已 Updisplay bfd session all。再次在SW上 shutdown 连 R2 的端口制造故障然后立刻回 R1shelldisplay bfd session all # 状态已从Up变为Down display ip routing-table 20.0.0.0 # 路由已被自动删除结论约 300ms 内BFD 检测到故障 → 通知静态路由模块 → 路由从路由表消失。整个过程无需人工干预这就是 毫秒感知、快速切换。步骤 7恢复验证在SW上恢复端口shellinterface GigabitEthernet0/0/2 undo shutdown quit回到R1shelldisplay bfd session all # BFD会话自动重新Up display ip routing-table 20.0.0.0 # 静态路由自动回填 ping -a 1.1.1.1 20.0.0.1 # 连通性恢复BFD 会话会自动重建、路由自动恢复全程零配置。五、实验结果汇总表格场景故障后 R1 接口状态路由表 20.0.0.0故障感知时间普通静态路由无 BFDUp无感知路由不消失流量黑洞丢包无法感知静态路由绑定 BFDUp路由秒级自动删除恢复后自动回填约 300ms100ms×3六、常见问题与排障表格现象原因解决办法ip route-static ... bfd-session报Too many parametersVRP 版本较新需用track bfd-session语法改成ip route-static ... track bfd-session 1display bfd session报Incomplete command命令需带参数用display bfd session all/all verbosedisplay bfd session all显示 Downdiscriminator 两端不匹配核对 R1/R2 的 local/remote 一一对应会话 Down忘记commitBFD 参数必须commit后生效会话 Down对端没配置 BFDBFD 必须两端都配置单端永远起不来路由不随 BFD 变化track bfd-session 名字与 BFD 会话名不一致检查bfd 1与track bfd-session 1的 1 是否一致ping 不通但会话 Up缺少回程路由R2 上配去往 1.1.1.1/32 的静态路由直连拓扑下对照不出效果对端 shutdown 会连带本端接口 down按本实验加交换机故障在交换机侧断开七、进阶延伸双链路主备快速切换单链路演示的是 撤销真正的高可用是主备两条链路 BFD 触发切换。在 R1-SW-R2 基础上加第二条链路R1 GE0/0/1 ↔ SW ↔ R2 GE0/0/1网段 10.1.2.0/30表格链路网段角色优先级R1-GE0/0/0 ↔ SW ↔ R2-GE0/0/010.1.1.0/30主默认 60绑定 BFDR1-GE0/0/1 ↔ SW ↔ R2-GE0/0/110.1.2.0/30备80值越大越不优先R1 侧关键配置R2 对称配置即可shellinterface GigabitEthernet0/0/1 ip address 10.1.2.1 255.255.255.252 undo shutdown quit bfd 2 bind peer-ip 10.1.2.2 interface GigabitEthernet0/0/1 discriminator local 3 discriminator remote 4 commit quit # 主路由绑定BFD默认优先级60 ip route-static 20.0.0.0 255.255.255.0 10.1.1.2 track bfd-session 1 # 备路由不绑BFD优先级80更不优先 ip route-static 20.0.0.0 255.255.255.0 10.1.2.2 preference 80主链路故障时SW 上断开主链路端口BFD 会话 Down → 主路由删除 → 备份路由优先级 80自动接管 → 业务秒级切换主链路恢复后自动切回。八、总结BFD 是解决 静态路由对远端故障无感知 的利器核心是毫秒级双向检测 快速通知路由模块配置要点两端都要配、discriminator 严格匹配、参数记得commit、静态路由用track bfd-session 会话名绑定新版 VRP5 语法演示要点故障点要放在能让 本端接口保持 Up 的位置如经交换机断开中间链路否则体现不出 BFD 相对普通静态路由的优势检测快慢由 发送间隔 × 检测倍数 决定默认约 3 秒配成 100ms×3 后约 300ms。
返回列表