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.arpaname = dns.shan.com.
177.3.168.192.in-addr.arpaname = 3.168.192.in-addr.arpa.
6.常用命令
# 重启DNS
systemctl restart named
# 启动DNS
systemctl start named
# 查看DNS状态
systemctl status named
# DNS解析测试
nslookup www.shan.com