【図解】MACアドレスとIPアドレスの役割の違い~なぜ2つ持つ必要性があるのか?~

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

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

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

答えはYES

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

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

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

https://www.iana.org/assignments/ipv4-address-space/ipv4-address-space.xhtml

また、プライベート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 が 10Mbps しか出なかった時代で、高速通信を実現するものもありました。デジタルアクセスや 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の仕組み〜LANとの違い, MACアドレスの構成, フレーム構造やタイプについて〜
Ethernet とは Ethernetとは、現在の代表的なレイヤー2の通信プ...

シェアする

  • このエントリーをはてなブックマークに追加

フォローする