GBase 8由于防火墙配置错误导致ipv6无法访问本地回路网络::1

linux的防火墙对ipv6的配置里,如果将icmp包全部drop掉,将导致无法访问ipv6网络,本文介绍一例该原因导致的同步一直报错的现场运维案例。

现场环境

3节点集群,客户发现有2个节点出现数据不一致的情况。其中前2个节点是初始安装的,第3个节点是后来扩容的。

排查过程

查看gcrecover.log

发现同步命令gc_sync_client一直返回错误 60

查看节点的数据同步日志

发现报错信息是无法连接到服务器 ::1,这个::1是本地的回路地址,和127.0.0.1是一样的,表示ipv6格式的本机。

尝试ping这个地址

发现无法ping通,数据包全部丢失

检查sysctl和ifconfig配置

一切正常,ipv6协议是开启的,没有被disable掉

检查防火墙

发现链路的icmp是被全部DROP的

打开防火墙关于ipv6的配置

再次尝试ping,可以连通了。

总结

此问题现场折腾了很久,因为ipv4是整行的。数据库之间连接也是正常的,但就是本地的::1地址不通。估计是操作系统管理员认为不需要ipv6,就安全加固了一下导致。