How to fix it
BIND — restrict transfers to your known secondaries:
zone "example.com" {
type master;
file "/etc/bind/db.example.com";
allow-transfer { 192.0.2.10; 192.0.2.11; };
};
Better: use TSIG keys so the secondary must present a shared secret:
key "transfer-key" {
algorithm hmac-sha256;
secret "base64-encoded-secret";
};
zone "example.com" {
allow-transfer { key "transfer-key"; };
};
Windows DNS Server — open the DNS Manager, right-click the zone → Properties → Zone Transfers tab. Either uncheck "Allow zone transfers" or restrict to "Only to the following servers" with the IPs of your secondaries.
PowerDNS — set allow-axfr-ips in pdns.conf to your secondary IPs only.
Managed DNS (Cloudflare, Route 53, NS1, Azure DNS) — these providers don't expose AXFR to the public by default. If you're flagged on a managed provider, you've likely got a self-hosted name server still listed in your NS records that should be removed.
Verify with dig @ns1.example.com example.com AXFR — should return "Transfer failed" or just the SOA.