Tengo un servidor que ejecuta Ubuntu Server con cuatro direcciones IP alias en una sola NIC.
eth0 192.168.1.100
eth0:0 192.168.1.101
eth0:1 192.168.1.102
eth0:2 192.168.1.103
(Usando 192.168.xx por ejemplo, suponga que estos tienen NAT-ed en un rango de direcciones IP públicas)
Uno de nuestros clientes publica su inventario a través de FTP, por lo que iniciamos sesión todas las noches para descargar un archivo grande de su servidor. Su firewall espera que nuestra conexión FTP (pasiva) se realice desde 192.168.1.100.
Dado que mi servidor lógicamente tiene cuatro direcciones IP en un solo adaptador, ¿cómo determina el sistema operativo qué dirección IP se utiliza como fuente para las conexiones TCP / IP salientes?
Digamos que ssh en mi servidor en 192.168.1.101 y ejecuto FTP de forma interactiva. ¿La conexión TCP / IP saliente usará 192.168.1.101 porque el sistema operativo sabe que esa es la interfaz a través de la cual está conectado mi shell?
¿Qué sucede si la tarea FTP se ejecuta de forma no interactiva a través de un trabajo cron donde no hay shell?
Como probablemente pueda notar, esto me tiene bastante confundido, así que espero que mis preguntas al menos tengan sentido.
Editar
Para aclarar por qué pregunto, no he realizado ningún cambio en la tabla de enrutamiento y en realidad enumera 'eth0' como IFace para las rutas 0.0.0.0. Sin embargo, todo indica que en realidad está usando eth0: 0 como fuente.
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
0.0.0.0 192.168.1.1 0.0.0.0 UG 100 0 0 eth0
Puedo jugar con la tabla de enrutamiento o hacer que nuestro cliente cambie sus reglas de firewall para obtener el comportamiento que necesito, pero estoy tratando de obtener una pequeña idea de cómo funciona esto para saber si hay un error en el sistema operativo o solo mi comprensión ingenua de cómo encajan todas las piezas.
Gracias