DNS resolution not working for private domain

Bug #1374492 reported by Claude Durocher
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Fuel for OpenStack
Invalid
High
Oleksiy Molchanov

Bug Description

Ennvironment:

{"build_id": "2014-09-17_21-40-34", "ostf_sha": "64cb59c681658a7a55cc2c09d079072a41beb346", "build_number": "11", "auth_required": true, "api": "1.0", "nailgun_sha": "eb8f2b358ea4bb7eb0b2a0075e7ad3d3a905db0d", "production": "docker", "fuelmain_sha": "8ef433e939425eabd1034c0b70e90bdf888b69fd", "astute_sha": "f5fbd89d1e0e1f22ef9ab2af26da5ffbfbf24b13", "feature_groups": ["mirantis", "experimental"], "release": "5.1", "release_versions": {"2014.1.1-5.1": {"VERSION": {"build_id": "2014-09-17_21-40-34", "ostf_sha": "64cb59c681658a7a55cc2c09d079072a41beb346", "build_number": "11", "api": "1.0", "nailgun_sha": "eb8f2b358ea4bb7eb0b2a0075e7ad3d3a905db0d", "production": "docker", "fuelmain_sha": "8ef433e939425eabd1034c0b70e90bdf888b69fd", "astute_sha": "f5fbd89d1e0e1f22ef9ab2af26da5ffbfbf24b13", "feature_groups": ["mirantis"], "release": "5.1", "fuellib_sha": "d9b16846e54f76c8ebe7764d2b5b8231d6b25079"}}}, "fuellib_sha": "d9b16846e54f76c8ebe7764d2b5b8231d6b25079"}

Steps to reproduce:

-a functionnal external dns server serving mydomain.local and also forwarding for internet name resolution
-a host defined in this domain : ex. puppet.mydomain.local -> 10.1.2.3
-install fuel and specify:
 domain: openstack.mydomain.local
 search domain: openstack.mydomain.local
 internal name server: 10.1.1.4, 10.1.1.2
-deploy nodes on Ubuntu 12.04
-ssh to node
-ping puppet.mydomain.local: receive "ping: unknown host puppet.mydomain.local"

Expected result:

Fuel server should be able to resolve hosts in mydomain.local

Additional info:

Fuel server is able to communicate with dns server but the local dnsmasq server seems unable to resolve anything in mydomain.local

[root@fuel ~]# cat /etc/dnsmasq.upstream
search openstack.mydomain.local
domain openstack.mydomain.local
nameserver 10.1.1.4
nameserver 10.1.1.2

[root@fuel ~]# host puppet.cptaq.local 10.1.1.4
Using domain server:
Name: 10.1.1.4
Address: 10.1.1.4#53
Aliases:
puppet.mydomain.local has address 10.1.2.3

[root@fuel ~]# host www.google.com 10.20.0.2
Using domain server:
Name: 10.20.0.2
Address: 10.20.0.2#53
Aliases:
www.google.com has address 74.125.131.106
www.google.com has address 74.125.131.105
www.google.com has address 74.125.131.104
www.google.com has address 74.125.131.99
www.google.com has address 74.125.131.103
www.google.com has address 74.125.131.147
www.google.com has IPv6 address 2607:f8b0:400c:c03::6a

[root@fuel ~]# host puppet.mydomain.local 10.20.0.2
Using domain server:
Name: 10.20.0.2
Address: 10.20.0.2#53
Aliases:
Host puppet.mydomain.local not found: 3(NXDOMAIN)

Changed in fuel:
assignee: nobody → Fuel Library Team (fuel-library)
milestone: none → 6.0
Changed in fuel:
importance: Undecided → High
Revision history for this message
Claude Durocher (claude-d) wrote :

From what I can see, ".local" queries are not forwarded to the external dns :

[root@7ea001b19bc1 ~]# host puppet.mydomain.local.
Host puppet.mydomain.local. not found: 3(NXDOMAIN)

[root@7ea001b19bc1 ~]# tail /var/log/dnsmasq.log

Sep 26 17:03:17 dnsmasq[841]: config puppet.mydomain.local is NXDOMAIN-IPv4
Sep 26 17:03:17 dnsmasq[841]: query[A] puppet.mydomain.local from 172.17.42.1

Revision history for this message
Claude Durocher (claude-d) wrote :

I made the following change to /etc/dnsmasq.conf in the Cobbler docker container and I'm not able to resolve hosts in ".local":

domain=localnet
server=/localnet/

Is it possible to have Fuel set this to a value different from the one supplied by the user when installing Fuel? For example, if a user specify mydomain.whatever, set domain and server to whateverfuel for example?

Revision history for this message
Stanislaw Bogatkin (sbogatkin) wrote :

Hi, ClaudeD.
Only thing that you need to do in that case is to change 'server' directive from

server=/local/

to

server=/local/<ip of your's external DNS>, e.g.:
server=/local/10.20.20.8

and restart dnsmasq. After that all should be ok.
As to give user explicit ability to point external DNS servers than it addressed by https://blueprints.launchpad.net/fuel/+spec/external-dns-ntp-support and (I hope so) will included in one of next releases.

Changed in fuel:
assignee: Fuel Library Team (fuel-library) → Stanislaw Bogatkin (sbogatkin)
status: New → Confirmed
Revision history for this message
Claude Durocher (claude-d) wrote :

Thanks for the follow up. I tried setting "server=/local/10.1.1.4" but I observed slow ssh connections from fuel server to nodes : eventually the ssh connection is made (about 15 seconds delay) but I guess there's some sort of reverse dns resolution performed that times out.

For the time being I'll be using this config in dnsmasq.conf :

domain=openstack.mydomain.local
server=/openstack.mydomain.local/

Changed in fuel:
status: Confirmed → Triaged
Changed in fuel:
assignee: Stanislaw Bogatkin (sbogatkin) → Oleksiy Molchanov (omolchanov)
Changed in fuel:
status: Triaged → In Progress
Revision history for this message
Stanislaw Bogatkin (sbogatkin) wrote :

We don't suppose to forward local queries to upstream servers now. If user need this, he can change dnsmasq settings on master node, as I said couple posts ago. So I close this bug. If someone will decide that we nevertheless should do that - just reopen it.

Changed in fuel:
status: In Progress → Invalid
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Related blueprints

Remote bug watches

Bug watches keep track of this bug in other bug trackers.