Utilisation De LXC Sous Debian

LXC permet de créer des conteneurs ou vm dans un système hôte.

source :

Installation

Rien de particulier ici, lxc est dans les dépôts.

apt install lxc

Configuration

Mise en place du réseau

Il y a surment plusieurs façon de faire. Les cas seront enrichies le moment venus.

Cas 01

Une machine qui va porter toute les VM. Cette machine sera la passerelle vers l’exterieur pour le réseau interne des VMs.

La machine host s’appelera : host =), les autres seront vm01, vm02, etc.

host

Préparation du réseau

Nous allons créer un bridge dont l’adresse sera 192.168.1.1/24. Cette adresse n’est pas sur le réseau de host qui lui est 192.168.0.0/24.

On édite le fichier /etc/network/interfaces :

# bridge lxc
auto lxc-br-nat
iface lxc-br-nat inet static
        bridge_ports none
        bridge_fd 0
        bridge_maxwait 0
        address 192.168.1.1
        netmask 255.255.255.0

De cette façon les deux réseau sont étanche. Les machines du réeau 192.168.1.0/24 ne verrons le monde qu’a travers les yeux de host.

On monte l’interface

sudo ifup lxc-br-nat
Configuration de base pour lxc

La configuration par défaut se trouve dans le fichier /etc/lxc/default.conf

On peut y mettre les parametres par défaut du réseau.

lxc.network.type = veth
lxc.network.flags = up
lxc.network.link = lxc-br-nat

Ces informations seront recopié dans le fichier de configuration de la vm lors de ça création

Redirection de port depuis l’hôte vers une vm

Afin de réaliser cette redirection, on peut utiliser IPTABLES.

Les règles suivantes assurent le transfert des requêtes sur le port 80 et 443 de l’hôte vers le port 80 et 443 de la vm dont l’ip est 192.168.1.3.

iptables -t nat -A PREROUTING -i ens3 -p tcp --dport 80 -j DNAT --to 192.168.1.3:80 
iptables -t nat -A PREROUTING -i ens3 -p tcp --dport 443 -j DNAT --to 192.168.1.3:443

vmxx

Pour qu’une vm puisse profiter du réseau, on réalise sur la machine host

On édite la configuration dans le fichier /var/lib/lxc/vmxx/config et on ajoute les lignes suivantes :

# Network
lxc.network.type = veth
lxc.network.flags = up
lxc.network.link = lxc-br-nat
lxc.network.ipv4 = 192.168.1.2
lxc.network.ipv4.gateway = auto

Utilisation d’LXC

Création d’une VM

lxc-create -n vmxx -t debian -- -r stretch

Ici on crée un vm debian stretch du nom de vmxx.

Commande de base

Démarrer une vm

lxc-start -n vmxx

Stopper une vm

lxc-stop -n vmxx

Lister les VM, leurs états et leur IP

lxc-ls -f

Supprimer une vm

lxc-destroy -n vmxx