DNS服务器搭建

发布时间 2023-03-30 10:23:44作者: Atwo

采用bind软件
一、安装过程
1)可采用yum安装
yum -y install bind bind-utils bind-chroot
2)也可下载rpm包安装。依赖的rpm包比较多,我是在有Yum源的机器上下载下来 之后上传到无yum源机器上安装的。
yum install -y --downloaddir=/yumcache/bind/ --downloadonly bind bind-utils bind-chroot

然后根据依赖关系,安装bind软件包

二、配置文件
具体是涉及以下几个配置文件
1)/etc/named.conf
options {
//listen-on port 53 { 127.0.0.1;192.168.222.126; };
listen-on port 53 { localhost; }; #监听所有地址 默认只监听127.0.0.1 只有服务器自己可以使用
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
recursing-file "/var/named/data/named.recursing";
secroots-file "/var/named/data/named.secroots";
allow-query { 0.0.0.0/0; };#允许哪些IP查询该DNS服务器 可根据需要设置 0.0.0.0/0 为所有地址都可以查询

include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";

2)从/etc/named.conf配置文件中 得到第二个配置文件的位置 /etc/named.rfc1912.zones
zone "xxx.org" IN {
type master;
file "xxx.org.zone";
allow-update { none; };

};

3)根据域名 新建zone配置文件
/etc/named.conf配置文件中 指出 directory "/var/named"
/etc/named.rfc1912.zones 指出 zone文件名为 xxx.org.zone
即在/var/named目录下 新建xxx.org.zone的文件
[root@dns01 named]# cat xxx.org.zone
$TTL 1D
@ IN SOA master xxx.126.com. ( 01 1H 10M 3D 12H)
NS master
NS slave
master A 192.168.222.126
slave A 192.168.222.127
www A 192.168.222.231

  •    A 	 192.168.222.231
    

配置文件说明:
在文件的开始定义TTL 1day,之后的配置项会继承
正式配置文件开始 都是以SOA记录开始 SOA:Start of Authority,起始授权记录 一个区域解析库 有且仅能有一个SOA记录,必须位于解析库的第一条记录,主要用于 主从DNS服务器的同步。
根据需要添加相应的A记录。
需要注意的是,编辑完该文件之后,需要调整该文件的所有者和文件权限
chown root:named xxx.org.zone
chmod 640 xxx.org.zone

修改完配置文件之后,可以通过以下命令检查配置文件的语法是否正确
[root@dns01 named]# named-checkzone zonename xxx.org.zone #会检查xxx.org.zone这个zone配置文件是否有语法错误
zone zonename/IN: loaded serial 0
OK
[root@dns01 named]# named-checkconf #会检查/etc/named.conf这个配置文件是否有语法错误 没有输出则标明是正确的

4)配置dns服务器开机启动
systemctl enable named
systemctl start named

在修改配置文件之后,可以通过以下命令来使配置文件生效
rnc reload

配置从DNS服务器
1)安装Bind软件
2)编辑配置文件
a./etc/named.conf
b./etc/named.rfc1912.zones 区别主要在这里
zone "xxx.org" IN {
type slave;
masters {192.168.222.126;}; #指定主DNS服务器的地址
file "slaves/xxx.org.zone.slave"; #文件名可自己配置 这里定义的目录是/var/named/slaves/
};
从服务器会从主DNS服务器 获取zone的相关配置信息。下载至/var/named/slaves/目录下

当在主DNS服务器上对Zone信息进行修改的时候 一定要修改zone文件中SOA记录的序列号,这样的从DNS服务器才会知晓Zone信息发生了改变,从而去同步zone信息
$TTL 1D
@ IN SOA master xxx.126.com. ( 01 1H 10M 3D 12H) #01即为序列号 如发生修改之后 可将序列号修改为02 类似于版本号