关于01月23日全国范围内DNS污染,域名解析故障的根源,资深的IT人士都知道原因是什么,并非国家

互联网应急中心发出的遭受***一说。

因此这里介绍一下DNS服务器的查询原理,也就是递归查询和迭代查询。

下图比较简明的描述了DNS服务器为客户端解析主机www.163.com的全过程.

根域名服务器:是互联网域名解析系统(DNS)中最高级别的域名服务器,全球有386台根服务器,被编号为A到M共13个标号。中国北京有两台编号为F的根服务器镜像,编号为I、J、L的各一,共5台镜像,在香港有A、F、I、J、L五台根服务器镜像,全部借由任播(Anycast)技术,所有编号相同的根服务器都是同一个IP,386台根服务器总共只使用了13个IP,因此可以抵抗针对其所进行的分布式拒绝服务***(DDoS)。

根域名服务器列表: (a-m.root-servers.net)

客户端通过域名访问站点时,必须要有DNS服务器解析到指定的IP地址上,才能进行下一步的

访问。客户端发起访问请求后,首先检查本地host文件,检查是否存在对应的IP映射关系,如果有则

直接通过映射的IP进行访问;如果没有则将请求发送给首选的DNS服务器。

客户端和DNS服务器之间使用的是递归查询,而DNS服务器之间使用的是迭代查询.

递归查询时要求所请求的DNS服务器应答给客户端所请求的域名和IP的映射关系;

迭代查询时所请求的DNS服务器应答给客户端的不一定是域名和IP地址的映射关系,也可以是另一台

DNS服务器,让客户端再将请求发送到另一台DNS服务器.

下面按上图根据实例介绍DNS解析全过程.

客户端发起访问请求www.163.com:

1.查看本地hosts文件,发现没有www.163.com IP 映射关系,将请求发送给本地DNS服务器

----递归查询----

2.本地DNS服务器不包含163.com的权威域,不存在对应的www记录,因此将请求转发到根域名服务器

(假如  a.root-servers.net.)

3.根域名DNS服务器会返回负责.com域解析的服务器(假如 a.gtld-servers.net.)给本地DNS服务器,

本地DNS服务器再将请求发送给 a.gtld-servers.net

4..com域名服务器只能返回负责163.com域的解析服务器(如 ns1.nease.net.)给本地DNS服务器,本地

DNS服务器再将请求发送给ns1.nease.net.

5.由ns1.nease.net.域名服务器返回www.163.com 的 IP映射关系给本地DNS服务器

(2-5过程)----迭代查询----

6.本地DNS服务器将结果保存到本地缓存,并保持TTL时间,同时将结果应答给客户端.

----递归查询---- ----查询结束----

7.当其他客户端再次向本地DNS服务器查询www.163.com时,在TTL时间内,本地DNS服务器不再向根

域名服务器转发请求,而是直接从缓存中读取数据应答给客户端. 如果已经超过TTL时间,则本地DNS

服务器会再次经历一次上诉2-6的过程.

本地DNS服务器在代替客户端向其他服务器查询时,客户端完全处于等待状态。

递归查询时,返回的结果只有两种:查询成功或查询失败.

迭代查询,又称作重指引,返回的是最佳的查询点或者主机地址.

了解了以上原理,就可以很容易的判断DNS解析故障了,甚至于前日的全国DNS污染问题。

当然了解原理后,还需要了解相关的工具和命令: dig,nslookup,host等.其中以dig命令的功能最为强大和灵活.

dig命令典型应用形如

     dig  @server   name  type

@server: 指定域名服务器

name:指定查询请求资源的域名

type:指定查询类型,如A、CNAME、SRV、MX、SIG等,如果不指定type,默认为A

比如:

默认情况下DNS使用UDP查询,我们使用查询选项设置为TCP查询

[shizhenning@zabbix ~]$ dig @8.8.8.8  163.com +tcp
; <<>> DiG 9.3.6-P1-RedHat-9.3.6-20.P1.el5_8.6 <<>> @8.8.8.8 163.com +tcp
; (1 server found)
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 36041
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;163.com.                       IN      A
;; ANSWER SECTION:
163.com.                277     IN      A       123.58.180.8
163.com.                277     IN      A       123.58.180.7
;; Query time: 54 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Thu Jan 23 13:56:25 2014
;; MSG SIZE  rcvd: 57

查询MX记录:

[shizhenning@zabbix ~]$ dig @8.8.8.8  163.com MX
; <<>> DiG 9.3.6-P1-RedHat-9.3.6-20.P1.el5_8.6 <<>> @8.8.8.8 163.com MX
; (1 server found)
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 41000
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;163.com.                       IN      MX
;; ANSWER SECTION:
163.com.                13741   IN      MX      50 163mx00.mxmail.netease.com.
163.com.                13741   IN      MX      10 163mx01.mxmail.netease.com.
163.com.                13741   IN      MX      10 163mx02.mxmail.netease.com.
163.com.                13741   IN      MX      10 163mx03.mxmail.netease.com.
;; Query time: 41 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Thu Jan 23 14:01:02 2014
;; MSG SIZE  rcvd: 136

查询CNAME记录:

[shizhenning@zabbix ~]$ dig @8.8.8.8  www.163.com CNAME
; <<>> DiG 9.3.6-P1-RedHat-9.3.6-20.P1.el5_8.6 <<>> @8.8.8.8 www.163.com CNAME
; (1 server found)
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 27024
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;www.163.com.                   IN      CNAME
;; ANSWER SECTION:
www.163.com.            347     IN      CNAME   www.163.com.lxdns.com.
;; Query time: 41 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Thu Jan 23 14:01:54 2014
;; MSG SIZE  rcvd: 61

查询DRV记录:

[shizhenning@zabbix ~]$ dig @8.8.8.8  163.com SRV
; <<>> DiG 9.3.6-P1-RedHat-9.3.6-20.P1.el5_8.6 <<>> @8.8.8.8 163.com SRV
; (1 server found)
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 41227
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0
;; QUESTION SECTION:
;163.com.                       IN      SRV
;; AUTHORITY SECTION:
163.com.                1800    IN      SOA     ns4.nease.net. admin.nease.net. 20130823 7200 1800 1209600 3600
;; Query time: 137 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Thu Jan 23 14:02:46 2014
;; MSG SIZE  rcvd: 80

我们要查询某个域名解析的全过程:(此时为迭代查询)

[shizhenning@zabbix ~]$ dig @8.8.8.8  163.com +trace
; <<>> DiG 9.3.6-P1-RedHat-9.3.6-20.P1.el5_8.6 <<>> @8.8.8.8 163.com +trace
; (1 server found)
;; global options:  printcmd
.                       19586   IN      NS      a.root-servers.net.
.                       19586   IN      NS      b.root-servers.net.
.                       19586   IN      NS      c.root-servers.net.
.                       19586   IN      NS      d.root-servers.net.
.                       19586   IN      NS      e.root-servers.net.
.                       19586   IN      NS      f.root-servers.net.
.                       19586   IN      NS      g.root-servers.net.
.                       19586   IN      NS      h.root-servers.net.
.                       19586   IN      NS      i.root-servers.net.
.                       19586   IN      NS      j.root-servers.net.
.                       19586   IN      NS      k.root-servers.net.
.                       19586   IN      NS      l.root-servers.net.
.                       19586   IN      NS      m.root-servers.net.
;; Received 228 bytes from 8.8.8.8#53(8.8.8.8) in 62 ms
com.                    172800  IN      NS      m.gtld-servers.net.
com.                    172800  IN      NS      l.gtld-servers.net.
com.                    172800  IN      NS      k.gtld-servers.net.
com.                    172800  IN      NS      j.gtld-servers.net.
com.                    172800  IN      NS      i.gtld-servers.net.
com.                    172800  IN      NS      h.gtld-servers.net.
com.                    172800  IN      NS      g.gtld-servers.net.
com.                    172800  IN      NS      f.gtld-servers.net.
com.                    172800  IN      NS      e.gtld-servers.net.
com.                    172800  IN      NS      d.gtld-servers.net.
com.                    172800  IN      NS      c.gtld-servers.net.
com.                    172800  IN      NS      b.gtld-servers.net.
com.                    172800  IN      NS      a.gtld-servers.net.
;; Received 485 bytes from 198.41.0.4#53(a.root-servers.net) in 134 ms
163.com.                172800  IN      NS      ns2.nease.net.
163.com.                172800  IN      NS      ns3.nease.net.
163.com.                172800  IN      NS      ns4.nease.net.
163.com.                172800  IN      NS      ns5.nease.net.
163.com.                172800  IN      NS      ns6.nease.net.
163.com.                172800  IN      NS      ns1.nease.net.
;; Received 238 bytes from 192.55.83.30#53(m.gtld-servers.net) in 137 ms
163.com.                600     IN      A       123.58.180.7
163.com.                600     IN      A       123.58.180.8
163.com.                172800  IN      NS      ns2.nease.net.
163.com.                172800  IN      NS      ns5.nease.net.
163.com.                172800  IN      NS      ns6.nease.net.
163.com.                172800  IN      NS      ns3.nease.net.
163.com.                172800  IN      NS      ns4.nease.net.
163.com.                172800  IN      NS      ns1.nease.net.
;; Received 270 bytes from 114.113.197.12#53(ns2.nease.net) in 34 ms

掌握dig命令后,DNS解析故障就很容易排查了.

关于域名服务器缓存污染只是一种技术,没有对错之分,有时我们企业内部也需要刻意使用这种技术

来满足企业需求。关于DNS污染技术在企业中的应用场景,详见 浅谈活动目录域名称空间设计。

详解DNS递归查询与迭代查询相关推荐

  1. 一起学DNS系列(十)图、例详解DNS递归和迭代查询原理及过程 (1)

    上节中提到了一些有关递归查询的内容,但说的很少,也很笼统,本节将会从原理和实例两方面入手分析DNS的递归以及迭代查询. 在此之前,我们需要了解一些背景知识,以便于更好的理解今天的主题内容. 在互联网中 ...

  2. DNS递归查询与迭代查询

    原文链接:https://www.cnblogs.com/qingdaofu/p/7399670.html DNS递归查询与迭代查询 基础知识 1.域名系统 2.域名服务器 域名解析过程 1.在浏览器 ...

  3. DNS递归查询以及迭代查询

    递归查询 当客户端向本地DNS服务器发起查询请求时,DNS先查询自己有没有缓存记录,如果没有,则向根DNS发起查询请求,但是根DNS也不知道域名对应的IP地址,所以告诉它去下一级DNS服务器查询,直至 ...

  4. 详解DNS的常用记录(下):DNS系列之三

                            详解DNS常用记录(下) 在上篇博文中我们介绍了DNS服务器中几种不可或缺的记录,包括A记录,NS记录和SOA记录.本篇博文中我们将继续为大家介绍DNS ...

  5. 详解DNS的常用记录(上):DNS系列之二

    详解DNS的常用记录(上) 在上篇博文中,我们介绍了DNS服务器的体系结构,从中我们了解到如果我们希望注册一个域名,那么必须经过顶级域名服务器或其下级的域名服务器为我们申请的域名进行委派,把解析权委派 ...

  6. 详解DNS正向解析实验(有图有实验)

    详解DNS正向解析实验(有图有实验) 一.DNS简介 1.DNS的定义 2.域名结构及解析方式 3.DNS服务器类型 二.构建DNS域名解析服务器步骤 1.安装bind软件包 2.配置正向解析 ①.先 ...

  7. 详解DNS服务、DNS解析、DNS劫持和污染

    简介 DNS(全称:Domain Name System,中文:域名系统)是互联网的一项服务.它作为将域名和 IP 地址相互映射的一个分布式数据库,能够使人更方便地访问互联网.1 前言 要想弄清楚 D ...

  8. DNS递归和迭代查询

    转自:https://www.jianshu.com/p/6b502d0f2ede 一.DNS解析分类 DNS解析流程分为递归查询和迭代查询,递归查询是以本地名称服务器为中心查询,递归查询是默认方式, ...

  9. nslookup 包含在那个包中_nslookup详解(name server lookup)( 域名查询)

    一.总结 1.爬虫倒是很方便拿到页面数据:a.网页的页面源码我们可以轻松获得  b.比如cnsd博客,文章的正文内容全部放在当中,所以非常好获取,此时我们获取的是html的页面 c.html的数据自带 ...

最新文章

  1. .NET 2.0 CER学习笔记
  2. Python编程语言学习:在根目录的py文件内调用某叶目录文件内的包/库或者函数(常用在GUI编程)之详细攻略
  3. vaadin_在Vaadin和JSF之间选择
  4. 如何设置计算机http端口号,服务器http端口设置
  5. 4个优化方法,让你能了解join计算过程更透彻
  6. startActivity流程(上)
  7. Python打包成.exe文件详细实例
  8. h3c Vlan和Trunk实验
  9. 信道容量受哪三个要素_连续信道容量与
  10. 数字孪生开启传统行业数字化转型升级之路
  11. Android系列之Navigation的目的地(Destination)
  12. 2022-2028全球与中国数字化销售室软件市场现状及未来发展趋势
  13. MySQL数据库基本管理
  14. dell服务器经常自动关机,戴尔15R电脑win10系统总是自动关机?
  15. 小程序源码:紫色特别舒服的UI趣味测试-多玩法安装简单
  16. android 4.4 源码编译,Android 4.4源码编译过程
  17. 全球与中国AI在智能手机和可穿戴设备中的应用市场深度研究分析报告
  18. Rust地图下载、Rust服务器地图下载教程、腐蚀地图下载攻略
  19. go程序的入门脚本-helloworld
  20. 如何给win10增加磁盘盘符

热门文章

  1. Java报错解决:org.apache.http.ConnectionClosedException: Premature end of chunk coded message body: closi
  2. 计算机应用基础统考操作,全国统考计算机应用基础操作题
  3. java实现layui分页,MVC下实现LayUI分页的Demo
  4. android 编译 oserror,Android-4.4.2 编译出错 OSError: [Errno 2] No such file or directory
  5. [Spring 深度解析]第1章 Java基础
  6. UIView层次管理(sendSubviewToBack,bringSubviewToFront)
  7. automaticallyAdjustsScrollViewInsets
  8. PHP Include 文件
  9. java实现登录注册案例_Java基于IO版实现用户登录注册的案例
  10. 阿里p8呕心沥血整理出来的,APP UI自动化测试思路总结,速看