又到了招聘季了,前两天遇到一个面试的小伙伴,他说面试官和他聊得很投机,无心中谈到了 DNS 申请的过程。他一时语塞轻易应酬了两句,尽管对方没有诘问的意思,但最初面试后果也并不现实。本着边面试边学习的态度,咱们来看看 DNS 申请的过程中波及到的定义和原理。
DNS 的含意和构造
家喻户晓,在互联网中是用 IP 来标识一台服务器的。IP 地址尽管可能代表一台设施,然而因为记忆起来比拟艰难,所以将其替换成一个可能了解和辨认的名字,这个名字咱们称作为域名。例如:www.51cto.com 就是一个域名,在域名前面会定义一个 IP 地址用来指向网站服务器。那么问题来了,谁来做这个从域名到 IP 地址的对应呢?答案是通过 DNS 来实现。
DNS 是域名零碎(Domain Name System,缩写:DNS)是互联网的一项服务。它将域名和 IP 地址互相映射的一个分布式数据库,在数据库中保留域名与 IP 的对照关系,从而使人更不便地拜访互联网。
DNS 解析是分布式存储的,从构造上来说最顶层是,根域名服务器(ROOT DNS Server),存储 260 个顶级域名服务器的 IP 地址。对于 Ipv4 来说寰球有 13 个根域名服务器,它贮存了每个域(如.com .net .cn)的解析和域名服务器的地址信息。简略的说,根域名服务器就是寄存顶级域名服务器地址的。
在根域名服务器下一级就是,顶级域名服务器。例如.com 的域名服务器,存储的是一些一级域名的权威 DNS 服务器地址(如 toutiao.com 的 DNS)。
顶级域名又称一级域名,顶级域名能够分为三类,即 gTLD、ccTLD 和 New gTLD:
- gTLD:国内顶级域名(generic top-level domains,gTLD),例如:.com/.net/.org 等都属于 gTLD;
- ccTLD:国家和地区顶级域名(country code top-level domains,简称 ccTLD),例如:中国是.cn 域名,日本是.jp 域名;
- New gTLD:新顶级域名(New gTLD),例如:.xyz/.top/.red/.help 等新顶级域名。
顶级域名服务器就是依据下面三类保留域名 IP 对应数据的。
在顶级域名服务器上面一级就是,本地域名服务器(Local DNS)个别是运营商的 DNS,次要作用就是代理用户进行域名剖析的。
如图 1 所示,DNS 域名服务器分为三级,从上到下别离是根域名服务器(Root DNS Server)、顶级域名服务器(gTLD、ccTLD、New gTLD)、本地域名服务器(Local DNS Server)。
图 1 DNS 分层构造
DNS 解析原理
说完 DNS 的构造,再来谈谈其运行原理。通过用户拜访网页的过程,来形容 DNS 解析以及获取 URL 到 IP 映射的整个过程。其中过程比较复杂,会存在信息的来回传递。画图的过程中咱们会简化信息来回传递的线段,重点放在信息传递的门路,通过 9 步来诠释 DNS 解析过程。
图 2 用户申请以及 DNS 解析的全过程
- 1、用户申请通过浏览器输出要拜访网站的地址,例如:www.51cto.com。浏览器会在本人的缓存中查找 URL 对应 IP 地址。如果之前拜访过,保留了这个 URL 对应 IP 地址的缓存,那么就间接拜访 IP 地址。如果没有缓存,进入到第 2 步。
- 2、通过计算机本地的 Host 文件配置,能够设置 URL 和 IP 地址的映射关系。比方 windows 下是通过 C:windwossystem32driveretchosts 文件来设置的,linux 中则是 /etc/named.confg 文件。这里查找本地的 Host 文件,看是有 IP 地址的缓存。如果在文件中仍旧没有找到映射关系,进入第 3 步。
- 3、申请 Local DNS Server,通过本地运营商获取 URL 和 IP 的映射关系。如果在校园网,DNS 服务器就在学校,如果是小区网络,DNS 服务器是运营商提供的。总之这个服务器在物理地位上离发动申请的计算机比拟近。Local DNS Server 缓存了大量的 DNS 解析后果。因为它的性能较好,物理上的间隔又比拟近,它通常会在很短的工夫内返回指定域名的解析后果。80% 的 DNS 解析需要在这一步就满足了。如果在这一步还是没有实现 DNS 解析,进入第 4 步
- 4、通过 Root DNS Server 进行解析,ROOT DNS Server 会依据申请的 URL 返回给 Local DNS Server 顶级域名服务器的地址。例如:查问的是”.com”的域名,就查问 gTL 对应的域名服务器的地址。
- 5、返回顶级域名服务器的地址当前,拜访对应的顶级域名服务器(gTLD、ccTLD、New gTLD),并且返回 Name Server 服务器地址。这个 Name Server 就是网站注册的域名服务器,下面蕴含了网站 URL 和 IP 的对应信息。例如你在某个域名服务提供商申请的域名,这个域名就由他们的服务器来解析。这个 Name Server 是由域名提供商保护的。
- 6、Name Server 会把指定域名的 A 记录或者 CNAME 返回给 Local DNS Server,并且设置一个 TTL。
A (Address) 记录是用来指定主机名(或域名)对应的 IP 地址记录。用户能够将该域名下的网站服务器指向到本人的 web server 上。同时也能够设置您域名的二级域名。CNAME:别名记录。这种记录容许您将多个名字映射到另外一个域名。通常用于同时提供 WWW 和 MAIL 服务的计算机。例如,有一台计算机名为“host.mydomain.com”(A 记录)。它同时提供 WWW 和 MAIL 服务,为了便于用户拜访服务。服务商从不便保护的角度,个别也倡议用户应用 CNAME 记录绑定域名的。如果主机应用了双线 IP,显然应用 CNAME 也要不便一些。TTL(Time To Live):也就是设置这个 DNS 解析在 Local DNS Server 下面的过期工夫。超过了这个过期工夫,URL 和 IP 的映射就会被删除,须要获取还要申请 Name Server。
- 7、如果此时获取的是 A 记录,那么就能够间接拜访网站的 IP 了。然而通常来说大型的网站都会返回 CNAME,而后将其传给 GTM Server。
GTM(Global Traffic Manager 的简写)即全局流量治理,基于网宿智能 DNS、分布式监控体系,实现实时故障切换及寰球负载平衡,保障应用服务的继续高可用性。传给 GTM 的目标就是心愿通过 GTM 的负载平衡机制,帮忙用户找到最适宜本人的服务器 IP。
也就是离本人最近,性能最好,服务器状态最衰弱的。而且大多数的网站会做 CDN 缓存,此时就更须要应用 GTM 帮你找到网络节点中适宜你的 CDN 缓存服务器。
- 8、找到 CDN 缓存服务器当前,能够间接从服务器下面获取一些动态资源,例如:HTML、CSS、JS 和图片。然而一些动静资源,例如商品信息,订单信息,须要通过第 9 步。
- 9、对于没有缓存的动静资源须要从应用服务器获取,在应用服务器与互联网之间通常有一层负载均衡器负责反向代理。有它路由到应用服务器上。
总结
NS 服务器是用来做 URL 与 IP 地址解析的,帮忙用户找到要拜访服务器的 IP。从 DNS 服务器的构造来说大抵分为三层:根域名服务器,顶级域名服务器,本地域名服务器。
申请域名的供应商会提供 Name Server 作为 DNS 解析。从用户拜访一个网站登程,通过浏览器,本地 Host 文件、Local DNS Server、Root DNS Server、顶级域名服务器(gTLD、ccTLD、New gTLD)、Name Server、GTM、CDN、Application Server。共经验了九个步骤。
作者:51CTO 崔皓
起源:https://blog.51cto.com/142793…