趣谈网络协议——DNS协议

DNS服务器

DNS 服务器,一定是高可用、高并发和分布式的。于是,就有了树状的层次结构。
在这里插入图片描述

  • 根 DNS 服务器 :返回顶级域 DNS 服务器的 IP 地址
  • 顶级域 DNS 服务器:返回权威 DNS 服务器的 IP 地址
  • 权威 DNS 服务器 :返回相应主机的 IP 地址

DNS 解析流程

(1)电脑客户端会发出一个 DNS 请求,发给本地域名服务器 (本地 DNS)。如果是通过 DHCP 配置,本地 DNS 由你的网络服务商(ISP),如电信、移动等自动分配,它通常就在你网络服务商的某个机房。
(2)本地 DNS 收到来自客户端的请求。这台服务器上缓存了一张域名与之对应 IP 地址的大表格。如果能找到,则直接返回 IP 地址。如果没有,本地 DNS 会查询根域名服务器。根域名服务器是最高层次的,全球共有 13 套。它不直接用于域名解析,但能指明一条道路。
(3)根 DNS 收到来自本地 DNS 的请求,发现后缀是 .com,这个域名是由.com 区域管理,则返回顶级域名服务器的地址。
(4)本地 DNS 转向问顶级域名服务器,询问URL对应的IP地址。顶级域名服务器就是大名鼎鼎的比如 .com、.net、 .org 这些一级域名,它负责管理二级域名,能提供一条更清晰的方向。
(5)顶级域名服务器返回负责该URL区域的权威 DNS 服务器的地址。
(6)本地 DNS 转向权威 DNS 服务器,询问该URL对应的 IP 。权威 DNS 服务器是域名解析结果的原出处。为啥叫权威呢?就是我的域名我做主。
(7)权限 DNS 服务器查询后将对应的 IP 地址 X.X.X.X 告诉本地 DNS。
(8)本地 DNS 再将 IP 地址返回客户端,客户端和目标建立连接。
在这里插入图片描述

负载均衡

DNS 是递归查询过程,需要做好负载均衡工作。

内部负载均衡

程序配置过程中应该将配置文件设置为域名,而不是IP地址。因为一旦这个后端程序因为某周原因,换了另一台机器,如果配置的是IP需要修改配置文件。同时,设置URL方便后端服务器进行扩展。

全局负载均衡

为了保证我们的应用高可用,往往会部署在多个机房,每个地方都会有自己的 IP 地址。当用户访问某个域名的时候,这个 IP 地址可以轮询访问多个数据中心。如果一个数据中心因为某种原因挂了,只要在 DNS 服务器里面,将这个数据中心对应的 IP 地址删除,就可以实现一定的高可用。另外,应用程序可以就近访问服务器。这就是全局负载均衡的概念。

示例:DNS 访问数据中心中对象存储上的静态资源

在这里插入图片描述

  1. 当一个客户端要访问object.yourcompany.com 的时候,需要将域名转换为 IP 地址进行访问,所以它要请求本地 DNS 解析器。
  2. 本地 DNS 解析器先查看看本地的缓存是否有这个记录。如果有则直接使用,因为上面的过程太复杂了,如果每次都要递归解析,就太麻烦了。
  3. 如果本地无缓存,则需要请求本地的 DNS 服务器。
  4. 本地的 DNS 服务器一般部署在你的数据中心或者你所在的运营商的网络中,本地 DNS服务器也需要看本地是否有缓存,如果有则返回,因为它也不想把上面的递归过程再走一遍。
  5. 至 7. 如果本地没有,本地 DNS 才需要递归地从根 DNS 服务器,查到.com 的顶级域名服务器,最终查到 yourcompany.com 的权威 DNS 服务器,给本地 DNS 服务器,权威 DNS 服务器按说会返回真实要访问的 IP 地址。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值