====== 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]]