Estoy tratando de configurar varios contenedores LXC en un host, cada uno con sus propias IP públicas estáticas.
Mi host está ejecutando la última versión de Ubuntu. Tiene una única interfaz de red llamada eth0. Las IP estáticas se pueden hacer ping desde Internet y se denominan eth0: 210, eth0: 211 ... Los números después de los dos puntos son el byte menos significativo de las direcciones. Además de estas interfaces, tengo la configuración br0 en la IP pública del host. También están las interfaces lo, veth2LPP9A y lxcbr0. El lxcbr0 tiene la dirección de una IP privada.
El host / etc / network / interfaces se ve así:
auto br0
iface br0 inet static
bridge_ports eth0
bridge_fd 0
[...]
Hasta ahora, he utilizado varias fuentes en línea, incluidos los contenedores Bridging LXC para alojar eth0 para que puedan tener una IP pública que me ayude a configurar esto.
El archivo de configuración del contenedor tiene:
lxc.network.type = veth
lxc.network.link = br0
Eliminé la configuración estática lxc.network.ipv4 de este archivo porque causó problemas. Cuando ejecuté lxc-ls --fancy con esta configuración, vería la misma IP pública dos veces en la salida. Además, interferiría con la configuración de subred de las interfaces / etc / network / del contenedor.
Hablando del archivo de interfaces del contenedor, se parece un poco a:
auto eth0
iface eth0 inet static
address [...]
netmask 255.255.255.255
#gateway [...]
dns-nameservers 8.8.8.8
post-up route add [...] dev eth0
post-up route add default gw [...]
post-down route del [...] dev eth0
post-down route del default gw [...]
Tuve que comentar la puerta de enlace y agregar la ruta agregar comandos a este archivo. De lo contrario, el contenedor tardaría unos minutos en arrancar.
Los archivos / proc / sys / net / bridge / bridge-nf- * en el host están configurados en 0. El valor / proc / sys / net / ipv4 / ip_forward es 1.
El problema es que, aunque la "ruta -n" del contenedor se vea como debería, no puedo hacer ping fuera del contenedor. SSHing a lo que debería ser la IP del contenedor, me conecta con el host.
EDITAR: Eliminar la IP estática del contenedor del host ayudó, pero ahora recibo un nuevo error. Intentar hacer ping al contenedor desde el host da como resultado Redirect HostFrom, New nexthop. Los paquetes solo van desde la puerta de enlace al host, repetidamente. Ejecutar un traceroute desde el host muestra que la primera parada es en la puerta de enlace. Entonces todas las otras rutas son * * *. Me sale el mismo problema independientemente de si el contenedor está en línea o no.