目录
[1. 修改配置文件](#1. 修改配置文件)
[2. 拷贝示例文件并编辑该文件](#2. 拷贝示例文件并编辑该文件)
[3. 修改文件的属组,使用named-checkzone命令校验文件,重启named服务](#3. 修改文件的属组,使用named-checkzone命令校验文件,重启named服务)
[4. 回到103主机,测试反向查找域名解析,也可以通过IP解析域名了](#4. 回到103主机,测试反向查找域名解析,也可以通过IP解析域名了)
DNS系统的作用
- 正向解析:根据域名查找对应的IP地址
- 反向解析:根据IP地址查找对应的域名
- DNS系统的分布式数据结构
缓存域名服务器
- 也称为DNS高速缓存服务器
- 通过向其他域名服务器查询获得域名->IP地址记录
- 将域名查询结果缓存到本地,提高重复查询时的速度
主域名服务器
- 特定DNS区域的权威服务器,具有唯一性
- 负责维护区域内所有域名->IP地址的映射记录
- 需要自行建立所负责区域的地址数据文件
从域名服务器
- 也称为辅助域名服务器,是对主域名服务器的热备份
- 其维护的域名->IP地址记录来源于主域名服务器
- 需要从主域名服务器自动同步区域地址数据库
BIND(Berkrley Internet Name Daemon)
- BIND是应用最广泛的DNS服务程序
- 官方站点:ISC - ISC
相关软件包
- bind-9.9.4-37.el7.x86_64.rpm
- bing-utils-9.9.4-37.el7.x86_64.rpm
- bind-libs-9.9.4-37.el7.x86_64.rpm
- bind-chroot-9.9.4-37.el7.x86_64.rpm
UDP:53/TCP:53
客户端发送解析请求给服务器(UDP53)
TCP:53
主从DNS服务器
DNS服务器转发解析给另一个DNS服务器
安装软件包
yum -y install bind*
部署缓存域名服务器实验步骤
1.1
安装所有相关软件包
打开该软件的配置文件
配置文件说明,图中这一部分是该软件的 全局配置选项,这里只修改两行参数
|----------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 代码 | 说明 |
| listen-on port 53 { 192.168.10.101; }; | 监听端口,这里监听本机网卡的53号端口 * UDP:客户端发送解析请求给服务器,此时服务器就用UDP的53端口来接受客户端的请求 * TCP:从服务器要连接主服务器来同步数据,就用TCP53建立连接。如果客户端向首选DNS服务器发送请求,但首选服务器没有响应记录,该服务器会通过 DNS服务器转发解析给另一个服务器,此时两个服务器会使用TCP53建立连接。 *** ** * ** *** 192.168.10.101:要监听的IP地址,图中表示监听本机网卡的地址,既可以解析本机的请求,也可以处理另外主机的请求 |
| listen-on-v6 port 53 { ::1; }; | 监听IPv6的地址 ::1代表IPv4的127.0.0.1的地址 |
| directory | 区域文件的存储目录 |
| dump-file | 缓存数据库文件的存储位置 |
| statistics-file | 状态统计文件的存储位置 |
| memstatistics-file | 内存统计信息的文件存储位置 |
| recursing-file | 安全备份相关的文件存储位置 |
| secroots-file | 执行递归查询的文件存储位置 |
| allow-query | 允许查询的主机 改为any表示允许所有主机都能查询域名 |
向下翻,可以看到两部分配置选项
其中 zone "." 此处的.代表了根域,根域有13个根服务器
当前主机接收到DNS解析的请求后,会把请求发给指定的服务器,服务器的地址就在 file 指定的 "named.ca" 文件中保存
在named.ca文件中,可以看到a ~ m服务器的两种地址,a ~ m也可以看出服务器的数量,有13个
1.2
启动named服务
在把另一台虚拟机的DNS首选地址改为192.168.10.101,DNS2删除
systemctl restart network重启网络服务
重启网络,为了方便进行实验 关闭防火墙
setenforce 0
还需关闭作为DNS缓存域名服务器的101主机的防火墙
1.3
使用ping命令测试DNS是否正常工作,或者为103主机安装bind-utils软件包来使用nslookup功能测试解析DNS
部署正向查找主域名服务器实验步骤
1.1
编辑/etc/named.conf配置文件
定义区域配置选项
保存并退出重启服务
此时会发现重启服务报错了,我们tail /var/log/messages 显示系统日志最后十行内容,可以发现第一行就显示了原因
原因是找不到配置文件中指定的正向查找区域文件
同时可以使用named-checkconf命令来检查配置文件有没有错误
输入完命令后没有提示,说明配置文件没有出错
然而在配置文件中的全局配置选项里,也指定了区域文件的存放位置
1.2
所以我们cd到该目录下 拷贝示例文件进行修改
$TTL 1D # 有效解析记录的生命周期。TTL:生命周期;1D:一天 @ IN SOA @ rname.invalid. ( # 第二个@符号,调整为配置文件中定义的区域名 # SOA:起始授权机构,代表主域名服务器 # rname.invalid:该设备管理员的邮箱账号 由于@符号与该文件规则冲突所以用.代替 0 ; serial # 更新序列号,从0开始,每一次更新就+1 1D ; refresh # 刷新时间,重新下载数据文件的间隔时间;D:天 1H ; retry # 重试时间,每间隔一小时重新同步一次;H:小时 1W ; expire # 失效时间,下载时间超过一周就放弃下载;W:周 3H ) ; minimum # 无效解析记录生命周期 # 告诉该区域有两台DNS服务器和一台邮件服务器 ↓ @ IN NS ns1.example.com. IN NS ns2.example.com. IN MX 10 mail.example.com. # NS:名称服务器 # MX:邮件服务器;10:该邮箱服务器的优先级,数字越小越优先(0 ~ 10)
修改后的样子如下图
A:A记录,域名到IP的解析过程
* IN A 192.168.10.106 表示 泛域名解析,当解析的名字在范围内就按照具体条目解析,如果不在范围内,按照泛域名解析指向具体条目
此时重启named服务就不会报错了
使用 named-checkzone 区域名称 区域文件路径 来检测区域文件的正确性,像图中显示的两行即为正确
1.3
修改文件的属主或数组,确保named服务能够正常访问该文件
再重启named服务,在该文件的属组是root时,该服务认为没有权限读取该文件,所以要刷新一下权限认定
此时去103主机,测试域名解析
部署反向查找主域名服务器实验步骤
1. 修改配置文件
再添加一个区域,保存并退出
2. 拷贝示例文件并编辑该文件
3. 修改文件的属组,使用named-checkzone命令校验文件,重启named服务
4. 回到103主机,测试反向查找域名解析,也可以通过IP解析域名了
部署从服务器实验步骤
- 配置环境
关闭防火墙,安装bind相关依赖软件包
打开配置文件
修改全局参数
定义区域
重启服务,查看程序目录下生成的该子目录下是否有生成备份数据
如果想要测试从域名服务器的域名解析能否实现,在103主机将网卡配置的DNS1改为192.168.10.102就可以实现从域名服务器解析测试了。