centos7上安装DNS服务器可以实现域名与IP的双向解析,即通过域名可以找到主机IP,也可以通过IP找到域名。在postfix搭建邮件服务器中,需要用到DNS正向解析与反向解析,因此DNS服务器大有可为。笔者以前几次试图搭建DNS服务器,均以失败告终,其实再回过头来想一想,就差那么一丢丢就可以了。下面给出一个完整的搭建DNS服务器的过程,以及需要注意的事项。
首先需要安装bind,他是named服务的依赖,我们搭建DNS服务器就是要使用named服务,无需像有些文章所说的安装bind-chroot,另外我们需要通过一些命令比如nslookup,dig来检验我们的DNS服务是否正常,我们需要安装bind-utils,因此,整个DNS服务器的安装,就只需要安装bind,bind-utils,剩下的就是配置正向解析与反向解析。
centos7虚拟机的相关环境,主要是hosts信息和ip信息:
[root@server named]# cat /etc/hosts
127.0.0.1 localhost
192.168.56.201 server
ip信息:
[root@server named]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=eth0
UUID=aef066f9-05ef-4eed-b8b7-2bdab7687eb3
DEVICE=eth0
ONBOOT=yes
IPADDR=192.168.56.201
PREFIX=24
GATEWAY=192.168.56.2
DNS1=192.168.56.201
本次实验的目的是通过nslookup命令查找www.server.com会找到对应的ip为192.168.56.201,反向查找192.168.56.201的域名是www.server.com。
1、安装bind,bind-utils
安装成功,可以查看named服务。
2、配置/etc/named.conf,主要修改两个127.0.0.1为any
3、配置/etc/named.rfc1912.zones,增加一个正向解析与一个反向解析的配置,可以拷贝其他的zone 配置,如下所示server.com和56.168.192.in-addr.arpa两个zone是新增的:
4、拷贝/var/named/目录下named.localhost和named.loopback分别为我们在named.rfc1912.zones中设置的正向解析文件server.com.zone和反向解析文件server.com.local,注意文件名的对应。
5、有了两个文件,我们需要做修改,这里非常重要,先给出截图的设置,因为文件格式在拷贝过程中可能会发生变化。
粘贴一下代码:
$TTL 1D
@ IN SOA server.com. rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 127.0.0.1
AAAA ::1
NS ns.server.com.
ns IN A 192.168.56.201
www IN A 192.168.56.201
email IN A 192.168.56.201
反向解析文件内容截图:
反向解析文件内容代码:
$TTL 1D
@ IN SOA server.com. rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 127.0.0.1
AAAA ::1
PTR localhost.
NS ns.server.com.
ns A 192.168.56.201
201 PTR www.server.com.
201 PTR email.server.com.
这里named配置文件在/etc目录下,而正向解析与反向解析文件均在/var/named文件夹下,需要注意一下。
6、这一步可选,如果反向解析文件server.com.local的所属组不是named,那么将其修改为named。
7、配置本机DNS1,修改/etc/sysconfig/network-script/ifcfg-en0,设置DNS1为本机ip地址。
8、重启网络,启动named服务。
9、验证:nslookup www.server.com / nslookup 192.168.56.201
如果我们停止named服务,那么nslookup查找会提示失败:
综合启动named服务时查询正确,我们可以得出结论,DNS服务配置成功了。
以上步骤虽然很多,但是真正配置的地方就几个,一个是named.conf,再一个就是named.rfc1912.zones,然后就是两个正向解析和反向解析文件,其他的设置都是次要的,但是也很关键,比如本机DNS1的设置,server.com.local文件的所属组。
总结安装与配置可能出现的问题:
一、dns设置为本机ip , 修改文件 /etc/sysconfig/network-script/ifcfg-eth0 ,找到 DNS1=192.168.56.201
二、反向解析文件server.com.local文件需要正确的组,否则会因为permission denied,而导致反向解析失败。
三、named服务正常启动,配置文件语法正确,不会出错,如果启动报错,可以通过systemctl status named查看启动状态,一般会带出启动失败的错误原因。