DNS访问原理只需9个步骤
又到了招聘季了,前两天遇到一个面试的小伙伴,他说面试官和他聊得很投机,无意中谈到了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解析的全过程
①用户请求通过浏览器输入要访问网站的地址,例如:www.51cto.com。 浏览器会在自己的缓存中查找URL对应IP地址。如果之前访问过,保存了这个URL对应IP地址的缓存,那么就直接访问IP地址。如果没有缓存,进入到第2步。
②通过计算机本地的Host文件配置,可以设置URL和IP地址的映射关系。比如windows下是通过C:\windwos\system32\driver\etc\hosts文件来设置的,linux中则是/etc/named.confg文件。这里查找本地的Host文件,看是有IP地址的缓存。如果在文件中依旧没有找到映射关系,进入第3步。
③请求Local DNS Server,通过本地运营商获取URL和IP的映射关系。如果在校园网,DNS服务器就在学校,如果是小区网络,DNS服务器是运营商提供的。总之这个服务器在物理位置上离发起请求的计算机比较近。Local DNS Server缓存了大量的DNS解析结果。由于它的性能较好,物理上的距离又比较近,它通常会在很短的时间内返回指定域名的解析结果。80%的DNS解析需求在这一步就满足了。如果在这一步还是没有完成DNS解析,进入第4步
④通过Root DNS Server进行解析,ROOT DNS Server会根据请求的URL 返回给Local DNS Server顶级域名服务器的地址。例如:查询的是”.com”的域名,就查询 gTL对应的域名服务器的地址。
⑤返回顶级域名服务器的地址以后,访问对应的顶级域名服务器(gTLD、ccTLD、New gTLD),并且返回Name Server服务器地址。这个Name Server就是网站注册的域名服务器,上面包含了网站URL和IP的对应信息。例如你在某个域名服务提供商申请的域名,这个域名就由他们的服务器来解析。这个Name Server是由域名提供商维护的。
⑥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。
⑦如果此时获取的是A记录,那么就可以直接访问网站的IP了。但是通常来说大型的网站都会返回CNAME,然后将其传给GTM Server。
GTM(Global Traffic Manager的简写)即全局流量管理,基于网宿智能DNS、分布式监控体系,实现实时故障切换及全球负载均衡,保障应用服务的持续高可用性。传给GTM的目的就是希望通过GTM的负载均衡机制,帮助用户找到最适合自己的服务器IP。
也就是离自己最近,性能最好,服务器状态最健康的。而且大多数的网站会做CDN缓存,此时就更需要使用GTM帮你找到网络节点中适合你的CDN缓存服务器。
⑧找到CDN缓存服务器以后,可以直接从服务器上面获取一些静态资源,例如:HTML、CSS、JS和图片。但是一些动态资源,例如商品信息,订单信息,需要通过第9步。
⑨对于没有缓存的动态资源需要从应用服务器获取,在应用服务器与互联网之间通常有一层负载均衡器负责反向代理。有它路由到应用服务器上。
总结
DNS服务器是用来做URL与IP地址解析的,帮助用户找到要访问服务器的IP。从DNS服务器的结构来说大致分为三层:根域名服务器,顶级域名服务器,本地域名服务器。
申请域名的供应商会提供Name Server作为DNS解析。从用户访问一个网站出发,经过浏览器,本地Host文件、Local DNS Server、Root DNS Server、顶级域名服务器(gTLD、ccTLD、New gTLD)、Name Server、GTM、CDN、Application Server。共经历了九个步骤。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
统信UOS系统全国组织架构首曝:5大研发中心、3大适配中心
在全力打造UOS操作系统的同时,统信软件也在全国进行布局,近日首次公布了公司的组织架构。 据介绍,统信软件将打造: - 1个总部:北京 - 11个省市公司:南京、金华、上海、无锡、云浮、广州、武汉、重庆、成都、西安、太原 - 5大研发中心:北京、南京、武汉、成都、西安 - 3大通用软硬件适配中心:北京、广州、武汉 产品布局方面,统信软件的策略是“3+2+1”: - 3款核心产品:桌面操作系统、服务器操作系统、设备操作系统 - 2套方案:应用商店私有化部署方案、大规模终端集中管理方案 - 1个目标:研发下一代操作系统 目前,统信统一操作系统UOS就绪情况良好,基于Linux内核,采用同源异构技术,已发布AMD64(x86)、ARM64、MIPS64、SW64四种CPU架构产品,提供高效简洁的人机交互、美观易用、智能协同的原创应用、安全稳定的系统服务,为用户交付可用和好用的自主操作系统。 同时,统信UOS提供1个版本的产品,1套应用开发接口、1个应用开发支撑平台、1套标准规范、1个应用商店和软件仓库、1套产品文档,选择成本更低。 未来,统信软件将加强联合各大CPU厂商,集成内核补丁,实现不...
- 下一篇
云服务器ECS 云盘缩容教程步骤来啦!
云栖号快速入门:【点击查看更多云产品快速入门】不知道怎么入门?这里分分钟解决新手入门等基础问题,可快速完成产品配置操作! 由于目前云服务器ECS不支持系统盘或者数据盘缩容,如果您有云盘缩容的需求,可用通过阿里云迁云工具达成目的。 前提条件 在开始本教程前,请确认您已完成以下操作: 当云盘挂载的是Linux实例时,您需要预先在实例内安装远程数据同步工具rsync。 1.CentOS实例:运行yum install rsync –y2.Ubuntu实例:运行apt-get install rsync –y3.Debian实例:运行apt-get install rsync –y4.其他发行版:参考发行版官网安装相关的文档 您需要预先在控制台创建AccessKey,用于输出到配置文件user_config.json里。具体步骤,请参见创建 AccessKey。 已注册阿里云账号。如还未注册,请先完成账号注册。 其他更多前提条件和限制条件,请参见使用迁云工具迁移服务器至阿里云。 背景信息 迁云工具的研发初衷是为了平衡阿里云用户的云上及线下业务负载,但是您也可以利用其工作原理,实现云服务器ECS...
相关文章
文章评论
共有0条评论来说两句吧...