强制将从服务器绑定到主服务器,并强制更新区域数据。

我有两个测试服务器主服务器和从服务器: 主服务器正在更新从服务器,但速度非常慢。如何加快速度。 主服务器(192.168.0.122)/etc/named.conf
zone "domain.com." {
    type master;
    file "caching-example/domain.com.db";
    //allow-update { key rndc-key;};
    notify yes;
    also-notify    { 192.168.0.66; };
    allow-transfer { 192.168.0.66; };
};

从属 (192.168.0.66) /etc/named.conf

zone "domain.com" {
    type slave;
    file "caching-example/domain.com.db";
    //allow-update { key rndc-key; };
    //allow-transfer { none; };
    allow-notify { 192.168.0.122; };
    masters      { 192.168.0.122; };
}
主人 /var/named/caching-example/domain.com.db 区域
$TTL    3600
$ORIGIN domain.com.
@       IN      SOA     darkstar.example.net.    root.example.net. (
                 2012033101         ; Serial
                       3600         ; Refresh
                       1800         ; Retry
                     604800         ; Expire
                      43200 )       ; Negative Cache TTL

    IN      NS      darkstar.example.net.

@       IN      A       162.144.18.114
www     IN      A       162.144.18.114

现在当我手动更改 /var/named/caching-example/domain.com.db 区域的主服务器时

$TTL    3600
$ORIGIN domain.com.
@       IN      SOA     darkstar.example.net.    root.example.net. (
                 2012033102         ; Serial
                       3600         ; Refresh
                       1800         ; Retry
                     604800         ; Expire
                      43200 )       ; Negative Cache TTL

    IN      NS      darkstar.example.net.

@       IN      A       8.8.8.8
www     IN      A       8.8.8.8

主服务器的域名为domain.com,IP地址为8.8.8.8,从服务器的域名也为domain.com,IP地址为162.144.18.114。

dig @192.168.0.122 domain.com

domain.com.     3600    IN  A   8.8.8.8
在192.168.0.66上执行dig命令,查询domain.com的信息。
domain.com.     3600    IN  A   162.144.18.114
一个从属服务器试图使用rndc,但没有成功 rndc refresh domain.com
zone refresh queued
师傅正在更新从机,但速度很慢,有没有办法加快这个过程? 我发现负缓存TTL会影响更新时间,但bind需要重新加载配置。是否可能自动更新? 是否可能强制从机进行区域更新? **编辑**
Feb 16 01:00:21 darkstar named[1460]: client @0x7fec000bfea0 192.168.0.122#49018: received notify for zone 'domain.com'
Feb 16 01:00:21 darkstar named[1460]: zone domain.com/IN: notify from 192.168.0.122#49018: serial 2012033102
Feb 16 01:00:21 darkstar named[1460]: zone domain.com/IN: Transfer started.
Feb 16 01:00:21 darkstar named[1460]: transfer of 'domain.com/IN' from 192.168.0.122#53: connected using 192.168.0.66#51117
Feb 16 01:00:21 darkstar named[1460]: zone domain.com/IN: transferred serial 2012033102
Feb 16 01:00:21 darkstar named[1460]: transfer of 'domain.com/IN' from 192.168.0.122#53: Transfer status: success
Feb 16 01:00:21 darkstar named[1460]: transfer of 'domain.com/IN' from 192.168.0.122#53: Transfer completed: 1 messages, 5 records, 176 bytes, 0.003 secs (58666 bytes/sec)

日志里有什么内容? - Esa Jokinen
我改变了问题,因为在日志中发现了zone domain.com/IN: transferred serial 2012033102,我发现bind在更新从服务器时非常慢,然后我找到了如何加快速度 - 但是,bind不会自动更新,我需要重新加载主服务器才能看到从服务器上的更改效果。 - Abc Xyz
1BIND不会监控文件的更改,也就是说它不会自动执行此操作是正常的。在每次修改后,您必须在主服务器上运行rndc reload命令。 - Esa Jokinen
我刚刚检查了一下,主服务器上的rndc reload完成了任务,谢谢。这就是我问题的答案。 - Abc Xyz
那么,我就把它作为一个答案了。 :) - Esa Jokinen
2个回答

晚些回复你未回答的问题: 有没有办法强制从/在从服务器上更新区域? 我只是想加快/强制传输,并且对于每个过时的域名,在我的从服务器上使用了这个方法:
rndc retransfer domain.com

4这应该是针对Bind9 v9.11.0或更高版本的答案。 - John Greene
1如果你想从从服务器触发重新加载,这是一个更好的答案。然而,如果你在区域中添加一个指向从服务器的NS记录,它应该会发送通知并自动触发重新加载。 - Steve Shipway

你的设置正在按照预期进行: 1. 你修改了一个区域文件,包括更新SOA序列号。 2. 你在主服务器上运行rndc reload命令。 3. 主服务器在区域变更时发送通知/提醒。 4. 从服务器请求区域传输。 BIND不会监控文件更改,也就是说它不会自动执行此操作。每次修改后,你必须在主服务器上运行rndc reload命令。从服务器无法强制主服务器重新加载配置/区域。

2这会通过主服务器发送一个通知来触发从服务器的重新加载。然而,有时候你可能希望有一个未发布的从服务器(即没有NS记录),在这种情况下,由于主服务器不发送通知,这个方法就无法工作。操作者应该选择以下两种方式之一:(a) 为他们的次级服务器添加一个NS记录以接收通知,或者 (b) 在从服务器上使用 rndc retransfer 命令,如下面的答案所示。 - Steve Shipway

  • 相关问题