
Actualmente estoy intentando configurar mi servidor para que se base en contenedores para limitar el uso de RAM y CPU para todos los programas. Mi problema es que me gustaría que todas las aplicaciones en diferentes contenedores escuchen la misma IP en diferentes puertos, pero mantener la flexibilidad y tener otros contenedores con IP especiales y tener acceso completo a ellos. Las otras IP están en alias de eth0 (eth0:0, eth0:1, etc.).
+----+ +----+ +----+
|IP 1| |IP 1| |IP 2| IP
|WEB | | TS | |GAME| Application
| 80 | |9987| |ALL | Port(s)
+----+ +----+ +----+
| | |
+-----+------+
|
+------+
|SERVER|
+--+---+
|
+---+----+
|Internet|
+--------+
He buscado mucho pero no he podido encontrar nada que me ayude. Lo siento cuando esto es un duplicado, simplemente no puedo encontrar nada... Tal vez sea porque busqué las palabras clave incorrectas, o porque es imposible... De todos modos, ¡gracias por leer!
Respuesta1
La tecnología que estás buscando se llama Destination NAT. En un sistema Linux, esto se puede hacer con la ayuda de iptables.
Como su pregunta no proporciona ningún detalle sobre la tecnología de contenedor que planea usar, depende de cómo se conectará esta tecnología a la red local y al sistema host en sí, generalmente utilizando una interfaz puente e interfaces de red virtual para los contenedores.
En ese caso, podrías echar un vistazo aquí: http://www.netfilter.org/documentation/HOWTO/NAT-HOWTO-6.html#ss6.2
Cambiar direcciones de destino a 5.6.7.8
iptables -t nat -A PREROUTING -i eth0 -j DNAT --to 5.6.7.8
Cambie las direcciones de destino a 5.6.7.8, 5.6.7.9 o 5.6.7.10
iptables -t nat -A PREROUTING -i eth0 -j DNAT --to 5.6.7.8-5.6.7.10
Cambie las direcciones de destino del tráfico web a 5.6.7.8, puerto 8080
iptables -t nat -A PREROUTING -p tcp --dport 80 -i eth0 -j DNAT --to 5.6.7.8:8080
Luego podría tener algunas reglas DNAT de iptables en su servidor host, que reescribirán los paquetes entrantes en ciertos puertos o para ciertas direcciones IP en destinos en su red virtual en puente.
Sin embargo, también tendría que configurar algunas reglas de NAT de origen, de modo que el tráfico de esos contenedores también cambie para que coincida con las direcciones IP que esos contenedores deberían tener con el mundo exterior.