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

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 :
  • Commentaires : Modifier la configuration réseau d'un : environnement LXC. ;-)
  • Suivi :
  • Commentaires sur le forum : ici 1)

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 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éseau2), 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

  1. Création de l'interface réseaux de pont nommer lxcbr0
    brctl addbr lxcbr0
    1. On vérifie en utilisant la commande ip :
      ip addr show
  2. On ajoute l'interface a bridger :
    brctl addif br0 eth0
  3. Puis on active le pont :
    ifup lxcbr0
  4. On édite /etc/network/interface pour configurer notre pont de manière permanente :
    /etc/network/interface
    # 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
  5. À 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 :
    /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
    ...
  6. Redémarrez maintenant votre conteneur pour tester si vous avez le réseau.
    Note : Vous n'avez pas ping d’installé par défaut sur votre conteneur c'est normal, testez plutôt avec 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

Les lignes précédées du # sont justes là en aide-mémoire pour expliquer la ligne qui les suit3).

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

Réseau facile avec Network Manager

Network Manager est le démon qui gère les connexions réseaux sous Debian Stretch.
On peut utiliser la commande : 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 adresse ip : 192.168.2.1, sur le réseau 192.168.2.0/24 :

nmcli connection add type 'bridge' con-name 'lxcbr0' ifname 'virbr0' ipv4.method 'shared' ipv4.addresses '192.168.2.1/24'

Explication

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 physiquement, elle n'est créée que pour l'occasion et donc elle est une interface virtuelle.

En pratique, on essayera de donner le même nom au profil et à son interface réseau.

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 (NAT) quand ils transiteront par les autres interfaces réseaux de l'hôte.
On peut le vérifier en interrogeant le pare-feu.

Par exemple :

iptables -t nat -L
Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         
MASQUERADE  all  --  192.168.2.0/24      !192.168.2.0/24

Par ailleurs, le routage ipv4 sera activé automatiquement:

cat /proc/sys/net/ipv4/ip_forward
1

De plus, Network Manager va lancer dnsmasq pour fournir du service dhcp et dns aux invités.

Enfin, si on n'utilise pas la directive ipv4.addresses, Network Manager va utiliser le réseau 10.42.x.0/24 par défaut.

1) N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !
2) sur une jessie en tout cas
3) il n'est donc pas nécessaire de les recopier ;-)
doc/autres/vm/lxc/reseau-bridge.txt · Dernière modification: 25/09/2018 23:35 par Beta-Pictoris

Pied de page des forums

Propulsé par FluxBB