又到了招聘季了,前两天遇到一个面试的小伙伴,他说面试官和他聊得很投机,无心中谈到了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...