[lxc-users] How to setup a static IP in a container with LX[C|D] 2.0.0.*
Stéphane Graber
stgraber at ubuntu.com
Fri Mar 18 15:43:24 UTC 2016
Our stance hasn't changed. LXD doesn't know nor care about layer-3
networking, all it does is setup your layer-2.
Having LXD pre-initialize your network namespace confuses the heck out
of a bunch of distros which expect all network to be unconfigured by the
time they apply their own config (they don't clean things up so
duplicate entries lead to failure).
Nevertheless, we have recently allowed the following key through raw.lxc:
- lxc.network.X.ipv4
- lxc.network.X.ipv4.gateway
- lxc.network.X.ipv6
- lxc.network.X.ipv6.gateway
Note that we require you set the interface index (X above) as mixing
those raw entris with the LXD generated config would otherwise randomly
cause an invalid config and container startup failure.
The recommended way to manage IPs with LXD is to do it exactly the same
way you would do it for your VMs or physical machines, so either
configure your DHCP server to give a static lease or configure the
container to use a static IP (you can use lxc file pull/push/edit to do
it on a stopped container).
On Fri, Mar 18, 2016 at 10:18:33AM -0400, Sean McNamara wrote:
> First of all, there's no such thing as LX[C|D]. You're either using
> LXC or LXD. They're different enough in their configuration and
> operation that you can't ask an "either-or" question. Pick one
> solution and focus on that.
>
> I just wanted to chime in to say that I have this same question. I'm
> stuck using a pre-2.0 release of LXD because it allows me to use the
> "raw.lxc" config parameter to specify the IP settings for the guest.
> This configuration parameter was removed at some point prior to the
> 2.0 RC, so I ended up editing the source code of LXD to bring it back.
> I haven't found any equivalent configuration that works without using
> raw.lxc.
>
> raw.lxc: "lxc.network.ipv4=1.2.3.4/32\nlxc.network.ipv4.gateway=5.6.7.8\nlxc.network.hwaddr=00:11:22:33:44:55\nlxc.network.flags=up
> \ \nlxc.network.mtu=1500\n"
> volatile.eth0.hwaddr: 00:11:22:33:44:55
> volatile.eth0.name: eth1
> devices:
> eth0:
> hwaddr: 00:11:22:33:44:55
> nictype: bridged
> parent: br0
>
> On Ubuntu, you can then set up your bridge as follows in
> /etc/network/interfaces:
>
> auto br0
> iface br0 inet static
> address 1.2.3.4
> netmask 255.255.255.0
> broadcast 5.6.7.8
> gateway 9.10.11.12
> bridge_ports eth0
> bridge_stp off
>
>
> This is fine with LXD 0.24 that was built about a month before the 2.0
> release candidates started hitting (and with edited source code to
> un-block the raw.lxc param) but I'm afraid to upgrade to LXD 2.0
> because I don't know the way forward.
>
> It seems like support for certain basic network topologies are still
> being worked out with LXD. It should be easy, well-documented and
> flexible a la OpenVZ, but it's really not, as far as I have seen. The
> best way to make any progress that I've found thus far is to start
> learning Google Go and reading the source code.
>
> Thanks,
>
> Sean
>
>
>
> On Fri, Mar 18, 2016 at 9:10 AM, Hans Deragon <hans at deragon.biz> wrote:
> > Greetings,
> >
> > Ok, this is ridiculous and I apologize for asking help for such a simple
> > task, but I fail to find the answers by myself. I fail to find proper
> > documentation to setup bridge networking and static IP. Newbie here btw and
> > setup details at the end of this email.
> >
> > I got the container running and with DHCP configured, it has its own IP
> > which the host can address with.
> >
> > Obviously, I attempted to setup the static IP many times following
> > instructions found on many web pages, to no vail. For example, I followed
> > instructions from https://wiki.debian.org/LXC/SimpleBridge. But turns out
> > that I am probably running a different version of LXC and that this page is
> > now obsolete.
> >
> > I went so far to run 'strace lxc restart server2' to realize that
> > /var/lib/lxc/server2/config is not read (server2 is the container). This
> > seams to be confirmed by the post at
> > http://ubuntuforums.org/showthread.php?t=2275372.
> >
> > I found 'man lxc.container.conf'. Seams promising. However, I fail to find
> > within the manual the path where this file should be saved! If you write
> > documentation, please always provide the path where configuration files are
> > supposed to be stored.
> >
> > I created a profile named 'bridged' using commands, but I have not found any
> > option/instruction on how to apply that profile on my existing image. 'lxc
> > start server2' does not provide any option to start the container with a
> > particular profile. BTW, where are profile configuration files stored?
> >
> > I need clear step by step instructions, with full paths on how to set things
> > up and I fail to find any on the web. Anybody has a useful link to suggest?
> >
> > I have a KVM image running (server1) and it works flawlessly with a static
> > IP on my bridge. And it wasn't hard to find instructions on how to set it
> > up. But LXD/LXc is another story.
> >
> > The setup:
> >
> > Host: Ubuntu 14.04 LTS.
> > Container: Ubuntu 14.04 LTS.
> > LXD: 2.0.0~rc3-0ubuntu4~ubuntu14.04.1~ppa1
> > LXC: 2.0.0~rc10-0ubuntu2~ubuntu14.04.1~ppa1
> >
> > Best regards and thanks in advance,
> > Hans Deragon
> > _______________________________________________
> > lxc-users mailing list
> > lxc-users at lists.linuxcontainers.org
> > http://lists.linuxcontainers.org/listinfo/lxc-users
> _______________________________________________
> lxc-users mailing list
> lxc-users at lists.linuxcontainers.org
> http://lists.linuxcontainers.org/listinfo/lxc-users
--
Stéphane Graber
Ubuntu developer
http://www.ubuntu.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://lists.linuxcontainers.org/pipermail/lxc-users/attachments/20160318/f76b0e05/attachment.sig>
More information about the lxc-users
mailing list