I set up an Ubuntu system and configured it properly, including defining eth0
in /etc/network/interfaces
. I then imaged that system and cloned it on a new system.
When I booted up the system the first time all was good, but a few reboots later I was greeted with the network config timing out. When I logged in I found that eth0
was not available.
My initial research let me to try ifdown -a
and ifup -a
which I did a few times to no apparent effect.
Research eventually pointed me to /etc/udev/rules.d/70-persistent-net.rules
, where I discovered that the MAC address for the new system had created eth1. Good idea, but not what I wanted to happen.
When I booted up just now, I found that /etc/udev/rules.d/70-persistent-net.rules
now has six entries for six different HW Addresses, which I find strange as there is only one interface.
My question is: did my use of ifup -a
somehow create new MAC addresses to be created? If not, are there any thoughts on how this happened? I altered /etc/udev/rules.d/70-persistent-net.rules
to name the current HW Address eth0
and it seems to be working, but can I be assured that the address won't change again on a reboot?
Best Answer
I've run into this exact same problem under CentOS from time to time when I've cloned virtual machines (VM's). The problem stems from the original VM getting an entry put into this file to setup the Ethernet device
eth0
.Sample .rules file
The problem rears its ugly head when you clone the first VM, this causes a new MAC address to be created, under some virtualization technologies such as KVM for one. This new MAC address is auto detected when the cloned VM is booted and viewed as a new Ethernet device by
/lib/udev/write_net_rules
, and so a 2nd entry is added to the above file.I usually open this file,
70-persistent-net.rules
, in an editor and simply consolidate the lines so that the new MAC address is assigned to theeth0
device and reboot.EDIT #1
The OP followed up the question with the following new information.
@Zobal - I'm familiar with Flex. Since it's a VM you can change the VM's MAC (in the VM software - VirtualBox, KVM, etc.).
NOTE: Flex is a licensing technology that's provided by Flexera. They used to be called GlobeTrotter Software. This technology allows software to be either tied to a physical host, or can have licenses managed from a central server as "tokens" where clients can check the tokens out for a period of time. The licenses are typically tied to a host, and this host is usually identified by a unique number that you can find using the command
hostid
.For example:
To which I responded: Well then your only option is to change the new system's MAC address to the same as the other system's MAC. Realize that these 2 systems cannot exist on the same network, otherwise they will conflict with each other. Also Flex licensing typically does not use the MAC, they use the number that's identifiable using the command
hostid
!References