DNS
概述
Domain name sysem域名系统:把用户容易记忆的地址“翻译成”计算机能够识别的IP地址。
是一种组织成域层次结构的计算机和网络服务命名系统,用于TCP/IP网络
采用C/S架构,协议运行在UDP上,一般53端口
分为三部分:层次域名空间、解析器、域名服务器
域名和IP地址之间是多对一的关系
层次域名空间:层析树状结构命名方式(顶级域名、二级域名、三级域名、四级域名)
域名解析:正向解析(把域名映射出IP地址)和反向解析(把IP地址映射成域名)
域名服务器:采用客户/服务器模式,被设计出联机分布式的数据库系统及缓存。当客户端需要域名解析时,通过本机DNS客户端构造DNS请求报文,以UDP数据包方式发往本地域名服务器
注意:如果域名服务器采用单点的集中式的设计方式。缺点1)单点故障2)通信容量3)远距离的时间延迟4)维护开销大等问题
原理:
浏览器输入IP地址:直接从主机调用内容
浏览器输入域名:通过域名解析服务器指向对应的主机的IP地址,再从主机调用网站的内容
域名解析过程(8个UDP报文,域名服务器设计使用分布式高速缓存):
- 主机向本地域名服务器发送DNS请求报文dns.abc.com进行递归查询
- 本地域名服务器接收到请求,采用迭代查询,查询本地缓存,如果没有记录 ,以主机的的身份向根域名服务器发送解析请求
- 根域名服务器接收请求,判读该域名是否属于.com域,如果是,将对应的顶级域名服务器dns.com的IP地址返回给本地域名服务器
- 本地域名服务器向根域名服务器dns.com发送解析请求报文
- 根域名服务器dns.com接收请求,判读该域名属于abc.com,下一步应查询权限服务器dns.abc.com的IP地址返回给本地域名服务器
- 本地域名服务器向权限域名服务器dns.abc.com进行查询
- 权限域名服务器告诉本地域名服务器所查询的主机的IP地址
- 本地域名服务器最后把查询结果返回给主机
递归查询:
主机向本地域名服务器查询一般采用递归查询。即:如果主机所询问的本地域名服务器不支持被查询的域名的IP地址,那么本地域名服务器就以DNS客户端的身份向其它根域名服务器机箱发送查询请求报文(继续替主机查询,而不是让主机自己查询)。递归查询结构是IP地址或者报错
迭代查询:
本地域名服务器向根域名服务器的查询是迭代查询。即:当根域名服务器收到本地域名服务器发出的迭代请求报文时,要么给出所要查询的IP地址,要么告诉本地服务器“您下一步应当向那个域名服务器进行查询”,然后本地服务器进行后续查询。