1、DNS系统的作用及类型
在整个互联网大家庭中,大部分的网站、邮件等服务器都使用了域名形式的地址,如www.baidu.com、mail.163.com等。很显然这种地址形式要比使用61.233.189.147、202.108.33.74的IP地址形式更加直观,且更容易被用户记住。
1.1 DNS系统的作用
所谓的分布式的数据结构是指,我们在为用户去解析域名的时候,可以用多个DNS帮助用户去解析相应的域名。甚至每个DNS服务器所保存的解析的条目可以不一样,也可以相同。
比如说是一种主备关系(两个DNS服务器所保存的解析条目信息是完全一样的,一主一备);也可以是那种完全分布式的结构方式(即每个DNS服务器所保存的解析条目信息不一样),比如说有的DNS服务器专门解析.com的类型,而有些DNS服务器专门解决.orp的类型等,大家可以各自分工。
补充:
DNS域名解析是通过将域名转换为对应的IP地址来实现网络访问的。其基本原理是基于分布式数据库和层级化的域名系统。
当用户在浏览器中输入一个域名时,操作系统会先查询本地DNS缓存,如果没有找到对应的记录,则会向本地DNS服务器发起请求。
然后本地DNS服务器会逐级向上查询,最终从根DNS服务器获取到域名对应的IP地址,并将结果返回给用户。
1.2 DNS的解析类型
DNS系统在网络中的作用就是维护一个地址数据库,其中记录了各种主机域名与IP地址的对应关系,以便为用户提供正向或反向的地址查询服务——即正向解析与反向解析:
- 正向解析:根据域名查IP地址,即将指定的域名解析为相对应的IP地址。
注:域名的正向解析是DNS服务器最基本的功能,也是最常用的功能。
- 反向解析:根据IP地址查域名,即将指定的IP地址解析为相对应的域名。
注:域名的反向解析不是很常用,只是在一些特殊场合才会用到,比如用于反垃圾邮件的验证。
实际上,每一台DNS服务器都只负责管理一个有限范围(一个或几个域)内的主机域名和IP地址的对应关系。
这些特定的DNS域或IP地址段称为zone(区域)。
根据地址解析的方向不同,DNS区域相应的分为正向区域(包含域名到IP地址的解析记录)
和反向区域(包含IP地址到域名的解析记录)。
1.3 DNS系统的类型
同一台DNS服务器相对于不同的区域来说,也拥有不同的身份,常见的类型有:
(1)缓存域名服务器(解析速度很快)
只提供域名解析结果的缓存功能,目的在于提高查询速度和效率。
但是它没有自己控制的区域地址数据(即没有填写要解析的数据条目),因此,在构建缓存域名服务器时,必须设置根域或指定其他DNS服务器作为解析来源。
注:缓存域名服务器它本身没有填写那些你要解析的条目,它搞不定的活,它会把解析的请求转交给别的DNS服务器,让别的DNS服务器帮它去解析,解析成功以后,它拿到结果,自己保存一份(保存的时候先放到自己的缓存里),再返回给客户端一份。
补充:为什么要放到自己的缓存里面?
如果下一次某一个客户端,依然用我这个域名服务器需要去解析该条目,我自己的缓存里面已经有这个东西了,那就不用去找别人帮我去解析了,直接就可以使用我缓存的内容给我的用户去做这个解析。
(2)主域名服务器(也叫起始授权机构)
主域名服务器里保存了要解析的具体的记录,维护某一个特定DNS区域的地址数据库。
对其中的解析记录具有自主控制权,是指定区域中唯一存在的权威服务器、官方服务器。
注:构建主域名服务器时,需要自行建立所负责区域的地址数据文件。
(3)从域名服务器
与主域名服务器提供完全相同的DNS解析服务,通常用于DNS服务器的热备份。当你的主域名服务器dang掉后,可以继续使用从域名服务器进行解析。
补充:如果你只有一个主域名服务器,虽然你很权威,但是你只有一台,万一出现了故障呢?那你核心数据只存放在主域名服务器。
所以为了保证你这个解析服务器的可靠性,我们就可以再部署一个从域名服务器,从域名服务器的任务就是备份
(从域名服务器里面也有数据的,但它的数据来自主域名服务器,而且当把主域名服务器的域名解析文件同步到从域名服务器上以后,在从域名服务器上这个文件就是一个只读的属性了)
注:对于客户机来说,无论使用主域名服务器还是从域名服务器,其查询的结果都是一样的。
关键区别在于,从域名服务器提供的解析结果不是由自己决定的,而是来自于主域名服务器。
所以,在构建从域名服务器时,需要指定主域名服务器的位置,以便服务器能够自动同步区域的地址数据库。
综上所述,同一台DNS服务器,既可以是A区域的主域名服务器,同时也可以是B区域的从域名服务器。
2、BIND软件的安全和控制
BIND是应用最为广泛的提供域名服务的DNS服务程序,它可以允许在大多数Linux/Unix主机中。
2.1 BIND服务的配置文件
使用BIND软件构建域名服务时,主要涉及两种类型的配置文件:主配置文件和区域数据文件。
主配置文件——用于设置named服务的全局选项、注册区域及访问控制等各种允许参数;
区域数据文件——用于存放某个DNS区域的地址解析记录(正向记录或反向记录)。
(1)主配置文件
主配置文件named.conf通常位于/etc目录下,在named.conf文件中,主要包括全局配置、区域配置两个部分。
注:每一条配置记录的行尾以分号;结束。
以#号或//开始的部分表示注释文字(大段注释可以使用/*.....*/的格式)
-
全局配置部分
全局配置参数包括在option{};的大括号中,可以设置监听的地址和端口、区域数据文件存放的目录、允许哪些客户机查询等:
注:每个zone区域都是可选的(包括根域、回环域)。
若不指定listen-on配置项,则named默认在所有接口的UDP53端口监听服务;
若不指定allow-quary配置项,则默认会响应所有客户机的查询请求。
-
区域配置部分
区域配置参数使用zone......{};的配置格式,一台DNS服务器可以为多个区域提供解析,所以在named.conf文件中也可以有多个zone配置段。
注:在上图的配置内容中,有几个地方需要注意:
- 每个zone区域都是可选的(包括根域、回环域、反向域),具体根据实际需要而定。zone配置部分的IN关键字也是可以省略的。
- 反向区域的名称由倒序的网络地址和.in-addr.arpa组合而成。例如,对于192.168.1.0/24的网段,其反向区域名称表示为1.168.192.in-addr.arpa
- file配置项用于指定实际的区域数据文件,文件名称由管理员自行设置。
- 区域配置中的部分参数也可以放在全局配置中。
修改完name.conf文件之后,可以使用named-checkconf命令对named.conf文件进行语法检查。如下图:
(2)区域数据配置文件
区域数据配置文件通常位于/var/named目录下,每个区域数据文件对应一个DNS解析区域,文件名及文件内容由该域的管理员自行设置。如下图: