Ho un server che esegue Ubuntu Server con quattro indirizzi IP alias su una singola scheda 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 per esempio, supponiamo che questi siano NAT ed ed a un intervallo di indirizzi IP pubblici)
Uno dei nostri clienti pubblica il loro inventario tramite FTP, quindi effettuiamo l'accesso ogni sera per scaricare un file di grandi dimensioni dal loro server. Il loro firewall prevede che la nostra connessione FTP (passiva) verrà stabilita a partire dal 192.168.1.100.
Dato che il mio server ha logicamente quattro indirizzi IP su un singolo adattatore, in che modo il sistema operativo determina quale indirizzo IP viene utilizzato come origine per le connessioni TCP / IP in uscita?
Diciamo che ho ssh nel mio server su 192.168.1.101 ed eseguo FTP in modo interattivo. La connessione TCP / IP in uscita utilizzerà 192.168.1.101 perché il sistema operativo sa che è l'interfaccia su cui è connessa la mia shell?
Cosa succede se l'attività FTP viene eseguita in modo non interattivo tramite un processo cron in cui non è presente una shell?
Come probabilmente puoi dire, questo mi ha confuso, quindi spero che le mie domande abbiano almeno un senso.
modificare
Per chiarire il motivo per cui lo sto chiedendo: non ho apportato modifiche alla tabella di routing e in realtà elenca 'eth0' come IFace per le route 0.0.0.0. Tuttavia, tutte le indicazioni indicano che sta effettivamente utilizzando eth0: 0 come sorgente.
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 giocherellare con la tabella di routing o fare in modo che il nostro client cambi le regole del firewall per ottenere il comportamento di cui ho bisogno, ma sto cercando di ottenere un po 'di comprensione su come funziona per sapere se c'è un bug nel sistema operativo o solo la mia comprensione ingenua di come tutti i pezzi si incastrano.
Grazie