We have multiple DNS servers that the Master server is hiding from the Internet where the public can only query domain information from our Slave servers. It relies on the Master server to transfer the zone details to the Slave servers so as long as we keep our Master server intact, we don't care too much about people flooding our Slave DNS servers.
However, it means that the information transferred from the Master server has to be accurate and that's what we did there. We have found that the SPF record is an independent settings whereas using TXT record and it has a TTL.
Please check the master.png where I have put a TTL of 3600 seconds to that SPF record, but when every DNS servers querying the Slave DNS servers as instructed, it gives us a TTL of 600 seconds. And we check our Slave servers and it does show that SPF record is having a TTL of 600 seconds.
We have tried the following:
To reproduce:
Actually, not only the SPF records are affected, all TXT records are also suffering this issue. This problem is found when I didn't hide the the value of the SPF record: Microsoft told me that there is an incorrect TTL settings on the DNS record.
Please take a look and solve it as soon as it can, thank you!
So the zone transfer is something that's done by BIND, not Webmin .. it just configures BIND on the slave with the master IP address.
Can you attach the actual zone files from the master and slave systems to this bug report? I'd like to see what the TTL fields are set to ..
Hello Jamie,
I have attached both named.conf (trimmed) and *.hosts files from both servers. Before that I've done some tweaks that if I remove other TXT records from the .hosts file, the TTL is resolved and saved correctly for the SPF records.
Thanks .. but the file
Slave\ Server/test.com.hostsin the ZIP doesn't appear to be a regular zone file?Yes and I tried to open it on the Webmin slave DNS server and it returns:
This zone is in raw binary format, and so cannot be displayed as text.This is due to the BIND 9 version change and to improve the performance of the slave servers by encrypting the .hosts file. However, I have managed to descrypt the file and temporary making the zone not encrypting the .hosts file.
You can check the decrypted file in the attachment here. And we can see it took the $ttl 300 from one of the TXT records and made itself a "template" and omitted other TTL value of the TXT records.
And if we want to store the master-file as text but not raw binary which needs to decrypt, I want to suggest that you allow us to store the under the "options" section of
named.conffor the Master server.options { masterfile-format text; }and when you push/transfer the zones to the slave servers, add a line under every zone section
zone "somedomain.net" { type slave; masterfile-format text; }and you the slave server will store the zone files as text just like the decrypted version in the attachment.
Ok I see what you mean now..
Unfortunately, the records in the transferred zone file aren't under Webmin's control. It's BIND that does the zone transfer, so the TTLs is sets for those TXT records are it's decision. Unless there's a BIND setting we missed that controls this?
Is there anything you can recommend me to do or ask? If there are any websites that people are familiar with BIND DNS server? Or if I can know which part of the perl code of Webmin is in charge of the zone transfers?
I have checked the xfer-out and xfer-in records and the TTL was modified and grouped before xfer-out, which means the TTL is modified by the Master DNS.
I tried to give every records a different TTL
and the Slave server received as
However, BIND DNS allows every records to have a different TTL. I don't know why it is grouped.
That's odd, it does look like the transferred zone is using the wrong TTL for a lot of records.
This feels like a bug in BIND to me, and you should probably contact the developers about it..