IPアドレスもMACアドレスも必要? → 必要です!

「なぜIPアドレスだけではなくMACアドレスも必要なの?」

ネットワークの仕組みを勉強すると、必ず出てくると思われる疑問です。結論は、イーサネットや無線LAN(Wi-Fi)を利用していると、IPアドレスもMACアドレスも必要です。IPアドレスとMACアドレスも両方とも必要になる理由のポイントは、以下です。

IPアドレスとMACアドレスの違いのポイント

  • IPアドレスは「論理的なデータ」の送信元と宛先を表す
  • MACアドレスは「物理的な信号」の送信元と宛先のネットワークインタフェースを表す

このページで、IPアドレスとMACアドレスの違い、そして、IPアドレスもMACアドレスも必要な理由を詳しく丁寧に解説します。

MACアドレスを持たないネットワークインタフェースを利用している場合は、MACアドレスは使いません。このページでは、MACアドレスを持つイーサネットインタフェースを想定して記述しています。

前提として知っておいてほしいこと

IPアドレスとMACアドレスについて話を進める前に、前提として知っておいてほしい大事なポイントがあります。それは、

「0」「1」の「データ」をネットワークに送り出すときに電気信号や光信号、電波といった「物理的な信号」に変換しなければならない

ということです。

PCやスマートフォンなどで扱っているデータはすべて「0」「1」のデジタルデータです。つまり、「数」です。「数」は、抽象的なもので物理的な実体はありません。物理的な実体がない「数」を、私たちが生きている物理世界でそのまま伝えていくことはできません。「0」と「1」がそのままケーブルの中に流れていくわけではありません。あるいは、空間に「0」と「1」がそのまま流れていくわけではありません。ネットワークの仕組みについての動画解説で、「0」と「1」がそのままケーブルの中を流れているようなアニメーションをみかけることがありますが、それはウソです。

「0」「1」はそのままではなく、電気信号や光信号に変換してケーブル中を伝播するという物理的な現象として扱います。あるいは、電波として空間を伝わっていくという物理的な現象とします。

なお、このページでは、「論理的なデータ」を送り届けることを「転送」と表現します。そして、「物理的な信号」を送り届けることを「伝送」と表現します。

突き詰めて考えれば、ネットワークに送り出す以前のPCやスマートフォンの内部でも「0」「1」をそのまま扱っているわけではありません。物理的な現象に置き換えて扱います。たとえば、データを保存するハードディスク(HDD)は、「0」「1」を磁気ディスク上に磁気のパターンとして記録しています。SSDでは、電子がフローティングゲートにあるかどうかによって「0」「1」を記録します。抽象的な「数」の計算を、電子など素粒子レベルのミクロな物理現象の操作として実行できるようになっていることは、人類の叡智の結晶だと思います。
ただ、話を簡単にするために、PCの内部では「0」「1」として扱ってネットワークに送り出すときに物理的な信号に変換することだけを考えます。

IPアドレスとMACアドレスの切っても切れない関係

さて、ここから本題です。IPアドレスだけではなくMACアドレスもなぜ必要なのかについてです。まずは、IPアドレスとMACアドレスそれぞれの特徴を簡単に記しておきます。

IPアドレス

IPアドレスは、IPでデータを転送するときに通信相手を識別するための情報です。IPv4とIPv6がありますが、ここではIPv4を考えます。IPv4アドレスは32ビットです。IPでのデータの転送は、同じネットワーク内の宛先でも異なるネットワークの宛先でもOKです。IPアドレスは、ネットワークを識別するネットワークアドレスとネットワーク内のホスト(のインタフェース)を識別するホストアドレスから構成されているからです。

IPアドレスは設定で決めます。イーサネットやWi-Fiなどのインタフェースに対して、IPアドレスを設定します。現在では、たいていDHCPによってIPアドレスの設定は自動化されています。

MACアドレス

MACアドレスは、イーサネットインタフェースや無線LAN(Wi-Fi)のインタフェースを識別するための情報です。MACアドレスは48ビットです。話を簡単にするためにイーサネットのみを考えます。イーサネットでデータを転送するために、MACアドレスを指定します。

MACアドレスは、あらかじめイーサネットやWi-Fiインタフェースに割り当てられて、原則、変更しません。ただ、MACアドレスを設定で変更することは可能です。また、プライバシー保護のためにMACアドレスをランダム化することもあります。

IPとイーサネット

IPもイーサネットもデータを転送するためのプロトコルです。でも、IPとイーサネットでは対象とする「データ」の捉え方が違います。

IPで転送する「データ」は「0」と「1」の「論理的なデータ」です。一方、イーサネットにとっての「データ」は、「0」「1」の「論理的なデータ」を変換した電気信号や光信号といった「物理的な信号」です。

IPでの「論理的なデータ」の転送

IPでデータを転送するには、転送したい「データ」にIPヘッダを付加してIPパケットとしてネットワークに送り出します。IPヘッダには、宛先IPアドレスと送信元IPアドレスを指定します。IPアドレスは、「論理的なデータ」の送信元と宛先を表しています。適切な宛先/送信元IPアドレスを指定すれば、経路上のルータがルーティングしてくれて望んだ宛先まで「データ」を送り届けられます。

図 IPのデータ転送
図 IPのデータ転送

でも、IPだけでは「論理的なデータ」を「物理的に」送り届けることはできません。IPには、物理的な信号に変換するような機能はないからです。つまり、IPでのデータの転送は論理的なもので、「ここまでデータが届いてほしいなぁ」と願っているだけに過ぎないのです。願っているだけでは届きません。IPだけではなく、「物理的な信号」として、ネットワークに送り出すために、イーサネットやWi-Fiなどの転送プロトコルも組み合わせなければいけません。

また、IPでのデータの転送は論理的なものなので、物理的な距離の制約はありません。どんなに物理的な距離が離れていても、IPでのデータの転送ができます。ただし、そのためには経路上のルータのルーティングが正しく行われていることが前提です。

イーサネットでの「物理的な信号」の伝送

IPパケットの「論理的なデータ」は、「物理的な信号」に変換して伝送媒体(ケーブル)へと送り出す必要があります。そのために、イーサネットを利用することが多いです。イーサネットで「論理的なIPパケット」を「物理的な信号」としてネットワークに送り出すためには、まず、イーサネットヘッダでIPパケットをカプセル化して、イーサネットフレームとします。なお、イーサネットフレームには、エラーチェックのためのFCS(Frame Check Sequence)も付加されます。イーサネットヘッダには、宛先/送信元MACアドレスを指定します。MACアドレスは物理的な信号の送信元のイーサネットインタフェースと信号を受信してほしい宛先のイーサネットインタフェースを示します。

イーサネットフレームは、利用しているイーサネット規格に応じた物理的な信号として、伝送媒体(ケーブル)へと送り出されていきます。そして、イーサネットのネットワークは、レイヤ2スイッチで構築することがほとんどです。送信元のイーサネットインタフェースから送り出された物理的な信号は、レイヤ2スイッチによって適切な宛先のイーサネットインタフェースまで送り届けられます。

図 イーサネットの物理的な信号の伝送
図 イーサネットの物理的な信号の伝送

物理的な信号を伝送する際には、物理的な距離の制約があります。イーサネットの伝送媒体として一番よく利用するUTPケーブルには、最大100メートルという距離の制約があります。また、イーサネットで物理的な信号を伝送するのは、同一ネットワーク内だけに限られます。

IPアドレスはインタフェースに対して設定する

IPで「論理的なデータ」を送信するためには、「物理的な信号」に変換してインタフェースから送り出します。そして、IPで「論理的なデータ」を受信するには、その「物理的な信号」がインタフェースに伝わってこなければいけません。このことから、IPアドレスはインタフェースに対して設定することになります。

MACアドレスを持つイーサネットやWi-Fiのインタフェースに対してIPアドレスを設定することで、IPアドレスとMACアドレスを関連付けます。つまり、IPによって「論理的なデータ」を送り届けるには、どのインタフェースに「物理的な信号」が伝わっていけばよいかがわかるようにしています。以下の図は、IPアドレス設定の簡単な例です。

図 IPアドレス設定の例
図 IPアドレス設定の例

この図で、MACアドレス「PC1」というイーサネットインタフェースにIPアドレス「192.168.1.1」と設定しています。IPアドレス「192.168.1.1」へ「論理的なデータ」を送り届けるためには、MACアドレス「PC1」のイーサネットインタフェースにイーサネットの「物理的な信号」が伝わればいいということを示しています。宛先IPアドレスとして「192.168.1.1」を指定して、宛先MACアドレスとして「PC1」を指定すると、「論理的なデータ」を送りたい宛先に「物理的な信号」が伝えられていくようになります。つまり、IPアドレスもMACアドレスも両方とも必要です。

ARP(Address Resolution Protocol)

IPアドレスはイーサネットやWi-Fiのインタフェースに対して設定して、IPアドレスとMACアドレスを関連付けます。ということは、IPアドレスとMACアドレスの対応は常に一定ではありません。コロコロとIPアドレスとMACアドレスの対応は変わってしまう可能性があります。

そこで、IPアドレスとMACアドレスが「今」どんな対応になっているかをきちんとわかっておかなければいけません。IPアドレスとMACアドレスの対応を調べることを「アドレス解決」と呼びます。そして、アドレス解決を行うためのプロトコルがARP(Address Resolution Protocol)です。ARPによって、同じネットワーク内のIPv4アドレスに対応するMACアドレスを求めることができます。

IPv6アドレスとMACアドレスの対応は、ICMPv6で求めます。

IPとイーサネットの組み合わせ、そして、「ルーティング」で「論理的なデータ」は届く

ここまでの「IP」、「IPアドレス」、「イーサネット」、「MACアドレス」についてまとめておきましょう。

データの転送アドレス
IP「0」「1」の「論理的なデータ」を転送するIPアドレスで「論理的なデータ」の宛先と送信元を示す
イーサネット「0」「1」を「物理的な信号」として同一ネットワーク内で伝送するMACアドレスで「物理的な信号」の宛先と送信元を示す
表 IPアドレス、MACアドレス

IPでの「論理的なデータ」の転送は、物理的な距離の制約を受けません。でも、実際には「論理的なデータ」はイーサネットなど「物理的な信号」として伝送しなければいけません。イーサネットの「物理的な信号」の伝送は、同一ネットワーク内だけで物理的な距離の制約を受けます。

では、どうやってインターネットでWebサイトを見るような物理的には遠く離れている通信ができるのか?

IPの物理的な距離の制約を受けない「論理的なデータ」の転送は、イーサネットなどの「物理的な信号」の伝送と「ルーティング」によって実現します。IPの「論理的なデータ」は、イーサネットの「物理的な信号」として、同じネットワークのルータまで伝送します。そして、ルータが「論理的なデータ」の宛先を表すIPアドレスから同じネットワーク内の適切な転送先のルータ(ネクストホップ)を判断します。ネクストホップへイーサネットの「物理的な信号」を伝送します。このような動作が「ルーティング」です。

「ルーティング」を繰り返すと、どんなに物理的に遠く離れていても、また、ネットワークが異なっていてもIPの「論理的なデータ」を目的の宛先まで転送することができます。

あなたのPCやスマートフォンから、このWebサイトを見るときには、ルーティングが繰り返し行われています。

ルーティングの簡単な例

ルーティングの簡単な例をみてみましょう。1台のルータR1で2つのイーサネットネットワークを相互接続していて、PC1からSRV1へとIPパケットを転送する様子についてです。イーサネットネットワークはレイヤ2スイッチで構築しています。ただ、ルーティングを考えるときにはレイヤ2スイッチはあまり関係ありません。

各機器のIPアドレスとMACアドレスは以下の通りとします。MACアドレスは簡略化します。

機器IPアドレスMACアドレス
PC1192.168.1.100/24PC1
SRV1192.168.2.100/24SRV1
R1 Fa0/0192.168.1.254/24R1-L
R1 Fa0/1192.168.2.254/24R1-R
表 ルーティングの簡単な例のアドレス情報
図 ルーティングの簡単な例
図 ルーティングの簡単な例
「F0/0」「F0/1」は、Ciscoルータのインタフェース名の省略形です。

PC1からSRV1へIPで「論理的なデータ」を転送することを考えます。PC1からSRV1へは以下のような流れでデータが転送されるようになります。

  1. PC1からIPパケットをR1に転送する
  2. R1がIPパケットの転送先を判断する
  3. R1からSRV1へIPパケットを転送する

ここまで述べているようにIPの「論理的なデータ」は、イーサネットの「物理的な信号」として伝送することを思い出してください。

PC1からIPパケットをR1に転送する

PC1は、データをIPヘッダでカプセル化してIPパケットとします。IPヘッダには、宛先IPアドレスと送信元IPアドレスを指定します。

宛先IPアドレス:192.168.2.100
送信元IPアドレス:192.168.1.100

なお、ほとんどの場合、宛先IPアドレスはDNS(Domain Name System)によって自動的に求めます。普通のユーザには、IPアドレスは意識させません。データの転送先となる宛先IPアドレス192.168.2.100はPC1とは異なるネットワークです。イーサネットの物理的な信号はネットワークが違うと直接伝送できません。そこで、まずは同じネットワークのR1にイーサネットの物理的な信号が流れるようにします。

図 PC1からIPパケットをR1に転送する その1
図 PC1からIPパケットをR1に転送する その1

R1 Fa0/0に物理的な信号が流れていって欲しいので、R1 Fa0/0のMACアドレスが必要です。PC1にはR1 Fa0/0のIPアドレス192.168.1.254をデフォルトゲートウェイとして設定しています。そこで、ARPでR1のIPアドレス192.168.1.254からR1 Fa0/0のMACアドレスを求めます。

R1 Fa0/0のMACアドレスがわかれば、IPパケットにイーサネットヘッダを付加して、イーサネットフレームを作ることができます。宛先MACアドレスと送信元MACアドレスは以下です。

宛先MACアドレス:R1-L
送信元MACアドレス:PC1

イーサネットフレームは、電気信号または光信号の物理的な信号に変換されて、ケーブル上に送り出されます。この図では、PC1とR1のみですが、ケーブル上に送り出されたイーサネットの物理的な信号はレイヤ2スイッチが適切なインタフェースにのみ伝送します。

こうして、PC1からR1へイーサネットの物理的な信号が伝わっていって、イーサネットでカプセル化されているIPパケットがR1へ届きます。これで、いったん、左側のイーサネットの伝送は終わりです。

 図 PC1からIPパケットをR1に転送する その2
図 PC1からIPパケットをR1に転送する その2

R1がIPパケットの転送先を判断する

R1はPC1からSRV1宛てのIPパケットを変換した物理的な信号を受信します。宛先MACアドレスが自身の「R1-L」だからです。でも、宛先IPアドレスはR1自身ではありません。こうしたIPパケットは、ルーティング対象です。

R1のルーティングテーブルからIPパケットの転送先を判断します。今考えているネットワーク構成では、最終的な宛先IPアドレスはR1自身がFa0/1で接続している192.168.2.0/24のネットワーク内のアドレスです。R1はIPパケットを右側のFa0/1から送り出せばよいことがわかります。

図  R1がIPパケットの転送先を判断する
図 R1がIPパケットの転送先を判断する

R1からSRV1へIPパケットを転送する

R1から最終的な宛先のSRV1へIPパケットを転送するには、イーサネットの物理的な信号とします。つまり、あらたに右側のイーサネットネットワークでの物理的な信号の伝送を開始します。そのためにSRV1のMACアドレスが必要です。R1はSRV1のIPアドレス(IPヘッダの宛先IPアドレス)からARPを行ってSRV1のMACアドレスを求めます。そして、イーサネットヘッダに以下のMACアドレスを指定して、IPパケットをカプセル化してイーサネットフレームとします。

宛先MACアドレス:SRV1
送信元MACアドレス:R1-R

あとは、イーサネットフレームを物理的な信号に変換してケーブル上に送り出します。すると、レイヤ2スイッチにより最終的な宛先であるSRV1まで物理的な信号が伝わり、その結果、PC1からSRV1までIPによるデータの転送が完了です。

図  R1からSRV1へIPパケットを転送する
図 R1からSRV1へIPパケットを転送する

この例では、ルータ1台だけを経由していますが、経路上にルータが何台あっても同様の動作を繰り返して、論理的なデータを物理的には遠く離れた機器にまで転送できます。

理解を助けるためのたとえ話

さて、ここまでIPアドレスとMACアドレスの関係を解説してきましたが、IPアドレスとMACアドレスの違いと両方とも必要な理由はご理解いただけましたか?ここまでの内容をより理解しやすいように、少したとえ話を考えてみました。

  • 人間同士の会話のたとえ
  • 郵便のたとえ

人間同士の会話のたとえ

人間同士が面と向かって会話することは、以下についてのたとえ話です。

  • IPアドレスは「論理的なデータ」の送信元と宛先を表す
  • MACアドレスは「物理的な信号」の送信元と宛先のネットワークインタフェースを表す

私たちが会話するときに、相手に伝えたい話題は物理的な実体はありません。人が考えていることは、目で見たり手で触れたりすることができませんよね。会話で伝えたい「話題」は、「論理的なデータ」に例えることができます。そして、会話相手の「意識」が「IPアドレス」に例えられます。伝えたい話題は、思っているだけでは伝わりません。空気の振動、つまり、「声」という「物理的な信号」にしないといけません。そして、その声は相手の耳に伝わらないといけません。会話相手の耳がイーサネットなどのネットワークインタフェースに例えられます。声を発する口もネットワークインタフェースです。つまり、会話の相手の「耳と口」が「MACアドレス」と考えてください。

図 「IPアドレス」は「意識」、「MACアドレス」は「耳と口」
図 「IPアドレス」は「意識」、「MACアドレス」は「耳と口」

図 人間同士の会話のたとえ
図 人間同士の会話のたとえ

人間が会話するときにいちいち会話相手を明示的に特定して、その人の耳に声が届くようになんて考えたりしません。でも、コンピュータの通信のときにはIPヘッダに宛先IPアドレス、イーサネットヘッダに宛先MACアドレスを指定しなければいけません。

また、図のPC1とSRV1は、同じネットワークにつながっています。人間同士の会話の例えだと遠く離れたデータの転送「ルーティング」は、うまく当てはまりません。たとえ話というものは、そんなものですね。説明したいことにピッタリと当てはまるたとえ話なんてないものです。

郵便のたとえ

遠く離れたネットワークまでIPで論理的なデータを転送できる「ルーティング」についてのたとえ話として、郵便でハガキを送ることを考えましょう。

ハガキにメッセージを書いて、宛先の住所を記入します。「住所」が「IPアドレス」で、ハガキの「メッセージ」が「論理的なデータ」です。でも、ハガキを書いただけでは、当然ながらいつまで経っても宛先には届きません。郵便ポストに投函しなければいけません。郵便ポストが「MACアドレス」で、投函することが「物理的な信号」を伝えることと考えてください。

遠く離れた宛先には、直接ハガキを届けることができないので、とりあえず近くの郵便ポストまで行って投函します。投函されたハガキは、郵便局で宛先に応じてさらに別の郵便局まで運ばれていって、最終的な宛先の住所まで送り届けてくれます。そうすると、日本全国どころか海外まで遠く離れた宛先の住所まであなたのハガキのメッセージが届きます。郵便局が「ルータ」で、郵便局間でハガキが転送されていくことが「ルーティング」にたとえられます。

図 郵便のたとえ

まとめと関連記事

以上、だいぶ長くなってしまいましたが、IPアドレスもMACアドレスも両方とも必要な理由についてです。ご理解いただけましたか?あらためてポイントをまとめておきましょう。ポイントは、冒頭で挙げた2点です。

IPアドレスとMACアドレスの違いのポイント

  • IPアドレスは「論理的なデータ」の送信元と宛先を表す
  • MACアドレスは「物理的な信号」の送信元と宛先のネットワークインタフェースを表す

「0」と「1」の「論理的なデータ」は、電気信号などの「物理的な信号」として伝えていくことになります。そのため、論理的なデータの送信元と宛先を表す「IPアドレス」も物理的な信号の送信元と宛先になるインタフェースを表す「MACアドレス」も必要です。

以下は、このページの内容をより深く知るための「ネットワークのおべんきょしませんか?」内の関連記事です。これらもしっかりと読んでいただくとネットワークの仕組みの理解を深められるでしょう。

関連記事