logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).


L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT → ODT PDF Export

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
Prochaine révision Les deux révisions suivantes
doc:autres:vm:lxc:reseau-bridge [02/10/2015 18:10]
milou [Préparer la machine hôte]
doc:autres:vm:lxc:reseau-bridge [25/09/2018 23:35]
Beta-Pictoris
Ligne 1: Ligne 1:
-====== ​TP : Configurer des conteneurs ​LXC en mode Bridge ======+====== LXC en mode Bridge ​- Configuration ​======
  
-  * Objet : Configurer ​la machine hôte et les conteneurs LXC afin qu'il dispose ​chacun ​d'une adresse+  * 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é}}   * Niveau requis :​{{tag>​avisé}}
-  * Commentaires : //Modifier la configuration réseau d'​un ​environnement LXC  ​// +  * Commentaires : //Modifier la configuration réseau d'un// : [[:​doc:​autres:​vm:​lxc|environnement ​LXC]]. ;-) 
-  * Débutant, à savoir ​[[:​doc:​systeme:​commandes:​le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]], [[:​doc:​autres:​vm:​lxc-conteneur|Installer un conteneur ​LXC]] :-) +  * Suivi :  
-  * Suivi : {{tag>​à-placer}} +    * Création par [[user>​bendia]] 22/sources03/2014 
-    * Création par [[user>​bendia]] 22/03/2014+    * Mis à jour par [[user>​greenmerlin]] 29/10/2016
     * Testé par [[user>​captnfab]] le 01/07/2014     * 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 !))   * 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 !))
- 
-**Nota :** 
- 
-Contributeurs,​ les FIXME sont là pour vous aider, supprimez-les une fois le problème corrigé ou le champ rempli ! 
  
 ===== Introduction ===== ===== Introduction =====
  
-Lors d'une 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 adresse IP, et partage les mêmes ports. On peut modifier la configuration réseau afin d'​individualiser cette adresse.+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.
  
-<note warning>**bendia**: FIXME Lors de mes essais, je n'​obtiens pas un fonctionnement satisfaisant si je met des IP fixes, que se soit au niveau de l'​interface hôte, du pont ou du conteneur. C'est pour cela que je n'​indique ici qu'une configuration via DHCP+On peut alors modifier la configuration réseau afin d'**individualiser cette adresse** ! ^_^
  
-**captnfab**:​ pour ma part, je n'ai pas eu de problème de ce genre avec une interface conteneur en statique.</​note>​ 
-  ​ 
 ===== Préparer la machine hôte ===== ===== Préparer la machine hôte =====
  
-==== Les outils ====+<note important>​Il est nécessaire que la paquet //​bridge-utils//​ soit installé.</​note>​ 
 +Si ce n'est pas le cas : 
 +<code root>​apt-get install bridge-utils</​code>​
  
-Il est nécessaire que la paquet //​bridge-utils//​ soit installé. Si ce n'est pas le cas+==== La configuration réseau de la machine hôte ====
  
-<code root>apt-get install bridge-utils<​/code>+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.
  
-==== Créer ​un pont ====+**Au menu** : 
 +  * SimpleBridge (NAT) 
 +  * MasqueradedBridge 
 +  * VlanNetworking 
 +<note tip>Dans notre exemple, nous ne verrons que le cas d'un //Pont Simple//</​note>​ 
 +  - Création de l'​interface réseaux de pont nommer lxcbr0<​code root>​brctl addbr lxcbr0</​code>​ 
 +    - On vérifie en utilisant [[doc:​reseau:​ip|la commande ip]] :<code root>ip addr show</​code>​ 
 +  - On ajoute l'​interface a //bridger// : <code root>​brctl addif br0 eth0</​code>​ 
 +  - Puis [[doc:​systeme:​ifup|on active le pont]] :<code root>​ifup lxcbr0</​code>​ 
 +  - [[doc:​editeurs:​nano|On édite]] ''/​etc/​network/​interface''​ pour configurer notre pont de manière permanente :<file config /​etc/​network/​interface>​ 
 +# This file describes the network interfaces available on your system 
 +# and how to activate them. For more information,​ see interfaces(5).
  
-Il faut créer un pont pour l'​interface réseau. Dans ''​/​etc/​network/​interfaces''​+source ​/​etc/​network/​interfaces.d/*
  
-<​code>​ +# The loopback network interface 
-auto br0 +auto lo 
-iface br0 inet dhcp +iface lo inet loopback
-    bridge_ports eth0 +
-    bridge_fd 0 +
-    bridge_maxwait 0 +
-</​code>​+
  
-Reconfigurez le réseau avec :+# The primary network interface 
 +allow-hotplug eth0
  
-<code root>​service network-manager stop</​code>​ +iface eth0 inet dhcp
-<code root>​ifup br0</​code>​ +
-<code root>​service network-manager start</​code>​+
  
-Voilà, l'hôte est prêt+# pont réseau 
 +auto lxcbr0 
 +iface lxcbr0 inet dhcp 
 +bridge_ports eth0 
 +bridge_stp off 
 +bridge_fd 0 
 +bridge_maxwait 0 
 +</​file>​ 
 +   - À la suitemodifier la configuration de notre conteneur : \\ on édite le fichier ''/​var/​lib/​lxc/​proxies/​config''​ pour remplacer la valeur ''​lxc.network.type = none''​ :<file config /​var/​lib/​lxc/​proxies/​config>​ 
 +... 
 +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 
 +... 
 +</​file>​ 
 +  - 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]]**
  
-===== Le fichier de configuration du conteneur ​=====+===== Réseau facile avec Lxc-net ​=====
  
-Dans le fichier ​de configuration du conteneur, ajouter les lignes suivante+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.
  
-<​code>​+Pour configurer cette interface de bridge lxcbr0 il faut créer un fichier //lxc-net// dans ''/​etc/​default/''​ : 
 +<​code ​root>> /​etc/​default/​lxc-net</​code>​ 
 +et y inscrire ceci : 
 +<​code>​USE_LXC_BRIDGE="​true"</​code>​ 
 +Ensuite il faut éditer le fichier ''/​etc/​lxc/​default.conf''​ de façon à modifier la partie suivante : 
 +<​code>​lxc.network.type = empty</​code>​ 
 +par : 
 +<​code>#​indique la création d'une interface virtuelle rattachée à un bridge.
 lxc.network.type = veth 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 lxc.network.flags = up
-lxc.network.link = br0 +#indique l'​adresse MAC attribuée à l'​interface 
-lxc.network.hwaddr = 00:00:00:00:00 #votre super adresse Mac unique dans votre réseau, facultatif +lxc.network.hwaddr = 00:16:3e:xx:xx:​xx</​code>​ 
-lxc.network.ipv4 = 192.168.0.249/24 # votre adresse ​ipv4, facultatif +[[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 ;-))). 
-lxc.network.ipv4.gateway = 192.168.0.254 # votre passerellefacultatif + 
-</​code>​+Pour finir il faut démarrer le réseau ​: 
 +<code root>​service ​lxc-net start</​code>​ 
 +<note tip>​Cette commande n'est à faire qu'une seule foisPar la suite le réseau lxcbr0 démarrera tout seul à chaque démarrage de Debian.</​note>​ 
 + 
 +Source : [[https://​wiki.debian.org/​LXC]] 
 + 
 +===== Réseau facile avec Network Manager ===== 
 + 
 +[[doc:​reseau:​network-manager|Network Manager]] est le démon qui gère les connexions réseaux sous Debian Stretch\\ 
 +On peut utiliser la commande : [[doc:​reseau:​network-manager#​l-interface-commande-nmcli-network-manager-command-line-interface|nmcli]] pour créer, rapidement, des bridges virtuels et partager des connexions internet entre l'​hôte et des machines virtuelles.\\ 
 +On peut utiliser cet outil aussi bien avec lxc que qemu. 
 + 
 + 
 +==== Exemple ==== 
 + 
 +On veut créer un bridge nommé ''​lxcbr0'',​ qui aura comme [[doc:​reseau:​ip|adresse ip]] : 192.168.2.1, sur le réseau 192.168.2.0/24 
 +<code user>​nmcli connection add type '​bridge'​ con-name '​lxcbr0'​ ifname '​virbr0' ​ipv4.method '​shared'​ ipv4.addresses '​192.168.2.1/​24'</​code>​ 
 + 
 +=== Explication === 
 + 
 +[[doc:​reseau:​network-manager|Network Manager]] gère les interfaces réseaux à travers des profils appelés //​connection//​. \\ 
 +La commande précédente a créé un nouveau profil de type bridge nommé ''​lxcbr0''​ (**con-name**) associé à l'​interface réseau ''​virbr0''​ (**ifname**). \\ 
 +L'​interface réseau ''​virbr0''​ n'​existe pas physiquementelle n'est créée que pour l'​occasion et donc elle est une //interface virtuelle//​. 
 +<note tip>En pratique, on essayera de donner le même nom au profil et à son interface réseau.</​note>​ 
 +Les directives //ipv4.method// et //ipv4.addresses// sont optionnelles. 
 + 
 +La directive **ipv4.method shared** signifie que toutes les paquets, provenant du bridge, subiront une translation de leurs adresses ip ([[https://​fr.wikipedia.org/​wiki/​Network_address_translation|NAT]]) quand ils transiteront par les autres interfaces réseaux de l'​hôte.\\ 
 +On peut le vérifier en interrogeant [[doc:​reseau:​iptables|le pare-feu]]. 
 + 
 +Par exemple : 
 +<code root>​iptables -t nat -L</​code>​ 
 +<​code>​Chain POSTROUTING (policy ACCEPT) 
 +target ​    prot opt source ​              ​destination ​         
 +MASQUERADE ​ all  --  ​192.168.2.0/24      !192.168.2.0/​24</​code>​ 
 +Par ailleursle routage ipv4 sera activé automatiquement:​ 
 +<code root>cat /​proc/​sys/​net/​ipv4/​ip_forward</​code>​ 
 +<​code>​1</​code>​ 
 +De plus, [[doc:​reseau:​network-manager|Network Manager]] va lancer //dnsmasq// pour fournir du service [[doc:​reseau:​dhcp|dhcp]] et [[doc:​reseau:​dns|dns]] aux invités.
  
-Après lancement de la machine((Voir ​[[:doc:autres:vm:lxc-conteneur|conteneur LXC]])), celle ci dispose d'une adresse IP différente de celle de la machine hôte, octroyée ​par le DHCP ou, si vous avez spécifié les deux dernières lignes, par vous-même :-)+Enfin, si on n'​utilise pas la directive **ipv4.addresses**,​  
 +[[doc:reseau:network-manager|Network Manager]] va utiliser le réseau ''​10.42.x.0/​24'​' par défaut.
doc/autres/vm/lxc/reseau-bridge.txt · Dernière modification: 31/03/2020 17:31 par smolski

Pied de page des forums

Propulsé par FluxBB