DNS服务器的管理与配置
对于存在多个域名服务器的区域,必须选择一台主域名服务器(master),保存并管理整个区域的信息,其他服务器称为辅助域名服务器(slave)。域名空间的每个域的名字通过域名进行表示。因为域名服务器接收到查询请求后,如果该服务器没有相应的DNS信息,则会询问根区域中的根域名服务器进行迭代查询直到返回结果,所以根区域作用非常重要,不建议手写根区域文件。BIND的主配置文件是named.conf,存放在
目录
(4)将/etc/named.conf 、正反向区域文件属组由root改为named
step1:修改named.conf文件的属组为named。
step4:建立“3.0.168.192.zone”区域文件,并修改文件的属组为named。
(3)修改反向解析区域文件3.0.168.192.zone。
(6)在客户端测试辅助DNS服务器 将客户端计算机的首要DNS服务器地址设为192.168.0.200。然后利用nslookup测试成功。
(1)父域设置区域委派。(2)添加sales.com区域文件。
(4)在子域服务器192.168.0.200上进行子域设置。
(5)在子域服务器192.168.0.200上进行子域设置,添加test.sales.com域的正向解析区域文件。
(6)在子域服务器192.168.0.200上进行子域设置,添加test.sales.com域的反向解析区域文件 。
一、相关知识
域名空间
域和域名
DNS树的每个节点代表一个域,通过这些节点,对整个域名空间进行划分,成为一个层次结构。域名空间的每个域的名字通过域名进行表示。域名通常由一个完全正式域名(FQDN)标识。
Internet域名空间
DNS根域下面是顶级域,也由Internet域名注册授权机构管理。共有3种类型的顶级域,包括net,org,com。
区(Zone)
区是DNS名称空间的一个连续部分,其包含了一组存储在DNS服务器上的资源记录。
DNS服务器分类
主DNS服务器(Master或Primary)、辅助DNS服务器(Slave或Secondary)、转发DNS服务器、唯高速缓存DNS服务器(Caching-only DNS server)
DNS查询模式
递归查询,转寄查询(迭代查询)
域名解析过程
DNS域名解析的工作过程如下
① 客户机提交域名解析请求,并将该请求发送给本地的域名服务器
② 当本地的域名服务器收到请求后,就先查询本地的缓存。如果有查询的DNS信息记录,则直接返回查询的结果。如果没有该记录,本地域名服务器就把请求发给根域名服务器。
③ 根域名服务器再返回给本地域名服务器一个所查询域的顶级域名服务器的地址。
④ 本地服务器再向返回的域名服务器发送请求。
⑤ 接收到该查询请求的域名服务器查询其缓存和记录,如果有相关信息则返回客户机查询结果,否则通知客户机下级的域名服务器的地址。⑥ 本地域名服务器将查询请求发送给返回的DNS服务器。
⑦ 域名服务器返回本地服务器查询结果(如果该域名服务器不包含查询的DNS信息,查询过程将重复⑥、⑦步骤,直到返回解析信息或解析失败的回应)
⑧ 本地域名服务器将返回的结果保存到缓存,并且将结果返回给客户机。
正向解析与反向解析
正向解析。正向解析是指域名到IP地址的解析过程。
反向解析。反向解析是从IP地址到域名的解析过程。反向解析的作用为服务器的身份验证。
资源记录
SOA资源记录
每个区在区的开始处都包含了一个起始授权记录(Start of Authority Record),简称SOA记录。SOA定义了域的全局参数,进行整个域的管理设置,一个区域文件只允许存在唯一的SOA记录。
其他的包括:NS资源记录;A资源记录;PTR资源记录;CNAME资源记录;MX资源记录。
/etc/hosts文件
hosts文件是Linux系统中一个负责IP地址与域名快速解析的文件,以ASCII格式保存在/etc目录下,文件名为“hosts”。hosts文件的格式如下:
例: 假设要添加域名为www.smile.com,IP地址为192.168.0.1;www.long.com,IP地址为192.168.1.1。则可在hosts文件中添加如下记录。
192.168.0.1 www.smile.com
192.168.1.1 www.long.com
二、安装DNS服务
bind
BIND是一款实现DNS服务器的开放源码软件。
安装bind软件包
[root@RHEL6 ~]# yum clean all //安装前先清除缓存
[root@RHEL6 ~]# yum install -y bind
[root@RHEL6 ~]# rpm -qa|grep bind // 检查是否安装成功
DNS服务的启动与停止
[root@RHEL6 ~]# service named start
[root@RHEL6 ~]# service named stop
[root@RHEL6 ~]# service named restart
配置主要名称服务器
一般的DNS配置文件和正反向解析区域声明文件必须存在4个文件,其结构如下:
/etc/named.conf 区域配置主文件
/etc/named/named.ca 根区域文件
/etc/named/named.domain 正向解析区域声明文件
/var/named/named.domain.arpa 反向解析区域声明文件
主配置文件
BIND的主配置文件是named.conf,存放在/etc目录下,主要是用来声明域名服务器的Cache文件、正反向解析区域文件的名称及放置位置。
如果要在域名服务器上设置存取限制,或者进行其他特殊设置,都必须在/etc/named.conf文件中定义。
其中,Cache文件主要用来设置DNS服务器查询域名解析后的结果(域名与IP地址的对应关系);正向解析区域(Zone)文件默认存放在/var/named目录下,主要用来完成域名到IP地址的对应转换工作;反向解析区域(Reverse Zone)文件默认也存放在/var/named目录下,其作用是完成从IP地址到对应域名的转换.。
named.conf配置文件分为整体和局部两个部分。
type字段指定区域的类型,对于区域的管理至关重要,一共分为6种,如表
从例子学起:
搭建一个简单的DNS服务器 授权DNS服务器管理smile.com区域,并把该区域的区域文件命名为smile.com.zone。服务器是192.168.2.2,Mail服务器是192.168.2.10,WWW服务器是192.168.2.100。本例至少需要2台Linux服务器,一台安装DNS,一台作为客户端。
(1)建立主配置文件named.conf
(2)建立smile.com.zone区域文件
@是区域名称的简写。如果在正向解析区域文件中遇到@符号,则都可以替换成“named.conf”中声明的相关正向解析区域名称,比如smile.com,在第一行进行了声明。
(3)配置反向解析区域
① 在 named.conf 文件中增加内容
② 建立反向区域文件。
(4)将/etc/named.conf 、正反向区域文件属组由root改为named
(5)关闭防火墙后重启named服务
systemctl stop firewalld
systemctl disable firewalld
(6)在Linux客户端测试配置效果
3.区域文件与资源记录格式
SOA资源记录
SOA资源记录语法格式如下:
SOA资源记录字段含义如下:
主域名服务器
管理员
序列号
刷新间隔
重试间隔
过期间隔
最小(默认)TTL
NS记录
用于指定一个区域的权威DNS服务器,通过在NS资源记录中列出服务器的名字,其他主机就认为它是该区域的权威服务器。@已声明为smile.com.。
NS资源记录语法格式:
A资源记录
A资源记录是使用最为频繁的一种,通常用于将指定的主机名称解析为它们对应的IP地址。
A资源记录语法格式:
其他常用资源记录
(1)CNAME资源记录。
CNAME(别名)资源记录用于为某个主机指定一个别名。
CNAME资源记录语法格式:
(2)MX资源记录。
MX(邮件交换器)资源记录提供邮件传递信息。该记录会指定区域内的邮件服务器名称。
MX资源记录语法格式:
(3)PTR资源记录。
PTR(指针)资源记录。该记录与A记录相反,用于查询IP地址与主机名的对应关系。
PTR资源记录语法格式:
根区域设置及对应区域文件
根区域是一个较为特殊的区域,记录列出了全球根域名服务器的信息,域名通常用“表示,类型为hint。
因为域名服务器接收到查询请求后,如果该服务器没有相应的DNS信息,则会询问根区域中的根域名服务器进行迭代查询直到返回结果,所以根区域作用非常重要,不建议手写根区域文件。
安装BIND主程序软件包时会自动建立根区域文件的范本。使用rpm -ql命令可以追踪所有安装后文件的路径。其中有一个名为named.root的文件就是根区域文件的范本。
named.root记录了全球13台根域名服务器地址,将该文件复制到DNS的工作日录(/var/
named/)下即可,这样它就可以正常工作工作了。
实现直接解析域名
DNS服务器默认只能解析完全规范域名(FQDN),不能直接将域名解析成IP地址。为了方便用户访问,可以在DNS服务器的区域文件中加入下面一条特殊的A资源记录,以便支持实现直接解析域名功能。
实现泛域名解析
泛域名是指一个域名下的所有主机和子域名都被解析到同一个IP地址上。 可以在DNS服务器的区域文件末尾加入下面一条特殊的A资源记录(符号“*”是代表任何字符的通配符),以便支持实现泛域名解析功能。
DNS服务器配置流程 主要分为以下3步。
建立主配置文件。
建立区域文件。
重新加载配置文件或重新启动named服务使用配置生效。
下面我们来看一个具体实例
客户端需要获得www.smile.com这台主机所对应的IP地址,将查询请求发送给DNS服务器。
●服务器接收到请求后,查询主配置文件named.conf,检查是否能够管理smile.com区域。而named.conf中记录着能够解析smile.com区域并提供smile.com区域文件所在路径及文件名。
●服务器则根据named.conf文件中提供的路径和文件名找到smile.com区域所对应的配置文件,并从中找到www.smile.com主机所对应的IP地址。
●将查询结果反馈给客户端,完成整个查询过程。
DNS服务器配置实例
下面我们以一个简单的DNS服务器的配置为例来讲一下配置一台DNS服务器的工作流程。
【例】售销部所在域为“sales.com”,部门内有3台主机,主机名分别是
computer1.sales.com(192.168.0.101),
computer2.sales.com(192.168.0.102),
computer3.sales.com(192.168.0.103).
另有测试客户机client.sales.com(192.168.0.100)1台。
现要求DNS服务器dns.sales.com(192.168.0.3)可以解析4台主机名和IP地址的对应关系。
(此案例是DNS搭建的最基本配置。在搭建之前整理好设定流程。首先在服务器上建立主配置文件,设置可以解析“sales.com”区域。然后建立“sales.com”的区域文件,并在区域文件中设置SOA、NS以及A资源记录。最后配置客户端。)
配置主要步骤如下。
step1:修改named.conf文件的属组为named。
[root@RHEL6 桌面]# chgrp named /etc/named.conf
chown :named /etc/named.conf
step2:设置named.conf文件
添加“sales.com”区域,指定正向解析区域文件名为sales.com.zone,反向解析区域文件名为3.0.168.192.zone。
“options {”中的“{”的两边需要各加一个空格。
step3:建立“sales.com.zone”区域文件
step4:建立“3.0.168.192.zone”区域文件,并修改文件的属组为named。
内容修改如图
step5:重启服务
service named restart
测试结果:
配置辅助DNS服务器
1.辅助域名服务器
DNS划分若干区域进行管理,每个区域由一个或多个域名服务器负责解析。对于存在多个域名服务器的区域,必须选择一台主域名服务器(master),保存并管理整个区域的信息,其他服务器称为辅助域名服务器(slave)。
管理区域时,使用辅助域名服务器有如下几点好处。
(1)辅助DNS服务器提供区域冗余,能够在该区域的主服务器停止响应时为客户端解析该区域的DNS名称。
(2)创建辅助DNS服务器可以减少DNS网络通信量。采用分布式结构,在低速广域网链路中添加DNS服务器能有效地管理和减少网络通信量。
(3)辅助服务器可以用于减少区域的主服务器的负载。
2.区域传输
为了保证DNS数据相同,所有服务器必须进行数据同步,辅助域名服务器从主域名服务器获得区域副本,这个过程称为区域传输。区域传输存在两种方式:完全区域传输(AXFR)和增量区域传输(IXFR)。满足发生区域传输的条件时,辅助域名服务器向主服务器发送查询请求,更新其区域文件。
3.配置辅助域名服务器
【例】主域名服务器的IP地址是192.168.0.3,辅助域名服务器的地址是192.168.0.200,区域是“sales.com”,两台主机分别是 computer1.sales.com(192.168.0.101)、computer2.sales.com(192.168.0.102)。测试客户端是client2.sales.com(192.168.0.100)。请给出配置过程。
(1)配置主域名服务器。
在服务器192.168.0.3上修改主配置文件named.conf添加smile.com区域。
(2)修改正向解析区域文件smile.com.zone。
(3)修改反向解析区域文件3.0.168.192.zone。
(4)配置辅助域名服务器。
在服务器192.168.0.200上修改主配置文件named.conf添加smile.com区域
(5)数据同步测试。
查看辅助域名服务器系统日志,通过ls命令查看辅助域名服务器/var/named/slaves目录,区域文件smile.com.zone复制完毕。
建议配置区域复制时关闭Selinux功能,否则区域数据可能无法复制。
(6)在客户端测试辅助DNS服务器 将客户端计算机的首要DNS服务器地址设为192.168.0.200。然后利用nslookup测试成功。
建立子域并进行区域委派
1.子域应用环境
当要为一个域附加子域时,请检查是否属于以下3种情况。
2.管理子域
如果根据需要,决定添加子域,可以有两种方法进行子域的管理。
(1)区域委派。
(2)虚拟子域。
3.配置区域委派
【例】 公司提供虚拟主机服务,所有主机后缀域名为sales.com。随着虚拟主机注册量大幅增加,DNS查询速度明显变慢,并且域名的管理维护工作非常困难。
(1)父域设置区域委派。(2)添加sales.com区域文件。
① 指定委派区域test.sales.com管理工作由域名服务器dns1.test.sales.com负责。
② 添加dns1.test.sales.com的A记录信息,定位子域test.sales.com的权威服务器。
(3)在父域服务器上添加sales.com反向区域文件。
(4)在子域服务器192.168.0.200上进行子域设置。
编辑/etc/named.conf并添加test.sales.com区域记录。
(5)在子域服务器192.168.0.200上进行子域设置,添加test.sales.com域的正向解析区域文件。
computer1 IN A 192.168.0.101 //为方便后面测试,增加一条A记录
(6)在子域服务器192.168.0.200上进行子域设置,添加test.sales.com域的反向解析区域文件 。
后面要关闭防火墙,设置主配置文件和区域文件的属组为named,然后重启DNS服务。
配置转发服务器
按照转发类型的区别,转发服务器可以分为以下两种类型。
(1)完全转发服务器。
DNS服务器配置为完全转发会将所有区域的DNS查询请求发送到其他DNS服务器。可以通过设置named.conf文件的options字段实现该功能。
(2)条件转发服务器。
该服务器类型只能转发指定域的DNS查询请求,需要修改named.conf文件并添加转发区域的设置。
【例】 对域smile.com设置转发服务器192.168.0.198和192.168.0.199。
设置转发服务器的注意事项如下:
转发服务器的查询模式必须允许递归查询,否则无法正确完成转发。
转发服务器列表如果为多个DNS服务器则会依次为尝试,直到获得查询信息为止。
配置区域委派时如果使用权转发服务器,有可能会产生区域引用的错误。
搭建转发服务器需要掌握以下操作技巧: ① 转发列表配置精简。 ② 避免链接转发器。 ③ 减少转发器负荷。 ④ 避免转发器配置错误。
配置缓存服务器
【例】 公司网络中为了提高客户端访问外部WEB站点的速度并减少网络流量需要在内部建立缓存服务器。
缓存服务器不需要建立独立的区域,可以直接对named.conf文件进行设置,实现缓存的功能。
配置DNS客户端
设置DNS客户端比较简单,直接编辑/etc/resolv.conf文件,然后使用nameserver参数来指定DNS服务器的IP地址。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)