Comment configurer un invité LXC pour qu'il reçoive une adresse DHCP afin que je puisse y accéder sur mon réseau?

15

J'ai configuré LXC en utilisant:

lxc-create -t ubuntu -n lxcguest1

Mais je ne peux pas accéder aux services qui y sont exécutés depuis mon LAN, il semble être NAT. Comment le configurer pour pouvoir y accéder (il doit probablement obtenir son adresse DHCP depuis mon routeur Linksys)?

Merci.

Benjamin Bryan
la source
Copie
bekce

Réponses:

5

Je viens de régler ce problème moi-même. Fondamentalement, vous devez configurer un pont et y lier votre carte réseau et votre conteneur. Voici l'article que j'ai suivi:

http://bj0z.wordpress.com/2011/08/19/howto-build-a-base-lxc-container-in-ubuntu-11-04/

On dirait que comme moi, vous avez besoin de la solution «bridge» plutôt que de la solution NAT. J'ai également désactivé la configuration par défaut du pont LXC (qui est NAT). Pour ce faire, modifiez simplement le fichier: /etc/default/lxcet passez USE_LXC_BRIDGE="TRUE"à USE_LXC_BRIDGE="FALSE"et redémarrez.

user108168
la source
1
Je suis un peu confus par cette solution: il dit qu'il doit configurer un pont, puis dit que la solution est de désactiver la configuration du pont par défaut. Il doit sûrement activer une configuration de pont. La deuxième chose dont j'ai besoin d'aide est que l'utilisateur dit que la configuration du pont est NATed, sûrement qu'elle est soit pontée (donc les conteneurs sont sur le même réseau que l'hôte) ou NATed (sur un réseau différent et nécessite un routage). Ma compréhension est que ceux-ci s'excluent mutuellement?
John Little
1
Tout cela n'est plus valide maintenant avec les versions actuelles. / etc / default / lx * a complètement disparu.
spyderdyne
5

Ma configuration sur les hôtes Ubuntu 14.04.1 LTS (Trusty Tahr)

Ajouter à /etc/network/interfacesl'hôte

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
    address 0.0.0.0

auto br0
iface br0 inet dhcp
    bridge_ports eth0

(redémarrage après modifications)

Et sur les fichiers de configuration du conteneur ( /var/lib/lxc/containername/config), je metslxc.network.link = br0

Avec cela, le conteneur obtiendra les adresses IP publiques du serveur DHCP comme l'hôte.

Epeli
la source
@JonathanY. Le br0 devrait apparaître après l'avoir ajouté à / etc / network / interfaces comme indiqué dans la réponse. Vous pourriez avoir besoin d'un redémarrage.
Epeli
3
Merci. Ce que je ne manquait besoin d'ajouter <username> veth br0 2 à /etc/lxc/lxc-usernetafin d'utiliser br0des conteneurs non privilégiés.
Jonathan Y.
2

J'ai utilisé les paramètres par défaut d'Ubuntu LXC et configuré mon routeur pour envoyer tout le trafic sur 10.0.3.xxx vers la machine Ubuntu. Sur un routeur compatible DD-WRT, les paramètres ressemblent à la capture d'écran ci-dessous. Remplacez 192.168.1.137par l'IP de la machine exécutant LXC. D'autres routeurs devraient avoir des options similaires pour configurer une route statique (voici les instructions de route statique pour Linksys , par exemple).

Paramètres DD-WRT pour le routage statique vers LXC

Ceci n'est pas lié, mais j'ai également utilisé le service DNSMasq pour pointer un nom d'hôte vers l'adresse IP du conteneur LXC. De cette façon, je peux accéder au conteneur http://gitlab/n'importe où sur le réseau. À mon avis, il est beaucoup plus facile d'utiliser un nom d'hôte pour accéder à un conteneur que de se souvenir de l'adresse IP.

Paramètres DNS-Masq DD-WRT

tierce partie
la source
1
Belle approche - essayez. Pouces vers le haut! L'ajout de routes statiques fonctionne - et le routeur lui-même peut envoyer une requête ping aux machines conteneurisées! Mais avec de nombreux routeurs fournis par le FAI, la redirection de port ne fonctionnera pas en raison de: Error code: 4937 The IP address is not in the same subnet with LAN IP address. Please input another one. (le routeur contient le sous-réseau 192.168.xx, tandis que LXD / LXC sont sur le sous-réseau 10.0.xx)
stamster
1
Oui, votre routeur devra accepter un masque de sous-réseau pour que ma solution fonctionne. J'aime acheter un routeur et ajouter un firmware après-vente pour rendre possibles des configurations folles
:-p
1
J'utilise MikroTik à la maison et au bureau, mais c'était pour une configuration où ils avaient un routeur ordinaire fourni par le FAI. Votre idée est donc très simple mais très efficace - principe KISS :) Je l'aime et je l'utiliserai à coup sûr car je ne peux pas comprendre comment ces conteneurs n'ont pas encore de solution pour les exposer au monde extérieur.
stamster