Gibt es eine Möglichkeit, alle MAC-Adressen in einem Netzwerk abzufragen?

Gibt es eine Möglichkeit, alle MAC-Adressen in einem Netzwerk abzufragen?

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:

  1. Zuerst sollten Sie das Bridge-Utils-Paket installieren.
  2. Mit ifdown den gewählten Port deaktivieren
  3. 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.

  1. 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

verwandte Informationen