Configuration du réseau LXC

Configuration du réseau LXC
Lorsque vous démarrez un conteneur Linux, vous souhaiterez peut-être utiliser les fonctions réseau. La question devient: «Essayez-vous de réseauter avec l'hôte, le large Internet, un autre conteneur ou peut-être tous les conteneurs locaux?«Heureusement qu'il y ait des solutions pour eux tous!

Profils

Pour ce faire correctement, vous devez configurer votre conteneur. La configuration de base est déjà sur votre système si vous avez utilisé une distribution régulière. Vous pouvez davantage configurer cela avec des commandes, mais la plupart des gens utiliseront des fichiers YAML. La base ressemble généralement à celle ci-dessous. Le fichier réside dans / etc / lxc / par défaut.confli.

LXC.filet.0.type = veth
LXC.filet.0.lien = lxcbr0
LXC.filet.0.drapeaux = up
LXC.filet.0.hwaddr = 00: 16: 3e: xx: xx: xx

Chaque conteneur suit les paramètres en fonction du profil par défaut et du fichier mentionné ci-dessus. Vous pouvez imprimer le fichier par défaut selon ci-dessous. Pour plus de configuration, il est préférable de faire de nouveaux profils. Chaque profil contiendra des détails de configuration, dans notre cas de mise en réseau. Vous pouvez modifier n'importe quel paramètre dans votre conteneur avec un profil, et cela a encore plus de sens lorsque vous souhaitez l'exécuter à la fois localement et sur une plate-forme.

$ LXC Profil Afficher la valeur par défaut
config:
Description: Profil LXD par défaut
dispositifs:
ETH0:
Nom: ETH0
Réseau: LXDBR0
Type: Nic
racine:
chemin: /
piscine: ROS
Type: disque
Nom: par défaut
utilisé par:
- /1.0 / Instances / GuiApps
- /1.0 / instances / ff

La sortie résultante est un fichier YAML. Tous vos profils seront dans le même format. Avec LXC lui-même, vous pouvez créer, supprimer et modifier votre profil. Vous pouvez voir dans le fichier que la valeur par défaut utilise le réseau LXDBR0 et tape Nic. Maintenant, créez un nouveau profil en utilisant les éléments suivants:

$ LXC Profil Créer NicNet

Avant que tout conteneur soit en cours d'exécution, modifiez le profil:

$ LXC Profil Edit Nicnet

Vous utilisez le format YAML dans les fichiers qui créent ces profils. Notez que le nom «eth0» est le nom de conteneur interne. Le «parent» est ce que vous avez sur votre système, et vous le vérifiez vous-même en utilisant:

$ ip a

L'impression variera en fonction de ce que vous avez eu auparavant. Vous devez également savoir que vous pouvez faire le pontage de l'extérieur du conteneur avec les outils BRCTL.

L'utiliser dans votre conteneur

Une fois que vous avez créé un profil, vous souhaitez l'ajouter à votre conteneur. Cela se fait avec le même ensemble de programmes 'LXC'. Tout d'abord, assurez-vous d'avoir un conteneur, dans cet exemple, le conteneur est nommé «FF»:

$ LXC Profil Ajouter FF NICNET

Le changement prend effet lorsque vous redémarrez le réseautage dans le conteneur. Le plus simple et le plus sûr est d'ajouter toujours des profils uniquement dans les conteneurs arrêtés.

En déroute

Une connexion pontée est celle où votre conteneur reçoit une adresse MAC sur la même interface Ethernet que votre hôte. C'est ce que tu as fait plus tôt dans ce post. Avec quelques astuces supplémentaires, vous pouvez demander à votre routeur d'attribuer une adresse IP séparée au conteneur, et vous pouvez le définir dans votre conteneur. Bien que, lorsque vous utilisez Macvlan, vous pouvez avoir des difficultés en utilisant le Wi-Fi. WPA / WPA2 n'acceptera pas les deux adresses, donc votre Wi-Fi se cassera, car votre hôte n'utilisera pas le Wi-Fi.

L'exemple précédent utilise les outils BRCTL depuis que LXC a créé le leur. Cela obtient une adresse de l'hôte, pas du routeur. Vous pouvez obtenir l'adresse du routeur si vous le souhaitez. Encore une fois, seulement si vous utilisez une connexion câblée ou un Wi-Fi sans sécurité.

Lorsque vous vous êtes assuré d'avoir une connexion réseau sur votre hôte, vous pouvez le connecter à votre conteneur. Changez le mot parent et définissez votre nictype sur macvlan.

config:
Description: Réglage de l'interface réseau
dispositifs:
ETH0:
Nom: ETH0
nictype: macvlan
parent: enp3s0
Type: Nic
nom: itinéraire
utilisé par:
- /1.0 / Instances / GuiApps
- /1.0 / instances / ff

Vous devrez vous assurer que la valeur du parent correspond à votre configuration, alors assurez-vous de la créer dynamiquement. Une fois cela fait, vous pouvez démarrer votre conteneur et le trouver dans la liste des destinations d'hôtes de votre routeur. Eh bien, ce sont des interfaces, pour être techniques à ce sujet.

Figure 1: Le conteneur apparaît désormais dans votre routeur

Profils mobiles

Une partie intéressante des conteneurs Linux est que vous pouvez saisir vos configurations et les vider dans des fichiers YAML. Pour créer les fichiers pour cela, vous exécutez l'option Afficher dans LXC, puis tuyz un fichier dans un fichier. La sortie suit la norme YAML, et vous pouvez ensuite utiliser ces fichiers pour les configurer ailleurs.

$ LXC Profil Show Route> Route.YML

Pour l'utiliser pour un nouveau conteneur, utilisez les valeurs définies. Habituellement, vous définissez une valeur à la fois, mais vous avez déjà un fichier pour cela.

$ LXC Profil Créer un profil NEWROUTE $ LXC SET.réseau.configurer - < Route.yml

Vous pouvez voir que vous devez mettre les valeurs dans l'utilisateur de l'espace de noms.réseau.config '. Ceci est important de savoir quand vous souhaitez ajouter d'autres valeurs sans rapport avec le réseautage.

Conclusion

Le réseautage avec vos conteneurs a de nombreuses options, ce qui peut être déroutant, mais avec des recherches et des tests par vous-même, vous pouvez le faire fonctionner comme vous le souhaitez. La meilleure partie est que vous pouvez essayer une chose à la fois en utilisant des profils. Vous ne bousillerez jamais votre conteneur actuel, retirez simplement celui qui n'a pas fonctionné et ajoute l'ancien. Cette technique fonctionne pour tout dans un conteneur.