0

I have been experimenting with LXC virtualisation in order to run virtual machines on a dedicated server, but am having trouble setting up the networking properly.

I am using veth bridged networking, as instructed here: http://blog.foaa.de/2010/05/lxc-on-debian-squeeze/ (the guide I used to setup the LXC container)

When I start the container, it functions fine, can access the Internet and accepts incoming connections to it's own IP. However, as soon as I start it, the networking on my host box (dedicated server) goes down completely, and will not come back until the server is rebooted.

The only thing I can think of that would be causing this is incorrectly configured bridging settings, however I'm not sure entirely what the proper ones should be. Any advice on how I could reconfigure this? Thanks.

Both the host node and the container itself are running Debian Squeeze, with packages upgraded to the latest versions.

Host node (dedicated server) network configuration (/etc/network/interfaces):

allow-hotplug eth0
auto br0
iface br0 inet static
    bridge_ports eth0
    bridge_fd 0
    bridge_stp off
    bridge_maxwait 0 
    address 46.105.102.29
    netmask 255.255.255.0
    network 46.105.102.0
    broadcast 46.105.102.255
    gateway 46.105.102.254

LXC container network configuration (/etc/network/interfaces):

auto eth0
iface eth0 inet static
    address 94.23.153.205
    netmask 255.255.255.0
    broadcast 94.23.153.205
    post-up route add 46.105.102.254 dev eth0
    post-up route add default gw 46.105.102.254
    post-down route del 46.105.102.254 dev eth0

Container network configuration (from LXC config file):

lxc.utsname = paradox
lxc.network.type = veth
lxc.network.flags = up
lxc.network.link = br0
lxc.network.hwaddr = 02:00:00:ba:47:a0
lxc.network.ipv4 = 94.23.153.205
1
  • This is not exactly an answer, but have you checked out docker? It dramatically simplifies the process of working with Linux containers. I have also had more success using libvirt to manage containers (virsh -c lxc:/// ...) than using the native lxc-* toolset.
    – larsks
    Aug 4, 2013 at 0:21

3 Answers 3

1

I created many squeeze/wheezy containers by the same instruction (http://blog.foaa.de/2010/05/lxc-on-debian-squeeze/)

The only thing I do different way is that I use a virtual network bridge. (And I think the problem is that you have a bridge to your network card, not to a virtual device)

Add something like this to your /etc/network/interfaces (using your own numbers):

#VLAN 5
auto eth0.5
iface eth0.5 inet manual
  vlan_raw_device eth0

auto vzbr5
iface vzbr5 inet static
  address 10.11.15.1
  netmask 255.255.255.0
  network 10.11.15.0
  broadcast 10.11.15.255
  bridge_maxwait 0
  bridge_ports none
  post-up /usr/sbin/brctl addif vzbr5 eth0.5
  post-up /sbin/ifconfig eth0.5 up

Then

sudo ifup vzbr5

After that use vzbr5 as a network device.

Please see the complete instruction.

1
  • 1
    Adding the instructions would improve this answer. Links can and do break.
    – Dave M
    Oct 1, 2013 at 14:32
0

You want to put the static address in the containers /etc/network/interfaces or config file but not both. Personally I prefer to set it up in /etc/network/interfaces.

You can also remove as the config file takes care of the gateway:

post-up route add 46.105.102.254 dev eth0
post-up route add default gw 46.105.102.254
post-down route del 46.105.102.254 dev eth0

Why did you choose allow-hotplug eth0 on your host? This is usually not needed. Also double check the gateway address and any firewall settings on the gateway.

-1

Seems you re-plug your adapter. ..

Do you have an apater on the dedicated server that is connected to the bridge? I would be curious, what happens if you start a second container?

Instead of routing with words involved like dev and eth0, I might would like to take a look at someting to manage the virtual networks, especially if you would be also OK with a NAT solution. Did you took at livbvirt?

You must log in to answer this question.