启动named服务报错!

安装及配置bind服务程序:

yum -y install bind

三个关键文件:

主配置文件(/etc/named.conf)

区域配置文件(/etc/named.rfc1912.zones)

数据配置文件目录(/var/named)

 

vim /etc/named.conf

修改两个参数:

listen-on port 53   {  any ;  };       //服务器上所有IP地址均可提供DNS域名解析服务

allow-query   {   any;   };        //允许所有人对本服务器发送DNS查询请求

 

例如进行正向解析实验中:

第一步:编辑区域配置文件:vim  /etc/named.rfc1912.zones(按照模板添加自己的域名解析信息)

第二步:编辑数据配置文件:可以先从/var/named目录中复制一份正向解析的模板文件,需要-a参数

命令如下:cd  /var/named

                  cp   -a  named.localhost     文件名(与区域配置文件中一致)

                   vim   文件名    //添加自己的数据

问题来啦!!!systemctl restart  named
Job for named.service failed because the control process exited with error code. See "systemctl status named.service" and "journalctl -xe" for details.

命令:named-checkconf -z /etc/named.conf
zone linuxprobe.com/IN: NS 'ns.linuxprobe.com.linuxprobe.com' has no address records (A or AAAA)
zone linuxprobe.com/IN: not loaded due to errors.  // 没有指定A记录导致出错

在 /usr/lib/systemd/system/named.service 中定义了一行:

ExecStartPre=/bin/bash -c 'if [ ! "$DISABLE_ZONE_CHECKING" == "yes" ]; then /usr/sbin/named-checkconf -z "$NAMEDCONF"; else echo "Checking of zone files is disabled"; fi'

 


就是因为启动 named 前会检查 named-checkconf -z /etc/named.conf ,回应 exit 1,所以启动失败

解决方式

1. 直接用 named -u named 启动,如果要习惯 systemctl restart named.service启动的话,就不要这么做了,只是暂时。
2. 改写 ExecStartPre 检查方式,让它 exit 0
3.注解ExecStartPre 不检查 zone
4. 或在 /etc/sysconfig/named 加入 DISABLE_ZONE_CHECKING=”yes”,并确认 named.service 文档里的 EnvironmentFile 是不是长这样: EnvironmentFile=/etc/sysconfig/named,我刚看时是长这样: EnvironmentFile=-/etc/sysconfig/named (多了 – dash)。改了 named.service 后要 systemctl daemon-reload

posted @ 2019-08-26 16:19  Room、C  阅读(8761)  评论(0编辑  收藏  举报