DNSaas_Dynect_Backend: Designate MDNS fails to send SOA messages to dynect with error " dns.exception.SyntaxError"
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Designate |
Fix Released
|
High
|
Graham Hayes |
Bug Description
DNSaas_
I have provided following nameservers in pools.yaml .
All these namservers are directly reachable from HOS controllers
s ping ns1.p13.dynect.net
PING ns1.p13.dynect.net (208.78.70.13) 56(84) bytes of data.
64 bytes from ns1.p13.dynect.net (208.78.70.13): icmp_seq=1 ttl=54 time=9.10 ms
64 bytes from ns1.p13.dynect.net (208.78.70.13): icmp_seq=2 ttl=54 time=9.07 ms
nameservers:
host: ns1.p13.dynect.net
port: 53
host: ns2.p13.dynect.net
port: 53
host: ns3.p13.dynect.net
port: 53
host: ns4.p13.dynect.net
port: 53
When user creates zones , MDNS tries to send SOA to these nameservers , but it fails with below error
2016-09-14 13:38:59.444 30452 INFO designate.
2016-09-14 13:38:59.455 30452 INFO dns.query [req-70535ff1-
2016-09-14 13:38:59.456 30452 INFO dns.query [req-70535ff1-
2016-09-14 13:38:59.456 30452 INFO dns.query [req-70535ff1-
2016-09-14 13:38:59.457 30452 ERROR oslo_messaging.
2016-09-14 13:38:59.457 30452 ERROR oslo_messaging.
2016-09-14 13:38:59.457 30452 ERROR oslo_messaging.
2016-09-14 13:38:59.457 30452 ERROR oslo_messaging.
2016-09-14 13:38:59.457 30452 ERROR oslo_messaging.
2016-09-14 13:38:59.457 30452 ERROR oslo_messaging.
2016-09-14 13:38:59.457 30452 ERROR oslo_messaging.
2016-09-14 13:38:59.457 30452 ERROR oslo_messaging.
2016-09-14 13:38:59.457 30452 ERROR oslo_messaging.
2016-09-14 13:38:59.457 30452 ERROR oslo_messaging.
2016-09-14 13:38:59.457 30452 ERROR oslo_messaging.
2016-09-14 13:38:59.457 30452 ERROR oslo_messaging.
2016-09-14 13:38:59.457 30452 ERROR oslo_messaging.
2016-09-14 13:38:59.457 30452 ERROR oslo_messaging.
2016-09-14 13:38:59.457 30452 ERROR oslo_messaging.
2016-09-14 13:38:59.457 30452 ERROR oslo_messaging.
2016-09-14 13:38:59.457 30452 ERROR oslo_messaging.
2016-09-14 13:38:59.457 30452 ERROR oslo_messaging.
2016-09-14 13:38:59.457 30452 ERROR oslo_messaging.
2016-09-14 13:38:59.457 30452 ERROR oslo_messaging.
2016-09-14 13:38:59.457 30452 ERROR oslo_messaging.
2016-09-14 13:38:59.457 30452 ERROR oslo_messaging.
2016-09-14 13:38:59.457 30452 ERROR oslo_messaging.
2016-09-14 13:38:59.457 30452 ERROR oslo_messaging.
2016-09-14 13:38:59.457 30452 ERROR oslo_messaging.
2016-09-14 13:38:59.457 30452 ERROR oslo_messaging.
2016-09-14 13:38:59.457 30452 ERROR oslo_messaging.
2016-09-14 13:38:59.457 30452 ERROR oslo_messaging.
After further debugging the issue and adding some debug logs I found that , MDNS tries to parse DNSserver hostname as an IP .
Looks like it tries to do compare Hostname with IP , i.e it tries to compare 208.78.70.13 with ns1.p13.dynect.net
Changed in designate: | |
status: | New → Triaged |
importance: | Undecided → High |
tags: | added: rc-doc-potential |
Changed in designate: | |
milestone: | none → ocata-1 |
So, there's a quick "fix" we can do while we figure out the right thing to do.
Quick fix: validate the values are IPs, fail to import the YAML if there not.
Longer fix: Resolve the IPs before passing to dnspython. This is harder than it sounds, because we must reapect TTLs and shouldn't do the lookup for every single notify we send.