Почему два интерфейса не могут принадлежать одной подсети?

У меня есть конфигурация, в которой у меня есть два хоста (A и B), подключенных между ними. У каждого хоста есть 4-портовая карта сетевого интерфейса (NIC). Когда я настраиваю все восемь интерфейсов так, чтобы они принадлежали одной подсети, и я пингую , например, с порта 1 хоста A на порт 1 хоста B, это не работает. Захват трафика через эти интерфейсы показывает, что запросы ARP генерируются, но нет ответов.

При изменении конфигурации так, чтобы каждый порт принадлежал другой подсети (допустим, порт 1 обоих сетевых адаптеров принадлежит 192.168.100.0/24 , а порт 2 обоих сетевых адаптеров принадлежит 192.168.101.0) / 24 ) и я пинг снова, это работает.

При поиске в Google я нашел следующую ссылку . В соответствии с этим проблема может заключаться в том, что «в Linux IP-адрес принадлежит хосту и не связан с интерфейсом». Итак, я предполагаю, что когда хост B получает пинг и пытается ответить, он не знает, через какой интерфейс он должен быть отправлен обратно.

Тем не менее, я не до конца понял, что на самом деле означает это утверждение.Может ли кто-нибудь помочь мне понять это и почему на запросы ARP тоже не отвечают (я думал, что MAC-адреса связаны с интерфейсами)?

0
задан 12 April 2021 в 13:53

1 ответ

Формулировка «в Linux IP-адрес принадлежит хосту и не связан с интерфейсом» не совсем верна.Фактически, в Linux IP-адрес связан с интерфейсом, но стек TCP / IP ядра отвечает на любой известный IP-адрес на любой интерфейс. Итак, если у вас есть, например, два интерфейса: 10.0.0.1, подключенный к сети 10.0.0.0/16, и 192.168.0.1, подключенный к сети 192.168.0.0/16, то если вы пингуетесь 10.0.0.1 с любого устройства в сети 192.168.0.0 / 16 (конечно, при условии, что маршрутизация настроена так, что она направляет эти пакеты на 192.168.0.1), вы получите ответ от интерфейса 192.168.0.1, утверждающий, что он от 10.0.0.1, даже если переадресация IP не включена в ядре.

Следовательно, если два интерфейса подключены к одной и той же подсети, вы никогда не узнаете, какой из них ответит. То же самое относится к запросам ARP, поскольку запросы ARP отправляются широковещательной рассылкой на все интерфейсы в подсети с вопросом «у кого есть IP-адрес a.b.c.d?». Любой интерфейс распознает этот адрес как свой собственный и может ответить.

0
ответ дан 23 April 2021 в 23:23

Другие вопросы по тегам:

Похожие вопросы: