DNS服务器测试
有关 DNS 协议的内容,可以看这篇文章
本文主要测试了 Cloudflare 1.1.1.1 国内知名 114.114.114.114 、 阿里 223.5.5.5 的 DNS 服务。
1. 单 DNS 报文查询多个域名信息
DNS 协议中有 Query Count 的信息,因此设计上 DNS 支持单报文查询多个域名信息,这样可以减少网络开销。但是观察 Wireshark 抓包发现,没有发现单报文查询多个域名信息的情况。

因此下面测试一下单报文查询多个域名信息的情况。(代码附在文章后)
1.1. 发送报文内容
发送报文中查询了两个域名信息,分别是 www.baidu.com 和 nacldragon.top。

1.2. 接收报文内容
1.2.1 Cloudflare 1.1.1.1
可以观察到,1.1.1.1 只返回了 www.baidu.com 的信息,没有返回 nacldragon.top 的信息。

将 www.baidu.com 和 nacldragon.top 调换位置,则只返回 nacldragon.top 的信息。

1.2.2 114 114.114.114.114
将报文发送后,114.114.114.114 并没有返回任何信息,为每个域名单独查询时,则能正常的提供解析结果。
1.2.3 阿里 223.5.5.5
情况和 114 一样,将报文发送后,没有返回任何信息,为每个域名单独查询时,则能正常的提供解析结果。
2. 域名长度溢出
DNS 协议中,域名的长度是由一个字节来表示的,因此我们可以伪造一个域名长度溢出的报文,来测试 DNS 服务器的处理能力。
2.1. 发送报文内容
发送报文中查询了一个域名信息,域名最后本应是 0x00 ,但是被修改为了 0xff 。
2.2. 接收报文内容
三个 DNS 服务器都没有返回任何信息。
3. 代码
1. 单 DNS 报文查询多个域名信息代码
1 | |
2. 域名长度溢出代码
1 | |
DNS服务器测试
https://nacldragon.top/2024/DNS-Test/