IP アドレスは階層的であるため、インターネット全体のルーターがパケットを転送する方向を認識していることを理解しています。 MAC アドレスには階層がないため、パケット転送はできません。したがって、MAC アドレスはパケット転送には使用されません。
理由もなくそこにあるわけではないと思います。そこで私の質問は、パケット転送中に MAC アドレスが正確にどこで機能するのかということです。
本当にどこでしょうか? MAC アドレスの具体的な機能は何ですか?
答え
SuperUser の寄稿者 Werner Henze は、MAC アドレスの機能についていくつかの洞察を提供しています。
MAC アドレスは何に使用されますか?
MAC アドレスは、イーサネット ベースのネットワークを機能させるための低レベルの基本です。
ネットワーク カードにはそれぞれ固有の MAC アドレスがあります。イーサネット上で送信されるパケットは常に MAC アドレスから送信され、MAC アドレスに送信されます。ネットワーク アダプターがパケットを受信すると、パケットの宛先 MAC アドレスとアダプター自体の MAC アドレスが比較されます。アドレスが一致する場合、パケットは処理され、一致しない場合、パケットは破棄されます。
特別な MAC アドレスがあり、たとえば ff:ff:ff:ff:ff:ff です。これはブロードキャスト アドレスであり、ネットワーク内のすべてのネットワーク アダプタをアドレス指定します。
IP アドレスと MAC アドレスはどのように連携しますか?
IP は、イーサネットの上の層で使用されるプロトコルです。たとえば、別のプロトコルは IPX です。
コンピュータが IP アドレス xxxx にパケットを送信したい場合、最初にチェックされるのは、宛先アドレスがコンピュータ自体と同じ IP ネットワーク内にあるかどうかです。 xxxx が同じネットワーク内にある場合は、宛先 IP に直接到達できます。そうでない場合は、パケットを構成されたルーターに送信する必要があります。
これまでのところ、状況はさらに悪化しているようです。現在、2 つの IP アドレスがあるためです。1 つは元の IP パケットのターゲット アドレスで、もう 1 つはパケットの送信先デバイスの IP (ネクスト ホップ、最終ホップのいずれか)宛先またはルーター)。
イーサネットは MAC アドレスを使用するため、送信者はネクストホップの MAC アドレスを取得する必要があります。そのために使用される特別なプロトコル ARP (アドレス解決プロトコル) があります。送信者はネクストホップの MAC アドレスを取得したら、そのターゲット MAC アドレスをパケットに書き込み、パケットを送信します。
ARPはどのように機能しますか?
ARP 自体は、IP や IPX のようなイーサネット上のプロトコルです。デバイスが特定の IP アドレスの MAC アドレスを知りたい場合、ブロードキャスト MAC アドレスに「IP アドレス yyyy を持っているのは誰ですか?」というパケットを送信します。すべてのデバイスがそのパケットを受信しますが、IP アドレス yyyy を持つデバイスだけが「私です」というパケットで応答します。質問したデバイスは応答を受信し、送信元 MAC アドレスが使用する正しい MAC アドレスであることがわかります。もちろん、結果はキャッシュされるため、デバイスは毎回 MAC アドレスを解決する必要はありません。
ルーティング
言い忘れるところでしたが、MAC アドレスに基づくルーティングはありません。低レベルのイーサネットおよび MAC アドレスは、同じネットワーク (有線または無線) 上のすべてのデバイスにのみ到達できます。ルーターが間にある 2 つのネットワークがある場合、ネットワーク A のデバイスからネットワーク B のデバイスの MAC アドレスにパケットを送信させることはできません。ネットワーク A のデバイスはネットワーク B のデバイスの MAC アドレスを持っていないため、この MAC アドレスへのパケットは、ネットワーク A 内のすべてのデバイスによって (ルーターによっても) 破棄されます。
ルーティングは IP レベルで行われます。単純に見ると、ルーターは上記の「IP アドレスと MAC アドレスはどのように連携するのか?」セクションで説明したことを実行しているだけです。ルーターは、それ自身の MAC アドレスのパケットを受信しますが、別の IP アドレスのパケットを受信します。次に、ターゲットの IP アドレスに直接到達できるかどうかを確認します。そうであれば、パケットをターゲットに送信します。それ以外の場合、ルーター自体にも上流ルーターが設定されており、そのルーターにパケットが送信されます。