DNS的基础知识(1)

409 阅读4分钟

DNS的基础知识(1)

写在文章前

新坑:网络协议的那些事。 文章如果有不当的地方,欢迎在评论中指正,比心。

DNS

为了提升DNS 的解析性能,网络会就近部署DNS缓存服务器。根据DNS的解析规则,最终解析出客户端请求的网址的ip地址。

DNS的作用: 将域名映射为ip地址以及负载均衡

DNS服务器解析流程

关键名词

  • 根域名服务器: 不用于域名解析,只负责转告顶级域名的地址
  • 顶级域名服务器: 负责转告权威DNS服务器的地址(.com)
  • 权威域名服务器: 负责域名解析,将域名对应的ip告诉本地DNS
  • 本地域名服务器 (本地 DNS): 如果是通过 DHCP 配置,本地 DNS 由你的网络服务商(ISP),如电信、移动等自动分配,它通常就在你网络服务商的某个机房。

流程描述

客户端: www.163.com 的ip地址是啥?

本地DNS: 稍等我看下。

(疯狂操作)

round1:本地DNS缓存

本地DNS问本地DNS缓存: hello, 知道www.163.com 的ip吗?

本地DNS缓存: 母鸡啊,看来你要去问根域名服务器了。

本地DNS服务器:好吧。我去问问根域名服务器。

round2:根域名服务器

本地DNS服务器问根域名服务器:hello, 知道www.163.com 的ip吗?

根域名:我虽然是根域名,但是我不负责解析ip哟。我只负责告诉你要找谁。你看你的后缀.com,那是.com顶级服务器所管,这是.com的地址,你去问他吧

本地DNS服务器: 好吧,我去问问.com 顶级服务器

round3:顶级域名服务器

本地DNS服务器问顶级域名服务器:hello, 知道www.163.com 的ip吗?

顶级域名服务器: 小伙子,你问我就问对人了,www.163.com 的ip:x.x.x.x

本地DNS服务器: 好嘞我去告诉客户端

(疯狂操作回来)

本地DNS服务器:hello,亲,久等了。经过我们不懈的努力,帮您查询到www.163.com的ip是x.x.x.x. 客户端: 哦好的

负载均衡

在实际的配置上,一个域名一般配置了多个ip地址,这样做的原因有两个。

  1. 如果一个地址对应一个ip的话,那么实现的是一对一,但是一旦这个ip挂掉,整个服务都不可用
  2. 用户进行应用的访问的时候,如果想要实现ip更改,只需要在dns中将ip更改。方便运维,不需要手动修改用户访问应用的地址。

如果一个域名配置了多个ip,那么DNS可以帮助我们实现局部负载均衡和全局负载均衡。

局部负载均衡

当访问量很大的时候,一个ip肯定撑不住。 在DNS配置好负载策略,比如这次返回第一个ip,下次返回第二个,就可以实现局部的负载均衡。

全局负载均衡

  1. 高可用

多地的数据中心都配置为同样的域名,一旦某个数据中心挂掉,只需要删除DNS的ip就可以实现高可用

  1. 按照地理位置进行资源的就近访问,比如说上海访问上海中心的,北京访问北京中心的。

例子:完整的具有数据中心的域名访问

round1: 客户端:我在上海,我是移动用户,我要访问www.163.com ,ip是什么 本地DNS: 稍等

(又开始疯狂操作) 本地DNS解析器:缓存你有ip吗? 缓存: 么得。

本地DNS服务器问自家缓存:缓存你有ip吗? 服务器缓存:么得。 本地服务器:完蛋玩意。

本地DNS服务器问根域名服务器: 根域名,你有 ip吗? 根域名:跟你讲过了啊,老子不是解析用的,不跟你说了吗,你看你的后缀,又点又com。去问那个.com顶级域名啊啊啊啊 本地服务器:行吧

本地DNS服务器问顶级域名: 顶级你有ip吗 顶级域名:你不是来过吗,去问163的权威域名啊啊啊啊

本地DNS服务器问权威域名:权威你有ip吗? 权威:这个dns莫不是智障,前两天刚来过,给给给。

(疯狂操作结束) 非大型的需要全局负载的情况: 客户端拿到多个ip地址,进行轮询。实现简单的负载均衡

如果大型的:

本地DNS服务器问权威域名:权威你有ip吗? 权威:小d啊,我们的地方有点多,你不能直接去请求。你看你是移动吧,你要去问GSLB请求www.yd.163.com。 dns:。。。。好吧

本地dns问GSLB: www.yd.163.com 的ip是啥呀? 1号GSLB: 小D 啊, 我的管辖范围太大,我看你来自上海,你去问问上海的GSLB dns: .... 好

本地DNS问上海GSLB: www.yd.163.com 的ip到底是啥呀? 上海GSLB: 诶嘿嘿,是x.x.x.x dns: 终于知道了。

本地DNS最终将ip地址返回给客户端。