Installation d’un conteneur LXC sur Dedibox

Je viens de migrer mon blog sur un nouveau serveur Dedibox Classic +.
Celui offrant plus de puissance que mon ancienne Kimsufi mKS 2G, j’ai décidé d’expérimenter l’utilisation de conteneur LXC pour isoler un certain nombre de services. Le choix de LXC comme méthode de virtualisation réside principalement dans une volonté d’expérimentation : j’ai en effet l’habitude de travailler avec KVM au travail.

La première chose à faire est de commander une IP de Failover chez Online. Avec mon serveur j’ai accès à 5 IP de failover soit 5 conteneurs LXC potentiels en plus de ma machine hôte.
Une fois l’IP de failover achetée et assignée à votre machine hôte, il faut aller demander la déclaration d’une nouvelle adresse MAC pour votre serveur.
Ceci est à faire dans l’onglet ‘Etat’ de la console d’administration de votre dédibox. J’ai personnellement choisi une MAC de type KVM.

ATTENTION : si vous ne déclarez pas votre adresse MAC, votre port de switch sera automatiquement coupé chez Online lors du boot de votre conteneur.

Installation de LXC

Sous Ubuntu 12.10, la mise en place d’un conteneur LXC est relativement triviale :

# apt-get install lxc bridge-utils

Configuration du bridge sur votre machine hôte

Pour configurer le bridge de votre machine hôte :

# cat /etc/network/interfaces
# The loopback network interface
auto lo
   iface lo inet loopback
# The primary network interface
auto eth0
   iface eth0 inet manual

auto br0
   iface br0 inet static
   bridge_ports eth0
   bridge_stp off
   bridge_maxwait 0
   bridge_fd 0
   address IP
   netmask 255.255.255.0
   network RESEAU
   broadcast IP_DE_BROADCAST
   gateway IP_GW

Il faut ensuite appliquer la nouvelle configuration de votre réseau :

# service networking restart

Si pour une raison ou une autre quelquechose se passe mal et vous perdez la main sur votre serveur,
vous avez toujours la possibilité d’utiliser le KVM mis à votre disposition par Online

Si tout se passe bien vous devrier avoir quelquechose comme ca :

# ifconfig 
br0   Link encap:Ethernet HWaddr bc:30:5b:cf:38:8f
      inet adr:88.190.18.38 Bcast:88.190.18.255 Masque:255.255.255.0
      UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
      Packets reçus:2402562 erreurs:0 :73 overruns:0 frame:0
      TX packets:720626 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 lg file transmission:0
      Octets reçus:115870995 (115.8 MB) Octets transmis:6334732297 (6.3 GB)

eth0  Link encap:Ethernet HWaddr bc:30:5b:cf:38:8f
      UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
      Packets reçus:65300606 erreurs:0 :147 overruns:0 frame:0
      TX packets:96867267 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 lg file transmission:1000
      Octets reçus:36490517096 (36.4 GB) Octets transmis:131124295065 (131.1 GB)

lo    Link encap:Boucle locale
      inet adr:127.0.0.1 Masque:255.0.0.0
      adr inet6: ::1/128 Scope:Hôte
      UP LOOPBACK RUNNING MTU:16436 Metric:1
      Packets reçus:242326 erreurs:0 :0 overruns:0 frame:0
      TX packets:242326 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 lg file transmission:0
      Octets reçus:68993249 (68.9 MB) Octets transmis:68993249 (68.9 MB)

C’est normal que votre interface eth0 n’ai pas d’IP puisque c’est votre bridge qui la possède.

Configuration de LXC

Vous devez maintenant configurer LXC au niveau réseau :

# vim /etc/lxc/lxc.conf
lxc.network.type=veth
lxc.network.link=br0
lxc.network.hwaddr=MAC_ADRESSE
lxc.network.ipv4=FAILOVER_IP/32
lxc.network.flags=up

Attention à bien utiliser l’adresse MAC que online vous à affecté et de spécifier un netmask en /32 pour votre IPv4.

Vous pouvez maintenant créer un nouveau conteneur :

# lxc-create -n conteneur_name -t ubuntu fssize=10G
# lxc-start --name conteneur_name

Cela va créer votre conteneur et le lancer. Votre terminal va afficher une console. Pour lancer votre conteneur en daemon, il faut utiliser ‘-d’, mais nous avons besoin dans un premier temps de configurer le réseau du conteneur.

Pour vous logger, il faut utiliser le user ubuntu avec le mdp ubuntu par défaut.

Configuration du réseau du conteneur

Au startup votre conteneur à bien son IP assignée par LXC mais n’a aucune route pour sortir.
Il faut donc lui en indiquer une. J’ai choisi de rester en DHCP pour son IP et de faire cette configuration :

# cat /etc/network/interfaces
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp
	up route add 88.190.18.1/32 dev eth0
	up route add default gw 88.190.18.1

Avec 88.190.18.1 qui est la GW de ma machine hôte.

Au niveau de votre machine hôte vous devrier voir votre bridge avec une configuration comme celle-ci :

                                     
bridge name	bridge id		STP enabled	interfaces
br0		8000.bc305bcf388f	no		eth0
							vethFKSYFV

Avec cette configuration vous devriez avoir un conteneur valide qui à un accès direct à internet.

Vus : 2990
Publié par Fitzdsl Blog : 27