0rd1naryCoffee Geschrieben 19. November 2020 Teilen Geschrieben 19. November 2020 Hey Leute, ich arbeite gerade eine alte Klausur durch und bin auf einen Hexdump gestoßen. Ich hatte so meine Probleme mit dem IP Datagramm, habe es aber dann durch Nachrechnen hinbekommen. Nun gibt es hier aber auch noch ein ARP Datagramm, welches ich mir irgendwie nicht erklären kann (siehe Anhang). Durch Recherche habe ich ein paar Antworten raus bekommen, aber das ist ja nicht Sinn der Sache. Wie kann ich also das ARP mit den Werten aus dem Hex Dump füllen? Die Aufgaben sind auch folgende: a.) An welchen Bytes kann man erkennen, dass hier zwei Netzwerkkarten des gleichen Herstellers im Einsatz sind? b.) Wie lauten die IP-Adressen in Dezimalnotation? c.) Wie lauten Quell- und Zielport? d.) Welcher Dienst wird auf Osi-Schicht 4 angesprochen? Wäre sehr cool, wenn ihr mir dabei helfen könntet. Habe auch ein paar Verständnisprobleme beim TCP-Segement (im 32-Bit-Raster), da würde ich mich dann (sobald ich es dann verstanden habe) selbst dran versuchen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Han_Trio Geschrieben 19. November 2020 Teilen Geschrieben 19. November 2020 Mach dir nochmal klar, dass die beiden Dinger, also der Hex-Dump und das ARP-Datagramm, eigentlich genau das Gleiche darstellen, nur eben in unterschiedlicher Schreibweise -> das eine ist hexadezimal, das andere in Bits bzw. Byte. Hier zB nochmal ganz gut dargestellt: http://www.tcpipguide.com/free/t_ARPMessageFormat.htm -> die Graphik etwas weiter unten; hier ist ersichtlich dass die oberen Zahlen im deinem ARP-Datagramm (0-7, 8-15, 16-31) Bits sind. Es wird aber im Datagramm auch in Byte-Schritten gezählt, sodass man hier ein wenig aufpassen muss, dass man nicht durcheinander kommt. Die wichtigste Einsicht für den Vergleich der beiden Graphiken bekommst wohl, wenn du dir folgende Frage beantwortest: Wenn du eine Hex-Zahl bzw. ein Hex-Pärchen oben stehen hast, wieviel Bits entspricht das unten? -> Dann brauchst du im Prinzip "nur" noch abzählen PS Spoiler Ein Hex entspricht 4 Bit, ein Hex-Pärchen ist = 8 Bit bzw. 1 Byte Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
tmp Geschrieben 20. November 2020 Teilen Geschrieben 20. November 2020 (bearbeitet) @Han_Trio Die Hexadezimalziffersequenz ist die des IP-Packets der vorherigen Aufgabe, nicht die eines ARP-Packets. @0rd1naryCoffee Zum vollständigen Ausfüllen des ARP-Datagramms fehlen noch einige Infos: Hardwaretyp ist Ethernet (codiert mit 1), also 0000 0000 0000 0001. Protokolltyp ist der Ethertype des L3-Adressprotokolls, dessen Adressen zu den L2-Adressen gemappt werden (in dem Fall IPv4 => 0x0800) => 0000 1000 0000 0000. HW-Adresslänge, also Länge unserer L2-Adressen (hier MAC-Adressen) ist 6 (Bytes) => 0000 0110. Protokolllänge, also Länge unserer L3-Adressen (hier IPv4-Adressen) ist 4 => 0000 0100. Operation: 0000 0001 für Request und 0000 0002 für Response. Ohne Zusatzinfos hier nicht erkennbar, was das hier ist. Sender-MAC-Adresse wird aus den ersten 48 Bit (= 6 Byte/12 Ziffern) des Ethernet-Frame-Hexdumps extrahiert => 0x0019993285a9 => (schreib ich jz nicht mehr als Bitsequenz auf, aber jede Hex-Ziffer entspricht einer 4-Bit-Sequenz). Ziel-MAC-Adresse äquivalent mit den zweiten 12 Ziffern => 0x001999328449. Sender-IP-Adresse sind Byte 13-16 des IPv4-Headers und bei 14 Byte Ethernet-Header Byte 27-30 des Hex-Dumps => 0xc0a80a50 => (in dotted decimal) 192.168.10.80 Ziel-MAC-Adresse: Wissen wir nicht. Entweder 0x000000000000 bei einer Request-Operation, oder z.B. die gewünschte MAC-Info einer Response. Ziel-IP-Adresse: Wissen wir auch nicht. Die IP-Adresse des Netzwerkteilnehmers, von dem die MAC-Adresse herausgefunden werden soll. Zu den Aufgaben: a) Die Bits 2 bis 23 einer MAC-Adresse sind historisch herstellerspezifisch. Wenn also Quell- und Ziel-MAC-Adresse in den ersten 0-23 Bits gleich sind, kommen die zugehörigen Netzwerkkarten eventuell vom selben Hersteller. Das aber ist nicht zuverlässig, weil nicht immer der Fall, und weil MAC-Adressen geändert werden können. Im Hex-File guckt man also auf die ersten 24 Bit (= 3 Byte bzw. 6 Hexadezimalziffern) der ersten 48 Bit (= 6 Byte/12 Ziffern) sowie die ersten 24 Bit der zweiten 48 Bit. b) Siehe oben. Entsprechend für die Ziel-IP-Adresse gilt: 0xc0a80a51 => 192.168.10.81 d) IP-Protokolltyp steht in Byte 10 des IPv4-Headers, also in Byte 24 => 0x06 (= TCP) c) Im TCP-Header stehen in den ersten 2 Byte der Source- und in den nächsten 2 der Destination-Port. Nach 14 Byte-Ethernet und (ohne Optionen) 20 Byte IPv4-Header also in Byte 35-36 bzw. 37-38. => src port 0x05dc => 5220 => dst port 0x0014 => 20 Doch, natürlich ist der Sinn der Sache, dass du sowas durch Recherchieren und Lesen von u.A. RFCs herausfindest. Es ist nicht notwendig, sowas in dem Detail komplett aus dem Kopf zu können. Das geht auch erst, wenn du eine Weile mit genau sowas zu tun gehabt hast. kleine Randnotiz: Ich hab hier die Bytes von 1 (und nicht von 0) an gezählt. Bearbeitet 20. November 2020 von tmp Format Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
0rd1naryCoffee Geschrieben 20. November 2020 Autor Teilen Geschrieben 20. November 2020 vor 10 Stunden schrieb tmp: @Han_Trio Die Hexadezimalziffersequenz ist die des IP-Packets der vorherigen Aufgabe, nicht die eines ARP-Packets. @0rd1naryCoffee Zum vollständigen Ausfüllen des ARP-Datagramms fehlen noch einige Infos: Hardwaretyp ist Ethernet (codiert mit 1), also 0000 0000 0000 0001. Protokolltyp ist der Ethertype des L3-Adressprotokolls, dessen Adressen zu den L2-Adressen gemappt werden (in dem Fall IPv4 => 0x0800) => 0000 1000 0000 0000. HW-Adresslänge, also Länge unserer L2-Adressen (hier MAC-Adressen) ist 6 (Bytes) => 0000 0110. Protokolllänge, also Länge unserer L3-Adressen (hier IPv4-Adressen) ist 4 => 0000 0100. Operation: 0000 0001 für Request und 0000 0002 für Response. Ohne Zusatzinfos hier nicht erkennbar, was das hier ist. Sender-MAC-Adresse wird aus den ersten 48 Bit (= 6 Byte/12 Ziffern) des Ethernet-Frame-Hexdumps extrahiert => 0x0019993285a9 => (schreib ich jz nicht mehr als Bitsequenz auf, aber jede Hex-Ziffer entspricht einer 4-Bit-Sequenz). Ziel-MAC-Adresse äquivalent mit den zweiten 12 Ziffern => 0x001999328449. Sender-IP-Adresse sind Byte 13-16 des IPv4-Headers und bei 14 Byte Ethernet-Header Byte 27-30 des Hex-Dumps => 0xc0a80a50 => (in dotted decimal) 192.168.10.80 Ziel-MAC-Adresse: Wissen wir nicht. Entweder 0x000000000000 bei einer Request-Operation, oder z.B. die gewünschte MAC-Info einer Response. Ziel-IP-Adresse: Wissen wir auch nicht. Die IP-Adresse des Netzwerkteilnehmers, von dem die MAC-Adresse herausgefunden werden soll. Zu den Aufgaben: a) Die Bits 2 bis 23 einer MAC-Adresse sind historisch herstellerspezifisch. Wenn also Quell- und Ziel-MAC-Adresse in den ersten 0-23 Bits gleich sind, kommen die zugehörigen Netzwerkkarten eventuell vom selben Hersteller. Das aber ist nicht zuverlässig, weil nicht immer der Fall, und weil MAC-Adressen geändert werden können. Im Hex-File guckt man also auf die ersten 24 Bit (= 3 Byte bzw. 6 Hexadezimalziffern) der ersten 48 Bit (= 6 Byte/12 Ziffern) sowie die ersten 24 Bit der zweiten 48 Bit. b) Siehe oben. Entsprechend für die Ziel-IP-Adresse gilt: 0xc0a80a51 => 192.168.10.81 d) IP-Protokolltyp steht in Byte 10 des IPv4-Headers, also in Byte 24 => 0x06 (= TCP) c) Im TCP-Header stehen in den ersten 2 Byte der Source- und in den nächsten 2 der Destination-Port. Nach 14 Byte-Ethernet und (ohne Optionen) 20 Byte IPv4-Header also in Byte 35-36 bzw. 37-38. => src port 0x05dc => 5220 => dst port 0x0014 => 20 Doch, natürlich ist der Sinn der Sache, dass du sowas durch Recherchieren und Lesen von u.A. RFCs herausfindest. Es ist nicht notwendig, sowas in dem Detail komplett aus dem Kopf zu können. Das geht auch erst, wenn du eine Weile mit genau sowas zu tun gehabt hast. kleine Randnotiz: Ich hab hier die Bytes von 1 (und nicht von 0) an gezählt. Zunächst danke für die ausführliche Antwort Ich glaube mein Problem hierbei ist nun, dass ich nicht ganz aus einigen Angaben im ARP Datagramm schlau werde. Nehmen wir z.B. die Ziel IP-Adresse (letzte Zeile). Hier ist im Datagramm nun Byte 0 - 3 angegeben. Meine Frage ist nun, von wo fange ich da an zu zählen? Welche Rolle spielt die Zeile (in dem Fall die letzte), in der die Information steht? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
tmp Geschrieben 21. November 2020 Teilen Geschrieben 21. November 2020 (bearbeitet) Wie gesagt, die Zieladresse ist nicht aus dem Hexfile ersichtbar. Zur Übertragung von Paketen im Netzwerk brauchst du (meistens nur noch historisch bedingt) oft eine Link-Layer-Adresse (hier MAC-Adresse) deines Zielknotens. ARP sucht dir zu einer bekannten L3-Adresse (hier IPv4) diese noch unbekannte L2-Adresse raus, indem es ein Request mit der bekannten L3-Adresse broadcastet. Diese im Voraus bekannte IP-Adresse steht dann in diesem ARP-Header-Feld eines ARP-Requests. In einem Response-Paket stehen in Sender-L2- und -L3-Adressfeld die MAC- und IP-Adresse des antwortenden Knotens, und in Target-* die MAC- und IP-Adresse des anfragenden Knotens. Bearbeitet 21. November 2020 von tmp Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.