
Ich weiß, dass diese Frage als „nicht zum Thema gehörend“ und „nicht professionell“ gekennzeichnet wurde, aber beim Erstellen eines Gateways oder IDS könnte dies durchaus relevant sein. Außerdem findet Google nichts Brauchbares …
In jedem herkömmlichen Switch gibt es eine sogenannte MAC-Tabelle (oder CAM-Tabelle) (gemäß diesem Artikel:https://en.wikipedia.org/wiki/CAM_Table)
Wenn der Switch die Route zu einer MAC-Adresse genau kennt und sie auf jedem Port bekannt gibt (scheint logisch) …
- Angenommen, es handelt sich um eine Linux-Box, ist es möglich,jedenMAC-Adresse im Netzwerk auf einer angegebenen Schnittstelle?
Antwort1
Ich installiere im AllgemeinenAbonnierenauf einem System für diesen Zweck. Es handelt sich um einen Daemon, der libcap verwendet, um den Datenverkehr zu überwachen. Er führt eine Datenbank mit Mac-Adressen pro Schnittstelle. Er kann auch auf einige ungewöhnliche Ereignistypen achten und Benachrichtigungen senden. Er verfolgt die letzte Nutzung und behält die Datenbank über Neustarts hinweg bei (im Vergleich zum bloßen Einrichten einer Bridge-Schnittstelle).
Antwort2
Nun, um fair zu sein, jeder sagt "arp -a", aber ich bin mit dieser Antwort nicht zufrieden, da sie nur diebekanntMAC-Adressen (und ihre entsprechende IP).
AuflistenalleAdressen auf einem Port, müssen Sie Ihre aktuelle Netzwerkkonfiguration ändern. Wir verwenden das Paket bridge-utils, aber jede andere Bridge-Implementierung (z. B. OpenvSwitch) kann dies tun. Die folgende Beschreibung funktioniert auf Debian-basierten Systemen:
- Zuerst sollten Sie das Bridge-Utils-Paket installieren.
- Mit ifdown den gewählten Port deaktivieren
- Erstellen Sie eine Brücke auf dem Port, an dem Sie die MAC-Adressen auflisten möchten
Nehmen wir an, der Port ist eth0 und die IP-Adresse ist dynamisch. In /etc/network/interfaces sollte folgendes erscheinen
allow-hotplug eth0
iface eth0 inet manual
auto br0
iface br0 inet dhcp
bridge-ports eth0
bridge_fd 0
bridge_stp off
Um diese Änderungen anzuwenden, können Sie entweder ifup auf eth0 und dann auf br0 verwenden oder einfach neu starten.
- Jetzt können Sie brctl verwenden, um den Port abzufragen
Es wird die vollständige MAC-Tabelle aufgelistet:
root@debian:~# brctl showmacs br0
Die Ausgabe sollte ungefähr so aussehen:
port no mac addr is local? ageing timer
1 ab:cd:ef:01:02:03 no 1.72
1 ab:cd:ef:01:02:04 no 25.52
1 ab:cd:ef:01:02:05 no 2.64
1 ab:cd:ef:01:02:06 no 10.67
1 ab:cd:ef:01:02:07 yes 0.00