配置DNS完成,实现域名解析,验证正反向
配置DNS的实验报告
实验目的
- 理解DNS(域名系统)的工作原理与核心功能。
- 掌握Linux环境下DNS服务器的安装与配置方法。
- 熟悉正向解析、反向解析及负载均衡的配置。
- 验证DNS解析的正确性与稳定性。
实验环境
设备角色 | 操作系统 | IP地址 | 软件版本 |
---|---|---|---|
DNS服务器 | CentOS 7.6 | 168.1.10 | BIND 9.11.4 |
客户端PC | Windows 10 | 168.1.20 | |
辅助DNS服务器 | CentOS 7.6 | 168.1.11 | BIND 9.11.4 |
DNS基础理论
DNS工作原理
DNS通过分布式数据库将域名转换为IP地址,采用分层查询机制:
- 递归查询:客户端向DNS服务器发起请求,服务器逐级向上查询直至根服务器。
- 迭代查询:DNS服务器返回下一级服务器地址,由客户端自行查询。
核心组件
- 正向解析区:将域名映射为IP地址(如
www.example.com → 192.168.1.10
)。 - 反向解析区:将IP地址映射为域名(如
168.1.10 → www.example.com
)。 - 区域文件:存储域名与IP的映射关系,格式为
$ORIGIN
和IN
记录。
实验步骤
安装BIND服务
在CentOS 7中执行以下命令:
yum install y bind bindutils
编辑主配置文件/etc/named.conf
,启用递归查询:
options { directory "/var/named"; recursion yes; allowquery { any; }; };
配置正向解析区
创建正向区域文件/var/named/example.com.zone
:
$TTL 86400 @ IN SOA ns1.example.com. admin.example.com. ( 2023100101 ; Serial 3600 ; Refresh 1800 ; Retry 604800 ; Expire 86400 ) ; Minimum TTL IN NS ns1.example.com. IN NS ns2.example.com. ns1 IN A 192.168.1.10 ns2 IN A 192.168.1.11 www IN A 192.168.1.10
在named.conf
中添加区域声明:
zone "example.com" IN { type master; file "example.com.zone"; };
配置反向解析区
创建反向区域文件/var/named/1.168.192.zone
:
$TTL 86400 @ IN SOA ns1.example.com. admin.example.com. ( 2023100101 ; Serial 3600 ; Refresh 1800 ; Retry 604800 ; Expire 86400 ) ; Minimum TTL IN NS ns1.example.com. IN NS ns2.example.com. 10 IN PTR ns1.example.com. 11 IN PTR ns2.example.com.
在named.conf
中添加反向区域声明:
zone "1.168.192.inaddr.arpa" IN { type master; file "1.168.192.zone"; };
配置客户端
在Windows客户端中设置DNS服务器为168.1.10
,测试命令:
nslookup www.example.com
预期输出:Name: www.example.com → Address: 192.168.1.10
。
负载均衡与高可用配置
轮询负载均衡
在正向区域文件中添加多条A记录:
web1 IN A 192.168.1.10 web2 IN A 192.168.1.11 www IN A { 192.168.1.10; 192.168.1.11; }
客户端每次访问www.example.com
时,DNS会轮询返回不同IP。
辅助DNS服务器
在168.1.11
上配置named.conf
,并复制主服务器的区域文件,通过scp
传输文件:
scp /var/named/example.com.zone root@192.168.1.11:/var/named/
启动BIND服务后,主从服务器实现冗余。
实验结果验证
测试类型 | 命令 | 预期结果 |
---|---|---|
正向解析 | nslookup www.example.com |
返回168.1.10 或168.1.11 (负载均衡) |
反向解析 | nslookup 192.168.1.10 |
返回ns1.example.com |
递归查询 | dig @192.168.1.10 baidu.com |
返回公网IP(如56.78.90 ),证明递归查询正常 |
辅助服务器同步 | diff /var/named/example.com.zone |
主从服务器区域文件一致 |
问题与解决方案
问题1:DNS解析失败
- 原因:防火墙未开放端口53,或区域文件语法错误。
- 解决:执行
firewallcmd addservice=dns
,并使用namedcheckconf
检查配置文件。
问题2:负载均衡未生效
- 原因:客户端DNS缓存未更新,或区域文件中未配置多条记录。
- 解决:在客户端执行
ipconfig /flushdns
,并检查区域文件的www
记录是否为多值。
相关问题与解答
问题1:DNS缓存的作用是什么?
解答:DNS缓存(如浏览器或本地系统的缓存)可减少重复查询,提升解析速度,访问www.example.com
后,其IP会被临时存储,短时间内再次访问时直接返回缓存结果,降低服务器负载。
问题2:如何实现DNS的高可用性?
解答:通过部署主从DNS架构:
- 主服务器负责写入,从服务器通过
axfr
或ixfr
同步数据。 - 配置多台DNS服务器,客户端通过轮询或Anycast实现故障切换。
- 使用监控工具(如
systemd
)检测主服务器状态