Маршрут между двумя сетевыми интерфейсами с одинаковым IP-адресом?

2305
Johannes Ernst

Я хотел бы временно отслеживать / регистрировать / анализировать, какой трафик входит и выходит из моего дома. Я также хотел бы сохранить мою текущую конфигурацию маршрутизатора без изменений. Маршрутизатор является WiFi Home Router, поэтому я не могу легко взломать его. Итак, я думаю о следующей настройке:

  • «обрезать» кабель Ethernet между домашним маршрутизатором и широкополосным модемом
  • «вставьте» коробку Linux с двумя картами Ethernet, одна из которых подключается к широкополосному модему, а другая - к домашнему маршрутизатору.

Если я настрою две карты Ethernet в качестве моста, как я смогу отслеживать / регистрировать / анализировать весь трафик, проходящий через него?

Если я настрою его в качестве маршрутизатора, можно ли назначить один и тот же IP-адрес для обеих карт Ethernet (тот, который я получил от своего широкополосного провайдера), и трафик, который поступает в одном eth0, будет отправлен по eth1, и наоборот ? Как я буду отслеживать / регистрировать / анализировать в этой конфигурации?

Я заинтересован в таких вещах, как:

  • с какими IP-адресами общается мой дом (т. е. все устройства в моем доме в совокупности) и сколько трафика идет туда?
  • когда происходит какой трафик?
  • какие порты используются?
  • У меня дома есть "герметично закрытые" интернет-устройства (например, шкала WiFi, AppleTV и т. Д.). Если я поймаю их на том, что они делают что-то, чего я не хочу, например, отправку данных на IP-адрес, который мне не нравится, могу ли я использовать эту конфигурацию для «исправления» сетевого трафика, например, отбросить эти пакеты или повторно направьте их в какую-нибудь другую коробку, которой я управляю. В идеале я мог бы сделать это на уровне DNS (например, путем направления некоторых DNS-запросов на локальный DNS-сервер) и на уровне IP.

Конечно, я мог бы настроить NAT на коробке, но это создает накладные расходы и изменяет мою сетевую конфигурацию. Кто знает, работают ли такие вещи, как UPnP и т. Д., Если в строке два NAT. Я знаю, как делать то, что я хочу делать с NAT, но я надеялся, что есть более умный способ, которым кто-то может указать мне.

(Это было перенесено с serverfault.com)

2

1 ответ на вопрос

4
LawrenceC

Маршрут между двумя сетевыми интерфейсами с одинаковым IP-адресом?

Это бессмысленное утверждение. IP-адреса должны быть уникальными в сети - для правильной работы TCP / IP полагается на этот факт.

Тем не мение -

Прозрачный мост между двумя сетевыми интерфейсами

звучит гораздо больше похоже на то, что вы пытаетесь сделать.

Я считаю, что Linux поддерживает прозрачное мостовое соединение. Интерфейсы, соединенные с мостом, будут функционировать как коммутатор. Конечно, вы можете прослушивать трафик, проходящий через мост, с помощью Wireshark или его эквивалента в командной строке tshark. Я никогда не делал это с физическими сетевыми картами (обычно это 1 физический сетевой адаптер и что-то вроде виртуального адаптера для VPN) - это эксперимент, который я давно хотел провести (старая коробка с 4 сетевыми картами - поворот это в программное переключение), но это должно работать. brctlэто команда, которую вы хотите посмотреть.

Итак, в «среднем» окне Linux вам нужно создать мост, добавить в него ваши сетевые карты и все. Сетевые адаптеры являются частью моста и не получают отдельные IP-адреса (так же, как порты на коммутаторе). Как коммутатор, он будет пересылать трафик на уровень 2, а не на уровень 3, и устройства по обе стороны не будут знать, что что-то находится посередине.

iptablesИнтерфейс Linux для Netfilter, который отвечает за маршрутизацию, фильтрацию пакетов и сортировку (модификацию) пакетов, очень универсален, и вы, вероятно, могли бы сделать что-то эквивалентное с этим, даже если он работает на уровне 3.

Что касается программного обеспечения, которое может анализировать ваш захваченный поток, есть много инструментов для этого. Это не то, с чем я был глубоко вовлечен, но как только вы сможете захватывать пакеты с помощью чего-то вроде Wireshark, вам откроются многие варианты.

Нашел описание, которое хорошо описывает это: http://www.linuxjournal.com/article/8172. Johannes Ernst 10 лет назад 1

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