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 la creación de redes en puente 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 hokey ... 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 ...
fuente
Respuestas:
Esto es bastante correcto, aunque te falta una línea como esta:
Tengo un invitado LXC corriendo en Debian. Primero, configura el puente de host (la manera fácil), en
/etc/network/interfaces
:En su caso, lo ha llamado
br0
y yo lo he llamadowan
. El puente se puede llamar como quieras. Primero, esto funciona; si falla, investigue con (por ejemplo,)brctl
Luego, su configuración LXC está configurada para unirse a ese puente:
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.
fuente
auto
también es un valor válidolxc.network.ipv4.gateway
y, a mi entender, está predeterminado en la IP del puente al que se conecta la interfaz veth.wan_phy
se enfrenta a Internet, entonces la IP del puente tendría que ser otra dirección IPv4 pública válida porque debe estar en la misma subred que las otras direcciones IPv4 públicas con las que configuraré mis invitados lxc, ¿verdad? Pero eso parece bastante derrochador. askubuntu.com/a/884293/394569 sugiere que no es estrictamente necesario configurar una dirección de puente.No me he metido completamente en LXC,
pero he configurado varios contenedores con sus propias IP estáticas en LAN que proporcionan servicios de Internet para algunos de mis sitios web ...
Tal vez esto pueda ayudar, en lo que quieres para los tuyos.
Corro múltiples contenedores, así,
EN LA MÁQUINA ANFITRIA edité el archivo del host, agregando cada contenedor y máquina host: vi / etc / hosts
después de guardar ...
Nuevamente, en la máquina host configuré la red y el puente para:
encima de la red está mi enrutador ip, para lan. La dirección y transmisión (interna) es una máquina host, una IP interna, que luego uso un VHOST para acceso a internet, servidores web, ftp, etc.
PARA CONTENEDORES LXC 1-4 CONFIGURO CONFIGURAR COMO:
ahora IP del contenedor 1 = 192.168.1.101
Repito para que los contenedores adicionales tengan su propia ip estática en el lan.
en el contenedor 1-4,
iniciar sesión desde el host:
& configuro cada red de contenedores como estática, eth0 para:
CADA UNO DE LOS CONTENEDORES TIENE PROPIEDAD IP (local) DISPONIBLE EN LA LAN. U PUEDE SSH CADA IP LOCAL INDIVIDUAL, PARA PROBAR UTILIZANDO PUTTY!
Después de eso, estoy bastante seguro de que debe descubrir cómo ejecutarlos a través de Internet después, por ejemplo, vhost al contenedor ip / balanceadores de carga / proxy / etc.
Tal vez esta configuración pueda ayudar de todos modos.
fuente
iface
estrofa enmanual
(nostatic
odhcp
).up
,down
,dns-nameservers
Etc todavía se puede utilizar en Debian, etc.Todavía no he jugado con LXC, pero este artículo debería ayudarlo: configuración de red utilizando puentes ethernet (verifique el Método 2).
Para darle una pista sobre la configuración (supongo que ya ha configurado correctamente br0):
ip link add type veth
brctl addif br0 veth0
ns_exec -nm -- /bin/bash
ip link set veth1 netns PID_OF_LXC_SHELL
fuente