大家好,我是甲方IT和工程商经常摇人的“人”-通信厂商网络专家。今天分享排障案例,本期内容将放在公众号合集中,可进入“公众号首页–文章精选–实战案例”查看往期精彩内容。
本期分享的案例是通用网络相关问题。
【背景介绍】
大家好,不论是什么场景,想必大多数人都遇见过上网卡顿异常的问题,比如网页打不开、微信消息发不出去转圈圈、小视频多刷几次才能刷出来等等。
我们在排查问题或者400求助时,修改DNS服务器是一种常规的手段,比如从原有的192.168.1.1(路由器代理)、本地区电信DNS服务器改成公共DNS 服务器114.114.114.114或8.8.8.8等,大多数时候是能改善上网效果的。
那么原有的DNS服务器为什么突然不管用了呢?它背后异常状态是什么?今天我就拿一个真实案例的异常报文来分析其背后的逻辑。
【排查分析】
第一步、监控WAN口抓取报文
目前市面上主流的入网路由器基本不存在DNS流解析的日志信息和Debug手段,就算是有Debug结果也不一定真实可靠(设备数据统计会有一定的局限性)。所以需要抓取WAN口报文进行可靠的人为分析。
可以抓到如下报文,并在wireshark中过滤DNS:
Wireshark抓包后不是简单的过滤DNS就完事了哈,需要分析以下2个指标:
-
DNS请求与DNS响应的差量
-
DNS Respond的响应延时
(1)分析DNS请求与响应的差量
首先,打开“wireshark-统计-DNS”,可以看到如下信息:
可以看到DNS请求(Query)占85.52%,而DNS响应(Respond)只有14.48%,表示大量的DNS问询没有得到回复,所以很明显的就能知道上网总是解析不出来是为什么了。不是因为域名完全不响应,而是因为不完全解析域名。
另外可过滤I/O图表取折线图更直观,打开“wireshark-统计-I/O图表”:
过滤方法见上图,这一看单位秒时间内响应完全跟不上,DNS请求包可达≥50包/秒而响应却完全跟不上,是不是直观的可以看到DNS服务器异常或性能不行或线路有DNS阈值限制?有理有据。
(2)分析DNS Respond的响应时长
wireshark非常强大,其实我们在DNS Respond报文中可以看到wireshark自己会添加的补充字段计算延时时间:
右键将此字段作为过滤器:
得到延时时间的过滤器:“dns.time”。然后打开I/O图表,把DNS Respond报文过滤出来,Y轴表示延时时间“dns.time”
可以看到过滤的结果,DNS Respond甚至15s、20s才会响应,上网等到黄花菜都凉了。
【综合分析】
结合该报文来看,我们可以得到相关信息:
-
在0-110秒和230-350秒区间中DNS Query阈值过大,DNS Resp无法全部响应并且存在响应高时延;
-
而在110-230秒区间内DNS Query阈值小,能得到很好的响应保障。
不难推断出运营商线路做了DNS阈值限制或者DNS服务器针对此WAN出口做了DNS限制,针对性的可以提供3种方案:
1.换个DNS服务器
2.让运营商或DNS服务器解除限制
3.内网部署DNS代理缓存服务器。
通过修改差劲的DNS服务器后上网恢复正常,我们来对比一下这个好用的DNS Server下的DNS请求/响应差量以及DNS Respond响应延时:
(1)DNS请求/响应差量
(2)DNS Respond响应延时
通过“异常DNS报文”和“正常DNS报文”的wireshark数据分析,我们就能精准的定位网络问题并搞清楚背后真正的异常逻辑。
原创文章,作者:速盾高防cdn,如若转载,请注明出处:https://www.sudun.com/ask/94206.html