DNS
dns简介
dns是Domain Name System的缩写,中文名称为域名系统。其存在是为了方便用户在访问互联网时不需要去记忆复杂的ip数字串,只需要使用容易记忆的域名来访问相关的的内容。在这个过程中,dns起到了将域名转换为对应的ip地址的作用。表现形式为ip与域名相互映射的一个分布式数据库,该服务运行在UDP协议之上,使用的端口号为53.
dns解析的过程
如图所示,网络客户端是我们所使用的电脑,在浏览器中,输入一个域名,在图中我们使用的是www.163.com。在此时,会发送一个DNS请求到本地的DNS服务器,这个DNS服务器一般都是由接入服务器提供商提供,比如说移动、电信什么。
当接入到本地DNS服务器之后,本地服务器熟悉会在缓存记录中搜索关于这个www.163.com的记录,如果有就直接返回查询结果,如果没有就向根服务器查询。
根服务器中并不会记录具体的域名和IP地址的映射关系,而是告诉本地DNS服务器在某个域服务器上可以继续查询,并且给出了域服务器的地址。
本地服务器接着向域服务器发出请求,在这个例子里面请求的对象是.com域的服务器,.com域服务器在收到请求后同样也不会直接返回域名和IP地址的对应关系,而是给你域名的解析服务器的地址。
最后本地的DNS服务器向域名的解析服务器发出请求,这是就能收到一个域名和IP地址对应的关系,本地DNS服务器不仅要把IP地址返回给用户电脑,为了下次访问速度更快,还会保存在缓存中,下次有用户来查询时可以快速返回查询的结果。
DNS的一些概念
nameserver(名字服务器)
在这个解析的过程中我们在之中看到参与者有DNS服务器和DNS客户端,其实在这个过程中还有名字服务器的参与。
这个名字服务器是用于标记区域权威服务器的DNS服务器,只要指定好了nameserver,其他服务器就认为它是该区域的权威服务器。在linux下进行修改需要修改/etc/resolv.conf在之中指定nameserver即可。接下来我们解释一下域和区域的概念
domain(域)
网址是分层的,域名系统就像是文件目录一样。首先是根,然后是一级域、二级域、三级域…..。我们常见的一级域有:com net org cn edu gov等等等。父域将某个标示符分配给子域,然后子域(比如说cn)将全权负责cn下面的二级域的具体分配。对于cn,常见的二级域有com.cn、edu.cn这些,同样的edu.cn又会负责下面的三级域名分配。这样分层分片有助于管理。
zone(区域)
区域的概念是这样,假如A是一个域,而且A有子域a和b.如果域A的管理者把a和b授权给另外的人管理,那么a和b各自形成一个区域。然后每一个区域都会有名字服务器,用来管理这个区域。管理包括对这个分成更小的子域以及对子域名IP的解释。在某个区域中,该区域的nameserver就是该区域的权威。
DNS的查询方式<