network_data.json should provide interface-scoped nameserver information
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Compute (nova) |
Fix Released
|
Medium
|
Lars Kellogg-Stedman | ||
cloud-init |
Expired
|
Medium
|
Unassigned |
Bug Description
Nova currently provides nameserver information in network_data.json as a globally-scoped "services" key. E.g., from https:/
{
"links": [...],
"networks": [...],
"services": [
{
"type": "dns",
},
{
"type": "dns",
}
]
}
This is problematic because nameserver information is actually provided to OpenStack *per-subnet*, and nameservers that are reachable via one subnet may not be reachable from others. This is true outside of OpenStack as well, and is generally handled by providing nameserver information in interface configuration files (such as /etc/sysconfig/
Unfortunately, because Nova does not provide interface-scoped nameserver information, it is not possible to correctly configure a server from this information. Depending on how /etc/resolv.conf is populated, this can result in name resolution delays or failures if some system interfaces are brought down.
While it may be too late to remove the global nameserver information, we should *also* provide interface-scoped nameserver information in the "networks" dictionary, something like:
"networks": [
{
"network_id": "100dc63c-
"type": "ipv4",
"netmask": "255.255.255.0",
"link": "tap14c7fd7d-81",
"routes": [
{
}
],
"ip_address": "10.9.8.2",
"id": "network1",
"services": [
{
"type": "dns",
}
]
}
]
This would allow system configuration tools to correctly configure interface-scoped nameserver information.
Changed in nova: | |
importance: | Undecided → Wishlist |
Changed in cloud-init: | |
importance: | Undecided → Medium |
status: | New → Confirmed |
Fix proposed to branch: master /review. openstack. org/467699
Review: https:/