<p dir="ltr">Hi,</p>
<p dir="ltr">here is simple and sweet howto on bridge networking.</p>
<p dir="ltr"><a href="https://insights.ubuntu.com/2015/11/10/converting-eth0-to-br0-and-getting-all-your-lxc-or-lxd-onto-your-lan/">https://insights.ubuntu.com/2015/11/10/converting-eth0-to-br0-and-getting-all-your-lxc-or-lxd-onto-your-lan/</a></p>
<p dir="ltr">Google is your friend.  ;)<br>
</p>
<div class="gmail_quote">On 21 Mar 2016 3:31 am, "Hans Deragon" <<a href="mailto:hans@deragon.biz">hans@deragon.biz</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Greetings,<br>
<br>
I solved my issue. Sean Mcnamara opened my eyes he wrote "First of all,<br>
there's no such thing as LX[C|D]. You're either using LXC or LXD.".<br>
This brought a paradigm shift where I though I use 'lxc' as the command,<br>
now I search the web for "LXD 2.0 <keywords>".  I then found<br>
instructions for the version of LXD I used, filtering many now useless<br>
web pages.  Following instructions found, I created the<br>
following profile:<br>
<br>
  lxc profile create bridged<br>
  lxc profile device add bridged eth0 nic nictype=bridged parent=br0<br>
<br>
And then, I ran:<br>
<br>
  lxc config edit <container name><br>
<br>
Where I found "default", I replaced with "bridged".  Restarted the<br>
container with:<br>
<br>
  lxc restart <container name><br>
<br>
and voilà, now I have my container working with a static IP (static IP<br>
configuration per se is the same as for any VM images;<br>
/etc/network/interfaces of container needs to be configured and on the<br>
host, a bridged network usually named br0)<br>
<br>
Best regards and thanks to all, particularly Sean, for the help.<br>
Hans Deragon<br>
<br>
On 2016-03-18 16:08, Hans Deragon wrote:<br>
> Greetings,<br>
><br>
>> The recommended way to manage IPs with LXD is to do it<br>
>> exactly the same way you would do it for your VMs or<br>
>> physical machines, so either configure your DHCP server to<br>
>> give a static lease or configure the container to use a<br>
>> static IP (you can use lxc file pull/push/edit to do it on<br>
>> a stopped container).<br>
><br>
> I have this in my container:<br>
><br>
>   root@server2:/etc/network# cat interfaces<br>
>   auto lo<br>
>   iface lo inet loopback<br>
><br>
>   auto eth0<br>
>   iface eth0 inet static<br>
>    address 192.168.1.5<br>
>    network 192.168.1.0<br>
>    netmask 255.255.255.0<br>
>    broadcast 192.168.1.255<br>
><br>
> Same configuration as my KVM image (different IP, of course). Within the<br>
> container, it seams to work fine:<br>
><br>
>   root@server2:/etc/network# ping 192.168.1.5<br>
>   PING 192.168.1.5 (192.168.1.5) 56(84) bytes of data.<br>
>   64 bytes from <a href="http://192.168.1.5" rel="noreferrer" target="_blank">192.168.1.5</a>: icmp_seq=1 ttl=64 time=0.044 ms<br>
><br>
> Now I need clear instructions on how to tell LDX that my container<br>
> needs to connect to the bridge (br0) device on the host.  I fail<br>
> to find such instructions on the web for the version I am running:<br>
><br>
> LXD:        2.0.0~rc3-0ubuntu4~ubuntu14.04.1~ppa1<br>
> LXC:        2.0.0~rc10-0ubuntu2~ubuntu14.04.1~ppa1<br>
><br>
> Best regards,<br>
> Hans Deragon<br>
><br>
> On 2016-03-18 11:43, Stéphane Graber wrote:<br>
>> Our stance hasn't changed. LXD doesn't know nor care about layer-3<br>
>> networking, all it does is setup your layer-2.<br>
>><br>
>> Having LXD pre-initialize your network namespace confuses the heck out<br>
>> of a bunch of distros which expect all network to be unconfigured by the<br>
>> time they apply their own config (they don't clean things up so<br>
>> duplicate entries lead to failure).<br>
>><br>
>><br>
>> Nevertheless, we have recently allowed the following key through raw.lxc:<br>
>>  - lxc.network.X.ipv4<br>
>>  - lxc.network.X.ipv4.gateway<br>
>>  - lxc.network.X.ipv6<br>
>>  - lxc.network.X.ipv6.gateway<br>
>><br>
>> Note that we require you set the interface index (X above) as mixing<br>
>> those raw entris with the LXD generated config would otherwise randomly<br>
>> cause an invalid config and container startup failure.<br>
>><br>
>><br>
>> The recommended way to manage IPs with LXD is to do it exactly the same<br>
>> way you would do it for your VMs or physical machines, so either<br>
>> configure your DHCP server to give a static lease or configure the<br>
>> container to use a static IP (you can use lxc file pull/push/edit to do<br>
>> it on a stopped container).<br>
>><br>
>> On Fri, Mar 18, 2016 at 10:18:33AM -0400, Sean McNamara wrote:<br>
>>> First of all, there's no such thing as LX[C|D]. You're either using<br>
>>> LXC or LXD. They're different enough in their configuration and<br>
>>> operation that you can't ask an "either-or" question. Pick one<br>
>>> solution and focus on that.<br>
>>><br>
>>> I just wanted to chime in to say that I have this same question. I'm<br>
>>> stuck using a pre-2.0 release of LXD because it allows me to use the<br>
>>> "raw.lxc" config parameter to specify the IP settings for the guest.<br>
>>> This configuration parameter was removed at some point prior to the<br>
>>> 2.0 RC, so I ended up editing the source code of LXD to bring it back.<br>
>>> I haven't found any equivalent configuration that works without using<br>
>>> raw.lxc.<br>
>>><br>
>>> raw.lxc: "lxc.network.ipv4=<a href="http://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" rel="noreferrer" target="_blank">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</a><br>
>>>     \ \nlxc.network.mtu=1500\n"<br>
>>>   volatile.eth0.hwaddr: 00:11:22:33:44:55<br>
>>>   <a href="http://volatile.eth0.name" rel="noreferrer" target="_blank">volatile.eth0.name</a>: eth1<br>
>>> devices:<br>
>>>   eth0:<br>
>>>     hwaddr: 00:11:22:33:44:55<br>
>>>     nictype: bridged<br>
>>>     parent: br0<br>
>>><br>
>>> On Ubuntu, you can then set up your bridge as follows in<br>
>>> /etc/network/interfaces:<br>
>>><br>
>>> auto br0<br>
>>> iface br0 inet static<br>
>>>         address 1.2.3.4<br>
>>>         netmask 255.255.255.0<br>
>>>         broadcast 5.6.7.8<br>
>>>         gateway 9.10.11.12<br>
>>>         bridge_ports eth0<br>
>>>         bridge_stp off<br>
>>><br>
>>><br>
>>> This is fine with LXD 0.24 that was built about a month before the 2.0<br>
>>> release candidates started hitting (and with edited source code to<br>
>>> un-block the raw.lxc param) but I'm afraid to upgrade to LXD 2.0<br>
>>> because I don't know the way forward.<br>
>>><br>
>>> It seems like support for certain basic network topologies are still<br>
>>> being worked out with LXD. It should be easy, well-documented and<br>
>>> flexible a la OpenVZ, but it's really not, as far as I have seen. The<br>
>>> best way to make any progress that I've found thus far is to start<br>
>>> learning Google Go and reading the source code.<br>
>>><br>
>>> Thanks,<br>
>>><br>
>>> Sean<br>
>>><br>
>>><br>
>>><br>
>>> On Fri, Mar 18, 2016 at 9:10 AM, Hans Deragon <<a href="mailto:hans@deragon.biz">hans@deragon.biz</a>> wrote:<br>
>>>> Greetings,<br>
>>>><br>
>>>> Ok, this is ridiculous and I apologize for asking help for such a simple<br>
>>>> task, but I fail to find the answers by myself.  I fail to find proper<br>
>>>> documentation to setup bridge networking and static IP.  Newbie here btw and<br>
>>>> setup details at the end of this email.<br>
>>>><br>
>>>> I got the container running and with DHCP configured, it has its own IP<br>
>>>> which the host can address with.<br>
>>>><br>
>>>> Obviously, I attempted to setup the static IP many times following<br>
>>>> instructions found on many web pages, to no vail.  For example, I followed<br>
>>>> instructions from <a href="https://wiki.debian.org/LXC/SimpleBridge" rel="noreferrer" target="_blank">https://wiki.debian.org/LXC/SimpleBridge</a>.  But turns out<br>
>>>> that I am probably running a different version of LXC and that this page is<br>
>>>> now obsolete.<br>
>>>><br>
>>>> I went so far to run 'strace lxc restart server2' to realize that<br>
>>>> /var/lib/lxc/server2/config is not read (server2 is the container).  This<br>
>>>> seams to be confirmed by the post at<br>
>>>> <a href="http://ubuntuforums.org/showthread.php?t=2275372" rel="noreferrer" target="_blank">http://ubuntuforums.org/showthread.php?t=2275372</a>.<br>
>>>><br>
>>>> I found 'man lxc.container.conf'.  Seams promising.  However, I fail to find<br>
>>>> within the manual the path where this file should be saved!  If you write<br>
>>>> documentation, please always provide the path where configuration files are<br>
>>>> supposed to be stored.<br>
>>>><br>
>>>> I created a profile named 'bridged' using commands, but I have not found any<br>
>>>> option/instruction on how to apply that profile on my existing image.  'lxc<br>
>>>> start server2' does not provide any option to start the container with a<br>
>>>> particular profile.  BTW, where are profile configuration files stored?<br>
>>>><br>
>>>> I need clear step by step instructions, with full paths on how to set things<br>
>>>> up and I fail to find any on the web.  Anybody has a useful link to suggest?<br>
>>>><br>
>>>> I have a KVM image running (server1) and it works flawlessly with a static<br>
>>>> IP on my bridge.  And it wasn't hard to find instructions on how to set it<br>
>>>> up.  But LXD/LXc is another story.<br>
>>>><br>
>>>> The setup:<br>
>>>><br>
>>>> Host:       Ubuntu 14.04 LTS.<br>
>>>> Container:  Ubuntu 14.04 LTS.<br>
>>>> LXD:        2.0.0~rc3-0ubuntu4~ubuntu14.04.1~ppa1<br>
>>>> LXC:        2.0.0~rc10-0ubuntu2~ubuntu14.04.1~ppa1<br>
>>>><br>
>>>> Best regards and thanks in advance,<br>
>>>> Hans Deragon<br>
>>>> _______________________________________________<br>
>>>> lxc-users mailing list<br>
>>>> <a href="mailto:lxc-users@lists.linuxcontainers.org">lxc-users@lists.linuxcontainers.org</a><br>
>>>> <a href="http://lists.linuxcontainers.org/listinfo/lxc-users" rel="noreferrer" target="_blank">http://lists.linuxcontainers.org/listinfo/lxc-users</a><br>
>>> _______________________________________________<br>
>>> lxc-users mailing list<br>
>>> <a href="mailto:lxc-users@lists.linuxcontainers.org">lxc-users@lists.linuxcontainers.org</a><br>
>>> <a href="http://lists.linuxcontainers.org/listinfo/lxc-users" rel="noreferrer" target="_blank">http://lists.linuxcontainers.org/listinfo/lxc-users</a><br>
>><br>
>><br>
>><br>
>> _______________________________________________<br>
>> lxc-users mailing list<br>
>> <a href="mailto:lxc-users@lists.linuxcontainers.org">lxc-users@lists.linuxcontainers.org</a><br>
>> <a href="http://lists.linuxcontainers.org/listinfo/lxc-users" rel="noreferrer" target="_blank">http://lists.linuxcontainers.org/listinfo/lxc-users</a><br>
>><br>
> _______________________________________________<br>
> lxc-users mailing list<br>
> <a href="mailto:lxc-users@lists.linuxcontainers.org">lxc-users@lists.linuxcontainers.org</a><br>
> <a href="http://lists.linuxcontainers.org/listinfo/lxc-users" rel="noreferrer" target="_blank">http://lists.linuxcontainers.org/listinfo/lxc-users</a><br>
><br>
_______________________________________________<br>
lxc-users mailing list<br>
<a href="mailto:lxc-users@lists.linuxcontainers.org">lxc-users@lists.linuxcontainers.org</a><br>
<a href="http://lists.linuxcontainers.org/listinfo/lxc-users" rel="noreferrer" target="_blank">http://lists.linuxcontainers.org/listinfo/lxc-users</a></blockquote></div>