深入理解DNS(域名系统)

来源:互联网 发布:数据服从正态分布 编辑:程序博客网 时间:2024/06/07 01:24
  1. 何为DNS
    DNS,全称Domain Name System,即域名系统。
    干啥的?实现主机名和IP地址的转换,将容易记忆的主机名转换成主机IP地址。

  2. DNS的历史
    起初,在早期的ARPANET时代,使用一个简单的文本文件来记录所有的计算机名和他们的IP地址,这个文件就是我们熟知的hosts.txt。并且,每天晚上所有主机都要从一个维护文件的站点获取新版本的文件。后来,这个文件变得越来越大,且频繁出现主机名冲突。在1983年,人们发明了域名系统

  3. DNS的名字空间
    - 命名层次的顶级有一个专门的组织负责管理,这个组织就是ICANN(Internet 名字与数字地址分配机构)。
    - Internet被划分超过250个顶级域名,顶级域名又可以进一步划分,即出现多级域名。
    - 顶级域名分为两类:通用的 和 国家或地区的
    - 域名不区分大小写,edu、EDU、eDu的解析结果是一样的。
    - 各部分域名不超过63个字符,总的域名不超过255个字符。

  4. 域名服务器

    • 提供名字的解析
    • 域名解析是分布式的数据库系统,由区域管理员来划分边界,每个区域有自己的DNS服务器。
    • 一台域名服务器必须管理所有以他为后缀的域名。并且要知道如何找到根服务器下一层的服务器

      域名服务器的例子

      这里每个圆圈是一个区域,每个区域有一个域名服务器。.yale.edu的域名服务器,管理着所有以.yale.edu结尾的域名。即.yale.edu的域名服务器必须知道,.cs.yale.edu的域名服务器的地址。而且,他必须知道根服务器地址(这个在域名解析过程详细介绍)。*

  5. 域名资源记录

    • 资源记录的组成
      domain_name time_to_live class type value
    • time_to_live指明该记录的保存时间。
    • class,对于Internet信息,总是IN。
    • type指出记录字段的类型
    SOA:提供管理者的Email地址等A记录: 将域名指向一个IPv4地址(例如:8.8.8.8CNAME:将域名指向另一个域名(例如www.qcloud.comMX: 将域名指向邮件服务器地址TXT: 可任意填写,长度限制255,通常做SPF记录(反垃圾邮件)NS: 域名服务器记录,将子域名指定其他DNS服务器解析AAAA:将域名指向一个iPv6地址(例如:ff06:0:0:0:0:0:0:c3SRV:记录提供特定服务的服务器(例如_xmpp-server._tcp)显性URL:将域名301重定向到另一个地址 隐性URL:类似显性URL,但是会隐藏真实目标地址 
  6. 域名的解析过程

    • 通过UDP来进行请求和应答。

      域名解析过程

    第一步,找根服务器查询cs.sjtu.edu.cn,根服务器返回cn服务器的地址(为啥子?因为在根服务器中只记录了顶级域名的记录,看到地址中的顶级域名为cn,根服务器只能说“我只知道cn服务器在哪里,你再去找cn的服务器吧“)。
    第二步,本地服务器找cn服务器查询cs.sjtu.edu.cn,cn服务器返回edu.cn的地址。
    第三步,第四步……最终,从管理cs.sjtu.edu.cn的sjtu.edu.cn处获得cs.sjtu.edu.cn的地址。

    • 权威记录和缓存记录:权威记录,查询top.cs.vu.nl时,若是从cs.vu.nl服务器上取得,那么他就是权威记录。若是从本机缓存中取得,那么他就是缓存记录。
  7. 两项重要的技术
    复制:每个根服务器复制成许多份,存于世界各地,实际使用时,找物理上最近的服务器。
    缓存:每个服务器都保存一个域名缓存,当查找一个新的服务器时,DNS会将它放到存缓中。

原创粉丝点击