记录-centos7搭建DNS服务(named.service&named-chroot)全流程

目录:
1.试验记录
2.全流程

record

注:记录过程中已发现存在的错误或不恰当之处:
数据库文件中时间大小应以秒为单位。
新增区域应写在/etc/named.rfc1912.zones中。

Record:

Centos 7

提示:
0.
检查是否安装DNS服务的软件
rpm -qa|grep bind
whereis named
yum info bind
1.
网络配置文件位置
/etc/sysconfig/network-scripts/
比如:修改ens33配置文件
vim /etc/sysconfig/network-scripts/ifcfg-ens33
重启网络服务
systemctl restart network.service
2.
修改文件权限 读写执行421
chmod 数字 文件名
或(不加空格)
chmod 组代号 ±=(加减等于号) 权限代号
组代号:u-user g-group o-others a-all
权限代号:r读 w写 x执行
修改属主属组
chown 属主:属组 文件名
3.
客户机改dns — 改网卡配置文件(目录 /etc/sysconfig/network-scripts/) 或者 改dns配置文件(vim /etc/resolv.conf)
经测试,如果改DNS文件,重启network.service后/etc/resolv.conf还会变成网卡配置文件中设置的DNS,所以还是直接去网卡配置里面改。
centos7 手动修改dns
重启网卡 systemctl restart network
4.
临时关闭SELinux :
setenforce 0
5.
临时关闭防火墙命令
systemctl stop firewalld.service
6.
vi打开文件没有语法高亮
vim打开文件有语法高亮,有红色标识的是错误的地方,最好修改,有些不改也能运行,但很可能出错。
7.
dns正反向配置文件中以英文符号的";"分号作为注释符号。
8.
查看监听的端口
netstat -lnpt
9.
windows系统刷新dns缓存命令: ipconfig /flushdns

配置过程
固定ip:
在这里插入图片描述
检查是否安装了bind软件包
yum -y install bind
主DNS服务器 配置文件 设置 /etc/named.conf
新增区(zone)
tpye字段 master是主服务器,slave是从服务器。
修改:
listen-on port 53 { any; };
allow-query { any; };
另外:
第一个zone是正向解析,第二个是反向解析
在这里插入图片描述
正向解析:
复制模板文件 位置: /var/named/named.localhost
复制并改名为 xxx.com.zone (名字)
给其他组用户增加读权限,用于本地调试
解释:(重要)
在这个文件中,“;”分号是注释符号,名称后面没加点的是主机名,加了的是全称域名。
$ORIGIN 后填写域名作为@符号的引用源,不写则会引用主配置文件中zone语句后的值。
$TTL是生存时间。
SOA是起始授权,表明此DNS服务器是该DNS域中的主服务器(权威DNS服务器)。后面两个参数分别是主DNS服务器主机名和管理者邮箱。
括号内第一个参数代表配置文档的新旧,越大标识越新。每次修改文件后都应改大。
括号内第二个参数是刷新频率,标识slave隔多久跟master对比并选择是否更新,单位是秒。
括号内第三个参数是失败重新尝试时间,单位是秒。
括号内第四个参数是失效时间,单位是秒。表示主服务器不工作多长时间之后将此服务停止。
括号内第五个参数表示其它DNS服务器能缓存否定的时间,单位是秒。否定回答是指查询记录在区域文件中不存在。失败解析记录缓存时间。
解析记录类型:
NS表示指定域的DNS服务器主机名,不管是主dns还是从dns。
A表示指定主机的IP地址,AAAA是使用IPv6的IP地址。
MX表示指定域的邮件服务器主机名。MX后的数是优先级,越小越优先。相同优先级在多台之间分担负载。
CNAME表示别名。用于同一台主机上的多个服务类型。
在这里插入图片描述

反向解析:
复制模板文件 位置: /var/named/named.localhost
复制并改名为 192.168.118.zone
权限更改:
给其他组用户增加读权限,用于本地调试
注:反向解析配置文件内容IP字段写全" xxx.xxx.xxx.in-addr.arpa. "或者只写主机位。
在这里插入图片描述

或:直接给所有用户all增加读权限
在这里插入图片描述

语法检查命令:
使用named-checkconf命令可以对named配置文件进行语法检查。需要指定要检查的配置文件的名称,如果没有指定则默认为/etc/named.conf文件。
语法格式:
named-checkconf [参数] [配置文件]
named-checkzone 区名 区数据库文件名
例子:(named.service)
named-checkconf -z /etc/named.conf
另:
named-checkconf-命名配置文件语法检查工具 参考:
1【named-checkconf命令 – named配置文件语法检查 ->详细
2【FreeBSD手册页 ->链接

防火墙放行DNS:
firewall-cmd --add-service=dns --permanent
firewall-cmd --reload
或:直接暂时关闭防火墙

dns的胶水记录
参考:
1.DNS之胶水记录(glue record)
2.dns的胶水记录glue record

验证是DNS服务器否正常提供服务
1.本机验证
1)服务启动没有致命性错误,查看运行状态没有红色报错;
2)查看运行状态,日志中有 “ all zones loaded ”则表示载入正常,状态为绿色active:running;
3)nslookup正反向解析都能成功显示解析结果;
2.客户端验证
1)nslookup可以正确解析。

出现的问题:
1.
IP地址设置错误 每个字段范围1~254
2.
@ 重复
在这里插入图片描述
图中这里第二个@处要么用@要么写全称jnrplinux.com. 不可以都写
这里SOA后第二个字段是管理员邮箱,可以加.结尾也可以不加。
3.
引号括起来的字符串内容不能有多余的空格。
4.
此报错: ignoring out-of-zone data (1.168.192.in-addr.arpa)
不影响运行。
5.
虽然 named.service 成功启动并处于运行状态,但日志中可以看到有 network unreachable resolving
这个报错对ipv4解析没有影响。
网上查到:这个错误的原因是named尝试使用IPV6进行传输
解决方法- 编辑文件vi /etc/sysconfig/named //named.service
把下面的代码加入文件中
OPTIONS="-4"
再次查看状态就正常了

清理host缓存:nscd -i hosts
安装 nscd
yum -y install nscd

备注:

1:(图片)
Centos7 搭建DNS服务器与原理配置详解
在这里插入图片描述]

2.
然后将服务,在防火墙上放行:
firewall-cmd --add-service=dns --permanent
firewall-cmd --reload
3.
另外参考:
DNS服务搭建(正反向解析)
CentOS7部署DNS服务
centos7搭建主从DNS服务器

疑问:
是否能把named.service服务的正反向解析文件写在同一个文件里?不能!
1.
在主配置文件里注释掉反向解析区
在这里插入图片描述
2.
在正向解析文件里添加反向解析记录
3.
重启named.service服务:未报错
查看状态:正常
正向解析:正常
反向解析:报错-未找到 not found
4.
恢复原样
删除新增内容,取消注释,重启服务。
恢复正常。

从DNS服务器:
原理:
对从服务器进行操作,新增从服务器的区(zone)的type设为slave,查询主服务器的数据库文件(二进制文件)。
要在主DNS服务器设置允许被查询即(内容或者改成any;):
allow-query { 192.168.118.152; };
从DNS服务器修改配置文件:(名字和主服务器相同)
指明master的IP地址。
file内容不必创建,只需写出目录,程序会自动生成并拥有权限。
在这里插入图片描述
结果,可以让主机指向从DNS服务器,也可以成功解析。从服务器的区解析依赖主服务器的区。

报错

SOA record not at top of zone:SOA记录没在区头,反向区配置文件错误

nslookup结果出现** server can’t find xxx.com: REFUSED:拒绝被查询,检查主配置文件的allow-query 后是否为 { any; };

nslookup结果出现** server can’t find 102.118.168.192.in-addr.arpa.: NXDOMAIN:查询失败,检查区配置文件设置是否正确

辅助服务器启动时红色报错:
dumping master file: slave/tmp-wCBICZTShC: open: file not found

疑问
经测试:

每次修改完配置文件要重启服务?是必须的。

文件权限
区配置文件的权限是否要修改?是。
区配置文件权限最低是怎样的?因为修改区配置文件只是为了本地测试通过,不影响客户机解析,故只需确保named有读权限。
区配置文件的属主属组一定要修改吗?不需要修改。对本地测试和客户机解析均不影响。

关键字$ORIGIN
是必要的吗?不是。不写则@取值为named.conf中zone后的字符串。
写了会报错吗?有可能会。比如我测试时正向写了没报错,反向的报错了,于是注释掉了再就不报错了。

关键字IN
是必要的吗?不是。比如下图的正向区配置文件,本地和宿主机nslookup仍能解析正确。
在这里插入图片描述
反向区配置文件
ARP记录的格式“111.168.192.in-addr.arpa”是允许的吗?改成要解析的网段就行。

我想反向解析其他网段行不行?行。
就把反向解析的网段少写一段,剩下的就由需要解析的ip补全。
在这里插入图片描述

在这里插入图片描述

全流程

区域数据库文件名、域名和IP地址都已无效处理,要改成你自己的才能使用。


在Centos7上
主DNS服务器,不带chroot
1. ifconfig 查看IP(固定IP),并把DNS指向自己
vim /etc/sysconfig/network-scripts/ifcfg-ens33
修改保存退出。
2.检查软件安装
yum -y install bind
3.配置主配置文件
vim /etc/named.conf
修改两个any:
options {
listen-on port 53 { 127.0.0.1; };
allow-query { localhost; };
};
把127.0.0.1和localhost都改成any,其余不动。
保存退出。
4.新增正反向区
vim /etc/named.rfc1912.zones
新增正向和反向解析区
例如:

zone "xxx.com" IN {
    
    
	type master;
	file "xxx.zone";
	allow-transfer {
    
     any; };  	//允许被查询,没有从服务器可以不加
};

保存退出。
5.创建并且配置正向数据库文件
cp /var/named/named.localhost /var/named/xxx.zone
vim /var/named/xxx.zone

$TTL 86400
@       IN SOA  xxx.com. admin.xxx.com. (
                                        202020201       ; serial
                                        86400      ; refresh
                                        3600      ; retry
                                        604800      ; expire
                                        10800 )    ; minimum
        NS      xxx.com.
xxx.com.        A       192.168.1.1
dns		A		192.168.1.1
www		A		192.168.1.1

保存退出。

6.创建并且配置反向数据库文件
cp /var/named/named.localhost /var/named/xxx.rev.zone
vim /var/named/xxx.rev.zone

保存退出。

7.修改权限或者更改属主,可用ll查看文件权限
cd /var/named/
chmod 644 /var/named/xxx.zone
chmod 644 /var/named/xxx.rev.zone

chown root:named xxx.zone
chown root:named xxx.rev.zone

8.检查dns语法
named-checkconf //检查主配置文件
named-checkzone xxx.com xxx.zone
named-checkzone 1.168.192.in-addr.arpa xxx.rev.zone
9.启动服务并查看状态
systemctl start named.service
systemctl status named.service
关闭ipv6解析(非必须,可跳过,进入下一步)
vi /etc/sysconfig/named
把下面的代码插入文件末尾
OPTIONS="-4"
保存退出。
重启服务并查看状态
systemctl restart named.service
systemctl status named.service
10.本地lookup测试
nslookup xxx.com
nslookup 192.168.1.1
11.暂时关闭防火墙 或 添加规则并重启防火墙
systemctl stop firewalld.service

firewall-cmd --add-service=dns --permanent
firewall-cmd --reload
12.客户机修改dns指向本服务器并进行nslookup测试


从DNS服务器搭建(辅助DNS服务器)
在另一台Centos7上
13.ifconfig 查看IP(固定IP),并把DNS指向自己
vim /etc/sysconfig/network-scripts/ifcfg-ens33
修改保存退出。
14.检查软件安装
yum -y install bind
15.配置主配置文件
vim /etc/named.conf
修改两个any,保存退出。
16.新增正反向区
vim /etc/named.rfc1912.zones
新增正向和反向解析区

例:
zone "xxx.com" IN {
    
    
	type slave;
	file "slaves/xxx.zone";
	masters {
    
     192.168.1.1; };
};

17.保证该路径对named用户具有写入权限
cd /var/named/
chmod 766 slaves
18.检查dns语法
named-checkconf
19.启动服务并查看状态
systemctl start named.service
systemctl status named.service
关闭ipv6解析(非必须,可跳过,进入下一步)
vi /etc/sysconfig/named
把下面的代码插入文件末尾
OPTIONS="-4"
保存退出。
重启服务并查看状态
systemctl restart named.service
systemctl status named.service
20.本地nslookup测试
nslookup xxx.com
nslookup 192.168.1.1
21.暂时关闭防火墙 或 添加规则并重启防火墙
systemctl stop firewalld.service
22.客户机修改dns指向本服务器并进行nslookup测试


下面是带chroot的流程:
在一个Cnetos7上
1. ifconfig 查看IP(固定IP),并把DNS指向自己
vim /etc/sysconfig/network-scripts/ifcfg-ens33
修改保存退出。
2.检查软件安装
yum install bind-chroot bind -y
3.复制生成文件
cp -R /usr/share/doc/bind-*/sample/var/named/* /var/named/chroot/var/named/
touch /var/named/chroot/var/named/data/cache_dump.db
touch /var/named/chroot/var/named/data/named_stats.txt
touch /var/named/chroot/var/named/data/named_mem_stats.txt
touch /var/named/chroot/var/named/data/named.run
mkdir /var/named/chroot/var/named/dynamic
touch /var/named/chroot/var/named/dynamic/managed-keys.bind
chmod -R 777 /var/named/chroot/var/named/data
chmod -R 777 /var/named/chroot/var/named/dynamic
cp -p /etc/named.conf /var/named/chroot/etc/named.conf

4.编辑主配置文件
vim /var/named/chroot/etc/named.conf
修改两个any,保存退出。
5.新增正反向区
cp /etc/named.rfc1912.zones /var/named/chroot/etc/
chmod 646 /var/named/chroot/etc/named.rfc1912.zones
vim /var/named/chroot/etc/named.rfc1912.zones
新增正向和反向解析区

例:
zone "x.net" IN {
    
    
	type master;
	file "x.zone";
	allow-query {
    
     any; };
};

保存退出。
6.创建并且配置正向数据库文件

cp /var/named/chroot/var/named/named.localhost /var/named/chroot/var/named/x.zone

vim /var/named/chroot/var/named/x.zone

$TTL 86400
@       IN SOA  x.net. admin.x.net. (
                                        202020201       ; serial
                                        86400      ; refresh
                                        3600      ; retry
                                        604800      ; expire
                                        10800 )    ; minimum
        NS      x.net.
x.net.        A       192.168.1.1
x		A		192.168.1.1
x		A		192.168.1.1
x		CNAME		www.x.net.

保存退出。

7.创建并且配置反向数据库文件

cp /var/named/chroot/var/named/named.localhost /var/named/chroot/var/named/x.rev.zone

vim /var/named/chroot/var/named/x.rev.zone

$TTL 86400
@       IN SOA  x.net. x.x.net. (
                                        202020201       ; serial
                                        86400      ; refresh
                                        3600      ; retry
                                        604800      ; expire
                                        10800 )    ; minimum
        NS      x.net.
1		PTR		x.x.net.
1		PTR		x.x.net.
1		PTR		x.x.net.

保存退出。
修改权限或者更改属主,可用ll查看文件权限
cd /var/named/chroot/var/named/
chmod 644 x.zone
chmod 644 x.rev.zone
8.检查dns语法
named-checkconf -z /var/named/chroot/etc/named.conf
named-checkconf /var/named/chroot/etc/named.conf
named-checkzone x.net /var/named/chroot/var/named/x.zone
named-checkzone 1.168.192.in-addr.arpa /var/named/chroot/var/named/x.rev.zone
9.启动服务并查看状态
systemctl start named-chroot
systemctl status named-chroot
10.本地lookup测试
nslookup x.net
nslookup 192.168.1.1
11.暂时关闭防火墙 或 添加规则并重启防火墙
systemctl stop firewalld.service
12.客户机修改dns指向本服务器并进行nslookup测试

猜你喜欢

转载自blog.csdn.net/qq_43750882/article/details/109187053
今日推荐