DNS工作原理
一、简介
它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。
DNS使用TCP和UDP端口53。当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。
DNS协议是用来将域名转换为IP地址(也可以将IP地址转换为相应的域名地址)。
作用:
DNS是一种可以将域名和IP地址相互映射的以层次结构分布的数据库系统。
二、体系
2.1 报文:
DNS 定义了两种报文 ,一种为查询报文;另一种是对查询报文的响应,称为响应报文。无论是查询报文还是响应报文,都有12个字节的头和查询问题。
2.2 服务器体系
1.根域名服务器:
- 最高层次的域名服务器,也是最重要的域名服务器,本地域名服务器如果解析不了域名就会向根域名服务器求助。
- 全球共有13个不同IP地址的根域名服务器,它们的名称用一个英文字母命名,从a一直到m。
- 每个根服务器都有镜像服务器,每个根服务器与它的镜像服务器共享同一个 IP 地址
- 所有的根域名服务器都知道所有的顶级域名服务器的域名和地址
2.顶级域名服务器
- 负责管理在该顶级域名服务器下注册的二级域名。
3.权限域名服务器
- 负责一个区的域名解析工作
4.本地域名服务器
- 当一个主机发出DNS查询请求的时候,这个查询请求首先就是发给本地域名服务器的。
三、工作原理
3.1解析步骤
有一台计算机:通过ISP(互联网服务提供商)接入了互联网,那么ISP就会给我分配一个DNS服务器,后续使用此DNS作为作为迭代查询的首选域名服务器(也可以手动配置首选域名服务器)
在浏览器输入url后(www.baidu.com):
- 先在检查本地的Hosts表文件,看其中是否已经有相应的域名与IP地址的对应关系,如果有就会直接采用会被标记为非权威服务器的应答。
- 然后向首选域名服务器的缓存中查找,如果有对应关系则返回
- 如果没有会从配置文件里面读取13个根域名服务器的地址
- 然后首选服务器向其中一台根域名服务器发起请求
- 根服务器拿到这个请求后,知道他是com这个顶级域名下的,所以就会返回com域中的域名服务器记录给首选服务器
- 然后首选服务器再次向该域名服务器(com)发起请求, 然后发现是baidu.com这个域(权威域名服务器),于是返回该域的服务器记录给首选服务器
- 首选服务器又向baidu.com这个权威域名服务器发起请求,然后该域查到有www的这台主机,就把这个IP返回给首选服务器了。
- 然后首选服务器拿到IP之后,就返回给客户端浏览器,并且把这映射关系保存在告诉缓存中
3.2注意:
-
域名对大小写不敏感
-
域名解析总体可分为两大步骤
第一个步骤是本机向本地域名服务器发出一个DNS请求报文,报文里携带需要查询的域名;
第二个步骤是本地域名服务器向本机回应一个DNS响应报文,里面包含域名对应的IP地址。 -
DNS的查询顺序
1、本地hosts文件
2、本地DNS缓存
3、本地DNS服务器
4、发起迭代查询 -
使用递归查询+迭代查询(从主机视角看是递归,从首选服务器来看是递归)