DNS核心概念与BIND配置详解
DNS 核心概念与 BIND 服务配置
一、DNS 核心概念
1. DNS 定义与组成
- DNS (Domain Name System):域名系统
- 核心组件:
- 解析器 (Resolver):客户端 DNS 查询组件
- 域名服务器 (Name Server):存储域名-IP 映射关系的服务器
2. 域名与 IP 关系
关系类型 | 说明 | 示例 |
---|---|---|
域名→IP | 必须对应(一对一或多对一) | www.example.com → 1.2.3.4 |
IP→域名 | 不一定对应(可多对一) | 1.2.3.4 → server.example.com |
DNS 轮询 | 一个域名对应多个 IP(负载均衡) | www.example.com → [1.2.3.4, 5.6.7.8] |
3. 域名解析过程
4. DNS 服务器类型
类型 | 功能描述 | 特点 |
---|---|---|
主服务器 | 权威数据源 | 可读写,数据原始源 |
辅助服务器 | 从主服务器同步数据 | 只读,提供冗余 |
转发服务器 | 转发查询到其他 DNS | 缓存加速 |
根服务器 | 顶级域名查询入口 | 全球 13 组 |
二、域名体系结构
分层树状结构
.
├── com (顶级域)
│ ├── example (二级域)
│ │ ├── www (主机名) → FQDN: www.example.com.
│ │ ├── mail (主机名) → FQDN: mail.example.com.
├── cn (国家域)
│ ├── edu (二级域)
│ │ ├── www → FQDN: www.edu.cn.
FQDN (完全合格域名)
- 格式:
主机名.二级域.顶级域.根域.
- 示例:
server.example.com.
(末尾点号常省略)
三、DNS 解析类型
查询方式
类型 | 过程描述 | 使用场景 |
---|---|---|
递归查询 | DNS 服务器必须返回最终结果 | 客户端→本地 DNS |
迭代查询 | DNS 服务器返回最佳参考信息 | DNS 服务器之间 |
解析方向
方向 | 功能 | 记录类型 |
---|---|---|
正向解析 | 域名 → IP 地址 | A/AAAA |
反向解析 | IP 地址 → 域名 | PTR |
四、BIND 服务配置
关键文件与目录
路径 | 作用描述 |
---|---|
/etc/hosts | 本地主机名解析 |
/etc/resolv.conf | 客户端 DNS 服务器配置 |
/etc/named.conf | 主配置文件 |
/etc/named.rfc1912.zones | 区域声明配置文件 |
/var/named/ | 区域数据文件目录 |
/var/named/named.localhost | 正向解析模板 |
/var/named/named.empty | 反向解析模板 |
主 DNS 服务器配置步骤
-
安装软件包
yum -y install bind bind-chroot
-
配置 /etc/named.conf
vim /etc/named.conf options {listen-on port 53 { any; };listen-on-v6 port 53 { any; };allow-query { any; };recursion yes; # 允许递归查询 };
-
配置区域声明 (/etc/named.rfc1912.zones)
vim /etc/named.rfc1912.zones // 正向区域 zone "example.com" IN {type master;file "ydh.com"; allow-update { none; }; # 允许辅助DNS同步 };// 反向区域 (修正IP段) zone "100.168.192.in-addr.arpa" IN {type master;file "com.ydh"; allow-update { none; }; # 使用统一命名规范 };
-
创建区域数据文件
cd /var/named cp -p named.localhost ydh.com cp -p named.empty com.ydh
-
正向区域文件示例 (example.com.zone)
$TTL 1D @ IN SOA yangduhan.example.com. rname.invalid. (2025081101 ; 序列号 (格式:YYYYMMDDNN)1D ; 刷新时间1H ; 重试时间1W ; 过期时间3H ) ; 否定缓存TTL; 名称服务器记录NS yangduhan.example.com.; 主机记录 (解决原始IP冲突) yangduhan IN A 192.168.100.10 ; DNS服务器IP web IN A 192.168.100.50 ; Web服务器IP mail IN A 192.168.100.60 ; 邮件服务器IP client IN A 192.168.100.100 ; 客户端IP; 别名记录 www IN CNAME web.example.com.
-
反向区域文件示例 (172.16.30.rev)
$TTL 3H @ IN SOA yangduhan.example.com. rname.invalid.(2025081101 ; 序列号1D ; 刷新1H ; 重试1W ; 过期3H ) ; 否定缓存NS yangduhan.example.com.; PTR记录 (与正向解析对应) 10 IN PTR yangduhan.example.com. 50 IN PTR web.example.com. 60 IN PTR mail.example.com. 100 IN PTR client.example.com.
重启服务
systemctl restart named systemctl enable named #关闭防火墙 systemctl stop firewalld systemctl disable firewalld #关闭selinux setenforce 0
-
防火墙配置
firewall-cmd --permanent --add-service=dns firewall-cmd --reload
vim /etc/sysconnection/network-scripts/ifcfg-ens33
DNS1=192.168.100.10 #更改DNS
#测试
nslookup
>yangduhan.example.com
客户端配置
# /etc/sysconfig/network-scripts/ifcfg-ens33
DNS1=192.168.100.10 # 主DNS服务器IP
DNS2=192.168.100.20 # 辅助DNS服务器IP
辅助 DNS 配置修正
zone "example.com" IN {type slave;file "slaves/example.com"; masters { 192.168.100.10; }; # 修正为主服务器IP
};zone "100.168.192.in-addr.arpa" IN {type slave;file "slaves/com.example"; # 统一命名masters { 192.168.100.10; }; # 修正为主服务器IP
};
重启服务
systemctl restart named
systemctl enable named
#关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
#关闭selinux
setenforce 0
五、验证与排错
常用命令
# 解析测试
nslookup web.example.com
dig +short mail.example.com# 反向解析测试
nslookup 192.168.100.50
dig -x 192.168.100.60# 查看区域传输
dig AXFR example.com @192.168.100.10
日志检查
tail -f /var/log/messages
named-checkconf # 检查主配置
named-checkzone example.com /var/named/example.com.zone # 检查区域文件
六、关键补充说明
-
序列号管理:
- 格式推荐:
YYYYMMDDNN
(年月日+当日修订号) - 每次修改区域文件后必须增加序列号
- 辅助DNS通过序列号判断是否需要同步
- 格式推荐:
-
时间参数优化:
参数 生产环境建议 测试环境建议 刷新时间 1-6小时 15分钟 重试时间 30-60分钟 5分钟 过期时间 1-2周 1天 -
安全增强:
// 禁用版本信息查询 version "not disclosed";// 限制区域传输 allow-transfer { key slave-key; };// 启用TSIG密钥认证 key "slave-key" {algorithm hmac-sha256;secret "base64-encoded-key"; };
-
资源记录类型:
记录类型 功能描述 示例 A IPv4 地址记录 web IN A 192.168.1.10 AAAA IPv6 地址记录 web IN AAAA 2001:db8::1 CNAME 别名记录 www IN CNAME web MX 邮件交换记录 @ IN MX 10 mail TXT 文本记录(验证等用途) @ IN TXT “v=spf1…”