Допустим, у меня есть машина с двумя сетевыми адаптерами в разных подсетях, eth0
(10.0.100.5) и eth1
(10.0.200.5). Предполагая, что обе подсети имеют маршруты к Интернету (через свои собственные NAT) и к остальной части локальной сети (через свои собственные переключатели):
Среда AWS VPC, другие машины под управлением Ubuntu 12.04, понятия не имею, какая машина, на которую я пытаюсь повлиять, работает (так как я не могу войти в нее).
Разъяснения:
/24
sПодсеть определяется сеть и маска, например
сеть: 10.0.100.5 маска: / 8
Это означает, что ваша подсеть: 10.
0,100,5 /8
По сути, любой действующий IP-адрес семейства 10.xxx.xxx.xxx принадлежит этой подсети. Для доступа к хостам в этой подсети можно использовать только один интерфейс. Так что в вашем случае это либо eth0, либо eth1. Другой интерфейс может иметь IP в той же подсети, но он не будет работать должным образом.
Вот что произойдет, если у вас возникнет описанная вами ситуация, когда и eth0, и eth1 подключены к одной сети с IP-адресами в одной подсети.
Теперь только один из этих интерфейсов имеет маршрут (допустим, eth0) который говорит to access subnet 10.0.100.0/8
использовать eth0
. Таким образом, пакет, покидающий этот интерфейс, будет иметь адрес источника 10.0.100.5
! УВЕДОМЛЕНИЕ - 10.0.100.5/8 и 10.0.200.5/8 - одна и та же подсеть (поскольку маска маскирует последние 3 оксета, мы также можем записать ее как 10.0.0.0/8)
Итак, теперь представьте, что у нас есть хост в этой подсети, который пытается связаться с 10.0.200.5
Пакет попадает в систему через eth1
но не могу вернуться из eth1
поскольку eth0
только один с маршрутом в сеть 10.0.0.0/8
а ответы от eth0 имеют другой IP; поэтому тот, кто устанавливает соединение с 10.0.200.5, не сможет понять ответ, исходящий от другого источника.
РЕДАКТИРОВАТЬ
Чтобы определить, какой интерфейс будет использоваться, вам нужно взглянуть на вашу таблицу маршрутизации. Поскольку вопрос не содержит таблицы маршрутизации, я попытаюсь объяснить с помощью следующей таблицы маршрутизации
$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 wlan0
10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 wlan0
альтернативный вывод таблицы маршрутизации
$ ip route show
default via 192.168.0.1 dev wlan0 proto static
10.0.0.0/24 dev eth0 proto kernel scope link src 10.0.0.5
192.168.0.0/24 dev wlan0 proto kernel scope link src 192.168.0.14
Итак, в примере выше у нас есть 2 интерфейса.
Теперь о том, что нам сообщает таблица маршрутизации; построчная интерпретация, снизу вверх:
192.168.0.0/24 dev wlan0 proto kernel scope link src 192.168.0.14
Для доступа к хостам в подсети 192.168.0.0/24
использовать интерфейс wlan0
и src IP 192.168.0.14
10.0.0.0/24 dev eth0 proto kernel scope link src 10.0.0.5
Для доступа к хостам в подсети 10.0.0.0/24
использовать интерфейс eth0
и src IP 10.0.0.5
default via 192.168.0.1 dev wlan0 proto static
Для доступа к любому другому хосту, не указанному в правилах выше, используйте default
маршрут, доступный через интерфейс wlan0
и шлюз в другие сети 192.168.0.1
Посмотрите на свою таблицу маршрутизации - команда - это маршрут. С новой командой ip используйте ip route show. Вы можете посмотреть справку для любого из них о том, как добавлять / удалять записи маршрутизации в таблице.