DNS 简述

in cn •  8 months ago 

DNS(Domain Name system)总体思路和目标口DNS的主要思路

  • 分层的、基于域的命名机制
  • 若干分布式的数据库完成名字到IP地址的转换
  • 运行在UDP之上端口号为53的应用服务
  • 核心的Internet功能,但以应用层协议实现(在网络边缘处理复杂性)

总的来说,就是一个基于应用层UDP格式的协议,使用分层多个树子域结构形式,提供域名到IP映射分布式存储和查询功能的协议。

DNS主要目的:

  • 实现主机名-IP地址的转换(name/IP translate)
  • 其它目的
  • 主机别名到规范名宁的转换:Host aliasing
  • 邮件服务器别名到邮件服务器的正规名字的转换:Mail serveraliasing
  • 负载均衡:Load Distribution

DNS域名结构(名字空间name space)

  • 一个层面命名设备会有很多重名
  • DNS采用层次树状结构的命名方法
  • Internet 根被划为几百个顶级域(top lever domains)
    • 通用的(generic)
      .com; .edu;.gov;.int; .mil ; .net ;.orgfirm ;.hsop ;.web:.arts;.rec
    • 国家的(countries)
      .cn ;.us ;nl;jp
  • 每个(子)域下面可划分为若干子域(subdomains)
  • 树叶是主机

目前DNS,大体上有13个根域名服务器(root domain name server)。


解析功能: 名字服务器(Name Server)
名字服务器不是单台机器或者设备,而是基于域名可以划分为多个子域形式,对应于区域(zone)的概念。

权威DNS服务器:组织机构的DNS服务器,提供组织机构的服务器(如web,email)可以访问的主机和IP之间的映射。
TLD顶级DNS服务器:负责顶级域名(eg: com,org,net) 和所有国家级别(eg: cn,uk,jp)

zone:

  • 区域的划分有区域管理者自己决定
  • 将DNS名字空间划分为互不相交的区域,每个区域都是树的一部分

名字服务器:

  • 每个区域都有一个名字服务器:维护着它所管辖区域的权威信息(authoritative record)
  • 名字服务器允许被放置在区域之外,以保障可靠性

整体上就能将树形域名空间,通过逻辑上的zone划分成多个不同子zone, 每个子zone都有一台自身域的Name Server,维护当前zone的名字和IP映射关系。

Zone Name Server 分布式存储的资源记录( Resource Records):维护域名- IP的映射关系。
存储的RR记录格式:(name, value,type,ttl)
对于type字段的说明:

  • Type =A ( name:主机,value:ip地址)
  • Type = CNAME( name:规范名称的别名,value: 当前域名所在子域的规范格式的名称)
  • Type = Ns (name: 域名,value: 该域名的权威服务器的域名)

域名解析过程

  • 每个ISP(居民区的ISP、公司、大学)都有一个本地DNS服务器(也称为“默认名字服务器”)
  • 当一个主机发起一个DNS查询时,查询被送到其本地DNS服务器(起着代理的作用,将查询转发到DNS域空间层次结构中)

dns-work.jpg

名字解析过程:目标名字在Local Name server中

  • 情况1:查询的名字在该区域内部
  • 情况2:缓存(cashing)

当于本地名字服务器不能解析名字时,联系Root Name Server顺着根-TLD一直找到权威Name Server(树层往上追溯)

递归查询:
名字解析都放在当前联络的Name Server上,会有问题:root服务器负担太重,可以使用迭代查询(iterated queries)

迭代查询:当前联络的服务器给出可以联系的服务器的名字(“我不知道这个名字,但可以向这个服务器请求’)

  • 主机顺.poly.edu想知道主机gaia.cs.umass.edu的IP地址
  • 根(及各级域名)服务器返回的不是查询结果,而是下一个NS(name server)的地址
  • 最后由权威名字服务器给出解析结果

dns-look.jpg

DNS协议报文格式

image.png

image.png

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!