Что вы описываете, так это то, как Linux работает по умолчанию, когда у вас есть несколько интерфейсов в одной подсети.
Linux по умолчанию не имеет понятия «этот интерфейс и его MAC» и «этот интерфейс и его MAC», он просто знает «мои интерфейсы и MAC» и будет отвечать на любой запрос ARP на любом интерфейсе.
Вы можете настроить каждый интерфейс для ARP правильно с помощью настраиваемых параметров:
net.ipv4.conf.all.arp_filter = 1 net.ipv4.conf.all.arp_announce = 2
Чтобы поток трафика проходил так, как вы хотите, вам нужно настроить политику маршрутизации так, чтобы у каждого соединения была отдельная таблица маршрутизации со шлюзом по умолчанию, и чтобы на IP-адресе источника каждого соединения были сопоставлены правила IP, чтобы поместить трафик в нужную таблицу маршрутизации., Это требует приложений для привязки к исходному адресу для работы.
Однако это сложная проблематичная конфигурация, и я ее не рекомендую.
Если вы хотите, чтобы на каждом интерфейсе связи был разный трафик, поместите одну связь в другой широковещательный домен и другую подсеть в другую связь и правильно направьте трафик.