GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Ubuntu - Comment configurer des adresses IP externes pour les invités Lxc ?

J'explore les fonctionnalités LXC d'Ubuntu 12.04 et je veux vraiment configurer 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. Je suis habitué à la mise en réseau pontée 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. Il semble que je doive 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 des interfaces virtuelles sur l'hôte à l'avance et configurez les invités pour les utiliser lxc.network.type=phys . Je ne sais pas si cela fonctionnerait réellement.

Je me concentre sur Ubuntu, mais des réponses pour RHEL/Fedora seraient également utiles….

Réponse acceptée :

C'est à peu près exact, même s'il vous manque une ligne comme celle-ci :

lxc.network.ipv4.gateway = X.X.X.X

J'ai un invité LXC fonctionnant sur Debian. Tout d'abord, vous configurez le pont hôte (le moyen le plus simple), dans /etc/network/interfaces :

auto wan
iface wan inet static
        address 72.X.X.X
        netmask 255.255.255.0
        gateway 72.X.X.1
        bridge_ports wan_phy    # this line is important.
        bridge_stp off
        bridge_fd 2
        bridge_maxwait 20

Dans votre cas, vous l'avez appelé br0 , et je l'ai appelé wan . Le pont peut s'appeler comme vous voulez. Vous obtenez que cela fonctionne en premier - si cela échoue, enquêtez avec (par exemple,) brctl

Ensuite, votre configuration LXC est configurée pour rejoindre ce pont :

lxc.utsname = FOO
lxc.network.type = veth
lxc.network.link = wan                  # remember, this is what I call my bridge
lxc.network.flags = up
lxc.network.name = v-wan                # optional, I believe
lxc.network.ipv4 = 72.X.X.Y/24          # different IP than the host
lxc.network.ipv4.gateway = 72.X.X.1     # same as on the host

Comme le note HoverHell, quelqu'un avec root dans le conteneur peut changer l'adresse IP. Ouais. C'est un pont (alias commutateur Ethernet). Si vous voulez empêcher cela, vous pouvez utiliser des règles de pare-feu sur l'hôte. Du moins dans mon cas, les paquets doivent passer par les iptables de l'hôte.


Ubuntu
  1. Comment configurer une adresse IP statique sur Ubuntu 18.04

  2. Comment configurer une adresse IP statique sur Ubuntu 20.04

  3. Comment configurer Bacula Server sur Ubuntu 16.04

  4. Comment redémarrer le réseau sur Ubuntu

  5. Comment configurer le client DHCP Ubuntu

Comment configurer la liaison réseau dans Ubuntu 20.04

Comment redémarrer le réseau sur Ubuntu 20.04

Comment configurer le pont réseau dans Ubuntu

Comment configurer et utiliser le pont réseau dans Ubuntu Linux

Comment redémarrer le réseau sur Ubuntu 22.04

Comment définir un réseau externe pour les conteneurs dans les conteneurs Linux (LXC)