MAC-Adresse über Tunnel abrufen

MAC-Adresse über Tunnel abrufen

Derzeit arbeite ich daran, meine eigene Software hinzuzufügen, um einem alten MS-DOS-Spiel Internetunterstützung zu bieten. Da meine primäre Umgebung Linux ist, verwende ich DOSBOX innerhalb von Linux und füge meine Internetverbindung gemäß den Anweisungen hier in DOSBOX ein:DOSBOX für das Internet konfigurieren

Danach verhält sich Linux für DOSBOX im Grunde wie ein weiterer Router, aber die von DOSBOX verwendete Gateway-Adresse und DNS sind dieselben, die der Host für die Verbindung mit dem Internet verwendet.

Ich lade dann die mTCP-DOS-Internetsuite herunter und kann deren Ping- und htget-Tool verwenden, um die Homepage von Google abzurufen. Wenn ich jedoch die Pakete im TCPdump von Unix analysiere, sehe ich die ersten 14 Bytes des Ethernet-Frames nicht und ich sehe nicht einmal ein ARP-Paket, und die mTCP-Suite hat keine ARP-Tabelle.

Daher verstehe ich nicht, wie eine solche Software eine Verbindung zu Google herstellen kann, wenn sie nicht einmal die MAC-Adresse des Remote-Rechners kennt, es sei denn, sie verwendet ständig eine Broadcast-Adresse. Aber würde das nicht die Netzwerkressourcen belasten?

Also zurück zu meiner eigenen Software … Ich kann von DOSBOX aus eine Verbindung zu meinem Host (Linux) herstellen (wir arbeiten hier mit demselben Computer), wenn ich IP-Pakete verwende, aber ich habe Probleme, ein ARP-Paket zu senden (zumindest zeigt tcpdump es nicht an).

Dies sind die Daten, die ich der Reihe nach über das Netzwerk sende:

FF FF FF FF FF FF 00 02 12 00 56 34 08 06 00 01 08 00 06 04 00 01 00 02
12 00 56 34 C0 A8 07 02 FF FF FF FF FF FF 08 08 08 08 

Und ich füge den Daten Nullen hinzu, bis die Datengröße 60 Bytes beträgt.

DOSBOX identifiziert meine Ethernet-Adresse über den ETHERSLIP-Treiber als: 00:02:12:00:56:34

Während DOSBOX läuft, habe ich vorab einen Tunnel erstellt und die Informationen dazu lauten wie folgt:

sl0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST>  mtu 1524
    inet 192.168.7.1  netmask 255.255.255.252  destination 192.168.7.2
    adaptive  txqueuelen 15240  (Adaptive Serial Line IP)
    RX packets 0  bytes 0 (0.0 B)
    RX errors 0  dropped 0  overruns 0  frame 0
    TX packets 0  bytes 0 (0.0 B)
    TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Gibt es eine Möglichkeit, dies so einzurichten, dass, wenn ich in DOSBOX eine ARP-Anfrage an das Netzwerk sende, diese als ARP-Anfrage angezeigt wird (anstatt nichts anzuzeigen), wenn ich tcpdump in Linux verwende?

Antwort1

MAC-Adressen werden nur im lokalen Layer-2-LAN gesehen oder sind dort relevant. Außerdem verwenden nicht alle Layer-2-Netzwerke MAC-Adressen, manche verwenden andere Adressierung und manche verwenden keine Adressierung. Von denen, die MAC-Adressen verwenden, sind einige 48-Bit- und einige 64-Bit-MAC-Adressen. Router entfernen den Layer-2-Frame, der die MAC-Adressierung enthält, und erstellen einen neuen Frame für die nächste Schnittstelle. Ein Paket kann von der Quelle zum Ziel verschiedene Layer-2-Protokolle durchlaufen, und Sie haben keine Möglichkeit herauszufinden, welche Protokolle verwendet werden oder welche im Pfad MAC-Adressierung verwenden oder nicht.

Die DOSBOX-Verbindung verwendet kein Protokoll, das MAC-Adressierung verwendet, daher wird kein ARP verwendet. Es wirdUNTERHOSE, ein Punkt-zu-Punkt-Protokoll wie PPP, das keine MAC-Adressierung (oder andere Layer-2-Adressierung) verwendet, es gibt also kein ARP. Für SLIP gibt es wie für PPP nur zwei mögliche Endpunkte, sodass Layer-2-Adressierung nicht benötigt wird oder verwendet wird. Der gesamte Datenverkehr von einem Ende zum anderen Ende wird ohne Verwendung einer Adresse geleitet.

verwandte Informationen