No SOA serial check before AXFR?

Hi,

   Every SOA REFRESH time, BIND9 slave server checks master’s SOA serial
(with ordinary UDP SOA query) and if the serial is increased it starts AXFR.

   But my NSD slave server (4.0.0 and 3.2.16) just do AXFR with
no serial checking every REFRESH time. (according to tcpdump).
I expect SOA serial checking before AXFR to avoid load at both
master/slave side.

This is my NSD configuration. Something is missing?

Oh I’ve missed this statement in doc/NSD-FOR-BIND-USERS :slight_smile:

  An AXFR initiated by the built-in transfer process
  will not start with a SOA query at all. The first
  packet of the AXFR transfer will be used to determine
  the SOA version number in that case. This is a conscious
  breach of RFC spec to ease implementation and efficiency.

"First packet" size seems to be up to 16kB for NSD4 master.
Usual forward zones likely fit into it so full zone transfer
may occur every REFRESH time.

In doc/TODO :

- query SOA before getting AXFR and then cutting it off,
   it causes an err log on the master.

It would be nice if it implemented since I worry about tcp setup/transfer
overhead especially in many zone hosting scenario.

Regards,