CentOS7/RHEL7搭建DNS服务器

CentOS7/RHEL7搭建DNS服务器

DNS(域名系统)主要用于域名与IP地址的相互转换,将IP地址转换成对应的主机名或将主机名转换成与之相对应IP地址的一种机制。通过域名解析出IP地址的叫做正向解析,通过IP地址解析出域名的叫做反向解析。

1.安装DNS

配置网络或者本地YUM源进行安装

yum install -y bind bind-utils bind-chroot
2.修改配置

修改DNS主配置文件named.conf

vim /etc/named.conf
# 找到下面两行
listen-on port 53 { 127.0.0.1; }; 
allow-query { localhost; };
# 改成如下
listen-on port 53 { any;};
allow-query     { any;};
# 加载解析文件
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
3.配置解析

添加服务程序的区域配置文件

vim /etc/named.rfc1912.zones
# 正向解析
zone "shan.com" IN {
    type master;
    file "shan.com.zone";
    # allow-update { none; };
};
# 反向解析
zone "3.168.192.in-addr.arpa" IN {
    type master;
    file "shan.com.arpa";
    # allow-update { none; };
};

配置正向及反向解析域

# 复制name.localhost文件,编辑正向和反向解析文件
cd /var/named/
cp named.localhost shan.com.zone
cp named.loopback shan.com.arpa

添加正向解析域

vim shan.com.zone
# 修改正向解析域
$TTL 1D
@   IN SOA  @ rname.invalid. (
                    0   ; serial
                    1D  ; refresh
                    1H  ; retry
                    1W  ; expire
                    3H )    ; minimum
    IN  NS  shan.com.
@   IN  A   192.168.3.177
dns IN  A   192.168.3.177
www IN  A   192.168.3.177
# 0 ;更新序列号,用于标示数据库的变换,可以在10位以内
# 1D ;刷新时间,从域名服务器更新该地址数据库文件的间隔时间,默认为1天
# 1H ;重试延时,从域名服务器更新地址数据库失败以后,等待多长时间,默认为为1小时
# 1W ; 失效时间,超过该时间仍无法更新地址数据库,则不再尝试,默认为一周
# 3H ;设置无效地址解析记录(该数据库中不存在的地址)默认缓存时间。设置无效记录,最少缓存时间为3小时

检查区域文件是否正确

named-checkzone "shan.com" /var/named/shan.com.zone 
# 检查结果如下:
zone shan.com/IN: loaded serial 0
OK

添加反向解析域

vim shan.com.arpa
# 修改反向解析域
$TTL 1D
@   IN SOA  @ rname.invalid. (
                    0   ; serial
                    1D  ; refresh
                    1H  ; retry
                    1W  ; expire
                    3H )    ; minimum
    IN  NS  shan.com.
177 IN  PTR @
177 IN  PTR dns.shan.com.

检查区域文件是否正确

named-checkzone "3.168.192.in-addr.arpa" /var/named/shan.com.arpa 
# 检查结果如下:
zone 3.168.192.in-addr.arpa/IN: loaded serial 0
OK

直接将/var/named/目录下的所有文件都给named用户,让其能够修改。避免权限问题报错

chown named:named /var/named/*
4.修改本机DNS
vim /etc/resolv.conf
# 将原来的DNS修改成现在配置的DNS
nameserver 192.168.3.177
# 修改network中的dns
vim /etc/sysconfig/network-scripts/ifcfg-eno16777736
# 自己配的dns服务器的IP地址
DNS1=192.168.3.177
# 重启network和dns服务
systemctl restart network
systemctl restart named 
5.测试解析

需要关闭防火墙或者开放TCP和UDP的53端口
防火墙参考文档:
https://blog.csdn.net/SERE0211/article/details/106999838

# 需开放53端口和dns服务
firewall-cmd --zone=public --add-port=53/tcp --permanent
firewall-cmd --zone=public --add-port=53/udp --permanent
firewall-cmd --zone=public --add-service=dns --permanent
firewall-cmd --reload
systemctl restart firewalld

测试正向解析和反向解析

nslookup
# 正向解析:
> www.shan.com
Server:		192.168.3.177
Address:	192.168.3.177#53

Name:	www.shan.com
Address: 192.168.3.177
# 反向解析:
> 192.168.3.177
177.3.168.192.in-addr.arpa	name = dns.shan.com.
177.3.168.192.in-addr.arpa	name = 3.168.192.in-addr.arpa.
6.常用命令
# 重启DNS
systemctl restart named
# 启动DNS    
systemctl start named
# 查看DNS状态    
systemctl status named
# DNS解析测试
nslookup www.shan.com

你可能感兴趣的:(Linux)