So, you need to make arrangements so that your localhost-view is refreshed.
If I remove the zone file from slave, and then restart the service. but when I updating the entries in the zone files on master, it's not updating in slave.
Masters must be specified as IP addresses, not as domain names, however it is possible to define a ‘masters list’ containing the required addresses which can then be referred to symbolically (see below).
Zone files are optional for slave nameservers, but strongly recommended otherwise the slave will lose all knowledge of the zone content whenever it is restarted.
// // Do any local configuration here // // Consider adding the 1918 zones here, if they are not used in your // organization //include "/etc/bind/zones.rfc1918"; zone "mycity.example.com" ; zone "1.0.10.in-addr.arpa" ; The file directive is relative to the bind var directory on ubuntu that defaults to the following: /var/cache/bind That is unless changed using the directory directive in options, thus it is looking for the following directory to save the data: /var/cache/bind/slaves Note this is probably a better location anyway really it's not ideal to give bind write access to it's own /etc directory since doing so allows someone to potentially alter your bind configuration if they somehow exploit bind safer to keep variable data somewhere else and let the server write there.
The permissions you have will be fine just place it under /var/cache/bind instead personally just find it good practice not to have deamons having write access to their own configuration directory or a subpath of it.
The cache size settings and cache ttl settings are for cached recursive query data and (as you already suspected) don't apply to authoritative data. Suggested troubleshooting method: If that doesn't work, consider posting more information, including sections from both the master and slave and logs from both servers of what is occurring after you load a freshly edited zone on the master. the localhost-view get refreshed only during restart of the named.
These need not be masters in the sense defined above: it is possible (and sometimes necessary) for a slave to obtain zone data from another slave.
named: client 188.8.131.52#33606: received notify for zone 'domain.tld' named: master 184.108.40.206#53 (source 0.0.0.0#0) deleted from unreachable cache named: zone domain.tld/IN: Transfer started.
I two Bind servers in a master/slave configuration. of that particular domain in the zone file, and notifies the servers listed in the NS record, excluding itself.
It's because the slaves directory is not being found at /var/cache/bind/slaves thus it can't create the temporary file at /var/cache/bind/slaves/tmp-xxxxxxxxxx to store the transferred zone.
Bind first creates a temporary file in the same directory then copies it to the defined filename from the config only after the transfer is completed stops it losing data if the transfer fails partway.