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.
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.
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.
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.