提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
前言
本文采用单机部署,不涉及主从DNS服务器部署
概念
DNS 记录类型:DNS 域名数据库由资源记录和区文件指令组成。
SOA 记录:起始授权机构记录,SOA 备注说明了众多 NS(name server)记录中谁是主名称服务器,不参与功能,但是不能缺少。
NS 记录:域授权记录,当请求到达根域的时候,通过 NS 记录找到对应的域。
A 记录:当通过 NS 记录到达域以后,比如访问 www.baidu.com,通过 NS 我们找到了 baidu.com,此时就需要通过 A 记录找到 www。
MX:将该域下的所有邮件服务器地址指向邮件服务器。
AAAA 记录:A 记录处理 IPV4,AAAA 处理 IPV6。
PTR 记录:反向解析,将 IP 解析成域名。
CNAME:别名记录,允许多个名字映射到另外一个域名。比如我们 ping 百度的时候可以发现返回其实是 www.a.shifen.com 这个域名返回。所有 www.baidu.com 其实是个别名。
一、关闭防火墙、SELINUX
关闭防火墙或者开放特定端口
关闭防火墙:
systemctl stop firewalld
开放53端口:
firewall-cmd --zone=public --add-port=53/tcp --permanent
IP说明:
DNS主服务器:192.168.111.199 Centos7
客户机:192.168.16.233 Centos7
二、DNS 服务器安装过程
1.DNS 服务器安装 bind 服务
代码如下:
yum -y install bind-utils bind bind-devel bind-libs
2.配置主配置文件:/etc/named.conf
代码如下:
forwarders记得添加网关
options {
listen-on port 53 { any; };
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
recursing-file "/var/named/data/named.recursing";
secroots-file "/var/named/data/named.secroots";
allow-query { any; };
recursion yes;
dnssec-enable yes;
dnssec-validation yes;
bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic";
pid-file "/run/named/named.pid";
session-keyfile "/run/named/session.key";
forwarders { 192.168.111.1;8.8.8.8;114.114.114.114; };
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
3.加域名解析入口配置:/etc/named.rfc1912.zones
zone "cs.com" IN {
type master;
file "cs.com.zone"; # 配置文件为 cs.com.zone,该文件目录为 /var/named/ 下
};
4.配置单独的解析文件
cd /var/named/
cp named.localhost cs.com.zone
chown named.named cs.com.zone
5.修改配置:cs.com.zone
$TTL 1D ;TTL 修改配置生效时间,默认为一天
@ IN SOA @ rname.invalid. (
0 ; serial,配置编号,每次改完配置 +1,这样从服务器就知道更新配置
1D ; refresh,从服务器刷新时间,默认一天刷新一次
1H ; retry,如果刷新失败,默认1小时重试一次
1W ; expire,缓存过期时间,一周
3H ) ; minimum
NS @
A 127.0.0.1
AAAA ::1
www IN A 192.168.111.199
6.启动服务测试:
systemctl start named
systemctl enable named
7.查看端口
netstat -tlunp | grep 53
结果:
可以看到除了服务本身的 53 端口外,也监听了 953,这是 dns 服务的一个插件
8.本机测试解析
dig @127.0.0.1 www.cs.com
结果如图

9.两种检查配置的方法
# 检查主配置
named-checkconf /etc/named.conf
# 检查 zone 配置
named-checkzone cs.com /var/named/cs.com.zone
结果如下:

10.Linux客户端修改 DNS 配置测试,修改网卡 DNS 配置重启网卡:
注意:进入/etc/sysconfig/network-scripts/ifcdf-ens??修改网卡DNS配置时本机IP首选


11.Windows客户端修改 DNS 配置测试:
1.点击网络和Internet设置

2.点击更改适配器选项

3.右键点击属性

4.点击IPv4 点击属性

5.设置首选DNS服务器

6.ping客户机域名

三、实现DNS域名解析之添加域名热加载
添加新的域名要重新加载才能生效,可以重启named服务,我们这边采用热加载命令
修改文件添加新域名:
vi /var/named/cs.com.zone

重新加载,更改生效,命令如下:
rndc reload 或 systemctl reload named
总结
如果无法ping通,多检查配置文件和DNS文件是否正确
奶爸级教程:公司内网DNS服务器搭建
本文详细介绍了如何在Linux上搭建内网DNS解析服务器,包括关闭防火墙和SELINUX、安装bind服务、配置DNS域名解析、设置客户端DNS及测试解析。通过一步步操作,实现DNS域名解析并添加域名热加载功能。
361





