現在、古い MS-DOS ゲームにインターネット サポートを提供する独自のソフトウェアを追加する作業を行っています。私の主な環境は Linux なので、Linux 内から DOSBOX を使用し、次の手順に従ってインターネット接続を DOSBOX に入力します。DOSBOXをインターネット用に設定する
この後、Linux は基本的に DOSBOX への別のルーターとして動作しますが、DOSBOX が使用するゲートウェイ アドレスと DNS は、ホストがインターネットに接続するために使用するものと同じです。
次に、mTCP DOS インターネット スイートをダウンロードし、その ping ツールと htget ツールを使用して Google のホームページを取得できますが、UNIX の tcpdump でパケットを分析すると、イーサネット フレームの最初の 14 バイトが表示されず、ARP パケットも表示されません。また、mTCP スイートには ARP テーブルがありません。
したがって、常にブロードキャスト アドレスを使用しているのでない限り、リモート マシンの MAC アドレスさえ知らないのに、そのようなソフトウェアがどのようにして Google に接続できるのか理解できませんが、そうするとネットワーク リソースが浪費されるのではないでしょうか。
それで、自分のソフトウェアに戻ります... IP パケットを使用すると、DOSBOX (ここでは同じコンピューターを扱っています) からホスト (Linux) に接続できますが、ARP パケットの送信に問題があります (少なくとも tcpdump では表示されません)。
これは私がネットワーク上で順番に送信しているデータです:
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
そして、データのサイズが 60 バイトになるまでデータにゼロを追加します。
DOSBOX は ETHERSLIP ドライバを通じてイーサネット アドレスを次のように識別します: 00:02:12:00:56:34
DOSBOX の実行中に、トンネルを事前に作成しました。その情報は次のとおりです。
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
DOSBOX でネットワークに ARP 要求を発行すると、Linux で tcpdump を使用するときに ARP 要求として表示される (何も表示されないのではなく) ように設定する方法はありますか?
答え1
MAC アドレスは、ローカルのレイヤー 2 LAN でのみ表示され、関連します。また、すべてのレイヤー 2 ネットワークが MAC アドレスを使用するわけではなく、他のアドレスを使用するものや、アドレスを使用しないものもあります。MAC アドレスを使用するネットワークの中には、48 ビットの MAC アドレスと 64 ビットの MAC アドレスがあります。ルーターは、MAC アドレスを含むレイヤー 2 フレームを削除し、次のインターフェイス用に新しいフレームを構築します。パケットは、送信元から宛先までさまざまなレイヤー 2 プロトコルを通過する可能性があり、パスでどのプロトコルが使用されているか、またはどのプロトコルが MAC アドレスを使用しているかを知る方法はありません。
DOSBOX接続はMACアドレスを使用するプロトコルを使用していないため、ARPは使用されません。スリップこれは、PPP のようなポイントツーポイント プロトコルであり、MAC アドレス指定 (またはその他のレイヤー 2 アドレス指定) を使用しないため、ARP はありません。SLIP の場合、PPP と同様に、エンドポイントは 2 つしかないため、レイヤー 2 アドレス指定は必要なく、使用されません。一方の端からのすべてのトラフィックは、アドレスを使用せずにもう一方の端に送信されます。