DNS原理

Internet域名体系

最初所有机器使用的名字构成了一个非等级的名字空间,由字符序列组成所有的名字。网络信息中心NIC(Network Information Center)管理这个名字空间,并负责接纳新名字。非等级名字空间由于自身的特点不能管理大量的机器名字,主要原因如下所示:

  • 名字由字符序列组成,存在潜在的命名冲突。
  • 名字空间的管理结构位于一个站点,机器数量的不断增多对管理工作带来很大负担。
  • 名字到IP地址的映射经常发生变化,导致维护域名空间的工作量巨大。

因此,TCP/IP把DNS的域名设计成了分级的结构。Internet域名结构由TCP/IP协议栈中的DNS进行定义。DNS把因特网划分成多个顶级域,如表1所示为每个顶级域的域名。顶级域采用组织模式和地理模式的划分模式。地理模式按照国家进行划分,每个申请加入Internet的国家都要向NIC注册一个顶级域名,如cn代表中国

顶级Internet域名

含义

com

商业组织

edu

教育机构

gov

政府机构

mil

军事部门

net

主要网络支持中心

int

国际组织

org

其他组织

国家代码

其他各个国家(按照地理模式划分)

、us代表美国等。

NIC将顶级域的管理权分派给由其指定的管理机构,由这些管理机构再对被授权管理的域继续进行划分,从而形成了二级域。负责划分二级域的管理机构可以授权其下属的管理结构,由它们继续划分域。由此下去,便形成了层次型的Internet域名体系结构。

静态域名解析

域名解析分为动态域名解析和静态域名解析。在解析域名时,首先采用静态域名解析的方法,如果静态解析不成功,再采用动态域名解析的方法。

IPv4静态域名解析是通过静态域名解析表进行的,即手动建立域名和IPv4地址之间的对应关系表,该表的作用类似于Windows 9X操作系统下的hosts文件,可以将一些常用的域名放入表中。当DNS Client需要域名所对应的IPv4地址时,即到静态域名解析表中去查找指定的域名,从而获得所对应的IP地址,提高域名解析的效率。

动态域名解析

动态域名解析需要专用的域名解析服务器(DNS Server)运行域名解析服务器程序,提供从域名到IP地址的映射关系,负责接收客户提出的域名解析请求。

DNS Client和DNS Server的交互,即动态域名解析的工作过程如下所示:

图1 动态域名解析原理图
 

图1中,地址解析器(Resolver)和缓存区(Cache)集成在一起构成DNS客户端(DNS Client),它的作用是接收用户程序(例如Ping、Tracert)的DNS请求,并对其作出回应。一般来说,用户程序、地址解析器和缓存区是在同一台主机上,DNS Server和它们在不同的主机上。

  1. 用户使用域名访问某些应用服务时,用户程序(如ping、telnet等)首先向DNS Client的地址解析器发出DNS请求。

  2. 地址解析器收到DNS请求后,首先查询本地域名缓存。
    • 如果本地域名缓存中存在该域名对应的映射表项,地址解析器就直接将域名对应的IP地址返回给用户程序。
    • 如果本地域名缓存中不存在所要查找的映射表项,地址解析器就向DNS Server发送查询请求报文。
  3. DNS Server收到查询报文后,首先判断请求的域名是否处于自己被授权管理的子域里,再根据不同的判断结果,向DNS Client发送相应的响应报文。
    • 如果请求的域名在自己被授权管理的子域范围之内,该DNS Server首先从自己的数据库中查找域名对应的IP地址。
    • 如果请求的域名不在被授权管理的子域范围之内,该DNS Server就将请求交给上一级的DNS Server处理,直到完成解析,将解析的结果返回给DNS Client。
  4. DNS Client的地址解析器接收并解析DNS Server发回来的响应报文,将解析结果返回给用户程序。

每次动态解析成功的域名与IP地址的映射均存放在动态域名缓存区中,当下一次查询相同域名的时候,就可以直接从缓存区中读取,不用再向域名服务器进行请求。缓存区中的映射在一段时间后会被老化删除,以保证及时从域名服务器得到最新的内容。老化时间由域名服务器设置,DNS Client从协议报文中获得老化时间。

域名后缀列表功能

动态域名解析支持域名后缀列表功能。用户可以预先设置一些域名后缀,在域名解析的时候,用户只需要输入域名的部分字段,系统会自动将输入域名加上不同的后缀进行解析。

例如,用户想查询域名“example.com”,那么可以在后缀列表中配置com,然后输入“example”,系统会自动将输入域名与后缀连接成“example.com”进行查询。使用域名后缀的时候,可能会出现以下几种情况:

  • 用户输入的域名中没有“.”

    比如“example”,系统认为这是一个主机名,会首先加上域名后缀进行查询。如果所有域名都查询失败,最后用最初输入的域名进行查询。

  • 用户输入的域名中间有“.”

    比如“www.example”,系统直接用它进行查询。如果查询失败,再依次加上各个后缀进行查询。

  • 用户输入的域名最后有“.”

    比如“example.com.”,系统首先会将输入域名最后的“.”去掉,用剩下的部分查询,如果没有成功,再依次加上各个后缀进行查询。

DNS查询类型

Router的IPv4域名解析服务系统支持以下DNS查询类型:

  • A类查询是最常用的查询类型,用于请求获得域名对应的IP地址。例如在ping和tracert过程中,可以ping或tracert一个域名,此时ping或tracert作为用户程序会向DNS Client查询该域名对应的IP地址。如果DNS Client没有该域名对应的IP地址信息,DNS Client就会向DNS Server发起A类查询,获取该域名对应的IP地址,完成ping和tracert的功能。

  • PTR查询是指DNS Client借助PTR类记录根据IP地址获取对应的域名。PTR类记录是指DNS Server上提供给PTR类查询的域名与IP地址映射关系表。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值