undercloud reboot can have an ironic dnsmasq failure
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
tripleo |
Expired
|
Undecided
|
Unassigned |
Bug Description
In order to fix certain service start failures after an undercloud reboot (https:/
Jul 26 07:11:03 haa-01.
Jul 26 07:11:03 haa-01.
Jul 26 07:11:03 haa-01.
Jul 26 07:11:03 haa-01.
Jul 26 07:11:03 haa-01.
Jul 26 07:11:03 haa-01.
A common configuration for /etc/ironic-
"""
port=0
interface=
bind-interfaces
dhcp-range=
enable-tftp
tftp-root=/tftpboot
dhcp-sequential-ip
dhcp-match=ipxe,175
# Client is running iPXE; move to next stage of chainloading
dhcp-boot=tag:ipxe,http://
dhcp-boot=
"""
The reason for the failure is that dnsmasq.c does not just bind() to the address, but it also checks for the interface name. See src/dnsmasq.c (OPT_NOWILD is when bind-interfaces is set):
"""
...
if (option_
{
create_
if (!option_
for (if_tmp = daemon->if_names; if_tmp; if_tmp = if_tmp->next)
if (if_tmp->name && !if_tmp->used)
"""
So a correct fix here is to remove the bind-interfaces and add the bind-dynamic options.
Changed in tripleo: | |
status: | New → Triaged |
importance: | Undecided → High |
milestone: | none → ongoing |
Changed in tripleo: | |
milestone: | none → stein-2 |
status: | Confirmed → Triaged |
Before we switch puppet-ironic to bind-dynamic we should verify that it won't listen automatically to any interface that gets added after dnsmasq has started. The manpage seems to imply so:
--bind-dynamic
Enable a network mode which is a hybrid between --bind-interfaces and the
default. Dnsmasq binds the address of individual interfaces, allowing multiple
dnsmasq instances, but if new interfaces or addresses appear, it automatically
listens on those (subject to any access-control configuration). This makes
dynamically created interfaces work in the same way as the default.
Implementing this option requires non-standard networking APIs and it is only
available under Linux. On other platforms it falls-back to --bind-interfaces
mode.
If that is confirmed, I am not sure what the best fix could be