ネットワーク通信の流れを把握する

【図解】MACアドレスとIPアドレスの役割の違い~なぜ両方必要か?~

MACアドレスとIPアドレスはなぜ2つ必要?

ネットワークを勉強する人の中で、この疑問にぶち当たった人は多いのではないでしょうか?

Ethernet ヘッダには宛先 MAC アドレスがあり、IP ヘッダには宛先 IP アドレスがあります。これらは 2 つ必要なのでしょうか?

答えは YES

まず、宛先 IP アドレスが必要なのは分かりやすいでしょう。

MAC アドレスは基本的に (PC 等の) デバイスに紐付きます。MAC アドレスの前半 3 byte は IEEE が管理し、各メーカーに払い出します。メーカーは Ethernet の MAC アドレス後半 3 byte を自由に割り振って出荷します。各メーカーのデバイスは色々な人や組織に購入され、世界中に点在します。

それに対し、IP アドレスは場所に紐付きます。グローバル IP アドレスであれば IANA が場所に応じてアドレス帯を払い出しています。例えば 1.0.0.0/8 はアジア (APNIC) へ払い出されています。

IANA IPv4 Address Space Registry

また、プライベート IP アドレスであれば組織のNW管理者が設計し、設定します。なので、IP は場所を示しており、宛先 IP アドレスによって通信先を決めているのです。

MAC アドレスではそれは実現できません。どの場所にどの MAC アドレスがあるか、というルーティングの設定をするのは現実的に不可能なためです。

では宛先 MAC アドレスは IP アドレスに統合できないの?という話になります。

L2 スイッチも、MAC アドレステーブルの代わりに、IP アドレスとインタフェースを紐付けるテーブルを使えばいいじゃん!と。

が、これも以下の 2 つの理由でできません

理由1. IP ヘッダには Next Hop Address の情報が無い

IP パケットヘッダには Next Hop Address (クライアントで言うデフォルトゲートウェイのアドレス) の情報がありません

この Next Hop Address の宛先アドレスを示すのが Ethernet ヘッダの宛先 MAC アドレスなのです。これが無いと通信にどのような不具合が出るのでしょうか。

例えばシリアルインタフェースのような Point-to-Point 接続で NW 機器と接続する構成であれば、出力インタフェースを指定すれば行先は一意に定まり問題ありません。

ですが、Ethernet のようなスター型接続の場合は出力インタフェースを定めても行先が一意に定まりません

そのため、通常は Next Hop Address を ARP で MAC アドレスへと変換し、そこを宛先 MAC アドレスとして Ethernet で送信する動きになります。

つまり、Next Hop Address の情報を、Ethernet の宛先 MAC アドレスが保有しているのです

しかしここで Ethernet を使わない想定をすると、Next Hop Address 情報が無いわけですから、出力インタフェースは判別できるものの、L2 スイッチはブロードキャストせざるを得ません

しかも、受信した NW 機器も、どの機器がそのパケットを受信し転送すべきか不明なので、同一セグメント内の全ルータが転送しなければなりません

それが 1 ルートだけならいざ知らず、冗長化のために複数ルートある場合は複数のパケットが転送されていくことになります。しかもこれが 1 ホップ毎に増えるので、最終的には 1 パケットがドえらい量のパケットになる可能性があります。

じゃあ IP ヘッダにネクストホップアドレスの情報含めればいいじゃん!むしろなんで最初から付けてないんだデコ助!となります。

でもそれもやはり無理なんです。

理由2. そもそも IP は Ethernet ありきじゃない

もし IP が Ethernet と同時に生まれ、それ以外の伝送メディアが存在しなかったら、あるいは実現したかもせれません。

今でこそ IP を Ethernet で運ぶのは当たり前ですが、昔はそうではありませんでした。Ethernet 以外にも様々な L2 プロトコルが存在していました。デジタルアクセスや PPP、Frame-relay、ATM 等です。

これらの中には Ethernet が 10 Mbps しか出なかった時代で、高速通信を実現するものもありました。デジタルアクセスや PPP では Point-to-Point 接続のため、NextHop 情報は出力インタフェースのみで OK でしたし、Frame-relay や ATM は MAC アドレスではなく他の L2 アドレス情報を使っていました

しかし様々なプロトコル(伝送メディア)があることにより、ルータはそれらに対応する必要があり、コストがかかっていました。そうした中で Ethernet が主流になってくると、Ethernet を応用とした PPPoE、Ethernet 接続を集約する L3 スイッチなどが登場し、Ethernet のインタフェースを量産しコスト削減する動きが出てきました。

こうした流れで Ethernet は今のポジションを確立したのです

というわけで IP は Ethernet ありきではなく、Next Hop Address の情報なんてものも必須ではない L2 プロトコルもあったので IP ヘッダには含まれていないのです。

そして今後 IP の規格を改変してまで Next Hop Address 情報を含めるか、というと難しいでしょう。

L2 が全て Ethernet にならない限りはできないし、現在稼働している NW 機器に影響を与えずに移行しなければならないのですから、莫大なコストがかかってしまいます。そこまでして実施する理由にはなり得ないのです。

MACアドレスとIPアドレスの役割

IP ネットワークの通信の宛先の主体は IP アドレスですが、通信の bit 列を物理的なケーブルを使って伝えていくには、一直線には行けないことがほとんどです。なのでルータ等の中継機器が存在するわけです。

イメージとしては、【IP アドレスは最終的に行きたい住所】、【MAC アドレスは電車の駅】と考えると良いでしょう。場所によっては Frame-Relay (路線バス) が使われているかもしれません。

Ethernet については以下の記事も参考にしてみて下さい。

【図解】Ethernetの仕組み〜LANとの違い, MACアドレスの構成, フレーム構造やタイプについて〜
Ethernet とは Ethernet とは、現在の代表的なレイヤー 2 の通...

 

コメント

タイトルとURLをコピーしました