J'explore les fonctionnalités LXC dans Ubuntu 12.04 et je veux vraiment mettre en place un réseau comme celui-ci:
client1: 192.168.56.101/24
lxc-host: 192.168.56.102/24
guest1 192.168.56.201/24
guest2 192.168.56.202/24
guest3 192.166.56.203/24
Je veux juste un réseau "plat" où les invités ont un accès complet au LAN et sont visibles des clients. J'ai l'habitude de mettre en réseau les ponts avec libvirt / KVM, comme décrit ici: http://libvirt.org/formatdomain.html#elementsNICSBridge
Sur l'hôte:
# /etc/network/interfaces
auto br0
iface br0 inet static
address 192.168.56.102
netmask 255.255.255.0
broadcast 192.168.56.255
bridge_ports eth1
lxc.conf pour le premier invité:
# /var/lib/lxc/guest1/config:
lxc.network.type=veth
lxc.network.link=br0
lxc.network.flags=up
lxc.network.hwaddr=00:16:3e:13:48:4e
lxc.network.ipv4=192.168.56.201/24
Il semble que 192.168.56.201 soit invisible pour le monde extérieur, ce qui n'est pas ce que je veux. On dirait que je dois faire l'une de ces choses:
1) Configurer manuellement le routage sur l'hôte et l'invité
2) Faites quelque chose de hokey ... créez à l'avance des interfaces virtuelles sur l'hôte et configurez les invités pour les utiliser lxc.network.type=phys
. Je ne sais pas si cela fonctionnerait réellement.
Je suis concentré sur Ubuntu, mais les réponses pour RHEL / Fedora seraient également utiles ....
la source
Réponses:
C'est à peu près juste, bien qu'il vous manque une ligne comme celle-ci:
J'ai un invité LXC fonctionnant sur Debian. Tout d'abord, vous configurez le pont hôte (la manière la plus simple), dans
/etc/network/interfaces
:Dans votre cas, vous l'avez appelé
br0
et je l'ai appeléwan
. Le pont peut être appelé comme vous voulez. Vous obtenez ce travail d'abord - s'il échoue, examinez avec (par exemple,)brctl
Ensuite, votre configuration LXC est configurée pour rejoindre ce pont:
Comme le note HoverHell, une personne ayant la racine dans le conteneur peut modifier l'adresse IP. Oui. C'est un pont (aka switch Ethernet). Si vous voulez empêcher cela, vous pouvez utiliser des règles de pare-feu sur l'hôte - au moins dans mon cas, les paquets doivent passer par les iptables de l'hôte.
la source
auto
c'est aussi une valeur valide pourlxc.network.ipv4.gateway
et, à ma connaissance, par défaut, l'adresse IP du pont auquel l'interface veth est connectée.wan_phy
est face à Internet, alors l'IP du pont devrait être une autre adresse IPv4 publique valide car elle doit être dans le même sous-réseau que les autres adresses IPv4 publiques avec lesquelles je vais configurer mes invités lxc, non? Mais cela semble assez inutile. askubuntu.com/a/884293/394569 suggère que la configuration d'une adresse de pont n'est pas strictement requise.Je ne suis pas complètement entré dans LXC,
mais j'ai configuré plusieurs conteneurs avec leurs propres adresses IP statiques dans le LAN qui fournissent des services Internet pour certains de mes sites Web ...
Peut-être que cela peut aider, sur ce que vous voulez pour le vôtre.
Je lance plusieurs conteneurs, comme ça,
SUR LA MACHINE HÔTE J'ai édité le fichier de l'hôte, en ajoutant chaque conteneur et machine hôte: vi / etc / hosts
après avoir enregistré ...
Encore une fois, sur la machine hôte, j'ai défini le réseau et le pont sur:
au-dessus du réseau est mon ip de routeur, pour lan. l' adresse (interne) et la diffusion sont la machine hôte, l'IP interne, que j'utiliserai plus tard un VHOST pour l'accès à Internet, les serveurs Web, le ftp, etc.
POUR LES CONTENEURS LXC 1-4 JE CONFIGURE CONFIG COMME SO:
maintenant Container 1 IP = 192.168.1.101
Je répète pour que les conteneurs supplémentaires aient leur propre IP statique sur le LAN.
dans le récipient 1-4,
connectez-vous depuis l'hôte:
& i définit chaque réseau de conteneurs sur statique, eth0 sur:
CHACUN DES CONTENEURS DISPOSE D'UNE IP, (locale) DISPONIBLE SUR LE LAN. U PEUT SSH CHAQUE IP LOCALE INDIVIDUELLE, POUR TESTER À L'AIDE DE PUTTY!
Après cela, je suis sûr que vous devriez comprendre comment les exécuter via Internet après, par exemple, vhost vers le conteneur ip / équilibreurs de charge / proxy / etc.
Peut-être que cette configuration peut vous aider de toute façon.
la source
iface
strophe surmanual
(notstatic
ordhcp
).up
,down
,dns-nameservers
Etc peuvent encore être utilisés dans Debian , etc.Je n'ai pas encore joué avec LXC, mais cet article devrait vous aider: configuration réseau à l'aide de ponts Ethernet (vérifiez la méthode 2).
Pour vous donner un indice sur la configuration (je suppose que vous avez déjà br0 correctement configuré):
ip link add type veth
brctl addif br0 veth0
ns_exec -nm -- /bin/bash
ip link set veth1 netns PID_OF_LXC_SHELL
la source