知识点
资源记录参数:
$TTL 1D @ IN SOA @ gcm.qq.com.
;每一条资源记录的缓存时间 授权的二级域 IN 资源记录类型 数据(授权后的二级域) 邮箱地址
SOA(起始授权记录) 邮箱地址格式(五个参数,空格隔开)
五个参数
版本号(标记主从服务器数据是否一致) 刷新时间 重试时间(<刷新时间) 过期时间 否定应答的缓存时间
. 518400 IN NS a.root-servers.net.
NS(标识dns服务器的主机名(域名))
a.root-servers.net. 518400 IN A 198.41.0.4
主机名 资源记录的缓存时长 IN(标识Internet) 资源记录的类型(必须是大写,正向(A是映射到IPv4,AAAA是IPv6)反向PTR(IPv4/IPv6地址指向一个域名----指针记录)) 数据(IP/域名)
CNAME(别名)
DNS服务器部署
要求:
1.搭建dns服务器能够对自定义的正向或者反向域完成数据解析查询。
2.配置从DNS服务器,对主dns服务器进行数据备份
主从服务器都要做的配置
[root@server ~]# systemctl stop firewalld.service
[root@server ~]# setenforce 0
[root@server ~]# mount /dev/sr1 /mnt
mount: /mnt: WARNING: source write-protected, mounted read-only.
[root@server ~]# dnf install bind -y
一、主服务器
配置文件
dig
-t 指定资源记录类型
-x 反解析查询
+trace 解析追溯显示源
注:如果资源记录文件是通过/var/named/named.localhost模版拷贝修改
方法一:cp -a /var/named/named.localhost /var/named/named.xxxx
修改DNS.IPV4的配置
vim /etc/reslave.conf
#该配置每次重启虚拟机会改变,不是永久修改
[root@server ~]# vim /etc/named.conf
options {
listen-on port 53 { 192.168.79.128; };
directory "/var/named";
allow-query { any; };
};
zone "openlab.com" IN {
type master;
file "named.openlab.com" ;
};
zone "79.168.192.in-addr.arpa" IN {
type master;
file "named.192";
allow-update { none; };
};
正向解析资源记录文件
vim /var/named/named.openlab.com
$TTL 1D @ IN SOA @ gcm.qq.com. (
;每一条资源记录的缓存时间 授权的二级域 IN 资源记录类型 数据(授权后的二级域) 邮箱地址
2024110101;serial 标记主从服务器数据是否一致
1D ;refresh
1H ;retry
3H ;expire
1D ;minimum
)
@ IN NS ns.openlab.com.
ns IN A 192.168.79.128
www IN A 192.168.79.111
mail IN A 192.168.79.128
wwww IN CNAME WWW
测试
[root@localhost ~]# nslookup
> server 192.168.79.128
Default server: 192.168.79.128
Address: 192.168.79.128#53
> www.openlab.com
Server: 192.168.79.128
Address: 192.168.79.128#53
Name: www.openlab.com
Address: 192.168.79.111
反向解析资源记录文件
[root@localhost ~]# vim /var/named/named.192
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS ns.openlab.com.
128 PTR ns.openlab.com.
111 PTR www.openlab.com.
123 PTR ftp.openlab.com.
测试
[root@localhost ~]# nslookup 192.168.79.128
128.79.168.192.in-addr.arpa name = ns.openlab.com.
[root@localhost ~]# nslookup 192.168.79.111
111.79.168.192.in-addr.arpa name = www.openlab.com.
[root@localhost ~]# nslookup 192.168.79.123
123.79.168.192.in-addr.arpa name = ftp.openlab.com.
二、主从服务器
完全区域传输
主服务器
将主服务器上的所有信息复制到辅助服务器上来实现完全区域传送,即复制整个区域文件
#主服务器的改动
options {
listen-on port 53 { 192.168.79.128; };
directory "/var/named";
allow-query { any; };
allow-transfer { 192.168.79.131; }; #允许传送资源记录文件到从服务器主机
};
zone "openlab.com" IN {
type master;
file "named.openlab.com" ; #正向区域
};
zone "79.168.192.in-addr.arpa" IN {
type master;
file "named.192"; #反向区域
allow-update { none; };
};
从服务器(131主机)
[root@localhost ~]# vim /etc/named.conf
options {
listen-on port 53 { 192.168.79.131; }; #从服务器主机的地址
directory "/var/named/slaves";
allow-query { any; };
};
zone "openlab.com" IN {
type slave;
file "named.openlab.com" ;
masters { 192.168.79.128; };
};
zone "79.168.192.in-addr.arpa" IN {
type slave; #slave 从服务器
file "named.192";
masters { 192.168.79.128; }; #主dns服务器
};
[root@localhost ~]# systemctl restart named
#主从服务器都要重启服务
测试
#在/var/named/slaves目录下可以看到正反向的资源记录文件
[root@localhost ~]# watch ls /var/named/slaves #watch命令默认每隔两秒刷新后边的动作
managed-keys.bind
managed-keys.bind.jnl
named.192
named.openlab.com
#该目录下文件以二进制表示,解析出来是乱码
增量区域传送
在主服务器的正方向区域文件进行修改
$TTL 1D ;每一条资源记录的缓存时间
@ IN SOA @ gcm.qq.com. ( ;授权的二级域 IN 资源记录类型 数据(授权后的二级域)
邮箱地址
2024110103;serial 标记主从服务器数据是否一致#版本号加1
1M ;refresh
1M ;retry
1M ;expire
1M ;minimum
)
@ IN NS ns.openlab.com.
IN NS slave.openlab.com. #增加的标识主机
ns IN A 192.168.79.128
slave IN A 192.168.79.131
www IN A 192.168.79.111
ftp IN A 192.168.79.123 #增加一条资源记录
wwww IN CNAME WWW
~
从服务器
#同步监听
[root@localhost ~]# tail -f /var/log/messages
Nov 3 16:10:38 localhost named[3400]: checkhints: b.root-servers.net/AAAA (2001:500:200::b) extra record in hints
Nov 3 16:15:35 localhost named[3400]: client @0x7f6c9c01eb48 192.168.79.128#42337: received notify for zone 'openlab.com'
Nov 3 16:15:35 localhost named[3400]: zone openlab.com/IN: notify from 192.168.79.128#42337: zone is up to date
Nov 3 16:17:36 localhost NetworkManager[1055]: <info> [1730621856.2599] dhcp4 (ens160): state changed new lease, address=192.168.79.131
Nov 3 16:17:36 localhost systemd[1]: Starting Network Manager Script Dispatcher Service...
Nov 3 16:17:36 localhost systemd[1]: Started Network Manager Script Dispatcher Service.
Nov 3 16:17:36 localhost chronyd[916]: Forward time jump detected!
Nov 3 16:17:46 localhost systemd[1]: NetworkManager-dispatcher.service: Deactivated successfully.
#重启主服务器
[root@localhost ~]# systemctl restart named
Nov 3 16:21:39 localhost named[3400]: client @0x7f6ca49dfb38 192.168.79.128#48106: received notify for zone 'openlab.com'
Nov 3 16:21:39 localhost named[3400]: zone openlab.com/IN: notify from 192.168.79.128#48106: zone is up to date
Nov 3 16:23:50 localhost named[3400]: zone openlab.com/IN: expired
Nov 3 16:23:50 localhost named[3400]: zone openlab.com/IN: Transfer started.
Nov 3 16:23:50 localhost named[3400]: transfer of 'openlab.com/IN' from 192.168.79.128#53: connected using 192.168.79.131#56111 #从主服务器传输到从服务器
Nov 3 16:23:50 localhost named[3400]: zone openlab.com/IN: transferred serial 2024110103
Nov 3 16:23:50 localhost named[3400]: transfer of 'openlab.com/IN' from 192.168.79.128#53: Transfer status: success
Nov 3 16:23:50 localhost named[3400]: transfer of 'openlab.com/IN' from 192.168.79.128#53: Transfer completed: 1 messages, 10 records, 264 bytes, 0.001 secs (264000 bytes/sec) (serial 2024110103) #传输的内容
Nov 3 16:23:50 localhost named[3400]: zone openlab.com/IN: sending notifies (serial 2024110103)
测试
#查看添加的内容是否能解析
[root@localhost ~]# nslookup
> server 192.168.79.131
Default server: 192.168.79.131
Address: 192.168.79.131#53
> ftp.openlab.com
Server: 192.168.79.131
Address: 192.168.79.131#53
Name: ftp.openlab.com
Address: 192.168.79.123
转发区域传送
主服务器
[root@server ~]# vim /etc/named.conf
options {
listen-on port 53 { 192.168.79.133; };
forwarders { 192.168.79.128; };
forward only;
};
zone "openlab.com" IN {
type master;
file "named.openlab.com";
};
zone "qq.com" IN {
type master;
file "named.openlab.com";
};
zone "79.168.192.in-addr.arpa" IN {
type master;
file "named.192";
allow-update { none; };
};
[root@server ~]# vim /var/named/named.openlab.com
$TTL 1D
@ IN SOA @ rname.invalid. (
2024110101
1M
1M
1M
3M )
IN NS ns.openlab.com.
IN NS slave.openlab.com.
slave IN A 192.168.79.131
ns IN A 192.168.79.128
www IN A 192.168.79.222
ftp IN A 192.168.79.123
mail IN A 192.168.79.111
wwww IN CNAME WWW
131 PTR slave.openlab.com.
128 PTR ns.openlab.com.
123 PTR ftp.openlab.com.
# 重启named服务
[root@server ~]# systemctl restart named
从服务器
# 验证:
[root@client ~]# nslookup 192.168.79.128
128.79.168.192.in-addr.arpa name = ns.openlab.com.
[root@client ~]# nslookup 192.168.79.111
111.79.168.192.in-addr.arpa name = www.openlab.com.
[root@client ~]# nslookup www.openlab.com
Server: 192.168.79.128
Address: 192.168.79.128#53
Name: www.openlab.com
Address: 192.168.279.222