GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Ubuntu:¿cómo configurar direcciones IP externas para invitados Lxc?

Estoy explorando las características de LXC en Ubuntu 12.04 y realmente quiero configurar una red como esta:

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

Solo quiero una red "plana" donde los invitados tengan acceso completo a la LAN y sean visibles desde los clientes. Estoy acostumbrado a conectar las redes con libvirt/KVM, como se describe aquí:http://libvirt.org/formatdomain.html#elementsNICSBridge

En el anfitrión:

# /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 para el primer invitado:

# /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

Parece que 192.168.56.201 es invisible para el mundo exterior, que no es lo que quiero. Parece que tengo que hacer una de estas cosas:

1) Configurar manualmente el enrutamiento en el host y el invitado

2) Haga algo tonto... cree interfaces virtuales en el host con anticipación y configure los invitados para usarlas lxc.network.type=phys . No sé si eso realmente funcionaría.

Estoy enfocado en Ubuntu, pero las respuestas para RHEL/Fedora también serían útiles...

Respuesta aceptada:

Esto es bastante correcto, aunque te falta una línea como esta:

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

Tengo un invitado LXC ejecutándose en Debian. Primero, configura el puente de host (la manera fácil), en /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

En tu caso, lo has llamado br0 , y lo he llamado wan . El puente se puede llamar como quieras. Haces que esto funcione primero; si falla, investiga con (por ejemplo,) brctl

Entonces su configuración LXC está configurada para unirse a ese puente:

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

Como señala HoverHell, alguien con root en el contenedor puede cambiar la dirección IP. Sí. Es un puente (también conocido como conmutador Ethernet). Si desea evitar eso, puede usar reglas de firewall en el host; al menos en mi caso, los paquetes deben pasar por las iptables del host.


Ubuntu
  1. Cómo configurar la dirección IP estática en Ubuntu 18.04

  2. Cómo configurar la dirección IP estática en Ubuntu 20.04

  3. Cómo configurar el servidor Bacula en Ubuntu 16.04

  4. Cómo reiniciar la red en Ubuntu

  5. Cómo configurar el cliente DHCP de Ubuntu

Cómo configurar la vinculación de red en Ubuntu 20.04

Cómo reiniciar la red en Ubuntu 20.04

Cómo configurar el puente de red en Ubuntu

Cómo configurar y usar Network Bridge en Ubuntu Linux

Cómo reiniciar la red en Ubuntu 22.04

Cómo configurar una red externa para contenedores en contenedores de Linux (LXC)