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