Skip to content

Support for consistent/persistent network device naming #609

@infernix

Description

@infernix

In the latest distros (RHEL7, Ubuntu 16.04, others?) NICs are labelled persistently and not simply eth0-x by order of nic detected.

This poses a problem because we rely on the management interface being a DHCP NIC and if a box image isn't sending out dhcp requests on the right nic, or not starting DHCP at all, we end up nowhere:

DEBUG wait_till_up: Searching for IP for MAC address: 52:54:00:d7:9c:ac
 INFO interface: info: Waiting for domain to get an IP address...
 INFO interface: info: ==> default: Waiting for domain to get an IP address...
==> default: Waiting for domain to get an IP address...
 INFO retryable: Retryable exception raised: #<Fog::Errors::TimeoutError: The specified wait_for timeout (2 seconds) was exceeded>
...

We also may have a situation where the a nic ends up named differently because libvirt attaches it to some different bus or slot (e.g. enp2s0f0 or enp1s0f0 and so on) depending on other devices in the VMs XML. This is a tricky case to handle since we need to know beforehand what the NIC is being called in order to do proper detection/configuration.

This can all be worked around by passing net.ifnames=0 biosdevname=0 on kernel commandline but we should investigate whether if we can fully support persistent naming schemes, provided that box images are configured for that (e.g. by setting DHCP on all possible interfaces) and vagrant supports it (seems OK for RHEL/Fedora but Ubuntu may be lacking support as of Vagrant 1.8.1 in configure_networks.rb)

So if any box image creators/mutators are reading this: use net.ifnames=0 biosdevname=0 in your grub commandlines until this is fixed.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions