[lxc-users] How to setup a static IP in a container with LX[C|D] 2.0.0.*

Hans Deragon hans at deragon.biz
Sun Mar 20 21:16:25 UTC 2016


Greetings,

I solved my issue. Sean Mcnamara opened my eyes he wrote "First of all,
there's no such thing as LX[C|D]. You're either using LXC or LXD.".
This brought a paradigm shift where I though I use 'lxc' as the command,
now I search the web for "LXD 2.0 <keywords>".  I then found
instructions for the version of LXD I used, filtering many now useless
web pages.  Following instructions found, I created the
following profile:

  lxc profile create bridged
  lxc profile device add bridged eth0 nic nictype=bridged parent=br0

And then, I ran:

  lxc config edit <container name>

Where I found "default", I replaced with "bridged".  Restarted the
container with:

  lxc restart <container name>

and voilĂ , now I have my container working with a static IP (static IP
configuration per se is the same as for any VM images;
/etc/network/interfaces of container needs to be configured and on the
host, a bridged network usually named br0)

Best regards and thanks to all, particularly Sean, for the help.
Hans Deragon

On 2016-03-18 16:08, Hans Deragon wrote:
> Greetings,
> 
>> 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).
> 
> I have this in my container:
> 
>   root at server2:/etc/network# cat interfaces
>   auto lo
>   iface lo inet loopback
> 
>   auto eth0
>   iface eth0 inet static
>    address 192.168.1.5
>    network 192.168.1.0
>    netmask 255.255.255.0
>    broadcast 192.168.1.255
> 
> Same configuration as my KVM image (different IP, of course). Within the
> container, it seams to work fine:
> 
>   root at server2:/etc/network# ping 192.168.1.5
>   PING 192.168.1.5 (192.168.1.5) 56(84) bytes of data.
>   64 bytes from 192.168.1.5: icmp_seq=1 ttl=64 time=0.044 ms
> 
> Now I need clear instructions on how to tell LDX that my container
> needs to connect to the bridge (br0) device on the host.  I fail
> to find such instructions on the web for the version I am running:
> 
> LXD:        2.0.0~rc3-0ubuntu4~ubuntu14.04.1~ppa1
> LXC:        2.0.0~rc10-0ubuntu2~ubuntu14.04.1~ppa1
> 
> Best regards,
> Hans Deragon
> 
> On 2016-03-18 11:43, Stéphane Graber wrote:
>> 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
>>
>>
>>
>> _______________________________________________
>> 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
> 


More information about the lxc-users mailing list