更新到frr10后遇到的一些坑
最近看到frr更新到了10.0,遂在as内运行arch linux的几台机子上更新了下...然后发现了巨坑...
libyang前向兼容问题
因为frr跟libyang都是用teamcity自动打包完推到软件仓库的,更新frr的时候顺手把依赖的libyang也更到了最新.
然后...frr就报找不到libyang的so库直接炸了,翻了下frr的aur发现是libyang那边又双叒叕引入了breaking change...
ospf6错误处理默认路由id
frr上我为了方便配置直接在zebra上设置了全局的路由id,在旧版本上一直工作正常,更新后我也没去检查.
然后就不出意外的出意外了,uptime kuma上看到路由直接炸了
怎么办,赶紧找问题吧,简单查了一下发现是在到目的地的上一跳环路了,赶紧重启frr把环路消了(ps.这机子的frr是9.1的,而且因为某些配置问题在路由不可达的时候会直接出环路)
frr重启完问题依然存在,而且这次变成了blackhole跟环路之间不断震荡...看起来原始故障依然存在
vtysh下show ipv6 ospf6 database能看到as scoped的数据库下是存在对端宣告的路由的,但是由于未知原因并没有被zebra装入路由表
重启了两端的frr,故障仍然存在
再重新show ipv6 ospf6 database时发现i/f scoped与as scoped中对端的router-id不一致
在对端中手动指定ospf6的router-id后,故障解除,网络恢复正常
总结:
frr错误处理了默认路由id:在建立邻接关系时使用了接口的ip作为id而不是使用zebra上配置的默认路由id,而在as scoped的ospf6数据库中又正确使用了默认路由id,导致区域内的其它路由器无法按照ospf6数据库找到正确的临街关系确定路由