vinyldns
vinyldns copied to clipboard
Test DDNS connectivity when connecting to a zone
Motivation Presently, we test SOA lookup (that the zone exists in the DNS server) and we test that we can do a zone transfer. However, we do not validate the TSIG keys and that we can issue DDNS updates to the zone. The result is if the default key has not been granted access to the zone, or if the user did not enter the connection info correctly, the zone may connect and load into VinylDNS but will be unavailable for updates.
Proposed Solution
- In the
ZoneConnectionValidator, issue the creation of a DNS TXT record and immediately the deletion of the same record. - These changes should not be recorded in the change log. This implies that as opposed to submitting the changes to the command bus, they are handled out-of-band, inline in the
ZoneConnectionValidator - The proposed name of the record can be
vinyldns-test, and the txt RData can beconnection test
@pauljamescleary Shold we make a unique id for the record name to prevent the possibility of conflicts, maybe like vinyldns-test-UUID
@nimaeskandary perhaps do a "DELETE" then an "ADD". I don't like the idea of possibly polluting zones with these records.
If DELETE works (we may get an NXDOMAIN), then just a single ADD, finally another DELETE?
Makes it idempotent.
@pauljamescleary hm in that case should the record data still contain some sort of unique id to be sure? Do we have to worry about any sort of record caching due to ttl when interacting directly with the dns server
@nimaeskandary no, we should be able to DELETE, ADD, DELETE. We would have to not use the 3 step process, but rather interact directly with the DnsConnection