首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >DNS小述

DNS小述

作者头像
naget
发布2019-07-03 16:25:59
7780
发布2019-07-03 16:25:59
举报
文章被收录于专栏:VegoutVegout

小引

当我们在浏览器中输入一个Url,并按下回车时,会经历以下几步: 1、解析出url中的域名 2、通过DNS服务将域名转化为IP地址 3、解析出url中的端口,通过IP地址和端口与对应的计算机建立TCP链接 4、在TCP链接上进行应用通信 5、关闭链接 第二步就是今天的主题

DNS简介

DNS全称是Domain Name System,中文是域名系统。首先它是一个分布式数据库,由分层的DNS服务器组成;其次,它是一个应用层协议,使得主机能够通过这个协议来查询分布式数据库,DNS协议运行在UDP之上,使用53号端口。

四种DNS服务器

  • 根DNS服务器:全球有13个根DNS服务器(每个服务器并不是单机,为了提高安全性可用性,每“个”根DNS服务器其实是一个服务器网络),记录了顶级域DNS服务器的IP地址列表。
  • 顶级域DNS服务器:这些服务器负责顶级域名,如com、org、net、cn等等。记录了对应顶级域名下的域对应的权威DNS服务器的IP地址(或者是可以获取到这个权威DNS服务器IP地址的中间服务器地址)
  • 权威DNS服务器:这个服务器一般在所查询主机拥有者手里或者在服务提供商手里,提供具体域名到IP的映射记录。
  • 本地DNS服务器:每个机构比如大学、小区、公司一般都有自己的一个本地DNS服务器,它一般是这个局域网下计算机默认的首位DNS服务器,主要就是缓存从以上三种服务器中得到的资源记录,减少DNS解析的步骤。

解析步骤

1、首先查询本地hosts文件中是否可以解析,如果不可以则向本地DNS服务器请求解析。 2、本地DNS服务器如果缓存了请求的域名,则直接返回它的IP;如果没有缓存,则向根DNS服务器请求解析,根服务器返回对应的顶级域DNS服务器地址,本地服务器再向顶级域DNS服务器请求解析。(更多的情况是本地DNS服务器已经缓存了顶级域DNS服务器的地址,而跳过了访问根服务器这一步) 3、顶级域DNS服务器再次返回请求解析的域名对应的权威DNS服务器IP(也可能返回一个中间服务器地址,通过这个服务器得到权威DNS服务器IP),然后本地服务器通过这个权威DNS服务器得到最终需要的IP地址。 4、本地DNS服务器将得到的IP和对应的域名缓存起来,并返回给请求解析的主机。

资源记录

这个过程中传输的都是DNS报文,报文中我们最需要关注的就是他的资源记录(RR)。资源记录是一个包含了四个字段的记录(Name,Value,Type,TTL)。最后一个字段代表了这个记录的生存时间,也就是缓存何时失效。而第一个字段Name和第二个字段Value,他俩的含义取决于第三个字段Type。Type有四种取值: ①当Type=A时,Name就是主机名,Value就是主机名对应的IP地址。 ②如果Type=NS,那么Name就是一个域(如baidu.com),Value是可以获得这个域中主机IP地址的权威DNS服务器的主机名。比如(baidu.com,dns.baidu.com,NS,TTL)就是一条类型为NS的记录。 ③如果Type =CNAME,则Name是一个别名,而Value是它的规范主机名。 ④如果Type = MX,Name是一个邮件服务器的别名,Value是它的规范主机名。

通过这个Type我们可以看出DNS至少有两个作用,一是IP映射,二是别名映射。其实除了这两个还有一个作用就是负载均衡。DNS服务器可以让一个主机名映射到一个IP集合,每次解析出IP集合中的一个IP。这样同一个服务的压力分散到了多个物理机上面,实现负载均衡。 (DNS三个作用:①别名映射 ②IP映射 ③负载均衡)

小栗子

最后通过一个例子来结束这篇文章: 1、客户机请求解析 www.baidu.com,host文件中没有对应的记录,于是请求本地DNS服务器。 2、本地DNS服务器也难以完成解析,于是请求本地已经缓存的com顶级域DNS服务器,顶级域服务器返回了两条资源记录,一条是NS型(baidu.com,dns.baidu.com,NS,TTL),另一条是A型(dns.baidu.com,xxx.xxx.xxx.xxx,A,TTL)。 3、本地服务器收到这两条记录,知道了dns.baidu.com是权威DNS服务器,它的IP是xxx.xxx.xxx.xxx。于是访问这个服务器并得到www.baidu.com的IP地址,并通过这个IP地址建立TCP链接,在TCP链接上通过HTTP报文进行通信。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-11-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Vegout 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • DNS简介
  • 解析步骤
  • 资源记录
  • 小栗子
相关产品与服务
负载均衡
负载均衡(Cloud Load Balancer,CLB)提供安全快捷的流量分发服务,访问流量经由 CLB 可以自动分配到云中的多台后端服务器上,扩展系统的服务能力并消除单点故障。负载均衡支持亿级连接和千万级并发,可轻松应对大流量访问,满足业务需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档