近日研发测试发布任务全线延迟和失败,导致运维同学排错很久,最后定位到网络问题,反馈到我这边后,我迅速检查内部机房网络和整个内网情况,监控告警是没有任何信息,而排查对应的k8s work节点,抽检几台work节点做网络问题排查,最后竟然是DNS问题,这个问题我觉得应该值得记录下来,下面介绍下问题发现和排障过程。
接到线上运维同学反馈,测试环境下发布任务全部失败,研发的测试发布都卡在某个节点,导致最后超时失败,但是也不是全部失败,大部分失败,初步排查,怀疑是网络问题,故我马上跟进排查。
抽检几台k8s的节点,上去查看宿主机网络,和节点网络,通过ping测试,路由追踪发现网络并没有明显故障,查看延迟和内网路由,以及公网路由都是正常的状态。

既然内网无问题,测试内网路由和ping测试都是正常,而公网测试也是正常,怕带宽瓶颈问题影响,故不放心,去看了下出口带宽监控数据和出口AD设备监控,发现并没有带宽瓶颈问题。
在此刻,我们被卡住很久,到底什么问题呢,测试环境如火如荼,都在等着发布,感觉到这一刻好像还是没有头绪时候,有个小伙伴说curl网站响应很慢,想到有几个可能,防火墙、ipv6、以及DNS相关,排查服务器防火墙无问题,ipv6未启用,遂大致可以确定是DNS问题。
在服务器上,curl模拟http请求,如:
$ curl cip.cc | more
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 201 0 201 0 0 36 0 --:--:-- 0:00:05 --:--:-- 49
IP : 122.xxx.174.xxx
地址 : 中国 浙江 杭州
运营商 : 电信
数据二 : 浙江省杭州市 | 电信
数据三 : 中国浙江省杭州市 | 电信
URL : http://www.cip.cc/122.xxx.174.xxx