Problème selon lequel la machine virtuelle sur LXC ne peut pas obtenir l'adresse IPv4

Il existe une technologie appelée LXC (Linux Containers). Il fournit un environnement virtualisé au niveau de l'application sous Linux, mais j'ai récemment rencontré un problème où je ne pouvais pas obtenir d'adresse IPv4 sur cette machine. Dans cet article, nous présenterons les causes et les contre-mesures. Note) LXC et LXD sont confondus dans l'article.

TL; DR

Sur la machine virtuelle Exécutez systemctl edit systemd-networkd.service pour lancer l'éditeur

[Service]
BindReadOnlyPaths=/sys

Entrez et enregistrez. Exécutez ensuite systemctl restart systemd-networkd.service pour redémarrer le service.

Identifier le problème

Il est connu que ce problème se produit principalement dans un environnement qui remplit les conditions suivantes.

--Systemd-networkd est utilisé pour le client DHCP --systemd version est 244.1 ou supérieur

Actuellement, cet environnement n'est satisfait que par les principales distributions telles que ArchLinux et Fedora, mais comme il ne s'agit pas d'un problème dépendant de la distribution, les systèmes affectés sont susceptibles de s'étendre à l'avenir.

Cause

Le côté LXC est conscient de la cause du problème et y travaille actuellement. https://discuss.linuxcontainers.org/t/no-ipv4-on-arch-linux-containers/6395/23 Selon le rapport, cette régression est due à une correction de bogue dans systemd-224.1, qui est due au fait que le répertoire / sys n'est pas en lecture seule à l'intérieur du conteneur.

L'autorisation d'écriture sur / sys est requise dans le conteneur pour diverses raisons telles que udev et les opérations réseau, mais le côté systemd semble avoir rejeté la proposition de correctif du côté LXC pour ce problème.

Par conséquent, il est possible de le gérer, mais il semble que des modifications mineures du côté de LXC ne suffiront pas, et ce sera une escalade au niveau du noyau.

Il sera finalement corrigé, mais ce problème doit être résolu provisoirement jusqu'à ce qu'un nouveau noyau patché soit disponible.

Faire face

Les éléments suivants sont proposés à titre de mesures temporaires pouvant être prises par l'utilisateur.

Actuellement, LXC envisage de distribuer l'image de distribution avec le fichier de remplacement systemd-networkd.

Comme mentionné ci-dessus, c'est urgent, mais j'espère que cela vous sera utile.

Recommended Posts

Problème selon lequel la machine virtuelle sur LXC ne peut pas obtenir l'adresse IPv4
Créer une machine virtuelle Linux sous Windows