Route zwischen zwei Netzwerkschnittstellen mit derselben IP-Adresse?

2375
Johannes Ernst

Ich möchte vorübergehend überwachen / protokollieren / analysieren, was von zu Hause aus ein- und ausgeht. Ich möchte auch meine aktuelle Router-Konfiguration unverändert lassen. Der Router ist ein WiFi-Home-Router, daher kann ich ihn nicht leicht hacken. Ich denke also an folgendes Setup:

  • "schnappen" Sie das Ethernet-Kabel zwischen Heimrouter und Breitbandmodem
  • Legen Sie eine Linux-Box mit zwei Ethernet-Karten ein, von denen eine mit dem Breitbandmodem und eine mit dem Heimrouter verbunden ist.

Wenn ich die beiden Ethernet-Karten als Bridge einrichte, wie kann ich dann den gesamten Datenverkehr überwachen, protokollieren und analysieren?

Wenn ich ihn als Router einrichte, kann ich den beiden Ethernet-Karten (die ich von meinem Breitbandanbieter erhalten habe) dieselbe IP-Adresse zuweisen und den Datenverkehr in einem eth0 auf eth1 senden, und umgekehrt ? Wie würde ich in dieser Konfiguration überwachen / protokollieren / analysieren?

Ich interessiere mich für Dinge wie:

  • mit welchen IP-Adressen spricht mein Haus (dh alle Geräte in meinem Haus zusammen) und wie viel Verkehr geht dort?
  • wann passiert welcher verkehr
  • welche Ports werden verwendet?
  • Ich habe ein paar "hermetisch versiegelte" Internetgeräte in meinem Haus (z. B. eine WiFi-Waage, AppleTV usw.). Wenn ich sie dabei erwische, dass sie etwas tun, was sie nicht wollen - wie das Senden von Daten an eine IP-Adresse, die ich nicht mag - kann ich diese Konfiguration verwenden, um ihren Netzwerkverkehr zu "patchen", z. Leiten Sie sie in eine andere Box, die ich kontrolliere. Idealerweise könnte ich das auf der DNS-Ebene (z. B. durch Routing einiger DNS-Abfragen an einen lokalen DNS-Server) und auf einer IP-Ebene tun.

Natürlich könnte ich NAT auf der Box einrichten, aber das verursacht Overhead und ändert meine Netzwerkkonfiguration. Wer weiß, ob Dinge wie UPnP usw. noch funktionieren, wenn zwei NATs hintereinander stehen. Ich weiß, was ich mit NAT machen möchte, aber ich hatte gehofft, dass es einen klügeren Weg gibt, auf den jemand mich hinweisen könnte.

(Dies wurde von serverfault.com verschoben)

2

1 Antwort auf die Frage

4
LawrenceC

Route zwischen zwei Netzwerkschnittstellen mit derselben IP-Adresse?

Dies ist eine unsinnige Aussage. IP-Adressen müssen in einem Netzwerk eindeutig sein - TCP / IP hängt von dieser Tatsache ab, um ordnungsgemäß zu funktionieren.

Jedoch -

Brücke zwischen zwei Netzwerkschnittstellen transparent überbrücken

klingt viel mehr nach dem, was Sie zu tun versuchen.

Ich glaube, Linux unterstützt transparentes Bridging. Schnittstellen, die mit einer Bridge verbunden sind, funktionieren wie ein Switch. Natürlich können Sie mit Wireshark den Datenverkehr über die Brücke oder dessen Befehlszeilenäquivalent beobachten tshark. Ich habe es noch nie mit physischen Netzwerkkarten gemacht (normalerweise handelt es sich um eine physische Netzwerkkarte und so etwas wie einen virtuellen Adapter für ein VPN) - dies ist ein Experiment, das ich schon lange machen wollte (eine alte Box mit 4 Netzwerkkarten - Drehen.) es in eine Software-switcH), aber es sollte funktionieren. brctlist der Befehl, den Sie untersuchen möchten.

In der "mittleren" Linux-Box müssen Sie also eine Bridge erstellen, Ihre Netzwerkkarten hinzufügen und fertig. Die NICs sind Teil einer Bridge und erhalten keine einzelnen IP-Adressen (ähnlich wie Ports eines Switches). Wie ein Switch leitet er den Verkehr auf Layer 2 weiter, nicht auf Layer 3, und die Geräte auf beiden Seiten werden nicht wissen, dass sich etwas in der Mitte befindet.

iptablesDie Linux-Schnittstelle zu Netfilter, die für das Routing, die Paketfilterung und die Paketveränderung (Modifikation) zuständig ist, ist sehr vielseitig und Sie könnten wahrscheinlich etwas Äquivalentes dazu tun, auch wenn dies auf Layer 3 funktioniert.

Was Software angeht, die den erfassten Stream analysieren kann, gibt es dafür viele Tools. Es ist nicht etwas, mit dem ich mich eingehend beschäftigt habe, aber sobald Sie Pakete mit etwas wie Wireshark erfassen können, stehen Ihnen viele Optionen zur Verfügung.

Habe eine Beschreibung gefunden, die dies schön beschreibt: http://www.linuxjournal.com/article/8172. Johannes Ernst vor 10 Jahren 1