DNS入门:域名解析流程详解
时间:2023-02-02 11:04:01 | 来源:建站知识
时间:2023-02-02 11:04:01 来源:建站知识
当我们需要向互联网请求资源时,需要获取资源所在服务器的IP地址,以进行通信。而实际上,IP地址由32位的二进制数字组成,即使是点分十进制的IP地址也很难记忆。但服务器主机名则比较容易记住。故而,需有一个主机名到IP的映射关系,以获取主机服务器对应的IP地址。DNS(域名系统)即保存了互联网上所有域名与IP的映射关系,通过主机名获取对应主机IP的流程即DNS解析流程。
DNS解析授权实现
从DNS域名结构上我们得知,域名是分层级的,最上层为根域,下一级为顶级域(Top
Level Domain,如com, org等)。域名解析授权是个树状结构,自上而下的分层体系。
首先,根DNS把顶级域名按后缀分别授权给不同的DNS,以有利于管理。修改顶级域名的授权要到根DNS上才能完成。我们可以用dig +@某根服务器IP com. ns来查看根服务器下com顶级域名服务器授权的NS服务器详情。
可以看到,com 顶级域名服务器有13个NS,每个NS分别有一个IPv4地址和IPv6地址。
接下来,com 顶级域名服务器再将以com结尾的后缀(譬如
http://wangsu.com)授权给对应企业或组织的DNS服务器解析。指定或修改
http://wangsu.com的权威DNS要到顶级域名DNS服务器上操作,一般可通过域名提供商(新网,万网,二牛等)的域名管理平台来操作顶级域名DNS上的记录。
DNS分级查询
DNS是分级别进行授权,由根授权一些NS管理com区的域名,再由com授权
http://wangsu.com区管理自己区的域名,故DNS查询时,在没有缓存的情况下,也是由根DNS开始查询,一次查询每一级的NS记录,最终得到对应域名的IP地址。
DNS解析流程详解
本小节以网宿域名www.wangsu.com域名的对应的IP,介绍DNS解析流程。
终端用户发出DNS请求时,本地DNS服务器接收到请求,首先检查缓存是否有数据,若有,则直接使用缓存数据。接下来介绍的流程为没有任何缓存的场景。
1. 终端用户DNS客户端向LocalDNS发起递归查询。递归查询指如果终端用户所请求的LocalDNS服务器不知道被查询的域名的IP地址,则以DNS客户端的身份,向其它域名服务器继续发出查询请求报文(即替主机继续查询),而不是让主机自己进行下一步查询。因此,递归查询返回的查询结果或者是所要查询的IP地址,或者是报错,表示无法查询到所需的IP地址。
2. LocalDNS检查本地对应缓存无数据后,则向根DNS服务器发起迭代查询请求。任何LocalDNS都需知道根DNS服务器的IP地址(全球共13台)。迭代查询指域名服务器或者给出最终结果,或者告诉DNS客户(此处指LocalDNS)应去哪些DNS服务器查询。
3. 根DNS服务器告诉LocalDNS该域名已授权给com区管理,应去com DNS服务器查询,并给出了com DNS服务器的IP地址。LocalDNS将com DNS服务器及其IP地址加入到缓存,下次DNS请求,在缓存未过期的情况下,授权给com 区的域名需向com DNS服务器请求查询时,直接往com DNS服务器发查询请求,不再向根DNS服务器请求。
4. LocalDNS服务器根据根DNS服务器响应的结果向com DNS服务器发起迭代查询请求。
5. com DNS服务器告诉LocalDNS服务器该域名已授权给
http://wangsu.com区管理,应去
http://wangsu.comDNS服务器查询,并给出
http://wangsu.com DNS服务器的IP地址。LocalDNS将
http://wangsu.comDNS服务器及其IP地址加入到缓存,下次DNS请求,在缓存未过期的情况下,授权给
http://wangsu.com区的域名需向
http://wangsu.com DNS服务器请求查询时,直接往对应 DNS服务器发查询请求,不再向根DNS服务器及com DNS服务器请求。
6. LocalDNS服务器根据 com DNS服务器响应的结果向
http://wangsu.com DNS服务器发起迭代查询请求。
7.
http://wangsu.com DNS服务器给出域名的IP地址。LocalDNS将www.wangsu.com
IP地址加入到缓存,下次相同的DNS请求,在缓存未过期的情况下,LocalDNS直接给出该域名的IP地址,不再向权威DNS服务器查询。
8. LocalDNS服务器将该域名对应的IP地址返回给终端用户,DNS客户端将域名对应的IP地址接入缓存。下次请求该域名时,若缓存未过期,DNS客户端直接从缓存取出IP,不再向LocalDNS发起迭代查询。