先copy一张图提升一下理解
DNS解析过程如图分为以下三种过程:首先是DNS客户机解析器,从WEB浏览器中输入相应URL,DNS客户机解析器会首先检查自己本地host文件是否存在网站映射关系,成功则直接完成域名解析。如果host中没有相关映射,通过递归查询再到本地的DNS,同理,能查到网址映射的话直接完成解析。
权威性问题:
如果到本地DNS还是无法查询到想关映射,则会通过迭代查询查找本地DNS(TCP/IP中设置的首选DNS 服务器)(具有权威性)相反查询域名不通过本地DNS服务器区域解析调用IP则不具有权威性
迭代查询过程中,如果未使用转发器,则本地DNS将请求发送给13台根DNS服务器,再经根服务器判断并转给负责该顶级域名服务器的IP,依次迭代重复,直到找到该URL 的主机,而转发模式则是寻找上一级DNS服务器再返回。
[root@localhost ~]# rpm -q bind
bind-9.16.23-5.el9_1.x86_64
首先关防火墙挂载装包
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0[root@localhost ~]# mount /dev/sr0 /mnt
[root@localhost ~]# yum install bind -y
Updating Subscription Management repositories.
Unable to read consumer identityThis system is not registered with an entitlement server. You can use subscription-manager to register.
Last metadata expiration check: 2:10:03 ago on Wed 10 May 2023 05:16:00 PM CST.
Package bind-32:9.16.23-5.el9_1.x86_64 is already installed.
Dependencies resolved.
Nothing to do.
Complete!
[root@localhost ~]#
[root@localhost ~]# vim /etc/named.conf更改配置文件
资源记录的格式信息
[root@server ~]# vim /etc/named.conf
options {
listen-on port 53 { 192.168.159.132; }; #监听端口53 {服务端主机IP}
directory "/var/named"; #正反解文件默认存储目录
allow-query { any; };
};
zone "test.com" IN { #正向解析test.com
type master; #主服务器类型
file "named.test.com"; #区域文件名
};
named.localhost文件
0 ; serial --更新序列号,可以是 10 位以内的整数
1D ; refresh --刷新时间,重新下载地址数据的间隔
1H ; retry --重试延时,下载失败后的重试间隔
3D ; expire --失效时间,超过该时间仍无法下载则放弃
1D ) ; minimum 无效解析记录的生存周期
报错了查看详情vim 进/etc/name.conf发现少个括号
查个状态rncd无法连接
rndc无法连接到127.0.0.1的953端口,可能是由于BIND(named)没有启动或未正确配置导致的。
-
确认BIND服务是否正在运行。您可以使用以下命令检查服务状态:
systemctl status named
如果服务未运行,请使用以下命令启动它:
systemctl start named
-
检查BIND配置文件是否正确。使用以下命令检查配置文件语法:
named-checkconf /etc/named.conf
-
存在语法错误,修改配置文件并重新加载named服务:
systemctl reload named
-
没有错误,则重新启动服务:
-
systemctl restart named
-
检查BIND是否监听在127.0.0.1的953端口。可以使用以下命令检查端口是否已打开:
netstat -tln | grep 953
如果端口未打开,请检查named.conf中的listen-on选项是否包含127.0.0.1和953端口,并重新加载named服务:
systemctl reload named
解决报错后 测试 ---实现正反向解析
[root@server ~ ~]# nslookup www.test.com
Server: 192.168.42.128
Address: 192.168.42.128#53
Name: www.qq.com
Address: 192.168.42.10
[root@server ~]# nslookup en.test.com
Server: 192.168.42.128
Address:192.168.42.128#53
Name: en.qq.com
Address: 192.168.42.20
[root@server ~]# nslookup ftp.test.com
Server: 192.168.42.128
Address: 192.168.42.128#53
Name: ftp.qq.com
Address: 192.168.42.30
[root@server ~]# nslookup fff.test.com
Server: 192.168.42.128
Address: 192.168.42.128#53
fff.qq.com canonical name = ftp.test.com.
Name: ftp.qq.com
Address: 192.168.42.30
[root@server ~]# nslookup 192.168.42.10
10.42.168.192.in-addr.arpa name = www.test.com.
[root@server ~]# nslookup 192.168.42.20
20.42.168.192.in-addr.arpa name = en.test.com.
[root@server ~]# nslookup 192.168.42.30
30.42.168.192.in-addr.arpa name = ftp.test.com.