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.65. 修改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 ]