Einzelnen Beitrag anzeigen

McLane

Registriert seit: 4. Sep 2004
37 Beiträge
 
Delphi 5 Professional
 
#10

Re: Ping in anderes Subnet ohne Router...

  Alt 13. Sep 2005, 20:08
ok, jetzt wirds bisschen fach-spezifisch...

gegeben sei ip 192.168.0.1 mit sn 255.255.255.0 (AP) und 192.168.1.1 mit sn 255.255.0.0 (Client).

Wenn du nun einen Ping absendest prüft der Kernel (ja, auch in windows gibt's sowas inzwischen) die IP mit der SN gegen die Ziel-Adresse. Wenn die im gleichen SN ist (vom Client aus ist dies der Fall wegen 255.255.0.0) dann wird das Paket ungeändert aufs Medium geschickt.

Der AP stellt nun ein Problem dar, weil dort der Kernel(was auch immer für TCP/IP zuständig ist) bemerkt, dass die Zieladresse für das Antwortpaket nicht im gleichen subnetz ist. Dementsprechend wird er versuche das Paket an das default gateway zu senden. Die wird erreicht, indem die MAC-Adresse (in OSI Schicht 2) auf die des GW geändert wird. Das Paket wird so auf das Medium geschickt. Deine Netzwerkarte hat aber eine andere Adresse als das default GW und nimmt das Paket daher gar nicht erst an, weshalb es nie zurück an dein Ping Programm gelangt.

Soviel zur Theorie...

Abhilfe kann hier der Proscimous-Mode schaffen. Dies ist ein spezieller Modus, in den man die Netzwerkkarte setzen kann. Dadurch wird veranlasst, dass Pakete mit anderer MAC-Adresse als die eigene nicht sofort verworfen sondern trotzdem zur Verarbeitung an den Kernel (oder was auch immer) weitergereicht werden.
Bei Windows brauchst du hierfür die PCap.dll (freeware mal nach googlen).

Wenn du nun die PCap eingerichtet hast und nutzt, hast du immernoch das Problem mit dem Switch. Der entscheidet aufrgund der MAC-Adresse, an welchen Port er das Paket vom AP senden soll. Da diese von deiner Tatsächlichen abweicht wird er deiner Karte das Paket auch nicht übergeben.

Aber auch hier gibt es abhilfe, durch einen sogenannten Mirror-Port. Dieser spiegelt alle Pakete die durch den Switch laufen wieder (kostet meist bisschen mehr so ein Switch mit Mirror-Port) oder du hast einen richtig qualitativen Switch, den du über http-Interface konfigurieren kannst und die MAC-Table modifizieren kannst.

Einfachste Möglichkeit in dem Fall wäre aber einen HUB zwischen zu schalten, der ist dumm wie Stroh und leitet alle Pakete an jeden weiter. So kommt dein (mit anderer MAC-Adresse versehenes) Ping-Antwortpaket (ICMP_ECHO_REPLY) wenigstens an deine Netzwerkkarte und du musst es nur noch mit der PCap abgreifen...

MfG McLane
  Mit Zitat antworten Zitat