1.我的DHCPv6客户端去哪了的😱
如下图GIF所示 IPv6中的DHCP 客户端直接消失了,但是地址池中却存在着拨号获取到的前缀,并且在公网上可以ping通该前缀下的地址,此时再去添加DHCPv6客户端,显示已经存在该客户端无法添加。
我们打算另辟蹊径,尝试通过命令行输入命令查看DHCPv6信息,以定位是否为Winbox GUI显示错误导致的问题
使用export或者print命令进行配置的导出/查看,此时操作会直接卡住,过了数十秒弹出导出错误(超时)的错误提示。
我将该情况发布至mikrotik论坛,以寻求帮助,论坛的网友表示7.16以上的RouterOS IPv6疑似存在很大问题,并且RouterBroad硬件也同样存在类似的情况。
2. 尝试寻找解决方法
翻阅RouterOS的版本更新日志,发现7.17的beta版本有不少关于漏洞修复的内容,于是我们尝试更新到最新的 7.17beta4版本,新版的7.17有不少显著变化,旧版3.40的winbox已经无法在最新版连接使用,只能使用新版的 winbox4 beta版或者新发布的3.41进行连接,新版的web前端界面也变得更为现代,怀疑这么多年Mikrotik终于招到美工和前端了(
但令人大跌眼镜的是,先前的DHCPv6 BUG依然存在。。。。
既然升级不行,那就只能尝试降级了,我们尝试降级到7.15.3版本,尝试直接将7.15.3的npk包放在根目录重启,但是更新失败。。。去查看Mikrotik的文档,其中提到7.17新加入了个“device-mode”功能,按照Mikrotik官方的说法,其可以对设备的底层权限与部分功能进行限制,以预防潜在的安全问题,默认限制了系统的降级操作,如果要进行降级,首先需要执行以下命令
/system/device-mode/set downgrade=yes
再对RouterOS执行强制关机,比如直接拔掉电源或者虚拟机强行STOP,然后再正常开机进入系统,就可以进行降级操作了。。。
降级到7.15.3后,IPv6 DHCPv6 客户端倒是正常了,但是离谱的又来了,降级完后发现家里的设备无法上网,结果一看发现DHCPv4 服务端全部消失了。。。。尝试通过命令行打印/导出配置文件,结果弹出了与之前DHCPv6客户端一样的超时错误。。。具体截图当时忘记保存了。。。没能记录下这离谱的一幕,最后尝试备份配置文件重装了7.15.3 x86的系统,所有问题都得到解决。
3.总结
想当年大家都调侃Mikrotik为Bugtik。。。这次亲身经历后,感觉该调侃还是十分恰当的,尤其是遇到了这种十分低级的系统基本功能上的BUG,我的感觉上x86似乎要比CHR要更为稳定一些,笔者本人同时使用x86和CHR,很多CHR上莫名其妙的小问题在x86上基本没遇到过。
最后,如果你是生产环境使用,建议还是别更新至最新版,目前用下来7.15.3,7.12.1,7.14.3这三个版本算是比较稳定的选择,当然如果是严肃的生产环境,最好是配置双机热备,防止因为单点故障导致业务瘫痪。