DNS,这篇给你讲明白了( 八 )


NOERROR 表示这个请求已正常解决,id 是一个随机数字,它用于将请求和响应绑定在一起 。
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0 这一行都是一些标志位,其中
 

  • qr = query , rd = recursion desired,ra = recursion avaliable 这里其实 DNS 和我们玩了一个文字游戏,因为 rd 翻译过来就是需要递归,这个没什么好说的,默认就是使用递归查询;而 ra 翻译过来是递归可用,这个需要思考下,递归可用我是用还是不用呢?当然你可以用也可以不用,如果你不使用递归的话,那么 DNS 查询方式就是迭代查询 。
  • QUERY 表示查询数量,ANSWER 表示结果数量
  • AUTHORITY 表示来自权威域名服务器的结果数量,为 0 说明是从本地 DNS 中返回的,因为没有权威服务器的返回信息 。
  • ADDITIONAL 表示附加信息,当其值大于 1 时才会看到额外信息 。
 
下面是问题区域
;; QUESTION SECTION: ;www.baidu.com. IN A
依次是正在查询的域名,IN 我们上面提到了它表示互联网查询,A 表示域名映射到 IPv4 地址 。
下面是答案部分
;; ANSWER SECTION: www.baidu.com. 183 IN CNAME www.a.shifen.com. www.a.shifen.com. 57 IN A 220.181.38.150 www.a.shifen.com. 57 IN A 220.181.38.149
中间的数字表示 TTL,即可以缓存记录的时间间隔 。
最后是统计部分,这块没什么好说的了 。
除此之外,dig 还有一些其他查询方式 。
-x 进行反向 DNS 查询
我们知道,DNS 可以把域名转换为 IP,同时也可以把 IP 转换成对应的域名,其中 -x 就是进行反向 DNS 查询,如下所示:
DNS,这篇给你讲明白了

文章插图
 
图 7-27
可以看到 QUESTION SECTION 和 ANSWER SECTION 中都是 PTR,这表示反向 DNS 查询,后面的域名显示了这是一个 google 的 DNS 。反向 DNS 查询中,IP 地址要加上 in-addr.arpa 。
同样的,我们还可以在查询的时候加上 in-addr.arpa,其结果是一样的 。
DNS,这篇给你讲明白了

文章插图
 
图 7-28
我们通常喜欢使用 -x,因为这会减少输入的工作量 。
+noall +answer
这告诉 dig 只打印 DNS 响应中的ANSWER部分内容,如下所示
DNS,这篇给你讲明白了

文章插图
 
图 7-29
+short
dig +short 就像是 dig +noall +answer 的阉割版,它只显示很少的内容 。
DNS,这篇给你讲明白了

文章插图
 
图 7-30
+trace
dig +trace 能够模仿 DNS 解析器在查找域名时的做法,即它会从根服务器开始查询,一直到权威 DNS 服务器 。相当于链路追踪的一个作用 。
DNS,这篇给你讲明白了

文章插图
 
图 7-31
除了我们上面介绍的 nslookup 和 dig 之外,还有其他 DNS 检测工具,比如 dog 、drill,都是很好用的 DNS 网络排查工具,大家可以查阅相关资料进行使用,这里我就不再进行详细的介绍了 。
DNS 安全
几乎所有的网络请求都会经过 DNS 查询,而且 DNS 和许多其他的 Internet 协议一样,系统设计时并未考虑到安全性,并且存在一些设计限制,这为 DNS 攻击创造了机会 。
DNS 攻击主要有下面这几种方式: