分享免费的编程资源和教程

网站首页 > 技术教程 正文

dns服务器到底使用tcp还是udp53端口?

goqiw 2024-09-08 17:07:39 技术教程 13 ℃ 0 评论

一、异常问题描述

从客户端反馈,业务慢,但是我们从工位、分公司查看发现正常,登录到客户端nslookup发现的确慢,走baidu.com等转发,发现正常。

二、问题分析排查

起初判断为专线流量大,或者核心被攻击,后续走公网,发现正常,最终把tcp53号端口放开,发现正常,因为其他分支机构没有禁止53端口,所有未发现问题。

公司dns架构如下:

开始怀疑过专线问题,甚至怀疑过网关问题,最终因为发现个人在家vpn登录居然无法解析,根据这个问题去排查,然后才去抓包,想看看到底到没有到dns服务器。

服务器上我使用tcpdump抓包,发现udp包转换为tcp包。

tcpdump -i eth2 -vnn src host 192.168.201.211 or dst host 192.168.201.211

然后就开始删除无用的ns记录,删了几条之后,在抓包

再在客户端上行解析,发现正常,这时让业务端查看,发现业务恢复正常。

三、原因分析

全球DNS根服务器bai为什么只有13台?

DNS协议的最初定义要从20世纪80年代未期开始算起,它使用了端口上的UDP和TCP协议。

UDP通常用于查询和响应,TCP用于主服务器和从服务器之间的区传送.遗憾的是,在所有UDP实现中能保证正常工作的最大包长是512字节,对于在每个包中必须含有数字签名的一些DNS新特性(例如,DNSSEC)来说实在是太小了。

512字节的限制还影响了根服务器的数量和名字。

要让所有的根服务器数据能包含在一个512字节的UDP包中,根服务器只能限制在13个,而每个服务器要使用字母表中的单个字母命名。

上面说这么多是什么意思呢?就是说一个包小于512字节dns走udp 53端口进行解析,如果大于512就会走tcp 53端口进行解析。一般情况下不建议slave或者说ns记录不大于13条,实际中可能会大于,我们目前还有20来个ns记录,但是也是udp解析。

所以实际中有个临界值,一旦大于这个临界值就使用tcp 53端口进行解析。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表