![](https://img2020.cnblogs.com/blog/2148150/202101/2148150-20210112143240741-953799054.png)
![](https://img2020.cnblogs.com/blog/2148150/202101/2148150-20210112143242199-1053868514.png)
BIND域名解析服务器的搭建
▪ 【职业知识目标】
了解:域名解析,域名空间的概念
掌握:安装、配置DNS服务器的方法步骤,
▪ 【职业能力目标】
会安装BIND软件包
能配置主DNS
![](https://img2020.cnblogs.com/blog/2148150/202101/2148150-20210112143243182-191485835.png)
DNS服务及域名空间
http://www.sina.com.cn
www.sina.com.cn
DNS服务器
Web 服务器
www.sina.com.cn的IP地址
www.sina.com.cn
Ip地址
正向解析
反向解析
主机名 域名
![](https://img2020.cnblogs.com/blog/2148150/202101/2148150-20210112143244443-657230912.png)
DNS服务及域名空间
![](https://img2020.cnblogs.com/blog/2148150/202101/2148150-20210112143245916-2091201922.png)
DNS域名解析的过程
![](https://img2020.cnblogs.com/blog/2148150/202101/2148150-20210112143246817-424482358.png)
DNS的查询模式
▪ 按照DNS搜索区域的类型,DNS的区域分为:
正向搜索:是DNS服务器实现的主要功能,
它根据域名解析出对应的IP地址;
反向搜索:是根据IP地址解析出对应的域名
。
![](https://img2020.cnblogs.com/blog/2148150/202101/2148150-20210112143247603-2033850631.png)
DNS服务的安装与运行
1.获得bind软件包
▪ Bind是一款开放源码的DNS服务器软件,Bind由美国加
州大学Berkeley分校开发和维护的,全名为Berkeley
Internet Name Domain它是目前世界上使用最为广泛的
DNS服务器软件,支持各种Linux平台和windows平台
。
利用rpm格式的安装包直接安装
![](https://img2020.cnblogs.com/blog/2148150/202101/2148150-20210112143248720-1301830632.png)
▪ RHEL5.5自带有版本号为9.3.6的BIND
bind-9.3.6-4.P1.el5_4.2.i386.rpm——DNS的主程序包
caching-nameserver-9.3.6-4.P1.el5_4.2.i386.rpm——高速缓冲
DNS服务器的基本配置文件,建议安装它提供了RHEL5.0下初始化
文件的方法
bind-chroot-9.3.6-4.P1.el5_4.2.i386.rpm——为bind提供一个伪装的根
目录以增强安全性工具。
bind-utils-9.3.6-4.P1.el5_4.2.i386.rpm——提供了对DNS服务器的
测试工具程序,包括dig、host与nslookup等。 (系统默认安装 )
bind-libs-9.3.6-4.P1.el5_4.2.i386.rpm—— 进行域名解析必备的库
文件 (系统默认安装 )
注意:bind-chroot软件包最好最后一个安装,否则会报错
DNS服务的安装与运行
![](https://img2020.cnblogs.com/blog/2148150/202101/2148150-20210112143249665-1152144786.png)
2. 检查是否已安装BIND软件包
▪ #rpm -qa bind*
bind-libs-9.3.6-4.P1.el5_4.2
bind-utils-9.3.6-4.P1.el5_4.2
3.安装前查询了解软件包的安装位置
▪ 查询方法是使用带“-qpl”参数的rpm命令来查询。
4. 安装BIND软件包
RPM软件包安装——以RHEL5下自带的BIND为例
# mount /dev/cdrom /mnt
# rpm -ivh /mnt/Server/bind-9.3.6-4.P1.el5_4.2.i386.rpm
# rpm -ivh /mnt/Server/caching-nameserver-9.3.6-4.P1.el5_4.2.i386.rpm
# rpm -ivh /mnt/Server/bind-chroot-9.3.6-4.P1.el5_4.2.i386.rpm
若只输出此2行,说明未安装
![](https://img2020.cnblogs.com/blog/2148150/202101/2148150-20210112143250781-1833863792.png)
BIND配置文件
注意:●rhel5以前的版本的/etc/named.conf被named.caching-nameserver.conf和
named.rfc1912.zones这两个文件代替了
●这些文件的属性一定要设置成 root:named
认识BIND的配置文件
样本文件的位置及名称 作用
全局配置文件:/var/named/chroot/etc/named.conf
样本文件:named.caching-nameserver.conf
设置一般的name参数,指向该服务器使
用的域数据库的信息源
区域配置文件:
/var/named/chroot/etc/named.rfc1912.zones
用于定义各解析区域特征的文件
正向解析数据库文件样本:
/var/named/chroot/var/named/localdomain.zone
将域名映射为IP地址的文件
反向解析数据库文件样本:
/var/named/chroot/var/named/named.local
将IP地址映射为域名的文件
根域地址数据库文件:
/var/named/chroot/var/named/named.ca
记录了Internet中13台根域服务器的IP地
址等相关信息
/etc/resolv.conf
指定本机DNS服务器的IP地址的配置文
件
![](https://img2020.cnblogs.com/blog/2148150/202101/2148150-20210112143252032-202744248.png)
配置步骤:
▪ 步骤1:配置DNS服务器网卡的IP地址为10.10.0.2,主机名为
dns1.dyzx.edu
▪ 步骤2:全局配置文件——
/var/named/chroot/etc/named.caching-nameserver.conf
# cd /var/named/chroot/etc/
# cp -p named.caching-nameserver.conf named.conf
# vi named.conf
修改其中4个地方(见下页红色下划线处)
配置主DNS服务
![](https://img2020.cnblogs.com/blog/2148150/202101/2148150-20210112143253136-1355197560.png)
修改为本机IP
地址
配置主DNS服务
![](https://img2020.cnblogs.com/blog/2148150/202101/2148150-20210112143254025-528938386.png)
⑴ options配置段常用配置项——用来说明全局属性
▪ ① listen-on port 53 { 10.10.0.1; };
设置named守护进程绑定的IP和监听的端口。若未指定,默认监听DNS服务
器的所有IP地址的53号端口。
listen-on-v6 port 53 { ::1; };——设定监听进入服务器的ipv6请求的端口
▪ ② directory “/var/named”;
指主配置文件的相对路径,其绝对路径为:/var/named/chroot/var/named
▪ ③ dump-file “/var/named/data/cache_dump.db”;
指定域名缓存文件的保存位置和文件名。
statistics-file “/var/named/data/named_stats.txt”;
当使用rndc stats命令的时候,服务器会将统计信息追加到的文件路径名。如果没有指定
,默认为named.stats在服务器程序的当前目录中
memstatistics-file “/var/named/data/named_mem_stats.txt”;
服务器输出的内存使用统计文件的路径名如果没有指定,默认值为named.memstats。
注意:还没有在BIND9中实现!
配置主DNS服务
![](https://img2020.cnblogs.com/blog/2148150/202101/2148150-20210112143255378-801062390.png)
④ query-source port 53;
▪ 客户端在进行DNS查询时必须使用53做为源端口
query-source-v6 port 53;——
⑤ allow-query { localhost ; };或allow-recursion{}
▪ 指定允许查询该DNS服务器的客户端IP地址或网络。在{}中可指定允许查询的客
户机IP地址或网络地址列表,地址间用分号分隔。若不配置该项,则默认所有主
机均可以查询。
▪ 可使用地址匹配符来表达允许的主机。
any匹配所有IP地址
none不匹配任何IP地址
localhost匹配本地主机
localnets匹配本地网络。
比如:若仅允许127.0.0.1和192.168.168.0/24网段的主机查询该DNS服务器,则配置命令为
:
allow-recursion{127.0.0.1;192.168.168.0/24;};
或表达为:allow-query{127.0.0.1;192.168.168.0/24;};
配置主DNS服务
![](https://img2020.cnblogs.com/blog/2148150/202101/2148150-20210112143256385-1146976007.png)
▪ ⑵ Logging配置段——为域名服务器配置日志选项
channel default_debug {
file “data/named.run”;
severity dynamic; };
channel短语对应于输出方式、格式选项和分类级别写入
工作目录下的named.run 文件;按照服务器当前的debug
级别记录日志
配置主DNS服务
![](https://img2020.cnblogs.com/blog/2148150/202101/2148150-20210112143257860-505658924.png)
▪ 配置区域文件——named.rfc1912.zones /var/named/chroot/etc和/etc下各有一个 ,后者是被链接的文件
▪ vim named.rfc1912.zones
配置主DNS服务
![](https://img2020.cnblogs.com/blog/2148150/202101/2148150-20210112143258862-1384532455.png)
▪ 在文件named.rfc1912.zones尾部增加以下部分:
DNS服务器的IP是:10.10.0.11
zone “dyzx.edu” IN { //指明要增加的DNS域的名称
type master; //指明增加的为DNS的主要区域
file “dyzx.edu.zone”; // 设置该主要区域的区域配置文件
//名,该文件用于实现正向域名解析
allow-update { none; }; //设置该DNS不允许动态更新
};
zone “0.10.10.in-addr.arpa" IN { //指明该区域为反向查找区域
type master; //指明该反向查找区域为主要区域
file “dyzx.edu.zero"; //设置该反向查找区域的区域配置文件名
allow-update { none; }; //设置该DNS不允许动态更新
};
配置主DNS服务
![](https://img2020.cnblogs.com/blog/2148150/202101/2148150-20210112143259822-1633881786.png)
编辑正向解析数据库文件——dyzx.com.zone
▪ # cd /var/named/chroot/var/named/
▪ # cp -p localdomain.zone dyzx.edu.zone
▪ # vi dyzx.edu.zone
$TTL 86400
@ IN SOA dns.dyzx.edu. root.dyzx.edu. ( //@表示当前的DNS域
42 ; serial (d. adams) //序列号,要小于10位,一般定义为日
期
3H ; refresh //更新时间,单位为秒
15M ; retry //更新失败重试时间
1W ; expiry //过期时间
1D ) ; minimum //设置记录的缓存时间
@ IN NS dns.dyzx.edu . //注意FQDN末尾的“.”
dns IN A 172.16.102.209
www IN A 172.16.102.210 //第一条主机记录
ftp IN A 172.16.102.211 //第二条主机记录
mail IN CNAME www.dyzx.edu //别名记录
@ IN MX 5 mail.dyzx.edu. //邮件记录
配置主DNS服务
![](https://img2020.cnblogs.com/blog/2148150/202101/2148150-20210112143300966-1326718459.png)
▪ ㈠正向解析文件的格式和各部分的含义:
数据库文件的每一行都由一条资源记录组成,每个资源记录通常包
含五项,大多数情况下用ASCII文本显示,每条记录一行,格式如下
:
Domain Time to live Record type Class Record data
各项的含义如下:
域名(Domain):该项给出要定义的资源记录的域名,该域通常用
来作为域名查询时的关键字。
存活期(Time to live):在该存活期过后,该记录不再有效。
类别(Class): 该项说明网络类型。目前大部分的资源记录都采
用“IN”,表明Internet,该域的缺省值为“IN”。
记录数据(Record data):说明和该资源记录相关的信息,通常由
资源记录类型来决定。
记录类型(Record type):该项说明资源记录的类型,常用的资源
记录类型如下表所示。
配置主DNS服务
![](https://img2020.cnblogs.com/blog/2148150/202101/2148150-20210112143302016-2113649881.png)
▪ ㈡各行的含义:
① $TTL 86400
从BIND 8.2开始,需要在区域文件的最前面加一条$TTL语句,用来设置
域的默认生存时间TTL(Time To Live),时间单位为秒。86400秒即为
1天,也可等价表达为$TTL 1D。
②@ 1D IN SOA @ root (
@——代表当前的域;也就是hevttc.edu.cn
1D——代表1天(day),3H代表3小时(hour),15M代表15分钟
(minute),1W代表1周(week);
IN——代表地址类别;
SOA——是授权起始(Start Of Authority)的缩写,是主域名服务器区
域文件中一定要设置的,用于开始权威的域名信息记录,宣布该服
务器具有权威性的名字空间。SOA之后应填写该域的名称,并且要
在名称的最后附加上一个小数点“.”;域名之后,应填写域名服务器
管理员的E-mail地址,E-mail地址中的“@”符号在此处用小数点代
替,在E-mail地址的最后,也要附加一个小数点。
在该区域文件中,由于在前面使用了$ORIGIN语句进行定义,因此,
此处的域名和域管理员E-mail就简约表达为了@ root,root名字不是以
点结尾,系统会用$ORIGIN定义的域结尾,扩展后就变成了
root.localhost.
配置主DNS服务
![](https://img2020.cnblogs.com/blog/2148150/202101/2148150-20210112143302995-292130774.png)
▪ ③ 接下来的括号中的值,其含义是:
分号为注释符;
serial行前面的值——代表该区域文件的版本号或序列号。用于辅域
名服务器判断主域名服务的 master file是否更新,所以如果有辅域名
服务器,在每次修改 master file后就应该修改这个序列号,以便辅域
名服务器更新这个域的 master file.
refresh行前面的值——代表更新的时间周期。此处设置为3H
retry行前面的值——代表在更新出现通信故障时的重试时间。此处设
置为15M,即15分钟。
expire行前面的值——代表重新执行更新动作后仍然无法完成更新任
务而终止更新的时间。
生存时间:指定当域名服务器询问某个域名和其IP地址后,在域名服务
器上放置的时间。
minimum行前面的值——代表客户域名查询的记录,在域名服务器
上放置的时间,即设置记录的缓存时间。定义这个域在其他域名服务
器的cache 里的有效期,过了这个时间其他的域名服务器就会到这里
来重新查询相关的信息
配置主DNS服务
![](https://img2020.cnblogs.com/blog/2148150/202101/2148150-20210112143304010-813038761.png)
㈢常用的资源记录类型
记录类型 说 明
SOA
每个区在区的开始处都包含了一个起始授权记录(Start of Authority Record
),简称SOA记录。SOA定义了域的全局参数,进行整个域的管理设置。一
个区域文件只允许存在唯一的SOA记录。
NS 名称服务器(NS)资源记录表示该区的授权服务器,它们表示SOA资源
记录中指定的该区的主和辅助服务器,也表示了任何授权区的服务器。
每个区在区根处至少包含一个NS记录。
A
把FQDN映射到IP地址
CNAME
指定标准主机的别名
MX
建立邮件服务器记录,此记录列出了负责接收发到域中的电子邮件的主
机。
PTR 把IP地址映射到FQDN
HINFO
主机描述,是以ASCII码表示的CPU和OS,该记录允许人们找出一个域内
相应的机器和操作系统类型。
TXT
定义一个zone,所有的定义只与该zone有关。该记录允许域以任意方式标
识自身,HINFO和TXT两种记录类型都是为了用户的方便,其中任何一条
都不是必要的。
配置主DNS服务
![](https://img2020.cnblogs.com/blog/2148150/202101/2148150-20210112143305049-1909216103.png)
▪⑤ 1D IN NS @
用于添加一条NS(名称服务器)记录,用于指定
权威的名称服务器。即该语句用于指定域名服务
器,NS之后应放置当前域名服务器的名称。
▪⑥1D IN A 127.0.0.1
用于添加一条A(Address)记录,即地址记录。
用于指定一个名称所对应的IP地址。该条记录的
含义就是将localhost解析为127.0.0.1
配置主DNS服务
![](https://img2020.cnblogs.com/blog/2148150/202101/2148150-20210112143306417-630451211.png)
编辑反向解析数据库文件——dyzx.com.zero
▪ # cd /var/named/chroot/var/named/
▪ # cp -p named.local dyzx.edu.zero
▪ # vi dyzx.edu.zero
▪ $TTL 86400
@ IN SOA 102.16.172 .in-addr.arpa. root.dyzx.com. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
@ IN NS dns.dyzx.edu.
209 IN PTR dns.dyzx.edu.
210 IN PTR www.dyzx.edu.
211 IN PTR ftp.dyzx.edu.
说明:最后三句前面的209、210、211是指IP: 172.16.102.209 、
172.16.102.210、 172.16.102.211的最后一个数
配置主DNS服务
![](https://img2020.cnblogs.com/blog/2148150/202101/2148150-20210112143307256-827902878.png)