← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1902950] [NEW] [OVN] DNS resolution not forwarded with OVN driver

 

Public bug reported:

With ML2/OVS and ML2/LB, instances on tenant networks can resolve in-
cloud and external DNS names even if the tenant network has no router or
outside connectivity. It does this via the dnsmasq instance being
configured as the DNS resolver for the instances. A DNS request from an
instance on one of these private networks will go to dnsmasq.  If the
address is not in the list of static addresses populated in dnsmasq by
neutron, it will then resolve the request using either configured
resolvers or the host resolver.  This is use case 2 in the DNS
Resolution for Instances document [1].

With ML2/OVN, there is no dnsmasq instance. In this case, the request is
"hijacked" by OVN, and if there is a static record that matches, it will
respond with the static entry. If there is no matching static record,
instances without connectivity to the "8.8.8.8" DNS server that is
default in the OVN DHCP packet cannot resolve DNS.  This means that
these instances cannot utilize DNS records published by Designate.

The lack of a masquerading forwarding DNS resolver available to
instances on isolated tenant networks is the feature parity gap between
ML2/OVS and ML2/OVN this bug requests be fixed. The driver for this is
to allow instances on isolated tenant networks to use DNS published by
Designate.

[1] https://docs.openstack.org/neutron/latest/admin/config-dns-
res.html#case-2-dhcp-agents-forward-dns-queries-from-instances

Evidence:

On the host:
$ nslookup www.redhat.com
Server: 127.0.0.53
Address: 127.0.0.53#53

Non-authoritative answer:
www.redhat.com canonical name = ds-www.redhat.com.edgekey.net.
ds-www.redhat.com.edgekey.net canonical name =
ds-www.redhat.com.edgekey.net.globalredir.akadns.net.
ds-www.redhat.com.edgekey.net.globalredir.akadns.net canonical name =
e3396.dscx.akamaiedge.net.
Name: e3396.dscx.akamaiedge.net
Address: 23.64.196.72
Name: e3396.dscx.akamaiedge.net
Address: 2600:1409:12:39e::d44
Name: e3396.dscx.akamaiedge.net
Address: 2600:1409:12:383::d44

#### So host name resolution is working correctly.

On a guest on a tenant network:

# nslookup webserver1                                                                                                                                                                                                                         
Server: 127.0.0.53
Address: 127.0.0.53#53

Non-authoritative answer:
Name: webserver1.openstackgate.local
Address: 172.21.1.154

#### It can resolve itself.

# nslookup webserver2                                                                                                                                                                                                                         
Server: 127.0.0.53
Address: 127.0.0.53#53

Non-authoritative answer:
Name: webserver2.openstackgate.local
Address: 172.21.1.31

### It can resolve other VMs

# nslookup www.redhat.com                                                                                                                                                                                                                     
;; connection timed out; no servers could be reached

#### It cannot resolve anything that is not in the OVN DB. This is the
problem.

** Affects: neutron
     Importance: Undecided
         Status: New


** Tags: dns ovn

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1902950

Title:
  [OVN] DNS resolution not forwarded with OVN driver

Status in neutron:
  New

Bug description:
  With ML2/OVS and ML2/LB, instances on tenant networks can resolve in-
  cloud and external DNS names even if the tenant network has no router
  or outside connectivity. It does this via the dnsmasq instance being
  configured as the DNS resolver for the instances. A DNS request from
  an instance on one of these private networks will go to dnsmasq.  If
  the address is not in the list of static addresses populated in
  dnsmasq by neutron, it will then resolve the request using either
  configured resolvers or the host resolver.  This is use case 2 in the
  DNS Resolution for Instances document [1].

  With ML2/OVN, there is no dnsmasq instance. In this case, the request
  is "hijacked" by OVN, and if there is a static record that matches, it
  will respond with the static entry. If there is no matching static
  record, instances without connectivity to the "8.8.8.8" DNS server
  that is default in the OVN DHCP packet cannot resolve DNS.  This means
  that these instances cannot utilize DNS records published by
  Designate.

  The lack of a masquerading forwarding DNS resolver available to
  instances on isolated tenant networks is the feature parity gap
  between ML2/OVS and ML2/OVN this bug requests be fixed. The driver for
  this is to allow instances on isolated tenant networks to use DNS
  published by Designate.

  [1] https://docs.openstack.org/neutron/latest/admin/config-dns-
  res.html#case-2-dhcp-agents-forward-dns-queries-from-instances

  Evidence:

  On the host:
  $ nslookup www.redhat.com
  Server: 127.0.0.53
  Address: 127.0.0.53#53

  Non-authoritative answer:
  www.redhat.com canonical name = ds-www.redhat.com.edgekey.net.
  ds-www.redhat.com.edgekey.net canonical name =
  ds-www.redhat.com.edgekey.net.globalredir.akadns.net.
  ds-www.redhat.com.edgekey.net.globalredir.akadns.net canonical name =
  e3396.dscx.akamaiedge.net.
  Name: e3396.dscx.akamaiedge.net
  Address: 23.64.196.72
  Name: e3396.dscx.akamaiedge.net
  Address: 2600:1409:12:39e::d44
  Name: e3396.dscx.akamaiedge.net
  Address: 2600:1409:12:383::d44

  #### So host name resolution is working correctly.

  On a guest on a tenant network:

  # nslookup webserver1                                                                                                                                                                                                                         
  Server: 127.0.0.53
  Address: 127.0.0.53#53

  Non-authoritative answer:
  Name: webserver1.openstackgate.local
  Address: 172.21.1.154

  #### It can resolve itself.

  # nslookup webserver2                                                                                                                                                                                                                         
  Server: 127.0.0.53
  Address: 127.0.0.53#53

  Non-authoritative answer:
  Name: webserver2.openstackgate.local
  Address: 172.21.1.31

  ### It can resolve other VMs

  # nslookup www.redhat.com                                                                                                                                                                                                                     
  ;; connection timed out; no servers could be reached

  #### It cannot resolve anything that is not in the OVN DB. This is the
  problem.

To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1902950/+subscriptions