NOTIFY delay?
Jim Reid
jim at rfc1035.com
Wed Feb 16 08:36:35 UTC 2005
>>>>> "Mark" == Mark K Pettit <pettit at yahoo-inc.com> writes:
Mark> Hello. In reading RFC1996 ("A Mechanism for Prompt
Mark> Notification of Zone Changes"), I see the following section,
Mark> which interests me:
Mark> 4.3. If a master server seeks to avoid causing a large
Mark> number of simultaneous outbound zone transfers, it may delay
Mark> for an arbitrary length of time before sending a NOTIFY
Mark> message to any given slave. It is expected that the time
Mark> will be chosen at random, so that each slave will begin its
Mark> transfer at a unique time. The delay shall not in any case
Mark> be longer than the SOA REFRESH time.
Mark> Note: This delay should be a parameter that each primary
Mark> master name server can specify, perhaps on a per-zone basis.
Mark> Random delays of between 30 and 60 seconds would seem
Mark> adequate if the servers share a LAN and the zones are of
Mark> moderate size.
Mark> My question is simple: Does BIND 8.X implement this "delay"?
Yes. This would have been obvious from the name server's logs. They'd
show that there was a random delay after zones were loaded before
NOTIFYs were sent out.
Mark> I can find no option on the named.conf manpage which says
Mark> anything about it.
That's because BIND has no configuration hooks for controlling this
delay interval. The server staggers the sending of NOTIFYs
automatically. In BIND8, the delay is up to 15 minutes in proportion
to the number of zones: the more zones, the longer the delay. Here's
the relevant code snippet from ns_notify():
/*
* Delay notification for from five seconds up to fifteen minutes,
* unless reload was by "ndc reload <zone>" command.
*/
if ((zp->z_flags & Z_NDC_RELOAD) != 0) {
zp->z_flags &= ~(Z_NDC_RELOAD);
delay = 1;
} else {
max_delay = MIN(nzones, 895);
max_delay = MAX(max_delay, 25);
delay = 5 + (rand() % max_delay);
}
More information about the bind-users
mailing list