Notifies are too slow in bind 9.4.1
Mark Andrews
Mark_Andrews at isc.org
Mon Jul 16 01:18:48 UTC 2007
> Hi,
>
> I have two questions regarding the behaviour of bind 9.4.1
>
> I have a primary running bind 9.4.1 and a few secondaries. In case of server
> failure, I switch the IP of the primary to another server which is working ve
> ry, but there is still one problem:
>
> When I boot the other server in order to be the new primary, it is sending no
> tifys for all zones to all the secondaries. No problem with that, but even if
> the notifies are showing up immedietly in its notify.log, it is sending the
> noties not in the same moment, but one after the other over a great amount of
> time.
> Sniffing the networktraffic and looking in the logfiles of the secondaries sh
> ows, that the primary is sending only the notifies for one zone in nearly thr
> ee seconds.
>
> These nearly three seconds are a constant value, no matter how big a zone is
> or how many secondaries are to be notified.
>
> So my first question is: Is there a way to speed this up? Let the primary sen
> d the notifies more quickly?
>
> Most of these notifies are ignored by the secondaries because they allready h
> ave the newest zone-data. But this process is taking a lot of time.
> I have about 13 thousend zones and so it take about 10 hours(!) to get throug
> h with these unnecessary notifys.
>
> Now the problem:
> If there is actually a update within these ten hours, then the primary logs a
> notify for that update, but won't send it before the ten hours are over!
> So if I start the primary, for about ten hours no secondary will get any upda
> te!
>
> So my second question is: Is there a way to put new notifys not at the end of
> the queue but at the beginning?
>
> Tom.
>
> --
> Psssst! Schon vom neuen GMX MultiMessenger gehört?
> Der kanns mit allen: http://www.gmx.net/de/go/multimessenger
In lib/dns/zone.c remove the DNS_ZONEFLG_NEEDNOTIFY flag in this
bit of code. It will stop the initial notify being sent on startup.
Note: it will also stop the notify when you add a new zone.
You could also up query-serial-rate (default 20) as notify messsage
use the same rate limiter.
Mark
if (zone->db != NULL) {
result = zone_replacedb(zone, db, ISC_FALSE);
ZONEDB_UNLOCK(&zone->dblock, isc_rwlocktype_write);
if (result != ISC_R_SUCCESS)
goto cleanup;
} else {
zone_attachdb(zone, db);
ZONEDB_UNLOCK(&zone->dblock, isc_rwlocktype_write);
DNS_ZONE_SETFLAG(zone,
DNS_ZONEFLG_LOADED|DNS_ZONEFLG_NEEDNOTIFY);
}
--
Mark Andrews, ISC
1 Seymour St., Dundas Valley, NSW 2117, Australia
PHONE: +61 2 9871 4742 INTERNET: Mark_Andrews at isc.org
More information about the bind-users
mailing list