![]() |
Anmeldung am DHCP-Server
Hi,
ich möchte die DHCP-Anmeldeprozedur (DISCOVER, OFFER, REQUEST, ACK) mit Delphi an meinem Router Testen. Hintergrund ist eine nicht überall (unterschiedliches DHCP-Serververhalten) funktionierende Anmeldung eines AVR Microcontrollers an meinem DHCP-Server. Der einfachheit halber möchte die Anmeldeprozedur mit Delphi und WireShark "studieren". Ich möchte quasi das vollständige DISCOVER-Frame selber auf die Reise schicken. Wenn ich jetzt aber über den UDP-Socket einen Leerstring versende bastelt mir der Socket ja schon was zusammen. Ich möchte jetzt Frame-Mitschinitte aus WireShark importieren (reine FrameDaten *.bin) und diese dann modifiziert über Delphi versenden. Momentan lade ich den *.bin File in einen Stream und versende diesen über den UDP-Socket. Wie gesagt ist leider der "Header?" somit doppelt. Seht ihr auf die Schnelle eine einfache Möglichkeit BinärDaten 1:1 als DHCP-Boottrap zu versenden? Danke für eure Unterstützung. |
AW: Anmeldung am DHCP-Server
|
AW: Anmeldung am DHCP-Server
Hallo Klaus,
danke für den Link, es geht hier aber nicht um die Protokollstruktur sondern um den Test der verschiedenen Verhaltensweisen von DHCP-Server trotz "Normung". Beispiel: Ein Client sendet bei der DISCOVER-Anfrage als Source seine momentan noch statischsche IP also <> 0.0.0.0 (ja, soetwas gibt es!). Einige DHCP-Server verwerfen die Anfrage (weil ja nicht konform, find ich auch richtig), andere senden trotz möglicher Protokollfehler ein OFFER. Gleiches beim REQUEST...... Ich möchte nun mit einfachen Mitteln (Delphi und WireShark Mitschnitte) das Verhalten von verschiedenen DHCP-Servern "untersuchen" um ein besseres Verständnis dafür zu entwickeln. Gruß Pf@nne |
AW: Anmeldung am DHCP-Server
Magst Du einmal einen Wireshark-Dump eines funktionierenden und evtl. eines fehlschlagenden DHCP-Request Deines AVRs erstellen? Ein klein wenig kenn ich mich mit DHCP aus....
Macht der AVR evtl. einen Request schon mit einer IP-Adresse, die er von früher hat? Dann kommt es z.b. auf die Konfiguration des DHCP-Servers an, ob er die Anfrage bearbeitet oder ignoriert. Angenommen, der DHCPd fühlt sich für 10.8.15.0/24 zuständig, der AVR fragt aber nach, ob er 192.168.47.11 haben darf, dann wird der DHCPd die Anfrage komplett ignorieren (not authoritive). Im ISC dhcpd gibt es dazu eine Option, dass er sich definitiv für alles authoritive fühlt. Gruß, SirTwist |
AW: Anmeldung am DHCP-Server
Hi SirTwist,
das Problem ist mehr oder weniger schon eingekreist. Mir geht es jetzt darum eine kleine "Simmulation" der Anmelderoutine mit Delphi zu schreiben. Ich möchte die Testpakete quasi selber verändern..... Ich hab da noch mal zusammen gefasst, die WireShark Mitschnitte kann ich heute Abend reinstellen. Ich habe festgestellt, dass die Anmeldeprozedur (DISCOVER, OFFER, REQUEST, ACK) an einem DHCP-Server eigentlich genormt sein sollte >RFC1541<, jedoch sich offensichtlich nicht alle Server bzw. Clients sich strikt daran halten. Ich habe einen Client, der beim DISCOVER und beim REQUEST als SOURCE seine momentan noch statische IP sendet, als SOURCE <> 0.0.0.0, nur gibt es DHCP-Server die diese Packete (weil nicht Konform) verwerfen, andere DHCP-Server akzeptieren diese aber. Ich möchte dieses Verhalten näher untersuchen. Ich habe mir folgendes Überlegt: - Mitschnitt der LAN-Kommunikation zwischen Client und DHCP-Server mit WireShark. - Speichern eines mitgeschnittenen Frames (z.B. DISCOVER vom Client) als reine Binärdaten (*.bin) - Laden der Binärdaten in einen Delphi-Stream - Manipulation des geladenen Streams - versenden dieses Streams über einen UDP-Socket Das klappt auch so weit ganz gut. Mein Problem ist nun, das UDPSocket.SendStream(myStream) ja schon eigenständig Protokollinformationen hinzufügt, so das dann ja der UDP-Header + meine *.bin-Daten versendet werden. Frage: wie kann ich den "nackten" *.bin File Versenden? Dann stellt sich noch die Frage, wie schalte ich die IP-Kontrolle der LAN-Schnittstelle ab? Reicht es einfach alle Dieste und Protokolle zu entfernen, kann man das vieleicht eleganter ausschalten, so das man es später auf einfachem weg wieder aktivieren kann, ohne die Komplette Schnitstelle neu einzurichten. Danke für dein Interesse...... Ich hoffe ich hab mich einigermaßen verständlich ausgedrückt.... |
AW: Anmeldung am DHCP-Server
Zitat:
Das ist im Prinzip nur ein Flag, dass dem WinSock-Stack sagt, dass der Header weggelassen werden soll. Leider hat Microsoft die Erzeugung von Raw-Sockets auf Windows XP/Vista/7 unterbunden. Nur auf einem Server-OS können IHMO noch Raw-Sockets erstellt werden. |
AW: Anmeldung am DHCP-Server
Laut MSDN kann man Raw-Sockets schon erstellen, allerdings benötigt der Prozess dafür Administrator-Rechte.
|
AW: Anmeldung am DHCP-Server
Zitat:
![]() On Windows 7, Windows Vista, Windows XP with Service Pack 2 (SP2), and Windows XP with Service Pack 3 (SP3), the ability to send traffic over raw sockets has been restricted in several ways: * TCP data cannot be sent over raw sockets. * UDP datagrams with an invalid source address cannot be sent over raw sockets. The IP source address for any outgoing UDP datagram must exist on a network interface or the datagram is dropped. This change was made to limit the ability of malicious code to create distributed denial-of-service attacks and limits the ability to send spoofed packets (TCP/IP packets with a forged source IP address). * A call to the bind function with a raw socket for the IPPROTO_TCP protocol is not allowed. |
AW: Anmeldung am DHCP-Server
Na prima,
dann brauch ich ja garnicht weiter zu schauen..... Zitat:
Heißt das den nicht aber auch, dass eine DHCP Anmedung nur von WIN selber vorgenommen werden kann? Erst mal Danke für eure Hilfe, auch wenn es nicht so klappt wie ich es mir vorgestellt habe. Gruß Pf@nne |
AW: Anmeldung am DHCP-Server
Zitat:
Zitat:
Ausser du würdest z.B. einen Windows 2003/2008 SERVER benützen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:07 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz