lxc-clone causes duplicate MAC address and IP address

Bug #1346815 reported by Nobuto Murata
26
This bug affects 3 people
Affects Status Importance Assigned to Milestone
lxc (Ubuntu)
Fix Released
Medium
Unassigned
Trusty
Fix Released
Medium
Unassigned

Bug Description

A cloned container will have the same MAC address and IP address with the original container.

How to reproduce:
 1. $ sudo lxc-create -t ubuntu-cloud -n foo -- --release trusty
 2. $ sudo lxc-clone foo bar
 3. $ sudo lxc-start -d -n foo
 4. $ sudo lxc-start -d -n bar

Expected result:
 2 container will have different MAC and IP address each other.

Actual result:
 2 container will have duplicate MAC and IP address.

# grep lxc.network.hwaddr /var/lib/lxc/{foo,bar}/config
/var/lib/lxc/foo/config:lxc.network.hwaddr = 00:16:3e:d8:d8:78
/var/lib/lxc/bar/config:lxc.network.hwaddr = 00:16:3e:d8:d8:78

$ sudo lxc-ls -f
NAME STATE IPV4 IPV6 GROUPS AUTOSTART
-----------------------------------------------------------------
bar RUNNING 10.0.7.60 - - NO
foo RUNNING 10.0.7.60 - - NO

ProblemType: Bug
DistroRelease: Ubuntu 14.10
Package: lxc 1.1.0~alpha1-0ubuntu2
ProcVersionSignature: Ubuntu 3.16.0-4.9-generic 3.16.0-rc5
Uname: Linux 3.16.0-4-generic x86_64
ApportVersion: 2.14.4-0ubuntu2
Architecture: amd64
CurrentDesktop: Unity
Date: Tue Jul 22 17:56:44 2014
EcryptfsInUse: Yes
InstallationDate: Installed on 2014-05-19 (64 days ago)
InstallationMedia: Ubuntu 14.10 "Utopic Unicorn" - Alpha amd64 (20140518)
SourcePackage: lxc
UpgradeStatus: No upgrade log present (probably fresh install)
defaults.conf:
 lxc.network.type = veth
 lxc.network.link = lxcbr0
 lxc.network.flags = up
 lxc.network.hwaddr = 00:16:3e:xx:xx:xx

Revision history for this message
Nobuto Murata (nobuto) wrote :
Revision history for this message
Nobuto Murata (nobuto) wrote :
Changed in lxc (Ubuntu):
importance: Undecided → Medium
status: New → Triaged
Changed in lxc (Ubuntu Trusty):
importance: Undecided → High
Changed in lxc (Ubuntu):
importance: Medium → High
Changed in lxc (Ubuntu Trusty):
status: New → Triaged
Revision history for this message
Serge Hallyn (serge-hallyn) wrote :

The bug was introduced by incomplete support for "unexpanded configuration" which itself existed to prevent expanding of included configuration files.

It is fixed in upstream lxc (tested), though I'm not sure exactly when this
(alpha2) is expected to hit the archive.

Note that a further fix is the by-default setting of hwaddr to
00:16:3e:xx:xx:xx . You can also easily work around this by adding

lxc.network.hwaddr = 00:16:3e:xx:xx:xx

to your /etc/lxc/default.conf or ~/.local/share/lxc/default.conf.

Changed in lxc (Ubuntu):
status: Triaged → Fix Committed
importance: High → Medium
Changed in lxc (Ubuntu Trusty):
importance: High → Medium
Revision history for this message
Serge Hallyn (serge-hallyn) wrote :

(lowered priority per guidelines since there is a workaround)

Revision history for this message
Nobuto Murata (nobuto) wrote :

> You can also easily work around this by adding
>
> lxc.network.hwaddr = 00:16:3e:xx:xx:xx
>
> to your /etc/lxc/default.conf or ~/.local/share/lxc/default.conf.

hmm, /etc/lxc/default.conf already had "lxc.network.hwaddr = 00:16:3e:xx:xx:xx" in my env. Besides, I have changed the line in /var/lib/lxc/<ORIG_CONTAINER>/config. It works for me as a workaround. Thanks.

Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package lxc - 1.1.0~alpha2-0ubuntu2

---------------
lxc (1.1.0~alpha2-0ubuntu2) utopic; urgency=medium

  * Cherry-pick usptream bugfix for lxc-usernic test.
 -- Stephane Graber <email address hidden> Thu, 02 Oct 2014 15:01:56 -0400

Changed in lxc (Ubuntu):
status: Fix Committed → Fix Released
Revision history for this message
Felipe Reyes (freyes) wrote :

I'm running utopic, after upgrading to lxc-1.1.0~alpha2-0ubuntu3, the bug went away

Changed in lxc (Ubuntu Trusty):
status: Triaged → Fix Released
Revision history for this message
ecraymond (ecraymond) wrote :

It seems as though the mac address duplicating is fixed, but if there is an IP, this is still being cloned.

Distributor ID: Ubuntu
Description: Ubuntu 15.04
Release: 15.04
Codename: vivid

ii lxc 1.1.5-0ubuntu0.15.04.3 amd64 Linux Containers userspace tools

Revision history for this message
Stéphane Graber (stgraber) wrote :

Not much we can do about the IP address though. For the MAC it's unlikely that anything in the container is tied to it so we can just generate a fresh one without requiring any knowledge about the workload or the environment.

An IP address is much more problematic because maybe you did mean to keep the address (won't run both containers at once) or you're going to move the clone to another host or another bridge and even if we could know that, there's no way for LXC to know what IP it should be using and removing the IP entry would likely break the container.

So unfortunately for IP configuration, it's really up to the user to know about it (they're the ones who put it there, LXC itself never writes one) and update as needed.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.