====== LXC en mode Bridge - Configuration ======
* Objet : Configurer les conteneurs LXC et l'hôte afin que les conteneurs dispose d'un accés ethernet extérieur par le biais de la machine hôte.
* Niveau requis :{{tag>avisé}}
* Commentaires : //Modifier la configuration réseau d'un// : [[:doc:autres:vm:lxc|environnement LXC]]. ;-)
* Suivi :
* Création par [[user>bendia]] 22/sources03/2014
* Mis à jour par [[user>greenmerlin]] 29/10/2016
* Testé par [[user>captnfab]] le 01/07/2014
* Commentaires sur le forum : [[https://debian-facile.org/viewtopic.php?pid=85597#p85597 | ici]] ((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !))
N'hésitez pas, aussi, à regarder la méthode alternative pour créer, rapidement, des bridges partagés avec [[doc:reseau:network-manager#partage-de-connexion-internet|Network Manager]] !
===== Introduction =====
Lors d'une [[doc:autres:vm:lxc|installation par défaut d'un conteneur LXC]], le conteneur partage la même interface réseau que la machine hôte. \\
Elle dispose donc de la même [[doc:reseau:ip|adresse IP]], et en partage les mêmes ports.
On peut alors modifier la configuration réseau afin d'**individualiser cette adresse** ! ^_^
===== Préparer la machine hôte =====
Il est nécessaire que la paquet //bridge-utils// soit installé.
Si ce n'est pas le cas :
apt-get install bridge-utils
==== La configuration réseau de la machine hôte ====
Par défaut, un conteneur lxc n'aura aucune configuration réseau((sur une [[doc:systeme:apt:branches-debian|jessie]] //en tout cas//)), il revient d'abord de lui en configurer une.
**Au menu** :
* SimpleBridge (NAT)
* MasqueradedBridge
* VlanNetworking
Dans notre exemple, nous ne verrons que le cas d'un //Pont Simple//
- Création de l'interface réseaux de pont nommer lxcbr0brctl addbr lxcbr0
- On vérifie en utilisant [[doc:reseau:ip|la commande ip]] :ip addr show
remplacé par ip a show
- On ajoute l'interface a //bridger// : brctl addif br0 eth0
- Puis [[doc:systeme:ifup|on active le pont]] :ifup lxcbr0
- [[doc:editeurs:nano|On édite]] ''/etc/network/interface'' pour configurer notre pont de manière permanente :
# 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
iface eth0 inet dhcp
# pont réseau
auto lxcbr0
iface lxcbr0 inet dhcp
bridge_ports eth0
bridge_stp off
bridge_fd 0
bridge_maxwait 0
- À la suite, modifier la configuration de notre conteneur : \\ on édite le fichier ''/var/lib/lxc/proxies/config'' pour remplacer la valeur ''lxc.network.type = none'' :
...
lxc.network.type = veth
lxc.network.flags = up
lxc.network.link = lxcbr0
lxc.network.name = eth0
lxc.network.hwaddr = 00:16:3e:a3:23:1d //l'adresse MAC vous l'inventez bien entendu
lxc.network.mtu = 1500
...
- Redémarrez maintenant votre conteneur pour tester si vous avez le réseau. \\ **Note :** Vous n'avez pas **[[doc:reseau:ping|ping]]** d’installé par défaut sur votre conteneur c'est normal, testez plutôt avec **[[doc:systeme:apt:apt|apt]]**
===== Réseau facile avec Lxc-net =====
Stretch apporte une nouvelle version de LXC qui embarque la possibilité de configurer facilement un bridge simple (NAT en IPV4) pour vos conteneurs grâce à lxc-net.
Pour configurer cette interface de bridge lxcbr0 il faut créer un fichier //lxc-net// dans ''/etc/default/'' :
> /etc/default/lxc-net
et y inscrire ceci :
USE_LXC_BRIDGE="true"
Ensuite il faut éditer le fichier ''/etc/lxc/default.conf'' de façon à modifier la partie suivante :
lxc.network.type = empty
par :
#indique la création d'une interface virtuelle rattachée à un bridge.
lxc.network.type = veth
#indique le bridge auquel est rattachée l'interface virtuelle
lxc.network.link = lxcbr0
#indique d'activer l'interface au démarrage du conteneur.
lxc.network.flags = up
#indique l'adresse MAC attribuée à l'interface
lxc.network.hwaddr = 00:16:3e:xx:xx:xx
[[doc:systeme:programmation:commenter|Les lignes précédées du #]] sont justes là en aide-mémoire pour expliquer la ligne qui les suit((il n'est donc pas nécessaire de les recopier ;-))).
Pour finir il faut démarrer le réseau :
service lxc-net start
Cette commande n'est à faire qu'une seule fois. Par la suite le réseau lxcbr0 démarrera tout seul à chaque démarrage de Debian.
Source : [[https://wiki.debian.org/LXC]]