Маршрут между двумя сетевыми интерфейсами с одинаковым IP-адресом?
Это бессмысленное утверждение. IP-адреса должны быть уникальными в сети - для правильной работы TCP / IP полагается на этот факт.
Тем не мение -
Прозрачный мост между двумя сетевыми интерфейсами
звучит гораздо больше похоже на то, что вы пытаетесь сделать.
Я считаю, что Linux поддерживает прозрачное мостовое соединение. Интерфейсы, соединенные с мостом, будут функционировать как коммутатор. Конечно, вы можете прослушивать трафик, проходящий через мост, с помощью Wireshark или его эквивалента в командной строке tshark
. Я никогда не делал это с физическими сетевыми картами (обычно это 1 физический сетевой адаптер и что-то вроде виртуального адаптера для VPN) - это эксперимент, который я давно хотел провести (старая коробка с 4 сетевыми картами - поворот это в программное переключение), но это должно работать. brctl
это команда, которую вы хотите посмотреть.
Итак, в «среднем» окне Linux вам нужно создать мост, добавить в него ваши сетевые карты и все. Сетевые адаптеры являются частью моста и не получают отдельные IP-адреса (так же, как порты на коммутаторе). Как коммутатор, он будет пересылать трафик на уровень 2, а не на уровень 3, и устройства по обе стороны не будут знать, что что-то находится посередине.
iptables
Интерфейс Linux для Netfilter, который отвечает за маршрутизацию, фильтрацию пакетов и сортировку (модификацию) пакетов, очень универсален, и вы, вероятно, могли бы сделать что-то эквивалентное с этим, даже если он работает на уровне 3.
Что касается программного обеспечения, которое может анализировать ваш захваченный поток, есть много инструментов для этого. Это не то, с чем я был глубоко вовлечен, но как только вы сможете захватывать пакеты с помощью чего-то вроде Wireshark, вам откроются многие варианты.