神仙眷侣走江湖——OSPF与BFD联动后BFD Session DOWN问题排查技巧
某日,因特奈特王朝天子一袭圣旨昭告天下:各大IP门派需安装号称“神器”的路由器,由朝廷统一管理维护,以便加强对各门派的管理。各派掌门平日深感因特奈特天子之皇恩浩荡,纷纷群起呼应。
按照王朝之规划,东方大派“华三派”将与西方大派“哈尼派”等数大门派使用OSPF协议对接。华三派果断使用江湖人称“琉琉”的SR6602-X路由器。“琉琉”性能出众,稳定性强,曾获众江湖前辈的交口称赞。
网络既成,OSPF协议得以稳定运行。但天有不测风云,数月后,东方大陆出现了一场规模不大的地震,却偏偏将“琉琉”与“哈尼派”设备连接的光纤震断了!这次故障导致“华三派”与“哈尼派”之间的通信中断了数十秒之久,造成了严重的损失。
这场意外使“华三派”决定拿出自身的看家本领:BFD。OSPF与BFD号称一对“神仙眷侣”,在江湖中相伴相随。使用OSPF与BFD联动后,链路再次中断时,业务可迅速切换至其它链路。
由于“哈尼派”设备无法支持BFD功能,所以“琉琉”配置了BFD ECHO方式。负责配置的是“华三派”资深工程师小Z。小Z混迹江湖多年,个人问题仍然没有解决,十分倾慕OSPF和BFD的不离不弃。但此次配置完成后,使用display bfd sesion命令查看,却发现状态为DOWN:
[SR6602-X]display bfd session
Total session number: 1 Up session number: 0 Init mode: Active
IPv4 session working under Echo mode
LD SourceAddr DestAddr State Holdtime Interface
4099 10.0.0.1 10.0.0.2 Down / GE0/0/1
OSPF和BFD居然分开了!小Z是个重情重义之人,决定帮二者团圆:
1、首先排查“琉琉”BFD配置是否正确。
(1)“琉琉”需在G0/0/1口使能OSPF BFD功能,检查后,发现配置正确无误:
#
interface GigabitEthernet0/0/1
……
ospf bfd enable echo //此命令需要加echo参数
#
(2)在“琉琉”上需配置BFD ECHO报文源地址,检查后,正确无误:
#
interface LoopBack0
ip address 1.1.1.1 255.255.255.255
#
bfd echo-source-ip 1.1.1.1
#
注:建议将BFD ECHO报文的源地址配置成“琉琉”的Loopback地址。
2、在“琉琉”上使用debug命令查看BFD报文的收发情况:
#
acl number 3000
rule 0 permit ip source 1.1.1.1 0 destination 10.0.0.1 0 //匹配BFD ECHO报文的源地址、目的地址
#
<SR6602>terminal debugging
Info: Current terminal debugging is on.
<SR6602>terminal monitor
Info: Current terminal monitor is on.
<SR6602>debugging ip packet acl 3000
此时“琉琉”弹出大量DEBUG信息,以下DEBUG可见其能够发出BFD报文,也能够收到对端路由器回复的BFD报文:
*Jan 26 00:20:59:860 2014 SR6602-X DPIPFWD/7/debug_case:
Sending, interface = GigabitEthernet0/0/1, version = 4, headlen = 20, tos = 192,
pktlen = 46, pktid = 1243, offset = 0, ttl = 255, protocol = 17,
checksum = 0, s = 1.1.1.1, d = 10.0.0.1
prompt: Sending the packet from local
*Jan 26 00:20:59:860 2014 SR6602-X DPIPFWD/7/debug_case:
Receiving, interface = GigabitEthernet0/0/1, version = 4, headlen = 20, tos = 192,
pktlen = 46, pktid = 1243, offset = 0, ttl = 254, protocol = 17,
checksum = 43809, s = 1.1.1.1, d = 10.0.0.1
prompt: Receiving IP packet
注:如果“琉琉”无法收到对端路由器回复的BFD报文,请检查:
(1)“琉琉”是否存在影响将BFD报文发给“哈尼派”设备的配置。
(2)“哈尼派”设备的相关配置。
3、检查“琉琉”配置,看是否存在配置影响到BFD报文上送自身CPU:
此步骤主要排查“琉琉”G0/0/1接口配置,看是否存在NAT、PBR、Firewall等。通过排查,发现G0/0/1接口配置了入方向的Firewall:
#
interface GigabitEthernet0/0/1
firewall packet-filter 3001 inbound
……
#
acl number 3001
……
rule 85 deny udp //BFD ECHO报文为UDP报文,这条规则导致BFD ECHO报文被过滤掉,从而无法上送CPU
#
此时,小Z终于找到了导致BFD Session无法UP的原因。所以后续对这条规则进行处理:
(1)R24XX及之前的版本:将此条规则删除后,需在用户视图下使用reset session命令重建会话。
(2)R26XX及之后的版本:将此条规则删除即可。
此时,在“琉琉”上发现BFD Session UP了,问题得到解决。小Z松了一口气:“OSPF呀BFD,终于让你二人团聚了,你们也祝我早日寻到心中的佳人吧!”
[SR6602-X]dis bfd session
Total session number: 1 Up session number: 1 Init mode: Active
IPv4 session working under Echo mode:
LD SourceAddr DestAddr State Holdtime Interface
4102 10.0.0.1 10.0.0.2 Up 2000ms GE0/0/1