Назад | Перейти на главную страницу

Несколько сетевых карт в одной подсети с отключенным одним портом

У меня есть система Linux с 3 выделенными сетевыми адаптерами, и все 3 находятся в одной подсети со следующими IP-адресами

ETH0: 192.168.1.10
ETH1: 192.168.1.11
ETH2: 192.168.1.12

Я установил три таблицы маршрутизации и соответствующие IP-маршруты и правила, чтобы изолировать трафик трех портов. Ниже показано то же самое для ETH1. ETH0 и ETH2 также имеют похожие записи.

default via 192.168.1.1 dev eth1
192.168.1.0/24 dev eth1  src 192.168.1.11

32752:  from all to 192.168.1.11/24 lookup 1
32753:  from 192.168.1.11/24 lookup 1

Если ETH1 и ETH2 отключены, а ETH0 подключен, когда я пингую ETH1 и ETH2 IP, я получаю ответ от ETH0. В другом вопросе, Призрачный пинг в системе Linux с несколькими сетевыми картами Я выяснил, что это вызвано тем, что таблица ARP заполнена одним и тем же MAC-адресом для всех 3 портов.

Я установил arp_ignore и arp_announce, как указано здесь Ubuntu Linux - несколько сетевых карт, одна и та же локальная сеть… ARP-ответы всегда отправляются с одной сетевой карты. & Я вижу записи ARP на ПК, содержащие правильные MAC-адреса.

Однако я все еще вижу, что только один порт становится "по умолчанию" в этом случае. Это очень легко увидеть, если, скажем, ETH1 и ETH2 уже подключены, а кабель для ETH0 теперь подключен, но ETH0 подключен к изолированному коммутатору (который не имеет подключения к подсети). Теперь ETH0 становится значением по умолчанию, и из-за изоляции пинги к ETH1 и ETH2 также не работают.

Есть ли способ по-настоящему изолировать трафик на трех портах?