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
- 通用的(generic)
- 每个(子)域下面可划分为若干子域(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域空间层次结构中)
名字解析过程:目标名字在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协议报文格式