GNU/Linux >> Tutoriels Linux >  >> Linux

Conteneurs LXD et mise en réseau avec IP statique

J'ai trouvé une solution ici

Merci à Stéphane Graber.

Citation :

"Si vous exécutez un LXD moderne avec un pont géré par LXD, vous pouvez simplement définir la propriété ipv4.address sur l'interface réseau du conteneur.

  • lxc stop c1
  • connexion réseau lxc lxdbr0 c1 eth0 eth0
  • Lxc config device set c1 eth0 ipv4.address 10.99.10.42
  • lxc démarrer c1

"


Si vous souhaitez spécifier des adresses IP pour les conteneurs dans LXD, regardez le /etc/default/lxd-bridge dossier. Vous y trouverez un emplacement pour inclure un fichier de configuration Dnsmasq externe.

En supposant que vous êtes sur Ubuntu 16.04,

Ouvrez /etc/default/lxd-bridge dans votre éditeur préféré. Vous devrez utiliser sudo .

Vers la ligne 16,

LXD_CONFILE=""

Ajoutez une entrée pointant vers un fichier de configuration dnsmasq. Vous allez devoir créer ce fichier. Alors nommez-le comme vous voulez. Quelque chose comme lxd_bridge.conf .

Ensuite, créez et modifiez le fichier que vous avez nommé ci-dessus.

Ajoutez une ligne pour chaque conteneur auquel vous souhaitez attribuer une adresse IP spécifique.

Comme ceci :

dhcp-host=containername,ipaddress

Ensuite, vous devrez redémarrer lxd-bridge puis redémarrer les conteneurs.

Voici un article détaillé à ce sujet :

IP statiques LXD

Notez que si vous exécutez Alpine Linux dans vos conteneurs, des étapes supplémentaires doivent être suivies pour que cela fonctionne.alpine


Informations système :lxc-3.0.1 le Ubuntu Server 18.04.1 .

Après de nombreuses recherches, j'ai trouvé cette commande simple pour attribuer une adresse IP statique à un conteneur :

lxc config set [container] raw.lxc 'lxc.net.[i].ipv4.address = [ip]/[subnet-mask]'

[container] , [i] , [ip] et [subnet-mask] sont le nom du conteneur, le numéro d'interface réseau, l'adresse IP statique souhaitée et le CIDR pour le masque de sous-réseau souhaité, respectivement.

Par exemple, si vous souhaitez attribuer 240.10.0.20 avec masque de sous-réseau 255.255.255.0 à la 0'ème interface réseau du conteneur nommé hello , vous pouvez utiliser :

lxc config set hello raw.lxc 'lxc.net.0.ipv4.address = 240.10.0.20/24'

Vous devrez probablement redémarrer le conteneur après avoir exécuté la commande.

Notez que cela ne changera probablement pas l'adresse IP actuelle du conteneur (dans ma configuration en tout cas); le conteneur doit être accessible à la fois à son adresse IP d'origine et à la nouvelle adresse IP attribuée. Par conséquent, l'entrée de conteneur dans lxc list peut contenir plusieurs adresses IP.

Jetez un oeil ici pour les clés de configuration acceptables annexées à lxc.net.[i] . Cette page Web contient des informations sur la notation CIDR.

Malheureusement, je ne me souviens pas où j'ai trouvé cette solution pour la première fois. Voici un problème GitHub pertinent qui pourrait contenir des informations utiles.


Linux
  1. Comment configurer des conteneurs virtuels avec LXC et la prise en charge des quotas sur Debian 8

  2. Configurer le conteneur Linux avec LXC sur Ubuntu 16.04

  3. Quelle est la différence entre les conteneurs LXC, LXD et Docker

  4. Utilisation de fichiers et d'appareils dans des conteneurs sans racine Podman

  5. Comment déboguer les problèmes avec les volumes montés sur des conteneurs sans racine

Premiers pas avec les conteneurs LXD sur Ubuntu 16.04

Qu'est-ce que les conteneurs multi-comptes Firefox ? Pourquoi et comment l'utiliser ?

Lxc et comment commencer ?

Mise à jour des conteneurs Docker avec un temps d'arrêt nul ou minimum

Comment :démarrer avec les conteneurs Windows et Docker

Comment installer et configurer les conteneurs Linux LXC sur CentOS / RHEL / Ubuntu