Forum: PC-Programmierung DHCP-Request senden und Offer empfangen, OHNE dass die eigenen Netzwerkkarte das annimmt?


von Frank E. (Firma: Q3) (qualidat)


Lesenswert?

Gibt es eine Möglichkeit, mit Sockets (Java, Xojo ...) DHCP-Requests 
auszusenden und die Antworten des/der DHCP-Server zu empfangen, ohne 
dass dabei das aktuell benutzte NIC (Ethernet bzw. WLAN) des verwendeten 
Arbeitsrechners (z.B. Laptop) dann darauf eingeht bzw. sich um- oder 
neukonfiguriert?

Hintergrund ist, dass ich häufig den Verdacht hege (und irgendwann auch 
bestätigt bekomme), dass in Kundennetzen unabsichtlich zusätzliche 
DHCP-Server eingebracht werden, z.B. beim Anschluss eines Accesspoints, 
die dann für Probleme im Netz sorgen.

Es gibt natürlich solche Tools, aber alle, die ich im Web finden konnte, 
waren ausschießlich für Windows oder Linux, bisher nix für den Mac

Ich habe auch Skripte bzw. Shell-Befehle gefunden, eine neue Lease 
anzufordern bzw. sich mit "ipconfig getpacket ..." anzusehen, welche IP 
der DHCP hat, aber das verändert ja immer meine aktiv genutzte 
Netzwerkverbindung, das will ich eigentlich nicht.

... Ich würde mir ganz gene so ein Tool mit praktischer GUI für den Mac 
selber stricken.



Danke für Tips.

: Bearbeitet durch User
von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Solange Dein IP-Stack mit statischer IP-Adresse arbeitet, sollte der 
sich für empfangene DHCP-Pakete überhaupt nicht interessieren.

von Illi (Gast)


Lesenswert?

Hier in der Fa. haben wir von Softperfect Network Scanner. Der kann auch 
DHCP-Server auflisten.

Sollte es auch für MacOs geben.

Im Prinzip wird das wohl jedes 2. Netzwerk-Tool leisten.

Gruß Illi

von Frank E. (Firma: Q3) (qualidat)


Lesenswert?

Rufus Τ. F. schrieb:
> Solange Dein IP-Stack mit statischer IP-Adresse arbeitet, sollte
> der
> sich für empfangene DHCP-Pakete überhaupt nicht interessieren.

Jaaa ... das ist klar, aber meist bin ich aber in Kundennetzen selber 
auch mit DHCP unterwegs. Klar könnte ich das auf statisch umstellen, 
aber das ist ja unbequem :-)


Ein ausgesandter DHCP-Request bekommt ja zwangsläufig die MAC-Adresse 
meiner benutzten Netzwerkkarte. Man müsste mal testen, was der IP-Stack 
macht, wenn ein neues Offer eintrifft, bevor die Lease abgelaufen ist 
...

Ne andere Idee wäre, für sowas z.B. einen Arduino mit Ethernetshield zu 
verwenden, der pausenlos DHCP-Requests "feuert" und die Antworten per 
USB an eine Anzeige-App liefert.

von Oliver S. (oliverso)


Lesenswert?

Frank E. schrieb:
> Es gibt natürlich solche Tools, aber alle, die ich im Web finden konnte,
> waren ausschießlich für Windows oder Linux, bisher nix für den Mac

Nun ja, wenn man professionell mit solchen Problemstellungem zu tun hat, 
wäre angemessenes Werkzeug schon zu empfehlen.

Oliver

von c-hater (Gast)


Lesenswert?

Frank E. schrieb:

> Ein ausgesandter DHCP-Request bekommt ja zwangsläufig die MAC-Adresse
> meiner benutzten Netzwerkkarte.

Klar, sonst könnte ihn die Antwort in den heute üblichen geswitchten 
Netzen wohl kaum erreichen.

Wenn man also das machen will, was du machen willst, muss man schon ein 
wenig ausgreifender hantieren. Im Prinzip läuft es darauf hinaus, der 
NIC eine zweite MAC überzuhelfen. Das ist allerdings genau das, was 
sowieso passiert, wenn man z.B. virtuelle Maschinen an eine physische 
Netzwerkkarte ankoppelt (und dabei nicht NAT verwendet). Insofern also 
absolut trivial zu lösen, also insbesondere ohne jeden 
Programmieraufwand oder irgendwelche abstrusen Tools...

Nur würde das dein Problem in keinster Weise lösen. Das Problem ist ja 
wohl: weise nach, dass es mehr als einen DHCP-Server im Netz gibt. Dazu 
ist es erstens weder notwendig noch sinnvoll, selber mit zwei 
"Identitäten" zu hantieren. Und zweitens ist es auch noch sehr simpel: 
Man bemüht einfach Wireshark, tcpdump oder sonst irgendein übliches 
Sniffer-Tool, was in der Lage ist, den Traffic anzuzeigen und auf DHCP 
zu filtern.

Wo also ist das Problem? Zu einfach?

von Sven L. (sven_rvbg)


Lesenswert?

Soll managebare Switche geben die an den "Client-Ports" keinen 
DHCP-Server erlauben bzw. durchlassen.

von c-hater (Gast)


Lesenswert?

Sven L. schrieb:

> Soll managebare Switche geben die an den "Client-Ports" keinen
> DHCP-Server erlauben bzw. durchlassen.

Mehr noch: fast jeder managebare Switch bietet diese Option an. Nur halt 
nicht jeder DAU-tauglich...

Aber das war ja garnicht das Thema. Frank ist ja offensichtlich gerade 
nicht Admin der Netze, um die es geht. Wäre es so, hätte er noch ganz 
andere Möglichkeiten, als unerwünschten Scheiss einfach nur zu 
unterdrücken...

von Sven L. (sven_rvbg)


Lesenswert?

c-hater schrieb:
> Aber das war ja garnicht das Thema.

Nö aber wenn ich ein Netz habe, in dem es so ausufert, dann schieß ich 
halt mit so ner Lösung dagegen.

von Local Area Notwork (Gast)


Lesenswert?

2te NIC, z.B. per USB?

von georg (Gast)


Lesenswert?

Local Area Notwork schrieb:
> 2te NIC

Es gibt ja NICs, die "promiscous mode" können, also alles empfangen, was 
auf der Leitung ist, auch wenn es nicht an sie adressiert ist. Die sind 
natürlich ideal für die Analyse, das ist aber auch nur die halbe Miete, 
man muss zusätzlich noch den Switch überreden, alles an den 
entsprechenden Port durchzustellen. Auch das gibt es natürlich.

Einfach nach DHCP fragen hilft wenig, da meldet sich ganz zufällig* 
einer der (vielen) DHCP-Server im Netz. Das sieht man, wenn man 
(korrekterweise) den vorhandenen DHCP-Servern unterschiedlich 
IP-Bereiche zuordnet, dann kann man nachsehen, bie welchem sich der 
Client angemeldet hat.

*wäre das nicht so, bestünde ja das Problem nicht.

Georg

von Jörg E. (jackfritt)


Lesenswert?

Virtuelle Maschine aufsetzen mit eigener MAC? Keine Ahnung was es da für 
den Apple gibt.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Jörg E. schrieb:
> Keine Ahnung was es da für den Apple gibt.

VirtualBox, VMware Fusion, Parallels ...

von Jack (Gast)


Lesenswert?

Frank E. schrieb:
> Gibt es eine Möglichkeit, mit Sockets (Java, Xojo ...) DHCP-Requests
> auszusenden und die Antworten des/der DHCP-Server zu empfangen, _ohne_
> dass dabei das aktuell benutzte NIC (Ethernet bzw. WLAN) des verwendeten
> Arbeitsrechners (z.B. Laptop) dann darauf eingeht bzw. sich um- oder
> neukonfiguriert?

Keine Requests senden, sondern ein DHCP Discover broadcasten und sich 
dann ansehen welche DHCP Offer Antworten man bekommt. Auf die Offer 
reagiert man eben nicht mit einem Request.

Das kann man mit jeder halbwegs brauchbaren Programmiersprache. Einziges 
Problem ist der Port 68. Der wird bereits vom DHCP-Client des 
Betriebssystems belegt. Den muss man abschalten oder man nimmt eine VM 
in der man ihn abgeschaltet hat.

Die viel einfachere Lösung wurde aber schon genannt. Mit Wireshark 
zusehen was passiert wenn sich der Rechner eine IP-Adresse per DHCP 
holt. Bekommt man DHCP Offer von unterschiedlichen Quellen, dann liegt 
der Verdacht nahe das etwas nicht stimmt. Ein Beweis ist es nicht, aber 
ein Anfang. Es gibt DHCP-Konfigurationen bei denen das in Ordnung ist.

von Ggf. mal man dhcpcd tippen (Gast)


Lesenswert?

Frank E. schrieb:
> Rufus Τ. F. schrieb:
>> Solange Dein IP-Stack mit statischer IP-Adresse arbeitet, sollte
>> der
>> sich für empfangene DHCP-Pakete überhaupt nicht interessieren.
>
> Jaaa ... das ist klar, aber meist bin ich aber in Kundennetzen selber
> auch mit DHCP unterwegs. Klar könnte ich das auf statisch umstellen,
> aber das ist ja unbequem :-)
>
>

Welches Mopped? Ggf. man dhcpcd


ohne jetz zu gucken -T ( test? ohne dann zu schreiben) dann kann man ja 
auch noch eine weitere, andere client-ID senden, die mac ist ja ldgl. 
der default und ein Adapter kann ja auch mehrere per dhcp bezogene 
Adressen haben.

Kann da aber nur wenig tipps geben, da beschäftige ich mich so selten 
mit als dass das beim nächsten mal schon wieder vergessen ist ..


> Ein ausgesandter DHCP-Request bekommt ja zwangsläufig die MAC-Adresse
> meiner benutzten Netzwerkkarte.

Mit nichten, stichwort "client-ID"

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.