DNS(Domain Name System)寻址过程如下:
- 用户在浏览器中输入要访问的域名(例如,www.163.com)。
- 浏览器询问操作系统DNS解析器域名(www.163.com)对应的IP地址。
- 操作系统中的DNS解析器收到请求后开始检查本地DNS缓存,如果之前已经解析过该域名且缓存未过期,将直接返回缓存中的IP地址,跳过后续步骤。
- 如果本地DNS缓存中没有找到对应的IP地址,操作系统的DNS解析器将发送一个DNS查询请求给配置的本地DNS服务器。
- 本地DNS服务器接收到DNS查询请求后,首先检查自身的DNS缓存,如果有对应的IP地址缓存,将直接返回给操作系统的DNS解析器。
- 如果本地DNS服务器的缓存中没有找到对应的IP地址,它将向根域名服务器发送一个递归查询请求,询问它关于该域名的信息。
- 根域名服务器收到递归查询请求后,根据请求中的域名后缀(例如,.com)提供对应的顶级域名服务器的IP地址(图中为了示意用了c.top-server.net,实际上是一个具体的IP地址)给本地DNS服务器。
- 本地DNS服务器收到根域名服务器的响应后,再次向顶级域名服务器发送一个递归查询请求,询问它关于该域名的信息。
- 顶级域名服务器收到递归查询请求后,根据请求中的域名(例如,163.com)提供权威域名服务器的IP地址(图中为了示意用了a.auth-server.net,实际上是一个具体的IP地址)给本地DNS服务器。
- 本地DNS服务器收到顶级域名服务器的响应后,再次向权威域名服务器发送一个递归查询请求,询问它关于该域名的信息。
- 权威域名服务器收到递归查询请求后,查询自身的资源记录,找到与请求匹配的域名记录(例如,A记录、CNAME记录等),并将IP地址作为响应返回给本地DNS服务器。
- 本地DNS服务器收到权威域名服务器的响应后,将响应中的IP地址存储到本地DNS缓存,并将该IP地址作为响应返回给操作系统的DNS解析器。
- 操作系统的DNS解析器将收到的IP地址返回给浏览器。
- 浏览器使用收到的IP地址与服务器建立TCP/IP连接,发起HTTP请求,最终访问到目标网站。
这是一个简化的DNS寻址过程,涉及的服务器和缓存层级可能更多。在实际情况中,还可能会存在负载均衡、缓存刷新、TTL(Time to Live)等因素影响DNS寻址过程。
几个相关的概念:
本地DNS服务器:本地DNS服务器是你的互联网服务提供商(ISP)或网络路由器上配置的服务器。当你在浏览器中输入一个网址时,本地DNS服务器是第一个接收到这个请求的服务器。它负责查询其他DNS服务器以获取相应的IP地址。本地DNS服务器通常也会缓存已解析的域名,以便提高查询速度。
根域名服务器:根域名服务器是DNS层次结构的最高级别。全球只有一组根域名服务器,它们分布在世界各地。根域名服务器存储了顶级域名服务器的地址,例如.com、.org、.net等。当本地DNS服务器无法解析域名时,它会向根域名服务器发送查询请求,以获取下一步查询的顶级域名服务器的地址。
顶级域名服务器:顶级域名服务器是负责管理特定顶级域名(TLD)的服务器。每个顶级域名(如.com、.org、.net等)都有自己的顶级域名服务器。当根域名服务器返回顶级域名服务器的地址时,本地DNS服务器会发送查询请求到相应的顶级域名服务器。
权威域名服务器:权威域名服务器是存储特定域名相关信息的服务器。例如,如果你的查询是针对example.com域名的,本地DNS服务器将向example.com的权威域名服务器发送查询请求。权威域名服务器负责提供与该域名相关的IP地址、邮件服务器等记录。
版权声明:本文为gly1256288307原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。