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