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

it2023-08-14  71

目录: 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测试

最新回复(0)