Eu tenho um servidor executando o Ubuntu Server com quatro endereços IP com alias em uma única 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 uma questão de exemplo, suponha que estes sejam NAT-ed para um intervalo de endereços IP públicos)
Como um de nossos clientes publica seu inventário via FTP, fazemos logon todas as noites para baixar um arquivo grande do servidor. O firewall deles espera que nossa conexão FTP (passiva) seja feita a partir de 192.168.1.100.
Como meu servidor possui quatro endereços IP em um único adaptador, como o sistema operacional determina qual endereço IP é usado como fonte para as conexões TCP / IP de saída?
Digamos que eu ssh no meu servidor em 192.168.1.101 e execute o FTP interativamente. A conexão TCP / IP de saída usará 192.168.1.101 porque o sistema operacional sabe que é a interface na qual meu shell está conectado?
E se a tarefa FTP for executada de maneira não interativa por meio de um trabalho cron em que não haja shell?
Como você provavelmente pode perceber, isso me deixa bastante confuso, então espero que minhas perguntas tenham pelo menos sentido.
Editar
Para esclarecer por que estou perguntando - eu não fiz nenhuma alteração na tabela de roteamento e ela realmente lista 'eth0' como o IFace para as rotas 0.0.0.0. No entanto, todas as indicações são de que ele está realmente usando eth0: 0 como fonte.
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
Posso mexer na tabela de roteamento ou fazer com que nosso cliente altere suas regras de firewall para obter o comportamento de que preciso, mas estou tentando obter uma pequena visão de como isso funciona para saber se há um bug no sistema operacional ou apenas meu entendimento ingênuo de como todas as peças se encaixam.
obrigado