Acceda a los servicios de contenedor lxc desde otros contenedores lxc a través del host


1

Tengo una computadora portátil con Ubuntu 14 Desktop. El portátil tiene conexión WLAN a mi LAN y es administrado por el administrador de red . De hecho, el portátil también es agradable (eth0), pero no está conectado. Yo uso esta computadora portátil como un host LXC. Tengo varios contenedores que sirven aplicaciones. Con la configuración básica de LXC (configuraciones predeterminadas como el uso de dnsmasq, red puenteada).

La salida de ifconfigmuestra 4 interfaces: eth0, lo, wlany lxcbr0. Hasta ahora, todavía no se ha realizado una configuración especial de iptables. Es un sistema nuevo instalado

Ahora, configurando NAT en mi host LXC ...

iptables -t nat -A PREROUTING -i wlan0 -p tcp --dport 21404 -j DNAT --to 10.0.3.180:3142

... Puedo acceder a servicios en mis contenedores, cuando accedo desde otra máquina en mi LAN, por ejemplo:

foo@LANMachine2: wget -O - http://lxc-host:21404 #it works

Sugerencia: lxc-hostes un nombre DNS para la computadora portátil administrada por mi enrutador.

Ahora, lo que quiero hacer es permanecer en mi máquina y acceder al servicio de un contenedor desde el propio host LXC y otros contenedores alojados que usan el mismo nombre DNS, así:

bar@lxc-host: wget -O - http://lxc-host:21404 
#or
bar@lxc-container: wget -O - http://lxc-host:21404

#both not working and leading to output:
Connecting to lxc-host (lxc-host)|The.IP.shown.here|:21404... failed: Connection refused.

¿Cómo hacer que esto funcione? ¿Es posible, en absoluto? Lo más importante para mí sería poder conectarme desde otros contenedores a los servicios de otros contenedores enrutando a través del host LXC. (Esto me permitiría estandarizar la configuración de mis contenedores)


Sería útil tener la salida de ip link show , ip addr show , ip route show .
MariusMatutiae

Respuestas:


1

Los paquetes del mismo host nunca llegan a la tabla PREROUTING (o cualquier otra tabla nat), ya que no se enrutan de una interfaz a otra.

Para la red de contenedor a contenedor, puede usar un puente compartido (que no necesita ser el mismo que el que comparten con el host) o realmente usar el enrutamiento y la tabla iptables de PREROUTING, si están en diferentes interfaces.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.