Bind DNS服务——转发与区域记录更新

Linux基础服务——Bind DNS服务 Part4 转发区域记录更新

一个DNS服务器不可能保存所有的区域记录,所以我们一般都会将其他的区域纪录转发到其他的服务器上进行解析。
Bind9提供了全局转发和区域转发。我们尝试配置一下。

全局转发 //在全局配置里修改和添加如下内容,关闭DNSSEC,配置forwarders,指定转发服务器为114.114.114.114,转发模式为only dnssec-enable no; dnssec-validation no; forward only; forwarders { 114.114.114.114; };

forward有两个选项first和only,first为默认值。
first值只有forwarders列表不为空时才生效,该值的含义为,使服务器优先使用forwarders列表中的内容进行查询,如果不能得到正确响应,则自行寻找答案。(向根服务器开始迭代查询)
only值则只使用forwarders列表的服务器,如果不能得到正确响应,则返回不能解析。
那么如果用户向向我们发送请求,若自身无法解析则可以转发到其他的DNS进行解析。

区域转发

配置区域转发,例如我们的客户机需要访问ns1.exam.com网站。那么在服务器上需要进行如下配置。
需要注意的是,在配置区域转发时,需要配置全局转发器,若没有全局转发器则会导致区域内的转发器被作用成全局转发器,所有DNS请求都会转发至区域内指定的转发器。

//下述内容定义了exam.com这个区域的请求全部转发至192.168.100.60这个DNS服务器。 zone "exam.com" IN { type forward; forward only; forwarders { 192.168.100.60; }; }; //转发的服务器上需要有该区域

此时客户机进行测试

PS C:\Users\77653> nslookup - 192.168.100.50 默认服务器: dns.test.com Address: 192.168.100.50 > ns1.exam.com 服务器: dns.test.com Address: 192.168.100.50 非权威应答: 名称: ns1.exam.com Address: 192.168.100.60

测试成功!

区域记录更新

Bind9支持区域记录的动态更新,使用nsupdate命令可以动态更新区域内的记录。例如我们在test.com域中有如下内容。

$TTL 1D @ IN SOA dns.test.com. admin.test.com. ( 4 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS dns NS dns2 ms NS dns2 tomcat A 192.168.100.90 dns2 A 192.168.100.60 dns A 192.168.100.50 Linux A 192.168.200.30 www A 192.168.100.20 web.test.com. A 192.168.100.10 Nginx CNAME web.test.com.

我需要添加一条A记录进入该区域。可以使用nsupdate命令行工具。首先在主配置文件中允许某个主机动态更新区域内容。

zone "test.com" IN { type master; file "test.com.zones"; allow-transfer { key test.com-key; }; allow-update { 192.168.100.60; }; //配置allow-update项 };

在客户端使用nsupdate命令进行更新。

[root@dns2 ~]# nsupdate > server 192.168.100.50 > zone test.com. > update add LDAP.test.com. 86400 A 192.168.100.40 > send

nsupdate命令语法如下:

server servername port

这里servername为服务器的地址,若没有指定,则发送到目标域SOA记录中指定的主服务器上。port为动态更新请求的端口,若没有特意指定则为默认的53端口

zone zonename

zonename指定区域

update add domain-name ttl class type data

domain-name为区域名称 ttl为缓存时间 class一般为IN type为记录类型

update delete domain-name ttl class type data

格式同上
下面进入dns服务器查看区域文件。

[root@dns1 named]# ll ······ -rw-r--r-- 1 named named 499 Jun 16 04:59 test.com.zones -rw-r--r-- 1 named named 705 Jun 16 04:29 test.com.zones.jnl -rw-r--r-- 1 named named 499 Jun 16 04:51 tmp-28cGJKIgsY ······

直接查看原有的区域文件,发现内部并没有被改动,实际上的改动结果被储存在tmp开头的文件中,改动的信息被储存在test.com.zones.jnl文件(二进制文件不宜修改)中。一般情况下在15分钟内,Bind会将jnl文件转储到区域文件中。
此时添加进入的DNS记录是能够正常提供服务的,如果需要实时更新到区域文件中,需要使用rndc sync且需要注意区域文件的文件权限(rndc的配置待续)。
实际上我们可以将Windows Server AD域的DNS信息也保存在Bind 服务中,接下来开展实验。

Windows Server向Bind注册DNS信息

使用Windows Server 2019,IP地址为192.168.100.200,DNS指向192.168.100.50(DNS服务器),主机名为MSC,完整主机名为msc.test.com,DNS服务器需要配置允许该Windows Server更新dns条目。
Windows Server安装AD域服务,注意,AD域的根域名要与Bind服务器中允许更新记录的域相符。

Bind DNS服务——转发与区域记录更新


安装AD域服务完毕后,Windows Server会安装DNS服务器,且将默认的DNS指向本机的环回地址,我们调整到192.168.100.50。然后重新启动Netlogon服务,即可将DNS记录传送至Bind服务器。

Bind DNS服务——转发与区域记录更新


重新启动完毕后,查看Bind服务器日志。

Jun 16 07:26:18 dns1 named[1019]: client @0x7fde6ae55fa0 192.168.100.200#55190: updating zone 'test.com/IN': adding an RR at '_kerberos._tcp.Default-First-Site-Name._sites.dc._msdcs.test.com' SRV 0 100 88 MSC.test.com. Jun 16 07:26:18 dns1 named[1019]: client @0x7fde6ae55fa0 192.168.100.200#61652: updating zone 'test.com/IN': adding an RR at '_ldap._tcp.dc._msdcs.test.com' SRV 0 100 389 MSC.test.com. Jun 16 07:26:18 dns1 named[1019]: client @0x7fde6ae55fa0 192.168.100.200#59632: updating zone 'test.com/IN': adding an RR at '_ldap._tcp.Default-First-Site-Name._sites.dc._msdcs.test.com' SRV 0 100 389 MSC.test.com. Jun 16 07:26:18 dns1 named[1019]: client @0x7fde6ae55fa0 192.168.100.200#55190: updating zone 'test.com/IN': adding an RR at '_kerberos._tcp.test.com' SRV 0 100 88 MSC.test.com. ······ Jun 16 07:26:18 dns1 named[1019]: client @0x7fde6ae55fa0 192.168.100.200#60226: updating zone 'test.com/IN': adding an RR at '_ldap._tcp.Default-First-Site-Name._sites.ForestDnsZones.test.com' SRV 0 100 389 MSC.test.com. Jun 16 07:26:18 dns1 named[1019]: client @0x7fde6ae55fa0 192.168.100.200#63234: updating zone 'test.com/IN': adding an RR at 'DomainDnsZones.test.com' A 192.168.100.200 Jun 16 07:26:20 dns1 named[1019]: client @0x7fde6ae55fa0 192.168.100.200#55190: updating zone 'test.com/IN': deleting rrset at 'MSC.test.com' AAAA Jun 16 07:26:20 dns1 named[1019]: client @0x7fde6ae55fa0 192.168.100.200#55190: updating zone 'test.com/IN': deleting rrset at 'MSC.test.com' A Jun 16 07:26:20 dns1 named[1019]: client @0x7fde6ae55fa0 192.168.100.200#55190: updating zone 'test.com/IN': adding an RR at 'MSC.test.com' A 192.168.100.200

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyfzyz.html