J'essaie de configurer plusieurs conteneurs LXC sur un hôte, chacun avec ses propres adresses IP publiques publiques.
Mon hôte exécute la dernière version d'Ubuntu. Il possède une seule interface réseau nommée eth0. Les adresses IP statiques peuvent faire l'objet d'un ping depuis Internet et sont nommées eth0: 210, eth0: 211 ... Les nombres après les deux points sont l'octet le moins significatif des adresses. En plus de ces interfaces, j'ai configuré br0 sur l'adresse IP publique de l'hôte. Il existe également les interfaces lo, veth2LPP9A et lxcbr0. Le lxcbr0 a l'adresse d'une adresse IP privée.
L'hôte / etc / network / interfaces ressemble à:
auto br0
iface br0 inet static
bridge_ports eth0
bridge_fd 0
[...]
Jusqu'à présent, j'ai utilisé diverses sources en ligne, y compris des conteneurs Bridging LXC pour héberger eth0 afin qu'ils puissent avoir une adresse IP publique pour m'aider à configurer cela.
Le fichier de configuration du conteneur a:
lxc.network.type = veth
lxc.network.link = br0
J'ai supprimé la configuration statique lxc.network.ipv4 de ce fichier car cela a causé des problèmes. Lorsque j'ai exécuté lxc-ls --fancy avec cette configuration, je voyais deux fois la même IP publique dans la sortie. De plus, cela perturberait la configuration de sous-réseau des interfaces / etc / network / du conteneur.
En parlant du fichier d'interface du conteneur, il ressemble un peu à:
auto eth0
iface eth0 inet static
address [...]
netmask 255.255.255.255
#gateway [...]
dns-nameservers 8.8.8.8
post-up route add [...] dev eth0
post-up route add default gw [...]
post-down route del [...] dev eth0
post-down route del default gw [...]
J'ai dû commenter la passerelle et ajouter les commandes route add à ce fichier. Sinon, le conteneur prendrait quelques minutes pour démarrer.
Les fichiers / proc / sys / net / bridge / bridge-nf- * sur l'hôte sont tous définis sur 0. La valeur / proc / sys / net / ipv4 / ip_forward est 1.
Le problème est que, même si "route -n" du conteneur semble devoir le faire, je ne peux pas sortir du conteneur. SSH à ce qui devrait être l'IP du conteneur, me connecte à l'hôte.
EDIT: La suppression de l'IP statique du conteneur de l'hôte a aidé, mais maintenant je reçois une nouvelle erreur. Une tentative de ping sur le conteneur à partir de l'hôte entraîne la redirection de HostFrom, New nexthop. Les paquets vont simplement de la passerelle à l'hôte, à plusieurs reprises. L'exécution d'un traceroute à partir de l'hôte montre que le premier arrêt est à la passerelle. Ensuite, toutes les autres routes sont * * *. Je reçois le même problème, que le conteneur soit en ligne ou non.
la source
Puisque vous établissez un pont, vous devez définir les adresses IP dans le conteneur uniquement , et non sur l'hôte. L'hôte ne doit avoir que sa ou ses propres adresses IP.
la source
Je viens de le faire l'autre jour avec Ubuntu 14.04. C'est simple. Il vous suffit de modifier le
/etc/network/interfaces
fichier à l'intérieur de votre conteneur et de définir ceci:Remplacez chaque variable par la valeur souhaitée.
Vous NE devez faire quoi que ce soit d' autre!
PS: Remarquez l'espace avant certaines lignes. C'est obligatoire.
la source
La meilleure façon que je trouve et la plus rapide est d'utiliser les profils lxc
lxc profile list
- commander la liste de tous les profils que vous avezlxc profile copy default minecraft
(c'est le nom de votre nouveau profil)alors
lxc profile edit minecraft
Cela viendra
puis enregistrez-le
attribuez ensuite le profil à votre conteneur LXC comme ceci
puis redémarrez le conteneur et votre nouvelle adresse IP est définie sur ce conteneur
la source
Je pourrais configurer correctement mes conteneurs lxc après avoir suivi la réponse de @Enrique Moreno Tent, je vais donc expliquer quoi faire plus en détail au cas où vous ne savez pas comment configurer les autres éléments.
1. Accédez à votre conteneur LXC via
lxc-attach
commandeCommander:
$ lxc-attach -n YOUR-CONTAINER-NAME
2. Consultez vos configurations actuelles avec
ifconfig
Commander
`` ''
3. Obtenir l'adresse, le masque de réseau et la passerelle
En voyant le résultat de la
ifconfig
commande ci-dessus, on voit alors:Adresse est l'adresse que vous souhaitez, vous pouvez la changer en 10.0.3.166.
Masque de réseau est là: 255.255.255.0
Passerelle : pour la passerelle que vous utilisez la diffusion adresse de , voici 10.0.3.255
Comme vous pouvez le voir ci-dessus, vous disposez actuellement de toutes les informations nécessaires pour remplir votre invité (conteneur)
/etc/network/interfaces
.4. Obtenir
dns-nameservers
la valeur.Exécutez la commande:
cat /etc/resolv.conf
Mais est peut - être mieux utiliser Google DNS, qui Asre
8.8.8.8
et8.8.4.4
5. Édition
/etc/network/interfaces
DANS LE CONTENANTauto eth0 iface eth0 inet static address 10.0.3.166 netmask 255.255.255.0 gateway 10.0.3.255 dns-nameservers 8.8.8.8
la source
ifconfig
a été remplacé parip a
dans les versions plus récentes de Debian / Ubuntu linuxconfig.org/…