My apologies for quoting the manual verbatim, but they are probably better writers than I am https://ftp.isc.org/www/bind/arm95/Bv9ARM.ch04.html
In short: the zone file is not the absolute thruth when allowing dynamic updates.
All changes made to a zone using dynamic update are stored in the zone's journal file. This file is automatically created by the server when the first dynamic update takes place. The name of the journal file is formed by appending the extension .jnl
to the name of the corresponding zone file unless specifically overridden. The journal file is in a binary format and should not be edited manually.
The server will also occasionally write ("dump") the complete contents of the updated zone to its zone file. This is not done immediately after each dynamic update, because that would be too slow when a large zone is updated frequently. Instead, the dump is delayed by up to 15 minutes, allowing additional updates to take place.
....
The zone files of dynamic zones cannot normally be edited by hand because they are not guaranteed to contain the most recent dynamic changes — those are only in the journal file. The only way to ensure that the zone file of a dynamic zone is up to date is to run rndc stop
.
If you have to make changes to a dynamic zone manually, the following procedure will work: Disable dynamic updates to the zone using rndc freeze zone
. This will also remove the zone's .jnl file and update the master file. Edit the zone file. Run rndc thaw zone
to reload the changed zone and re-enable dynamic updates.