Debian Jessie + LXC + Reseau = Problème

Bonjour,

je viens de transformer une machine en serveur Debian 8 amd64.
Mon projet pour cette machine est de la transformer en hôte pour de petits serveurs dédiés, tel que mails, mumble, dhcp, dns, etc …

J’ai installé LXC et créer un conteneur Debian wheezy (il est dit dans la doc que c’est mieux car sinon problème avec systemd)

Jusque là tout fonctionne bien ma machine se lance et mon interface réseau est OK. Je ping les interfaces virbr0 et eth0 de l’hôte.

Mais impossible de sortir de l’hôte. J’ai suivi plusieurs tutos avec des techniques différentes mais rien n’a fonctionné.

Mon fichier interfaces hôte:

# This file describes the network interfaces available on your system
#and how to activate them. For more information, see interfaces(5).
#source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug eth0
auto eth0
iface eth0 inet static
 address 192.168.1.110
 netmask 255.255.255.0
 network 192.168.1.0
 broadcast 192.168.1.255
 gateway 192.168.1.1

#auto br0
#iface br0 inet static
# address 192.168.2.1
# netmask 255.255.252.0
# broadcast 192.168.2.255
# bridge_ports none
# bridge_stp off
# bridge_fd 0
# bridge_maxwait 5

Voici mon fichier default.xml pour libvirt :

<network>
  <name>default</name>
  <uuid>5a3203ec-8a68-44e9-a107-366bc8ab395d</uuid>
  <forward mode='nat'/>
  <bridge name='virbr0' stp='on' delay='0'/>
  <mac address='52:54:00:8c:af:b9'/>
  <ip address='192.168.2.1' netmask='255.255.252.0'>
    <dhcp>
      <range start='192.168.2.2' end='192.168.2.10'/>
    </dhcp>
  </ip>
</network>

Le fichier conf de mon conteneur:

# Template used to create this container: /usr/share/lxc/templates/lxc-debian
# Parameters passed to the template: -r wheezy
# For additional config options, please look at lxc.container.conf(5)
lxc.network.type = veth
lxc.network.flags = up
lxc.network.link = virbr0
lxc.network.hwaddr = 00:FF:AA:00:00:01
lxc.network.ipv4 = 192.168.2.11/22
lxc.network.ipv4.gateway = 192.168.2.1
#lxc.network.veth.pair = veth-ServerMessages

lxc.rootfs = /var/lib/lxc/ServerMessages/rootfs

# Common configuration
lxc.include = /usr/share/lxc/config/debian.common.conf

# Container specific configuration
lxc.mount = /var/lib/lxc/ServerMessages/fstab
lxc.utsname = ServerMessages
lxc.arch = amd64

et le fichier interfaces de mon conteneur :

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
 address 192.168.2.11
 netmask 255.255.252.0
 broadcast 192.168.2.255
 gateway 192.168.2.1

Si vous avez besoin d’autres informations pour m’aider n’hésitez pas a demander.

Merci pour votre aide.

As-tu autorisé le forwarding ?

sysctl -w net.ipv4.ip_forward=1

A lire :
https://wiki.debian.org/LXC/SimpleBridge

  • EDIT - pour ce qui est du problème avec Jessie dans le container, il suffit de suivre la modification proposé dans le wiki Debian (virer systemd et repasser à sysvinit).

Sinon autre solution plus radicale utilisé CoreOS, distribution dédié à la solution Docker :whistle:

Bonjour

oui j’ai décommenté la ligne dans le fichier /etc/sysctl.conf, puis appliqué avec sysctl -p et redémarrer au moins deux fois pour d’autres essais.
Je n’ai aucune règle dans iptable.

Je vais regarder la solution CoreOS

Bonjour,

J’ai commencé à regarder CoreOS et cela me semble tout de même plus compliqué que Debian+LXC, rien que pour ce qui y est de l’installation.
Je me permets donc de relancer ma question concernant mon souci, si quelqu’un avait une idée.

J’ai refait des tests ce matin. Il se trouve que j’ai accès à internet depuis mon conteneur, mais pas à mon réseau local. Je peux faire un ping sur google.fr mais pas sur ma box ni sur les autres ordis de mon réseau. Je ne comprends pas :013

Bonsoir,
voila après un peu d’insistance et de nouvelle recherche plutôt que de passé par libvirt, je suis passé par un bridge direct et le tour est joué.

Je ne comprends toujours pas le problème que j’ai eu mais l’essentiel est que maintenant cela fonctionne.