Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1798544
  • 博文数量: 184
  • 博客积分: 10122
  • 博客等级: 上将
  • 技术积分: 5566
  • 用 户 组: 普通用户
  • 注册时间: 2005-12-08 12:32
文章存档

2011年(1)

2008年(183)

我的朋友

分类: LINUX

2008-03-03 20:32:47

10.3. DNS NOTIFY (Zone Change Notification)  

 

1、一般情况下,BIND 从服务器使用一个轮询的方法来检测是否需要进行 zone transfer。轮询的时间间隔由 SOA 记录的 refresh interval 字段决定。但是这种定时轮询的方案有可能导致数据更新的延迟,尤其是在使用动态更新的环境。

2、主服务器何时知道一个 zone 的数据发生了变化

Ø         收到 reload 指令后,在加载 zone data files 时,发现文件的 mtime 时间已经改变

Ø         收到关于某个 zone 的动态更新

Ø         name server 不会自动 reload 某个 zone

3RFC 1996 中提出了一个方案,该方案允许主服务器通知从服务器关于 zone data 的变化。称为 'DNS NOTIFY'

4、当主服务器注意到某个 zone serial number 发生变化时,它发送一个特殊的消息给这个 zone的所有从服务器。主服务器是通过该 zone NS 记录来确定那些是从服务器的,并从中剔除出本机。(具体方法是忽略 SOA MNAME 字段中指定的 name server

5、当 name server 检测到序列号有变化时,就会发出 notify 消息。不管序列号是多少,是增加还是减少,都会发出 notify 消息。至于从服务器收到 notify 消息后,是否会进行 transfer ,则取决于 notify 消息中的序列号和从服务器上的序列号哪个更大。

6、当一个从服务器接收到一个关于某个 zone NOTIFY 通知时,它发出一个 NOTIFY 响应包。该响应包告诉主服务器它收到了该 NOTIFY 通知,所以主服务器可以停止向它继续发送 NOTIFY 通知了。假如从服务器执行完 zone transfer 了,按照 RFC 1996 的要求,它必须向该 zone 的其他权威服务器(包括主服务器)发出自己的 NOTIFY 通知。这么做的目的是因为某些主服务器可能无法直接向从服务器发送 NOTIFY 通知,或者从服务器无法直接同主服务器通信(因为他们使用其他从服务器作为主服务器)。特别是后一种,当一个从服务器完整 zone transfer 后,再向它的从服务器发出 notify 消息,这样那些二级从服务器也能得以更新了。

7从服务器只接受来自它所配置的主服务器的 NOTIFY 通知,从其他服务器来的 NOTIFY 消息一律被忽略 !!

8、在 BIND 8/9 中,NOTIFY 特性默认是开启的,但也可以关闭。可以针对单独某个 zone 关闭 notify 功能。

文本框: options {
		notify yes|no;
};

zone “xxx“ {
		notify yes|no;
};

 

9also-notify 语句

Ø         考虑那些没有在上级域注册的内部 name server ,它们也需要 NOTIFY 消息以尽快更新它们的数据,虽然它们并不服务于外界,而是专门服务于内部网络

Ø         also-notify 带一个 address match list 作为参数

Ø         notify explicit + also-notify 将强制 BIND 忽略 NS 记录,只将 NOTIFY 消息发送给 also-notify 指定的name server

 

阅读(2474) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~