dns是互联网中最核心的带层级的分布式系统,负责把域名解析成ip,把IP解析出域名,以及宣告邮件路由信息等等,使得使用域名访问网站,收发邮件成了可能。
bind(berkeley Internet Name Domain) 是流行与linux上的域名解析服务。linux
首先解析下什么是递归解析和迭代解析,本人也常常搞混,可是还得记下来,在了解递归和迭代以前,先聊下下DNS的组成部分。vim
共两部分缓存
根据类别不一样,分红以下几类:服务器
2.1. 权威域名解析器(Autoritatvie Name Server )
负责受权域下的域名解析服务,由上级权威域名服务器使用NS记录进行受权。
有如下3级权威域名服务器tcp
主机名 | ip | 管理方 |
---|---|---|
a.root-servres.net | 198.41.0.4 | VeriSign.Inc |
b.root-servers.net | 192.228.79 | California(ISI)| |
c.boot-servers.net | 192.33.4.12 | Cogent Communications |
注意
这里是13组根域服务器,不是13台。其中大多数采用了anycast技术,由于分布到不一样的地区。分布式
以上三类权威域名解析器的受权结构图以下所示
网站
2.2. 缓存域名服务器(caching Name Server)
这类的域名服务器负责接受解析器发过来的DNS请求,经过依次查询根域名服务器->顶级域名服务器-> 二级域名服务器来获取DNS解析结果,而后把结果发送给解析器,同时根据DNS条目的TTL(time to live)值进行缓存,它有两个做用:.net
2.3. 转发域名服务器
这类域名服务器负责把解析器发过来的DNS请求,转发给指定的上级域名服务器得到DNS解析的条目,而后把结果发给解析器。和缓存域名服务器不一样的是,这类服务器不进行任何缓存,只是转发而已。code
经过递归查询和迭代查询的分析能够知道,对于权威域名服务器,打开了递归查询功能,至关于把它配置成了开放的DNS服务器,会形成大量数据流,影响正常的服务提供,所以,在权威服务器上,能够结合本身公司的状况来肯定是否须要禁用递归查询。
经过yum安装的bind,配置文件在/etc/named.conf,配置禁用递归查询的参数默认在18行,以下:server
[root@localhost ~]# vim /etc/named.conf 18 recursion yes; # 第18行 ,把yes改成no就好了