У мене є сервер під управлінням Ubuntu Server з чотирма IP-адресами, псевдонімами в одному NIC.
eth0 192.168.1.100
eth0:0 192.168.1.101
eth0:1 192.168.1.102
eth0:2 192.168.1.103
(Використовуючи 192.168.xx для прикладу, припустимо, що вони NAT-ed для широкого кола публічних IP-адрес)
Один із наших клієнтів публікує свій інвентар через FTP, тому ми вночі входимо в систему, щоб завантажити великий файл з їх сервера. Їх брандмауер очікує, що наше (пасивне) FTP-з'єднання буде створено з 192.168.1.100.
Зважаючи на те, що мій сервер логічно має чотири IP-адреси на одному адаптері, як операційна система визначає, яка IP-адреса використовується як джерело для вихідних TCP / IP-з'єднань?
Скажімо, я забиваю свій сервер на 192.168.1.101 і інтерактивно запускаю FTP. Чи використовуватиме вихідний TCP / IP-з'єднання 192.168.1.101, оскільки ОС знає, що це інтерфейс, над яким підключена моя оболонка?
Що робити, якщо завдання FTP запускається неінтерактивно через роботу cron, де немає оболонки?
Як ви, напевно, можете сказати, це мене дуже збентежило, тож сподіваюся, що мої запитання принаймні мали сенс.
Редагувати
Щоб уточнити, чому я прошу - я не вніс жодних змін у таблицю маршрутизації, і вона фактично зазначає 'eth0' як IFace для маршрутів 0,0.0.0. Однак усі свідчення свідчать про те, що він фактично використовує eth0: 0 як джерело.
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
Я можу поспілкуватися з таблицею маршрутизації або змусити нашого клієнта змінити свої правила брандмауера, щоб отримати потрібну мені поведінку, але я намагаюся трохи зрозуміти, як це працює, щоб знати, чи є помилка в ОС або просто моє наївне розуміння про те, як всі шматки поєднуються разом.
Спасибі