javascript和JQuery焦点图和代码特效大全
当前最流行的开源CMS网站系统大全
当前位置:首页 > 网站技术 > 域名技术 > 

域名解析数据包分析工具 Wireshark

来源:IT技术网编辑:雨天发布于:2017-07-09人围观

DNS 域名解析 ? 数据包分析工具 Wireshark。DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP协议之上,使用端口号53。


\捕获 DNS 数据包

当客户端尝试访问互联网的某个网站时,访问请求会通过一台DNS服务器发送出去。这台DNS服务器会查找自己包含的资源记录,找到对应的IP地址并返回。

\

① 电脑上网的时候网卡都要设置DNS服务器IP地址,通过DNS服务器来查询网站的IP地址。DNS服务器可以是内网自建,也可以是外网公用。电信、移动等宽带都会根据不同地域,指定不同的DNS服务器IP地址。例如深圳电信常用的DNS地址就是202.96.134.133。当然也可以使用114.114.114.114或8.8.8.8公用DNS服务器地址,这样不同运营商的宽带都可以正常获取到IP地址。

\

② 启动 Wireshark,选择上网的网卡接口,点击捕获图标开始捕获。

\

③ 打开浏览器,这里我们访问美国飞塔的网站。

\

④ 在分析之前我们关闭捕获,以免抓到的包越来越多。

\

⑤ 在显示过滤器中输入过滤条件,得到我们要分析的DNS包。

\DNS 数据包分析

  在想象中,我们向DNS发送一个查询请求,然后回传一个IP地址,DNS的工作就算是完了。

\

① 实际上发送和回传的可并不只一次,客户端每发送一条查询消息,都会得到DNS服务器的响应。我们可以看到有个十六进制的号,使得发送和响应一一对应。

\

② 我们首先来查看0x54d1发送包,和其它包一样,最前面是14个字节为以太网帧头,然后是20字节的IP帧头,这里就不再描述了, 这里看到的是8个字节的用户数据报文协议(指定了源和目标端口),30字节的域名解析查询。

Transaction ID(交易口):这个数值的作用是将一个域名查询消息和对应的响应消息对应起来。

query/response(查询/响应):每个DNS数据包都会被标记为查询消息或者响应消息,具体哪一类取决于消息中包含的内容。

Flags(标记):每个查询和响应消息都有不同的标记位置位。

Response(响应):标识该消息为查询消息还是响应消息。

Opcode(操作码):这个标记决定了查询消息的类型。Opcode范围是0~15。

 

Opcode 值 描 述
0 标准查询
1 逆向查询
2 服务器状态请求
3 未分配
4 通告
5 更新
6~15 未分配

 

Truncated(截断):这个标记决定了如果数据包过大(大于512字节)时,是否对数据包进行截断。

Recursion desired(期望递归):如果要所查的记录不存在,那么客户端发送的消息就会从一台DNS服务器到另一台DNS服务器这样执行一个递归的搜索流程。

Type(类型):这个字段显示的是查询的类型。

 

类 型 描 述
A 主机地址
NS 域名服务器
MX 邮件交互
SOA 起始授权机构
PTR 指针记录
AAAA IPv6 地址
AXFR 全量传输
IXFR 增量传输

 

\

③ 再看0x54d1响应包,8个字节的用户数据报文协议,46字节的域名解析响应,比查询包多16字节,也就是查询反馈内容。

Reply code(应答码):这个字段的值用来表示是否出现了错误,以及错误的类型。

 

Code (代码) 描 述
0 没有错误
1 格式错误
2 服务器故障
3 域名错误
4 未使用
5 拒绝

 

Questions(问题):表示数据包中包含的查询数量。

Answers RRs(回答):表示对查询消息所作响应的数量。

Authority RRs(授权):表示响应消息中授权资源记录的数量。

Additional RRs(额外):表示响应消息中额外资源记录的数量。

Answer(回答):对查询消息所作的响应。响应消息也可以有很多个。

\多个 DNS 查询

我们看到,在浏览器里输入网站地址后,DNS出现多对查询与响应消息,它们之间有什么不同呢?

\

① 由于响应消息往往包含了查询消息,这里我们就直接查看0xa105的响应包。前面0x43d1查询的是 fortinet.com ,而这个包查询的是www.fortinet.com,并且得到了三个响应。除了两个类型为A(主机地址)外,还有一个类型为CNAME(Canonical Name 规范名称),通常称别名指向,它可以将你注册的不同域名统统转到一个主域名上去!与A记录不同的是,CNAME别名记录设置的可以是一个域名的描述而不一定是IP地址!

\

② 0xa105的响应包里有三个响应,两个直接得到了IP地址,另一个得到的是CNAME,我们在0x52c7里看到,再次查询了这个CNAME地址,得到两个与0xa105包相同的IP地址。

\

③ 0x46de的响应包可以看到,查询类询为AAAA,也就是IPv6地址,这里得到了一个IPv6地址。

\

④ 0xe14b的响应包可以看到,通过查询得到的CNAME,再次查询并得到两个IPv6地址。

\

⑤ 经过比较,0x71c1与我们最早分析的0x54d1查询和响应的信息完全一致。看上去象是查询了两次fortinet.com。

总结

查询 fortinet.com 二次

查询 www.fortinet.com 一次

查询 fortinet.com IPv6 一次

查询 fortinet.com CNAME 一次

查询 fortinet.com CNAME IPv6 一次

\DNS 查询报错

很多情况下输入的网址不对,查询不到IP,看看会怎么样。

\

① 这里我们将fortinet.com 的网址多加一个t,打不开网站。

\

② 查看抓取到的DNS响应包,可以看到响应编码是3,也就是域名错误。如果网卡指定了两个DNS服务器,在第一个DNS服务器查找不到的情况下,会自动到第二个DNS服务器查询。

与相关的文章
有时间的话来看看IT界的突发事件