如何让新加zone的或者修改的zone马上生效,而不重新启动named?
还有,修改zone以后,serial值能不能自动更新?难道每次都要手工更新?
修改master以后,slave是马上更新?还是等到refresh的时候才更新?
如果是等到refresh的时候才更新,那有什么命令可以马上更新?
还有53的tcp和udp再帮忙解释一下
阿骁 回复于:2004-08-11 00:15:28
1、修改 zone 数据文件之后一定要更新 serial 序列号,没法自动更新,因为 named 进程就靠这个序列号来检查 zone 数据文件是否修改过。
2、可以使用 rndc reload 这个命令来重新加载 zone 数据文件,还可以精确到具体的某个 zone 数据文件,比如 domain.com 这个 zone 数据文件被更改了,那么可以用 rndc reload domain.com 来更新。不用重新启动 named 进程。
3、master 修改后,master 会发送一个更新通知给 slave ,slave 服务器就会自动来更新了
Fun-FreeBSD 回复于:2004-08-11 10:58:10
更新通知都在什么时候发?refresh?rndc reload?还有别的吗?
还有,53的tcp和udp再帮忙解释一下,以前看过,时间太久,记不清楚了
阿骁 回复于:2004-08-11 11:37:07
更新通知是 master 发现自己的 zone 数据文件变更后主动发出的,如果 zone 数据文家没有变更,即使 rndc reload 也不会进行更新通知的发送。而 refresh 时间到了以后,slave 服务器是自动去查询 master 是否有更新,和更新通知没关系。
一般的 dns 查询都是用 udp 的53端口,tcp 怎么用我也不是很清楚。
supereyes 回复于:2004-08-11 12:23:35
tcp应用在zone传输上,同时我记得一文档里写到,当udp不可用时,会通过tcp来查询
Fun-FreeBSD 回复于:2004-08-11 14:54:02
好像不行啊,关了udp,就不能查询了
Fun-FreeBSD 回复于:2004-08-11 15:10:37
[quote:33f4161a74="阿骁"]更新通知是 master 发现自己的 zone 数据文件变更后主动发出的,如果 zone 数据文家没有变更,即使 rndc reload 也不会进行更新通知的发送。而 refresh 时间到了以后,slave 服务器是自动去查询 master 是否有更新,..........[/quote:33f4161a74]
还是糊涂
zone的更改是由serial决定的,对吧?
zone的更改之后,还要rndc reload,然后才能notify,对吧?
Fun-FreeBSD 回复于:2004-08-11 15:20:27
这就是说我修改了zone,还要记得修改serial,然后必须rndc reload
notify是在serial修改以后,并且rndc reload之后才发生的,对吧?
網中人 回复于:2004-08-12 01:25:38
簡單來說:
named 在跑起來時, 會載入"當時"的 db 文件.
若 db 文件在這個時間點之後被修改了, 那 named 是不知道的, 除非你 restart/reload ...
Fun-FreeBSD 回复于:2004-08-12 09:17:03
primary在reload的时候,由serial决定是不是notify,是不是?
Fun-FreeBSD 回复于:2004-08-12 09:18:18
salve在refresh的时候也是靠serial来决定是不是transfer对不对?
阿骁 回复于:2004-08-12 14:32:03
建议你看看 dns 的经典书籍《dns and bind》,里面有详细的介绍。
Fun-FreeBSD 回复于:2004-08-12 15:10:53
哪里有下载?厚不厚?
我也没啥要问的了,就这两个问题了
再深了我也不想研究,用的到再去看吧
jesiu 回复于:2004-08-12 15:17:21
厚,置顶的帖子里有
Fun-FreeBSD 回复于:2004-08-12 15:25:54
OK,谢了,我已经从你那里下了
Fun-FreeBSD 回复于:2004-08-12 15:27:41
不过还是懒得看,呵呵,我现在知道的对我现在用的已经够用了
Fun-FreeBSD 回复于:2004-08-12 15:33:39
primary在reload的时候,由serial决定是不是notify
salve在refresh的时候也是靠serial来决定是不是transfer
这两条对不对?我现在就想知道这两条就行了,再深我也不想研究了
拜托,拜托
jesiu 回复于:2004-08-12 15:34:07
[quote:a9ce2a543f="Fun-FreeBSD"]OK,谢了,我已经从你那里下了[/quote:a9ce2a543f]
?我哪有地址让你下
Fun-FreeBSD 回复于:2004-08-12 15:48:07
[quote:54cfa92cd9="jesiu"]
?我哪有地址让你下[/quote:54cfa92cd9]
我是从小骁那里下了,不是你,小样的
这个破网太慢了
Fun-FreeBSD 回复于:2004-08-12 16:04:49
With Version 8 or 9 masters and slaves, the slaves pick up the new data quickly because the primary master notifies the slaves of changes within 15 minutes of the change
这句话是notify slave 15分钟之内的改变呢?还是15分钟之内notify slave呢?
不好意思,英文太滥
Each of the zone data files has a serial number. Every time you change the data in a zone data file, you must increment the serial number. If you don't increment the serial number, slave name servers for the zone won't pick up the updated data
这里也没说如果serial 没有改变的情况下,reload的时候是不是notify
想来想去,master在reload的时候,不管肯定serial 是不是已经改变,肯定要notify,然后slave再由serial 决定是不是transfer
因为bind没有什么机制或者标签让master知道自己的serial是不是已经改变,从而决定是不是notify
Fun-FreeBSD 回复于:2004-08-12 16:23:36
总结:
master在restart/reload的时候,不管serial是不是已经改变,肯定会对slave进行notify的
然后slave再由serial决定是不是transfer
嗯,我还是蛮聪明的
Fun-FreeBSD 回复于:2004-08-12 16:37:43
不过还有问题,master是怎么notify的?广播?多播?不可能是单播吧?除非是单独指定了几个slave,但是实现这种单播好像也没必要
Fun-FreeBSD 回复于:2004-08-12 17:26:48
不搞了,麻烦,刚找了个h2n,这么点破玩意,还写了整整一大篇man
abel 回复于:2004-09-02 02:27:29
[quote:ec55b720b7]master在restart/reload的时候,不管serial是不是已经改变,肯定会对slave进行notify的
然后slave再由serial决定是不是transfer
嗯,我还是蛮聪明的 [/quote:ec55b720b7]
這個想法是對的,實際上就是這樣沒錯,你若有將 logging 設立起來,你也會發現
事實就是如此
[quote:ec55b720b7="Fun-FreeBSD"]不过还有问题,master是怎么notify的?广播?多播?不可能是单播吧?除非是单独指定了几个slave,但是实现这种单播好像也没必要[/quote:ec55b720b7]
master 會看 zone 中所有的 NS 去 notify
至於單獨或特別指定某幾台去 notify (also-notify) 對一般人可能沒有用,但對 ISP 或 NIC 卻是必要的,因為要建立 Hot-Site,當 DNS 出問題時,隨時有機器可
以頂替,你也不用在那忙的半死,遠端就可以做到頂替的動作,將 Hot-Site 的 IP.
改成現行的 Nameserver,以避免 Cache 或 Lame 的問題造成困擾.
所以我們放在 ISP 的 DNS 都是放兩套,放在同一網段.
此外, also-notify,讓你可以做到外部的 DNS 全是 slave, master 不提供服務