DNS 是什么?
DNS(Domain Name System,域名系统)是互联网的电话簿。它的作用是 将域名转换为 IP 地址,从而让浏览器可以找到并访问目标服务器。
DNS策略
负载均衡(Load Balancing)
负载均衡是一种通过 返回多个 IP 地址 实现请求分发的方式,用于提升网站的 可用性 和 性能。常见形式包括:
-
轮询(Round-robin)
轮流返回多个服务器的 IP 地址,实现简单的请求分发。 -
地理位置(GeoDNS)
根据用户的地理位置返回就近服务器的 IP,提升访问速度。 -
基于性能的路由
返回响应最快、延迟最低的服务器地址。
故障转移(Failover)
故障转移是指当主服务器不可用时,自动切换到备用服务器的机制:
- 实现方式:
利用监控系统定时检查主服务器健康状态。
如果检测失败,DNS 服务将自动切换返回备用 IP 地址。
DNS 查询过程(以用户访问一个网站为例):
当你在浏览器中输入 www.example.com
并访问网站时,DNS 查询过程大致如下:
-
浏览器缓存
- 首先检查浏览器是否缓存了域名对应的 IP 地址。
- 如果有且没有过期,直接使用。
-
操作系统缓存(DNS Resolver 缓存)
- 如果浏览器没有缓存,会检查操作系统是否缓存了域名对应的 IP 地址。
-
本地域名服务器(通常由 ISP 提供)
- 如果操作系统也没有缓存,查询会被发送到本地域名服务器,继续检查否缓存了域名对应的 IP 地址。
-
根域名服务器
- 本地域名服务器向根域名服务器请求,得到顶级域名服务器地址。
-
顶级域名服务器(TLD)
- 本地域名服务器向顶级域名服务器请求,得到权威域名服务器地址。
-
权威域名服务器(Authoritative DNS)
- 本地域名服务器向权威服务器请求,得到
www.example.com
对应的 IP 地址。
- 本地域名服务器向权威服务器请求,得到
-
返回结果并缓存
- 本地域名服务器把 IP 地址返回给操作系统,再返回给浏览器。
- 三者都同时缓存这个结果。
-
浏览器发起 HTTP 请求
- 浏览器使用拿到的 IP 地址发起 HTTP 请求,加载网站资源。
CDN 与 DNS 的协同
CDN(Content Delivery Network,内容分发网络)是一种将网站内容缓存到全球多个节点(边缘服务器)的技术架构,目的是加速访问、减轻源站压力、提升稳定性、增强安全性。
CDN 的核心工作方式:
当用户访问网站资源时:
- 请求被自动定向到 距离最近的 CDN 节点;
- 如果该节点已缓存目标资源,直接返回,速度快且不依赖源站;
- 如果未缓存,则向源站请求、返回后并缓存,供下次请求使用。
CDN 经常配合 DNS 策略使用,将用户请求引导至最佳节点,实现全局最优访问路径。