У меня есть сервер под управлением Ubuntu Server с четырьмя IP-адресами с псевдонимом на одной сетевой карте.
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, предположим, что они настроены на диапазон общедоступных 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
Я могу поиграть с таблицей маршрутизации или заставить нашего клиента изменить свои правила брандмауэра, чтобы получить нужное мне поведение, но я пытаюсь немного понять, как это работает, чтобы узнать, есть ли ошибка в ОС или просто мое наивное понимание о том, как все части сочетаются друг с другом.
Благодарность