DNS的查询流程
我们可以通过一个命令了演示,同时进行抓包。
在OS X可以用dig命令进行查询追踪。
dig @8.8.8.8 www.baidu.com
看看输出会是什么呢
; <<>> DiG 9.8.3-P1 <<>> +trace www.baidu.com
;; global options: +cmd
. 4551 IN NS g.root-servers.net.
. 4551 IN NS i.root-servers.net.
. 4551 IN NS c.root-servers.net.
. 4551 IN NS a.root-servers.net.
. 4551 IN NS l.root-servers.net.
. 4551 IN NS d.root-servers.net.
. 4551 IN NS j.root-servers.net.
. 4551 IN NS f.root-servers.net.
. 4551 IN NS b.root-servers.net.
. 4551 IN NS k.root-servers.net.
. 4551 IN NS h.root-servers.net.
. 4551 IN NS e.root-servers.net.
. 4551 IN NS m.root-servers.net.
;; Received 228 bytes from 8.8.8.8#53(8.8.8.8) in 208 ms
com. 172800 IN NS f.gtld-servers.net.
com. 172800 IN NS k.gtld-servers.net.
com. 172800 IN NS g.gtld-servers.net.
com. 172800 IN NS i.gtld-servers.net.
com. 172800 IN NS h.gtld-servers.net.
com. 172800 IN NS l.gtld-servers.net.
com. 172800 IN NS b.gtld-servers.net.
com. 172800 IN NS c.gtld-servers.net.
com. 172800 IN NS j.gtld-servers.net.
com. 172800 IN NS a.gtld-servers.net.
com. 172800 IN NS e.gtld-servers.net.
com. 172800 IN NS m.gtld-servers.net.
com. 172800 IN NS d.gtld-servers.net.
;; Received 491 bytes from 192.112.36.4#53(192.112.36.4) in 108 ms
baidu.com. 172800 IN NS dns.baidu.com.
baidu.com. 172800 IN NS ns2.baidu.com.
baidu.com. 172800 IN NS ns3.baidu.com.
baidu.com. 172800 IN NS ns4.baidu.com.
baidu.com. 172800 IN NS ns7.baidu.com.
;; Received 201 bytes from 192.26.92.30#53(192.26.92.30) in 117 ms
www.baidu.com. 1200 IN CNAME www.a.shifen.com.
a.shifen.com. 1200 IN NS ns1.a.shifen.com.
a.shifen.com. 1200 IN NS ns3.a.shifen.com.
a.shifen.com. 1200 IN NS ns5.a.shifen.com.
a.shifen.com. 1200 IN NS ns2.a.shifen.com.
a.shifen.com. 1200 IN NS ns4.a.shifen.com.
;; Received 228 bytes from 220.181.37.10#53(220.181.37.10) in 55 ms
抓包看一下
09:56:37.132581 IP (tos 0x0, ttl 64, id 58263, offset 0, flags [none], proto UDP (17), length 45)
192.168.1.108.59877 > 8.8.8.8.53: [udp sum ok] 50017 NS? . (17)
查询 . ns记录
09:56:37.329776 IP (tos 0x0, ttl 50, id 47757, offset 0, flags [none], proto UDP (17), length 256)
8.8.8.8.53 > 192.168.1.108.59877: [udp sum ok] 50017 q: NS? . 13/0/0 . [1h15m51s] NS g.root-servers.net., . [1h15m51s] NS i.root-servers.net., . [1h15m51s] NS c.root-servers.net., . [1h15m51s] NS a.root-servers.net., . [1h15m51s] NS l.root-servers.net., . [1h15m51s] NS d.root-servers.net., . [1h15m51s] NS j.root-servers.net., . [1h15m51s] NS f.root-servers.net., . [1h15m51s] NS b.root-servers.net., . [1h15m51s] NS k.root-servers.net., . [1h15m51s] NS h.root-servers.net., . [1h15m51s] NS e.root-servers.net., . [1h15m51s] NS m.root-servers.net. (228)
回应刚才的查询。 q:NS? .查询问题。13/0/0 回答RR数/授权信息RR数/附加信息RR
09:56:37.341675 IP (tos 0x0, ttl 64, id 24452, offset 0, flags [none], proto UDP (17), length 59)
192.168.1.108.64388 > 192.112.36.4.53: [udp sum ok] 21413 A? www.baidu.com. (31)
查询 g.root-server.net 服务器上是否有 www.baidu.com 的A记录
09:56:37.441124 IP (tos 0x0, ttl 234, id 36143, offset 0, flags [DF], proto UDP (17), length 519)
192.112.36.4.53 > 192.168.1.108.64388: [udp sum ok] 21413- q: A? www.baidu.com. 0/13/14 ns: com. [2d] NS f.gtld-servers.net., com. [2d] NS k.gtld-servers.net., com. [2d] NS g.gtld-servers.net., com. [2d] NS i.gtld-servers.net., com. [2d] NS h.gtld-servers.net., com. [2d] NS l.gtld-servers.net., com. [2d] NS b.gtld-servers.net., com. [2d] NS c.gtld-servers.net., com. [2d] NS j.gtld-servers.net., com. [2d] NS a.gtld-servers.net., com. [2d] NS e.gtld-servers.net., com. [2d] NS m.gtld-servers.net., com. [2d] NS d.gtld-servers.net. ar: a.gtld-servers.net. [2d] A 192.5.6.30, b.gtld-servers.net. [2d] A 192.33.14.30, c.gtld-servers.net. [2d] A 192.26.92.30, d.gtld-servers.net. [2d] A 192.31.80.30, e.gtld-servers.net. [2d] A 192.12.94.30, f.gtld-servers.net. [2d] A 192.35.51.30, g.gtld-servers.net. [2d] A 192.42.93.30, h.gtld-servers.net. [2d] A 192.54.112.30, i.gtld-servers.net. [2d] A 192.43.172.30, j.gtld-servers.net. [2d] A 192.48.79.30, k.gtld-servers.net. [2d] A 192.52.178.30, l.gtld-servers.net. [2d] A 192.41.162.30, m.gtld-servers.net. [2d] A 192.55.83.30, a.gtld-servers.net. [2d] AAAA 2001:503:a83e::2:30 (491)
并没有查询到记录,回应了 com.域的 授权服务器地址及授权服务器的解析IP -号代表非递归查询
09:56:37.450709 IP (tos 0x0, ttl 64, id 15440, offset 0, flags [none], proto UDP (17), length 59)
192.168.1.108.64612 > 192.26.92.30.53: [udp sum ok] 5096 A? www.baidu.com. (31)
继续向 d.gtld-servers.net 查询
09:56:37.564570 IP (tos 0x0, ttl 51, id 61188, offset 0, flags [none], proto UDP (17), length 229)
192.26.92.30.53 > 192.168.1.108.64612: [udp sum ok] 5096- q: A? www.baidu.com. 0/5/5 ns: baidu.com. [2d] NS dns.baidu.com., baidu.com. [2d] NS ns2.baidu.com., baidu.com. [2d] NS ns3.baidu.com., baidu.com. [2d] NS ns4.baidu.com., baidu.com. [2d] NS ns7.baidu.com. ar: dns.baidu.com. [2d] A 202.108.22.220, ns2.baidu.com. [2d] A 61.135.165.235, ns3.baidu.com. [2d] A 220.181.37.10, ns4.baidu.com. [2d] A 220.181.38.10, ns7.baidu.com. [2d] A 119.75.219.82 (201)
回应授权及附加信息
09:56:37.568584 IP (tos 0x0, ttl 64, id 31367, offset 0, flags [none], proto UDP (17), length 59)
192.168.1.108.65266 > 220.181.37.10.53: [udp sum ok] 11729 A? www.baidu.com. (31)
继续查询百度的授权服务器
09:56:37.623400 IP (tos 0x0, ttl 48, id 65248, offset 0, flags [none], proto UDP (17), length 256)
220.181.37.10.53 > 192.168.1.108.65266: [udp sum ok] 11729*- q: A? www.baidu.com. 1/5/5 www.baidu.com. [20m] CNAME www.a.shifen.com. ns: a.shifen.com. [20m] NS ns1.a.shifen.com., a.shifen.com. [20m] NS ns3.a.shifen.com., a.shifen.com. [20m] NS ns5.a.shifen.com., a.shifen.com. [20m] NS ns2.a.shifen.com., a.shifen.com. [20m] NS ns4.a.shifen.com. ar: ns1.a.shifen.com. [20m] A 61.135.165.224, ns2.a.shifen.com. [20m] A 180.149.133.241, ns3.a.shifen.com. [20m] A 61.135.162.215, ns4.a.shifen.com. [20m] A 115.239.210.176, ns5.a.shifen.com. [20m] A 119.75.222.17 (228)
收到了回答。*表示是他的主域名服务器。
最终递归查询归纳
1、查询 . 的 ns 记录
2、迭代查询 . 的 ns 服务器上是否有 域名的 A记录
3、迭代查询 com. 的 ns 服务器上是否存在记录
4、迭代查询 返回的授权服务器
5、得到结果
DNS的查询流程的更多相关文章
- DNS的解析流程
一.简单理解 DNS服务器里存着一张表,表中放着域名和IP地址,域名和IP地址以映射关系保存,即一对一 浏览器访问某个域名,实际上是访问它的ip地址 所以浏览器需要知道域名对应的ip地址,由此产生dn ...
- centos的DNS服务工作流程及搭建
1 什么是DNS? DNS(Domain Name Server,域名服务器)即域名解析服务,是进行域名(domain name)和与之相对应的IP地址 (IP address)转换的服务器.DNS ...
- Activiti 查询流程定义
package com.mycom.processDefinition; import java.io.InputStream; import java.util.List; import java. ...
- Solr4.8.0源码分析(5)之查询流程分析总述
Solr4.8.0源码分析(5)之查询流程分析总述 前面已经写到,solr查询是通过http发送命令,solr servlet接受并进行处理.所以solr的查询流程从SolrDispatchsFilt ...
- MVC5搜索/查询 流程功能的实现
接着上次的篇幅,我们这篇手动来写一个查询的流程代码! 搜索/查询 流程功能的实现 那现在要做搜索(查询)功能我们第一步应该做什么呢!第一次是不是我们应该去Controller(控制器)里去搞一个搜索 ...
- jt项目日志查询流程
jt项目日志查询流程
- 四、基于HTTPS协议的12306抢票软件设计与实现--水平DNS并发查询分享
一.基于HTTPS协议的12306抢票软件设计与实现--实现效果 二.基于HTTPS协议的12306抢票软件设计与实现--相关接口以及数据格式 三.基于HTTPS协议的12306抢票软件设计与实现-- ...
- activiti7查询流程定义的相关信息
package com.zcc.activiti02; import org.activiti.engine.ProcessEngine;import org.activiti.engine.Proc ...
- mysql高级教程(一)-----逻辑架构、查询流程、索引
mysql逻辑架构 和其它数据库相比,MySQL有点与众不同,它的架构可以在多种不同场景中应用并发挥良好作用.主要体现在存储引擎的架构上,插件式的存储引擎架构将查询处理和其它的系统任务以及数据的存储提 ...
随机推荐
- HTTP 错误 404.2 - Not Found 由于 Web 服务器上的“ISAPI 和 CGI 限制”列表设置,无法提供您请求的页面
详细错误:HTTP 错误 404.2 - Not Found. 由于 Web 服务器上的“ISAPI 和 CGI 限制”列表设置,无法提供您请求的页面. 出现环境:win7 + IIS7.0 解决办法 ...
- OpenCV 学习
#include <opencv2\opencv.hpp> #include <iostream> #include <opencv2\highgui\highgui.h ...
- 【图像处理】【SEED-VPM】7.ubuntu10.04下 TFTP,NFS 安装指南
Linux系统启动流程 程序开发调试的一般方法 1. TFTP下载内核+NFS网络文件系统.即内核和文件系统均不在板卡上.主要用于调试内核功能. 2. FLASH启动内核+NFS网络文件系统,即内核固 ...
- Bootstrap <基础二十三>页面标题(Page Header)
页面标题(Page Header)是个不错的功能,它会在网页标题四周添加适当的间距.当一个网页中有多个标题且每个标题之间需要添加一定的间距时,页面标题这个功能就显得特别有用.如需使用页面标题(Page ...
- Spring Security (一)
一.pom.xml <!-- spring security --> <dependency> <groupId>org.springframework.secur ...
- OpenLDAP安装
参考: http://54im.com/openldap/centos-6-yum-install-openldap-phpldapadmin-tls-%E5%8F%8C%E4%B8%BB%E9%85 ...
- CentOS 静态IP设置
一.CentOS 修改IP地址修改对应网卡的IP地址的配置文件 # vi /etc/sysconfig/network-scripts/ifcfg-eth0 电信 # vi /etc/syscon ...
- CentOS 安装VNC Server
环境 服务器:192.168.10.181 系统:CentOS 6.0 安装过程 1.切换至root用户 2.检测系统是否安装VNC [root@Nginx canyouNgx]# rpm -q vn ...
- java基础之 重排序
重排序通常是编译器或运行时环境为了优化程序性能而采取的对指令进行重新排序执行的一种手段.重排序分为两类:编译期重排序和运行期重排序,分别对应编译时和运行时环境. 在并发程序中,程序员会特别关注不同进程 ...
- AX多线程编译
1.在命令行里先定位到AOS sever的BIN文件夹下(CD "AOS sever的BIN路径") CD C:\Program Files\Microsoft Dynamics ...