
Linux DNS解析服务器
Linux DNS域名解析服务器应用与管理
引导
- 了解DNS服务的作用与域名解析工作流程
- 掌握DNS服务器的安装和服务启停控制
- 熟悉DNS服务器的配置文件
- 熟悉DNS正向和反向解析的实现方法
- 掌握DNS正反向解析的测试方法
- 掌握主、辅和缓存DNS服务器的配置方法
1. DNS服务基础
1.1 DNS系统结构与管理
- 作用:通过分布式数据库系统管理大规模网络中的主机名与IP映射关系。
- 域名空间结构:树状层次结构(根域 → 顶级域 → 二级域 → 三级域)。
- 顶级域分类:
- 传统域名:
.com
(商业)、.edu
(教育)、.gov
(政府)、.net
(网络服务)等。 - 新增域名:
.info
、.biz
、.name
等。
- 传统域名:
- 服务器类型:
- 主服务器(Master):权威维护区域内域名与IP的对应关系。
- 辅助服务器(Slave):从主服务器同步数据,提供冗余备份。
- 缓存服务器(Cache-only):加速查询,节省带宽,无本地数据库。
1.2 DNS解析流程(以www.benet.com
为例)
- 客户端查询本地
hosts
文件 → 无结果则请求Local DNS。 - Local DNS向根DNS发起请求 → 根DNS返回
.com
域的NS记录。 - Local DNS向
.com
域DNS请求 → 返回benet.com
域的NS记录。 - Local DNS向
benet.com
域DNS请求 → 获得www.benet.com
的A记录(IP地址)。 - Local DNS将IP返回客户端 → 客户端访问目标服务器。
1.3 查询类型
- 递归查询:
DNS客户端发出一次请求,Local DNS必须返回最终结果(开启recursion yes;
)。 - 迭代查询:
DNS服务器间多次请求,逐步返回更接近目标的DNS指引(如根→顶级→二级)。
1.4 查询顺序
- 客户端
hosts
文件 → 客户端缓存 - DNS服务器:区域文件 → 缓存 → 转发服务器 → 根DNS(递归开启时)
2. 安装与配置Bind服务
2.1 安装Bind
# 检查已安装的Bind组件
rpm -qa | grep bind
# 安装Bind主程序及安全组件
yum install -y bind bind-chroot
- 关键目录:
- 配置文件:
/etc/named.conf
(主配置)、/etc/named.rfc1912.zones
(区域配置) - 数据文件:
/var/named/
- Chroot模式:配置文件移至
/var/named/chroot/etc/
,数据文件在/var/named/chroot/var/named/
- 配置文件:
2.2 启停控制与防火墙
# 服务控制
systemctl start|stop|restart named
# 开放DNS端口(UDP 53)
firewall-cmd --add-service=dns --permanent
firewall-cmd --reload
# 关闭SELinux限制
setsebool -P named_disable_trans 1
3. Bind配置文件详解
3.1 主配置文件 /etc/named.conf
options {
listen-on port 53 { 127.0.0.1; }; # 监听IP
directory "/var/named"; # 数据文件目录
allow-query { any; }; # 允许查询的客户端
recursion yes; # 开启递归查询
forwarders { 114.114.114.114; }; # 设置转发DNS
};
zone "." IN { # 根域配置
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.zones"; # 包含区域配置文件
3.2 区域配置文件 /etc/named.rfc1912.zones
- 区域类型:
master
:主区域(可读写)slave
:辅助区域(从Master同步)forward
:转发区域
- 定义格式:
- 正向解析:
zone "mzisle.com" IN { type master; file "mzisle.com.zone"; # 正向区域数据文件 };
- 反向解析:
zone "1.168.192.in-addr.arpa" IN { type master; file "192.168.1.rev"; # 反向区域数据文件 };
- 正向解析:
3.3 区域数据文件示例
-
正向解析文件
/var/named/mzisle.com.zone
:$TTL 1D @ IN SOA dns.mzisle.com. root.mzisle.com. ( 2023081301 ; Serial 1D ; Refresh 1H ; Retry 1W ; Expire 3H ) ; Minimum TTL NS dns.mzisle.com. dns A 192.168.1.254 mail A 192.168.1.101 www A 192.168.1.102 bbs CNAME www.mzisle.com. # 别名记录
-
反向解析文件
/var/named/192.168.1.rev
:$TTL 1D @ IN SOA dns.mzisle.com. root.mzisle.com. ( ... ) NS dns.mzisle.com. 254 PTR dns.mzisle.com. # IP末尾254 → 域名 101 PTR mail.mzisle.com.
4. 部署场景与测试
4.1 基础解析测试
# 重启服务
systemctl restart named
# 使用nslookup验证
nslookup www.mzisle.com # 应返回192.168.1.102
nslookup 192.168.1.101 # 应返回mail.mzisle.com
4.2 辅助DNS配置
主服务器配置:
在/etc/named.rfc1912.zones
中允许辅助服务器同步:
zone "mzisle.com" IN {
type master;
file "mzisle.com.zone";
allow-transfer { 192.168.1.253; }; # 辅助DNS的IP
};
辅助服务器配置:
zone "mzisle.com" IN {
type slave;
masters { 192.168.1.254; }; # 主DNS的IP
file "slaves/mzisle.com.zone"; # 同步文件保存路径
};
- 验证:
在辅助服务器执行ls /var/named/slaves/
,确认同步文件生成。
4.3 缓存DNS配置
主配置文件 /etc/named.conf
:
options {
allow-query { 192.168.10.0/24; }; # 允许客户端网段
recursion yes;
forward only;
forwarders { 114.114.114.114; }; # 公共DNS
dnssec-validation no; # 关闭DNSSEC加速解析
};
- 客户端测试:
将DNS设置为缓存服务器IP,执行nslookup www.baidu.com
应返回非权威应答(Non-authoritative answer)。
关键点总结:
- 配置文件语法检查:
named-checkconf
(主配置) /named-checkzone
(区域文件)- 区域文件修改后:
需递增Serial值(如2023081301
→2023081302
),否则辅助DNS不同步。- 防火墙与SELinux:
确保开放端口并关闭安全限制,避免解析失败。
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 牧之小岛-Allende
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果