DNS域名解析问题排查
域名结构
主机名.次级域名.域名.根域名
host.sld.tld.root
主机名 | 次级域名 | 域名 | 根域名 |
---|---|---|---|
host. | sld. | tld. | root |
几种常见的解析类型
:
- A记录
- CNAME
- txt记录
获取13台根域服务器地址
# 使用dig获取根域服务器地址
dig . NS
# 使用nslookup获取根域地址
nslookup -type=ns .
192.203.230.10 e.root-servers.net
202.12.27.33 m.root-servers.net
199.7.91.13 d.root-servers.net
192.36.148.17 i.root-servers.net
192.112.36.4 g.root-servers.net
170.247.170.2 b.root-servers.net
198.97.190.53 h.root-servers.net
192.5.5.241 f.root-servers.net
192.33.4.12 c.root-servers.net
198.41.0.4 a.root-servers.net
192.58.128.30 j.root-servers.net
193.0.14.129 k.root-servers.net
199.7.83.42 l.root-servers.net
dig常见用法
https://blog.youkuaiyun.com/omaidb/article/details/128833171
nslookup常见用法
https://blog.youkuaiyun.com/omaidb/article/details/128832938
DNS报文结构
DNS报文
是DNS协议中用于传输DNS查询
和响应
信息的数据格式
,它由DNS头部
和DNS数据
两部分组成。
DNS报文-头部
DNS头部
包含了12
个字节
,具体字段如下:
报文ID
(2字节):用于标识DNS报文,由客户端随机生成。
标志
(2字节):用于表示DNS报文的类型和查询方式等信息。
问题数
(2字节):表示DNS报文中查询的问题数。
回答数
(2字节):表示DNS报文中回答的资源记录数。
权威数
(2字节):表示DNS报文中权威资源记录数。
附加数
(2字节):表示DNS报文中附加资源记录数。
Flags | QR | opcode | AA | TC | RD | RA | (zero) | rcode (Response Code)响应码 |
---|---|---|---|---|---|---|---|---|
1 | 4 | 1 | 1 | 1 | 1 | 3 | 4 |
DNS报文
中的Rcode
是指响应码
(Response Code),用于表示DNS服务器
对查询请求
的响应结果
。Rcode
是一个4位(bit)
的二进制数,共有16种可能的取值,每种取值都表示不同的响应结果
。常见的Rcode
取值及其含义如下:
0
:没有错误,查询成功。1
:格式错误,DNS报文格式不正确。2
:服务器错误,DNS服务器出现错误。3
:域名错误,查询的域名不存在。4
:查询类型不支持,DNS服务器不支持查询类型。5
:拒绝查询,DNS服务器拒绝查询请求。6-15
:保留值,暂未使用。
当DNS服务器
接收到查询请求后,会根据查询请求的内容进行查询,并生成响应报文
。响应报文
中的Rcode
字段表示查询结果的状态,例如:
查询成功
查询失败
查询类型不支持
等。
客户端可以根据Rcode
字段的取值
来判断查询结果的状态,并进行相应的处理。
需要注意的是,Rcode字段
只表示DNS服务器
对查询请求
的响应结果
,而不表示查询结果的准确性
。查询结果的准确性取决于DNS服务器的配置和缓存情况,以及查询请求的来源和网络环境等因素。因此,在实际应用中,应该根据实际情况进行查询结果的验证和处理。
查询
响应
DNS报文格式-正文
DNS数据部分
包含了查询
和响应
的具体信息,包括查询的域名
、查询类型
、查询类别
等信息。DNS数据部分的长度
和内容
根据查询
和响应
的具体情况而定,可以包含多个资源记录。
需要注意的是,DNS报文的长度不能超过UDP协议
的最大长度
,通常为512字节
。如果DNS报文的长度超过了UDP协议的最大长度,则需要使用TCP协议进行传输。
Queries区域
资源记录区域
(包括回答区域
,授权区域
和附加区域
)
查询
响应
域名被墙特征
- 连接被
重置
ERR_CONNECTION_RESET
检测IP墙
ping 检测 ip墙:
https://www.itdog.cn/ping/
tcping 检测端口墙:
https://www.itdog.cn/tcping/
ip墙
是纯墙
,端口墙
可以换端口。
检测域名墙
http://www.jucha.com/qiang/
http://www.dbcha.com/
在线拨测
使用拨测查看全国dns解析情况
阿里云拨测工具 https://boce.aliyun.com/detect/http
使用拨测查看全国dns解析
,查看是否有127.0.0.1
和0.0.0.0
通过WiFi
和手机网络
分别进行下面测试.
查询是否存在CDN
Ping、多地ping、国外ping
https://search.censys.io/
子域名查询
SSL证书信息查询
https://crt.sh/?q=%25.要查询的域名
https://censys.io/certificates?q=
也可以使用python脚本
https://github.com/cheetz/sslScrape
DNS历史解析记录
端口对外开放检查
使用tcp测试ip的ping值
有些主机是禁用icmp协议ping
的,可以使用tcping来测试ping值。
https://blog.youkuaiyun.com/omaidb/article/details/120120730
Masscan(Linux)
项目地址: https://github.com/robertdavidgraham/masscan
Centos8安装依赖libpcap-devel:
https://blog.youkuaiyun.com/omaidb/article/details/120690910
# Centos8安装依赖libpcap-devel
dnf --enablerepo=powertools install libpcap-devel -y
# 安装其他依赖
yum install git make gcc -y
# 编译安装
git clone https://github.com/robertdavidgraham/masscan
cd masscan
make
make install
# 基本用法
masscan 47.104.237.213 -p22,21,20
# 批量端口
masscan 47.104.237.213 -p20-22
ip可用性检查
参考: https://github.com/trojan-gfw/trojan/issues/622
使用这个地址可以检查是否证书问题: https://www.toolsdaquan.com/ipcheck/
scanport(Windows)
whois查询域名注册信息
https://blog.youkuaiyun.com/omaidb/article/details/128832814
邮箱搜集
https://hunter.io
https://github.com/killswitch-GUI/SimplyEmail