Alojamiento gratuito en línea para estaciones de trabajo

<Anterior | Contenido | Siguiente>

6.4. Redes


De forma predeterminada, LXC crea un espacio de nombres de red privada para cada contenedor, que incluye una pila de red de capa 2. Los contenedores generalmente se conectan con el mundo exterior al tener una NIC física o un punto final de túnel en el contenedor. LXC crea un puente NATed, lxcbr0, al inicio del host. Los contenedores creados con la configuración predeterminada tendrán un quinto NIC con el extremo remoto conectado al puente lxcbr0. Una NIC solo puede existir en un espacio de nombres a la vez, por lo que una NIC física pasada al contenedor no se puede utilizar en el host.


Es posible crear un contenedor sin un espacio de nombres de red privada. En este caso, el contenedor tendrá acceso a la red del host como cualquier otra aplicación. Tenga en cuenta que esto es particularmente peligroso si el

contenedor está ejecutando una distribución con advenedizo, como Ubuntu, ya que los programas que hablan con init, como cierre, hablará sobre el socket de dominio Unix abstracto con el advenedizo del host y apagará el host.


Para dar a los contenedores en lxcbr0 una dirección IP persistente basada en el nombre de dominio, puede escribir entradas en / etc / lxc / dnsmasq.conf me gusta:


dhcp-host = lxcmail, 10.0.3.100 dhcp-host = ttrss, 10.0.3.101


Si es deseable que el contenedor sea de acceso público, hay algunas formas de hacerlo. Uno es usar

iptables para reenviar puertos de host al contenedor, por ejemplo


iptables -t nat -A ENRUTAMIENTO PREVIO -p tcp -i eth0 --dport 587 -j DNAT

--hacia el destino 10.0.3.100:587


Otra es crear un puente entre las interfaces de red del host (consulte el capítulo Configuración de red de la Guía del servidor de Ubuntu, Sección 1.4, “Conexión” [p. 46]). Luego, especifique el puente del host en el archivo de configuración del contenedor en lugar de lxcbr0, por ejemplo


lxc.red.tipo = veth lxc.red.enlace = br0


Finalmente, puede pedirle a LXC que use macvlan para la NIC del contenedor. Tenga en cuenta que esto tiene limitaciones y, según la configuración, es posible que no permita que el contenedor se comunique con el host. Por lo tanto, las otras dos opciones son las preferidas y las más utilizadas.


Hay varias formas de determinar la dirección IP de un contenedor. Primero, puedes usar lxc-ls: fantasía que imprimirá las direcciones IP para todos los contenedores en ejecución, o lxc-info -i -H -n C1 que imprimirá la dirección IP de C1. Si dnsmasq está instalado en el host, también puede agregar una entrada a /etc/dnsmasq.conf como sigue


servidor = / lxc / 10.0.3.1


después de lo cual dnsmasq resolverá C1.lxc localmente, para que pueda hacer:


ping C1 ssh C1


Para obtener más información, consulte la página de manual de lxc.conf, así como las configuraciones de red de ejemplo en / usr / share / doc / lxc / examples /.


Top OS Cloud Computing en OnWorks: