DNS解析与配置完全指南

张开发
2026/5/12 15:52:56 15 分钟阅读
DNS解析与配置完全指南
DNS解析与配置完全指南一篇让你彻底搞懂DNS原理及BIND配置的文章 目录DNS概念DNS常用工具DNS服务配置主从复制反向解析1. DNS概念1.1 什么是DNSDNSDomain Name System域名系统是互联网的电话本负责将人类易记的域名如www.baidu.com转换为机器可读的IP地址如110.242.68.66。1.2 域名的层次结构┌─────────────────────────────────────────────────┐ │ http://www.baidu.com. │ │ ──── ─── ──── ──── │ │ 协议 主机 二级 顶级 根域名 │ │ 名 域名 域名 (通常省略) │ └─────────────────────────────────────────────────┘层级说明示例根域名全世界13组IPv4根域服务器.顶级域名按用途或国家划分.com、.cn、.edu二级域名组织注册的域名.baidu、.taobao三级及以下组织自行分配www、mail1.3 域名解析工作原理有记录无记录有缓存无缓存有无客户端请求 www.baidu.com检查 hosts 文件直接访问检查本地DNS缓存向DNS代理服务器发起请求DNS代理缓存?向根域名服务器查询返回 .com 域名服务器地址向 .com 服务器查询返回 baidu.com 域名服务器地址向 baidu.com 服务器查询返回 www.baidu.com IP地址存入缓存并返回客户端查询方式对比类型工作方式特点递归查询DNS服务器必须返回准确结果若本地没有则向上级查询客户端只需发一次请求迭代查询DNS服务器返回下一级DNS地址客户端继续查询客户端需要多次请求1.4 常用配置文件# 网卡配置文件Rocky 9cat/etc/NetworkManager/system-connections/网卡名.nmconnection# 传统网卡配置OpenEulercat/etc/sysconfig/network-scripts/ifcfg-eth1# 全局DNS配置cat/etc/resolv.conf# nameserver 10.0.0.2# 本地hosts文件优先级最高cat/etc/hosts系统差异提醒UbuntuDNS服务为systemd-resolved本地监听127.0.0.53RockyDNS服务为NetworkManager直接使用上游服务器2. DNS常用工具2.1 dig - 域名查询利器# 基本语法dig[DNS服务器][域名][记录类型]# 使用示例dig8.8.8.8 www.baidu.com# 使用Google DNS查询digwww.baidu.com short# 简洁输出dig-x110.242.68.66# 反向解析digtrace www.baidu.com# 追踪完整解析路径2.2 nslookup - 经典查询工具# 基本语法nslookup[域名][DNS服务器]# 使用示例nslookupwww.baidu.comnslookupwww.baidu.com8.8.8.8nslookup-typeMX baidu.com# 查询邮件交换记录3. DNS服务配置3.1 BIND 简介BINDBerkeley Internet Name Domain是全球使用最广泛的DNS服务器软件默认监听53端口。安装命令系统安装命令服务名启动命令Rocky/CentOSyum install bind -ynamedsystemctl start namedUbuntu/Debianapt install bind9 -ybind9systemctl start bind93.2 配置文件详解Rocky 系统结构/etc/named.conf # 主配置文件 ├── options {} # 全局选项 ├── logging {} # 日志配置 └── zone {} # 区域定义Ubuntu 系统结构/etc/bind/ ├── named.conf # 主配置引用其他文件 ├── named.conf.options # 全局选项 ├── named.conf.default-zones # 默认区域 └── db.* # 区域数据文件3.3 核心配置参数options{listen-on port 53{127.0.0.1; any;};# 监听地址allow-query{localhost; any;};# 允许查询的客户端forward first;# 转发策略forwarders{1.1.1.1;};# 上游DNSdnssec-validation no;# 转发时需关闭allow-transfer{从服务器IP;};# 区域传送白名单allow-update{none;};# 禁止动态更新};3.4 区域文件格式$TTL 86400 # 默认生存时间 IN SOA ns1.test.com. admin.test.com. ( 2024041701 ; serial # 序列号主从同步依据 3600 ; refresh # 刷新时间1小时 1800 ; retry # 重试时间30分钟 604800 ; expire # 过期时间7天 86400 ; minimum # 最小TTL1天 ) IN NS ns1.test.com. # 权威NS记录 IN NS ns2.test.com. # 备用NS ns1 IN A 192.168.1.1 # A记录 www IN A 192.168.1.10 # 主机记录 mail IN A 192.168.1.203.5 记录类型速查表记录类型用途示例SOA区域授权起始必须第一条 IN SOA ns1.test.com. admin...NS指定权威DNS服务器 IN NS ns1.test.com.A域名 → IPv4地址www IN A 192.168.1.10AAAA域名 → IPv6地址www IN AAAA 2001:db8::1PTRIP → 域名反向解析10 IN PTR www.test.com.CNAME别名ftp IN CNAME wwwMX邮件交换记录 IN MX 10 mail.test.com.3.6 部署步骤# 1. 安装BINDyuminstallbind-y# 2. 编辑配置文件vim/etc/named.conf# 3. 创建区域文件vim/var/named/test.com.zone# 4. 检查配置语法named-checkconf# 检查主配置named-checkzone test.com /var/named/test.com.zone# 检查区域文件# 5. 重载配置rndc reload# 或systemctl reload named# 6. 测试验证dig你的DNS服务器IP www.test.com3.7 rndc 管理工具rndc status# 查看服务状态rndc reload# 重载所有配置rndc reload test.com# 重载指定区域rndc retransfer test.com# 手动触发区域传送rndc notify test.com# 发送更新通知3.8 清除DNS缓存系统查看缓存清除缓存Windowsipconfig /displaydnsipconfig /flushdnsLinuxnscd -g或resolvectl statisticsnscd -i hosts4. 主从复制4.1 架构说明主从复制可以✅ 提高DNS服务可用性✅ 分担查询负载✅ 防止单点故障从DNS服务器 (10.0.0.12)主DNS服务器 (10.0.0.13)区域传送区域文件自动同步区域文件客户端DNS查询4.2 主服务器配置# /etc/bind/named.conf.default-zones zone test.com IN { type master; file /etc/bind/db.test.com; allow-transfer { 10.0.0.12; }; # 允许从服务器同步 allow-update { none; }; };主服务器区域文件需增加从服务器NS记录$TTL 86400 IN SOA ns1.test.com. admin.test.com. (2024041701 3600 1800 604800 86400) IN NS ns1.test.com. # 主服务器 IN NS ns2.test.com. # 从服务器 ns1 IN A 10.0.0.13 # 主服务器IP ns2 IN A 10.0.0.12 # 从服务器IP www IN A 10.0.0.1004.3 从服务器配置# /etc/bind/named.conf.default-zones zone test.com IN { type slave; file /etc/bind/slaves/db.test.com; # 自动生成的文件 masters { 10.0.0.13; }; # 指定主服务器 };⚠️注意事项从服务器的区域文件目录需有写权限chown bind:bind /etc/bind/slaves主服务器序列号serial增加后从服务器会自动同步修改配置后执行rndc reload生效5. 反向解析5.1 什么是反向解析反向解析是将IP地址 → 域名的映射常用于邮件服务器反垃圾验证日志分析追溯网络故障排查5.2 反向区域命名规则IP10.0.0.13对应反向域名13.0.0.10.in-addr.arpa.规则将IP地址倒序 .in-addr.arpa.5.3 反向解析配置# /etc/bind/named.conf.default-zones zone 0.0.10.in-addr.arpa IN { type master; file /etc/bind/db.10.0.0; };5.4 区域文件写法完整格式推荐新手$TTL 86400 IN SOA ns1.test.com. admin.test.com. ( 2024041701 ; serial 3600 ; refresh 1800 ; retry 604800 ; expire 86400 ; minimum ) IN NS ns1.test.com. 13 IN PTR www.test.com. # 10.0.0.13 → www.test.com 12 IN PTR log.test.com. # 10.0.0.12 → log.test.com简洁格式节省篇幅$TTL 1D IN SOA ns1.test.com. admin.test.com. (1 3H 15M 1D 1W) IN NS ns1.test.com. 13 IN PTR www.test.com. 12 IN PTR log.test.com.5.5 验证反向解析# 测试反向解析dig-x10.0.0.13# 指定DNS服务器测试dig-x10.0.0.13 你的DNS服务器IP# 使用nslookup验证nslookup10.0.0.13 常见问题排查问题1dig查询无结果# 检查DNS服务状态systemctl status named# 检查端口监听netstat-tunlp|grep53# 查看日志tail-f/var/log/messages# Rockytail-f/var/log/syslog# Ubuntu问题2主从不同步# 检查序列号是否增加digtest.com SOA# 手动触发同步rndc retransfer test.com# 检查从服务器目录权限ls-la/var/named/slaves/问题3反向解析失败# 检查区域配置named-checkzone0.0.10.in-addr.arpa /etc/bind/db.10.0.0# 验证NS记录指向正确dig-x10.0.0.13 NS 总结场景关键配置验证命令正向解析A记录 NS记录dig www.test.com反向解析PTR记录dig -x IP地址主从复制allow-transfer type slavedig 从服务器 www.test.com转发模式forwarders dnssec-validation nodig 外部域名参考资料BIND 官方文档RFC 1035 - Domain Names最后更新2026年希望这篇博客能帮助你彻底理解DNS的原理与配置如有问题欢迎留言交流

更多文章