DNS小述

小引

当我们在浏览器中输入一个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.comdns.baidu.com,NS,TTL)就是一条类型为NS的记录。
③如果Type =CNAME,则Name是一个别名,而Value是它的规范主机名。
④如果Type = MX,Name是一个邮件服务器的别名,Value是它的规范主机名。

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

小栗子

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值