Saya memiliki server yang menjalankan Ubuntu Server dengan empat alamat IP alias pada NIC tunggal.
eth0 192.168.1.100
eth0:0 192.168.1.101
eth0:1 192.168.1.102
eth0:2 192.168.1.103
(Menggunakan 192.168.xx misalnya, anggap ini adalah NAT-ed ke berbagai alamat IP publik)
Salah satu klien kami menerbitkan inventaris mereka melalui FTP, jadi kami masuk setiap malam untuk mengunduh file besar dari server mereka. Firewall mereka mengharapkan koneksi FTP (pasif) kami dibuat dari 192.168.1.100.
Mengingat server saya secara logis memiliki empat alamat IP pada satu adaptor, bagaimana sistem operasi menentukan alamat IP mana yang digunakan sebagai sumber untuk koneksi TCP / IP keluar?
Katakanlah saya ssh ke server saya pada 192.168.1.101 dan menjalankan FTP secara interaktif. Akankah koneksi TCP / IP keluar menggunakan 192.168.1.101 karena OS tahu itu adalah antarmuka di mana shell saya terhubung?
Bagaimana jika tugas FTP dijalankan secara non-interaktif melalui tugas cron di mana tidak ada shell?
Seperti yang mungkin bisa Anda katakan, ini membuat saya agak bingung, jadi saya harap pertanyaan saya setidaknya masuk akal.
Edit
Untuk mengklarifikasi mengapa saya bertanya - saya belum membuat perubahan apa pun pada tabel routing dan itu sebenarnya mencantumkan 'eth0' sebagai IFace untuk rute 0.0.0.0. Namun, semua indikasi adalah bahwa sebenarnya menggunakan eth0: 0 sebagai sumber.
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
Saya bisa mengutak-atik tabel routing atau meminta klien kami mengubah aturan firewall mereka untuk mendapatkan perilaku yang saya butuhkan, tapi saya mencoba untuk mendapatkan sedikit wawasan tentang bagaimana ini bekerja untuk mengetahui apakah ada bug di OS atau hanya pemahaman naif saya bagaimana semua bagian saling cocok.
Terima kasih