Forum: PC Hard- und Software Linux: IP-Adresse aus MAC-Adresse ermitteln


von Frank K. (fchk)


Lesenswert?

Problem: Ich frage per snmp in einem bash Skript die MAC-Tabellen meines 
Switches ab, um herauszufinden, welcher Host an welchem Port hängt. Ein 
snmpwalk gibt mir eine Liste an MAC-Adressen. Ich hätte jetzt gerne zu 
jeder MAC-Adresse die zugehörige IP-Adresse. Mit welchem 
Kommandozeilen-Tool kann ich quasi arp-Anfragen senden.

fchk

von rarp (Gast)


Lesenswert?

rarp

von Hannes J. (Firma: _⌨_) (pnuebergang)


Lesenswert?


von Frank K. (fchk)


Lesenswert?

Hannes J. schrieb:
> https://man7.org/linux/man-pages/man8/arping.8.html

Dem arping aus dem Paket iputils-arping kann man keine MAC-Adresse als 
Argument mitgeben.

Dem arping aus dem Paket arping kann man eine MAC-Adresse mitgeben, aber 
es kommt keine Antwort.

fchk

von Frank K. (fchk)


Lesenswert?

1
# rarp -a
2
Dieser Kernel unterstützt kein RARP.
(auf Ubuntu 20.04.3)

fchk

von Oliver S. (oliverso)


Lesenswert?

Einfach brute force alle Netzwerkteilnehmer auflisten

https://www.elektronik-kompendium.de/sites/net/1910051.htm

Oliver

von (prx) A. K. (prx)


Lesenswert?

Vielleicht nützt dir das etwas:
https://en.wikipedia.org/wiki/NeDi
ggf in Verbindung mit
https://en.wikipedia.org/wiki/OCS_Inventory

: Bearbeitet durch User
von Rolf M. (rmagnus)


Lesenswert?

Frank K. schrieb:
> # rarp -a
> Dieser Kernel unterstützt kein RARP.
> (auf Ubuntu 20.04.3)

In der man-Page (aber nur in der englischen Version) steht dazu 
folgendes:
1
NOTE
2
       This  program is obsolete.  From version 2.3, the Linux kernel
3
       no longer contains RARP support.  For a replacement RARP  dae-
4
       mon, see ftp://ftp.dementia.org/pub/net-tools

Die man-Page stammt aus dem Jahr 2008. Der Link funktioniert nicht mehr. 
Die deutsche man-Page enthält diesen Hinweis nicht. Sie ist von 1999. 
Man fragt sich, warum das Tool immer noch enthalten ist.

von Walter K. (walter_k488)


Lesenswert?

Frank K. schrieb:
>
1
> # rarp -a
2
> Dieser Kernel unterstützt kein RARP.
3
>
> (auf Ubuntu 20.04.3)
>
> fchk

OMG was für eine bescheuerte Grütze ist aus Linux geworden?!

Beitrag #6919096 wurde von einem Moderator gelöscht.
von Bastler (Gast)


Lesenswert?

Schau Dir mal so etwas wie LLDP, CDP oder wie es von dem jeweiligen 
Hersteller heißt, an, falls der Switch das vernünftig kann.
Das am jeweiligen Port angeschlossene Gerät muss es auch unterstützen, 
Windows und Linux sind da an sich kein Problem.

Beitrag #6919098 wurde von einem Moderator gelöscht.
von (prx) A. K. (prx)


Lesenswert?

Bastler schrieb:
> Schau Dir mal so etwas wie LLDP, CDP oder wie es von dem jeweiligen
> Hersteller heißt, an, falls der Switch das vernünftig kann.

Ein L2-Switch kennt keine IP-Adressen, weshalb es da nicht weiter geht. 
Da muss man schon den L3-Switch/Router fragen.

Das erwähnte NeDi ist ein Open Source Tool, mit dem sich Netze 
automatisiert erfassen lassen. Geht also schwer in die Richtung des 
Fragestellers.

: Bearbeitet durch User
von Rolf M. (rmagnus)


Lesenswert?

Walter K. schrieb:
> OMG was für eine bescheuerte Grütze ist aus Linux geworden?!

Da hast du aber einen langen Winterschlaf gemacht. Der rarp daemon ist 
schon im vergangenen Jahrtausend in den Userspace verfrachtet worden, 
weil es keinen Grund gab, dass der zwingend Teil des Kernels sein muss.

von Georg (Gast)


Lesenswert?

Rolf M. schrieb:
> Der rarp daemon ist
> schon im vergangenen Jahrtausend in den Userspace verfrachtet worden

Dann ist aber die Meldung
"Dieser Kernel unterstützt kein RARP."

grob irreführend - das sind ja Verhältnisse wie bei Microsofts 
Fehlermeldungen. Wozu dann noch Linux? Weil man da versucht, alles noch 
schlechter zu machen als MS?

Georg

von Keiler (Gast)


Lesenswert?

nmap -v -A 192.168.178.0/24

von Rolf M. (rmagnus)


Lesenswert?

Georg schrieb:
> Rolf M. schrieb:
>> Der rarp daemon ist
>> schon im vergangenen Jahrtausend in den Userspace verfrachtet worden
>
> Dann ist aber die Meldung
> "Dieser Kernel unterstützt kein RARP."
>
> grob irreführend

Nein, sie ist akkurat. Der Kernel unterstützt es nicht. Man braucht 
dafür ein zusätzliches Userspace-Programm.

von bashelor (Gast)


Lesenswert?

Keiler schrieb:
> nmap -v -A 192.168.178.0/24

will man doch nicht wissen,
vor allen keinen vollen portscan ü. alle Rechner

nmap -sn #ARP Ping Scan


->

MAC Address: nn:nn:...
Nmap scan report for FQDN, IP Addresse
Host is up|down

von bashelor (Gast)


Lesenswert?

Rolf M. schrieb:

> dafür ein zusätzliches Userspace-Programm.

nicht mal was extravagantes, ad hoc könnte klappen

ping -b auf broadcast
anschliessend cache auslesen cat /proc/net/arp

hab aber grad nur einen Rechner online ;)

von Andreas M. (amesser)


Lesenswert?

Da sich hinter einer Mac-Addresse, mehrere IPv4, IPv6 und was weis ich 
noch für Adressen verbergen können ist das gar nicht trivial...

von Nur_ein_Typ (Gast)


Lesenswert?

(prx) A. K. schrieb im Beitrag #6919098:
> MaWin schrieb im Beitrag #6919096:
>> Trollalarm!
>
> Ja, was deinen Beitrag angeht.

Und vor allem dem von "Walter K.".

> Franks Frage ist durchaus sinnvoll.

http://manpages.ubuntu.com/manpages/focal/man8/rarpd.8.html

von (prx) A. K. (prx)


Lesenswert?

Nur_ein_Typ schrieb:
>> Franks Frage ist durchaus sinnvoll.
>
> http://manpages.ubuntu.com/manpages/focal/man8/rarpd.8.html

Und wie geht es dann weiter?

Wenn auf einem oder mehreren Hosts der rarpd läuft, kann man deren 
Datenbank anzapfen. Woher aber kennen diese Hosts das MAC/IP-Mapping 
aller Geräte im Netz?

von (prx) A. K. (prx)


Lesenswert?

bashelor schrieb:
> ping -b auf broadcast

Hat vor Äonen vielleicht mal etwas gebracht.

von (prx) A. K. (prx)


Lesenswert?

Rolf M. schrieb:
> weil es keinen Grund gab, dass der zwingend Teil des Kernels sein muss

Und weil es keinen Grund gab, RARP überhaupt noch zu nutzen.

von (prx) A. K. (prx)


Lesenswert?

Andreas M. schrieb:
> Da sich hinter einer Mac-Addresse, mehrere IPv4, IPv6 und was weis ich
> noch für Adressen verbergen können ist das gar nicht trivial...

Wenn es nur darum geht, welche Geräte über welchen Port ansprechbar 
sind, kann es möglicherweise ausreichen, bereits eine dieser Adressen zu 
kennen.

Wobei das erwähnte "nmap" alle Adressen im gescannten Netz liefert, die 
zu einer MAC gehören. Zumindest alle, die auf dieses "nmap" Verfahren 
reagieren.

: Bearbeitet durch User
von bashelor (Gast)


Lesenswert?

(prx) A. K. schrieb:
> bashelor schrieb:
>> ping -b auf broadcast
>
> Hat vor Äonen vielleicht mal etwas gebracht.

:)

ping -4 -c1 -b 255.255.255.255
ip neigh show

ip; iproute2 dürfte fast überall vorhanden sein
zähl halt mal durch ob alle am ?transparenten? switch antworten


für ip6 k.A.

von (prx) A. K. (prx)


Lesenswert?

bashelor schrieb:
> ping -4 -c1 -b 255.255.255.255
> ip neigh show

Da sehe ich nur den PC, auf dem ich das tippe. Nicht einmal die 
Fritzbox.

von MaWin (Gast)


Lesenswert?

(prx) A. K. schrieb im Beitrag #6919098:
> MaWin schrieb:
>
>> Trollalarm!
>
> Ja, was deinen Beitrag angeht

Kein Wunder, war auch vom Psychopathen der seinen Namen nicht kennt und 
stattdessen MaWin ins Namesfeld schreibt, um seinen Schwachsinn mir in 
die Schuhe zu schieben.

von Cartman (Gast)


Lesenswert?

Auf einem guten™ Cisco waere auch ein
show ip arp
recht erfolgsversprechend.

von (prx) A. K. (prx)


Lesenswert?

Cartman schrieb:
> Auf einem guten™ Cisco waere auch ein
> show ip arp
> recht erfolgsversprechend.

Es gibt auch gute™ Ciscos ohne Layer 3 Switching. Da gibts auf diese 
Weise nur die ARP Einträge von aktiver Kommunikation mit dessen 
Management-Interface.

von Cartman (Gast)


Lesenswert?

> Es gibt auch gute™ Ciscos ohne Layer 3 Switching.

Die wuerde ich mittlerweile eher auf dem Schrott verorten.

von (prx) A. K. (prx)


Lesenswert?

Cartman schrieb:
> Die wuerde ich mittlerweile eher auf dem Schrott verorten.

Beispielsweise die 2960-X Reihe? Weshalb? Die wurden bis vor ein paar 
Monaten noch verkauft und sind bis 2026 unterstützt. Nicht an jeder 
Stelle im Netz benötigt man L3 Switching.

: Bearbeitet durch User
von Michael D. (nospam2000)


Lesenswert?

Frank K. schrieb:
> Problem: Ich frage per snmp in einem bash Skript die MAC-Tabellen meines
> Switches ab, um herauszufinden, welcher Host an welchem Port hängt.

Das bedeutet du kennst prinzipiell die IP Adressen (bzw. den Hostnamen) 
nur nicht deren Zuordnung zur MAC Adresse? Ansonsten würde dir ja die IP 
Adresse wenig bringen. Dann kannst du ja vorwärts anfangen und für jede 
IP die MAC Adresse dazu ermitteln mit ARP.

Du nennst leider nur den Teil deines Usecase. Wir wissen nicht was du 
mit der Liste anfangen willst und warum du überhaupt die Portnummer am 
Switch benötigst. Wenn du mehr Infos bereitstellst, kommen vielleicht 
bessere Lösungen.

Vielleicht kannst du ja auch den Router bzw. DHCP Server fragen, die 
sollten die meisten Teilnehmer kennen.

   Michael

: Bearbeitet durch User
von Cartman (Gast)


Lesenswert?

> Beispielsweise die 2960-X Reihe

Kenn ich nicht. Ich hab hier zum "Basteln" einen 2960G 8-Port.
Der kann Layer 3. Und der flog irgendwo raus weil: EOL.
Auch die 3750/60: EOL. Alles auf dem Schrott.
Und alles schon Layer-3 und gelegentlich POE und 10G.

Vermutlich sind die reinen Layer-2 so strunzzzdoof, dass
kein weiterer Support mehr noetig ist, weil dan nichts
zum Angreifen da ist. Und daher EOL erst 2026. Keine Ahnung.
Ich kenne eigentlich auch niemanden in meinem Kundenumfeld
der noch aktiv Layer-2 Switche betreibt.
Weil: Will man nicht mehr haben.

Von Exoten mit CatOS vllt mal abgesehen, wo dann noch
Oracle-DB, VLAN-Management, DNS und DHCP handgekloeppelt
an dieser Hardware "haengen".

Die guten™ Ciscos koennen m.M. alle Layer-3.
Der Rest ist Altmetall.

von Andre (Gast)


Lesenswert?

Frank K. schrieb:
> Ich hätte jetzt gerne zu
> jeder MAC-Adresse die zugehörige IP-Adresse.

Wie kommen die Adressen denn zu den Geräten?

Wenn in deinem Netz DHCP läuft, wäre es die einfachste Lösung, dort die 
aktiven Leases abzuholen.

Bei statischen Adressen und anderen Sonderfällen, wird das dann jetzt 
beliebig kompliziert. Ich habe hier z.B. einen Proxmox Host, da meldet 
sich schon ein einzelner Netzwerkport mit 8 verschiedenen MAC Adressen 
am Switch (die werden dann intern an die Container durchgereicht).

Kannst du deinen Anwendungsfall etwas näher erläutern?

von Daniel A. (daniel-a)


Lesenswert?

rarp wäre der falsche request. Theoretisch wäre inarp das richtige, kann 
man mit nping aus dem nmap package senden:
1
sudo nping --dest-ip 0.0.0.0 --arp --arp-type inarp-request --interface wlan0 --arp-target-mac 00:ff:01:00:0b:02 --dest-mac 00:ff:01:00:0b:02

Aber ich habe noch kein Gerät gefunden, das darauf auch antwortet...

https://datatracker.ietf.org/doc/html/rfc1293

: Bearbeitet durch User
von bashelor (Gast)


Lesenswert?

(prx) A. K. schrieb:
> bashelor schrieb:
>> ping -4 -c1 -b 255.255.255.255
>> ip neigh show
>
> Da sehe ich nur den PC, auf dem ich das tippe. Nicht einmal die
> Fritzbox.

kabelgebunden nicht wlan? (iwlist)

optional: ip -statistics neigh flush dev interfacename
(ethx, enp0s.., ..)

icmp echo request an einen rechner/drucker/..

ping -c1 host/ip

ip neigh show (bei mehreren: dev interfacename)
(man ip-neighbour, das "neue arp")

kommt nichts?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.