Linux下搭建DNS服务器

一、Linux下搭建DNS服务器的简要步骤说明

1.在bind的主配置文件中添加该域;

2.在/var/named中创建该域的zone文件;

3.编辑zone文件,添加必要的信息;

4.检查防火墙或selinux设置;

5.启动bind服务,重启网络服务;

6.用户端测试域名解析


二、具体搭建步骤


1.安装DNS服务器组件

安装bind

yum install -y bind bind-chroot bind-utils


2.编辑DNS主配置文件

vi  /etc/named.conf修改主配置文件,按如下要求修改后,保存退出


(1)将listen-on  port 53 {  127.0.0.1; };和allow-query   {  localhost; };这两行中括号内的值全部修改为any

(2)将listen-on-v6 port 53 {  : :1;  };这行注释掉;



3.向/etc/named.rfc1912.zones文件中添加如下内容,保存退出

注意:域名和IP地址可根据实际情况进行修改



4.添加设置DNS正向解析

修改zone配置文件,正向解析:

cd /var/named

cp   named.localhost  szlpt.cn.zone

vi szlpt.cn.zone(要和主配置文件[/etc/named.rfc1912.zones]里面定义的zone文件名一致)

[root@RHEL6 named]# more szlpt.cn.zone 
$TTL 1D
@       IN SOA  ns.szlpt.cn. root (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
@       IN NS   ns.szlpt.cn.
@       IN MX 5 mail.slzpt.cn.
ns      IN A    192.168.1.6
mail    IN A    192.168.1.6
smtp    IN A    192.168.1.6
pop3    IN A    192.168.1.6
pop     IN A    192.168.1.6
5. 修改zone配置文件,反向解析

cd /var/named/

cp named.localhost 1.168.192.zone

vi 1.168.192.zone(要和主配置[/etc/named.rfc1912.zones]文件里面定义的zone文件名一致)

[root@RHEL6 named]# more 1.168.192.zone
$TTL 1D
@       IN SOA  ns.szlpt.cn. root (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
@       IN NS   ns.slzpt.cn.
6       IN PTR  mail.szlpt.cn.


6.修改防火墙配置和SELINUX配置

Getenforce(查看selinux是否开启)
setenforce 0
vi /etc/sysconfig/iptables #配置防火墙端口
-AINPUT -m state --state NEW -m tcp -p tcp --dport 53 -j ACCEPT
-AINPUT -m state --state NEW -m udp -p udp --dport 53 -j ACCEPT
-AINPUT -m state --state NEW -m tcp -p tcp --dport 953 -j ACCEPT
service iptables restart #重启防火墙,使规则生效

7.启动DNS服务(注意DNS服务名称在linux也叫bind)

service named start


8.测试检测域信息是否正常(重要)

检查之前先看下 配置文件有没有读取权限 ll /var/named 

(如果没有读取全线, chmod +r /var/named/*  即可)



9.检查bind文件配置过程中容易出错

以下命令用以检查bind配置文件及zone文件语法

named-checkconf /etc/named.conf

named-checkzone szlpt.cn /var/named/ szlpt.cn.zone


如果正确的话,结果如下:

[root@RHEL6 named]# named-checkconf /etc/named.conf
[root@RHEL6 named]# named-checkzone szlpt.cn /var/named/szlpt.cn.zone
zone szlpt.cn/IN: szlpt.cn/MX 'mail.slzpt.cn' (out of zone) has no addresses records (A or AAAA)
zone szlpt.cn/IN: loaded serial 0
OK


10.重启DNS服务,查看服务状态

service named restart

service network restart



11.用户端测试解析,通过nslookup进行测试



12.报错问题解决


在启动DNS时出现Generating /etc/rndc.key:卡在这里了
[root@RedHat named]# /etc/init.d/named restart 
Stopping named:                                            [  OK  ] 
Generating /etc/rndc.key: 
^C 
[root@redhat named]#



解决方法:
[root@redhat named]# rndc-confgen -r /dev/urandom -a 
wrote key file "/etc/rndc.key"
[root@redhat named]# /etc/init.d/named restart 
Stopping named:                                            [  OK  ] 
Starting named:                                            [  OK  ] 



原文地址:https://www.cnblogs.com/xialiaoliao0911/p/7523927.html