zoukankan      html  css  js  c++  java
  • 信息收集-DNS

    首先更正一个小白很普遍的错误观点,www.baidu.com(严格上是www.baidu.com. 这个点是根的意思,所有的记录从这里开始)并不是一个真正意义上的域名,而是百度服务器的A记录,baidu.com才是百度服务器的域名。

    DNS解析流程

    1:自己的电脑的网络配置中会指定一个本地DNS服务器,当发起网络请求时,主机先问问本地DNS服务器,DNS服务器返回对应域名的的ip地址。

    2:当然这个本地的DNS服务器一开始是不知道的,它会去问根域服务器(即.域)。

    3:根域服务器也不知道,但是会返回.com域的域名服务器的地址,让本地服务器问问.com服务器。

    4:这时本地DNS服务器就会去问.com服务器。当然了,.com服务器也不可能知道,它会返回一个存储了baidu.com这个域名的服务器的地址,让本地服务器问问baidu.com域名服务器服务器。PS:这里就比较接地气了,有过建站经历的小伙伴都知道,这个存储了biadu.com域名的服务器就是就是我们域名解析时所用的服务器。

    5:这时本地服务器就回去问记录了baidu.com这个域名的服务器,问问它知不知道www.baidu.com对应的ip地址是多少。这个服务器一查,确实有一个域名是baidu.com的主机进行了A记录解析(即www.baidu.com),对应着一个ip地址,它会将ip地址返回给本地DNS服务器。

    6:本地服务器拿到这个ip,二话不说现在本地缓存一份,然后再把www.baidu.com对应的ip地址返回给自己的电脑。

    7:当有其他电脑问本地DNS服务器www.baidu.com对应的ip是多少时,本地DNS服务器发现自己的缓存中有这条记录(即步骤6),就会直接返回www.baidu.com的ip。

    主机和本地服务器之间的查询称为递归查询,而本地服务器与各种域名服务器之间的查询称为迭代查询。

    当然了,对于百度这种访问量特别大的网站,我们访问百度通常都是从步骤7开始的,然后就直接结束了。大概只有在本地服务器清除缓存的一瞬间才能有1-7的完整步骤吧。

    除了A记录还有C name、NS、MX、ptr记录。

    C name:别名记录,将一个域名解析成另一个域名;

    NS:域名服务器的地址记录;

    MX:邮件交换记录;

    ptr:反向记录,将ip解析成域名。

    有兴趣的同学可以安装思科的网络模拟器Cisco Packet Tracer感受一下完整的解析流程。

    接下来演示Kali中nslookup的解析:

    由于解析百度过程比较简单,所以这里使用新浪作为例子。

    如图,解析www.sina.com显示这是一个C name记录,对应了us.sina.com.cn.这条记录,继续解析us.sina.com.cn.发现这也是一条C name记录,对应spool.grid.sinaedge.com.这条记录,再查询spool.grid.sinaedge.com.发现这才是一条A记录,对应ip为117.21.216.80

    我们可以ping新浪:

    发现对应的ip地址就是之前查询到的ip

  • 相关阅读:
    pysocketserver
    协程
    py模块和包
    py网络编程
    GridView绑定技巧终结者
    iOS 证书/私钥/代码签名/描述文件
    八拜之交
    POJ3230(Travel)
    POJ2553(The Bottom of a Graph)
    动态规划的实质
  • 原文地址:https://www.cnblogs.com/angiejc/p/9351008.html
Copyright © 2011-2022 走看看