MACアドレスとは?IPアドレスとの違いと通信での役割を初心者向けに図解

ネットワーク初級編 10/全32記事

この記事は、 「ネットワーク初級編|通信の仕組みをゼロから学ぶ」 の第10回です。

前回までに学んだIPアドレス、サブネットマスク、デフォルトゲートウェイを踏まえ、 今回はLAN内でデータを届けるために使われるMACアドレスを学びます。

MACアドレスとは?IPアドレスとの違いと通信での役割を初心者向けに図解

パソコンが同じLAN内の相手へデータを届けるとき、IPアドレスだけでなくMACアドレスも使われます。 この記事では、MACアドレスの意味、48ビットの見方、IPアドレスとの違い、スイッチが通信を転送する仕組み、 ルーターを越えるとMACアドレスが変わる理由を図解します。

対象レベル Level 1・初級
想定読了時間 約18分
身につく成果 MACアドレスの役割を説明できる
前提知識 IPアドレスとデフォルトゲートウェイ
演習環境 ブラウザのみ

IPアドレスを学んだあとに、「IPアドレスがあるなら、なぜMACアドレスも必要なのか」と疑問に思う人は少なくありません。

結論からいうと、IPアドレスは通信相手がどのネットワークにいるかを判断するために使われ、 MACアドレスは現在接続しているLAN上でフレームを次の機器へ届けるために使われます。

この記事を読み終えるとできること

  • MACアドレスの役割を説明できる
  • MACアドレスの表記と48ビットの意味を理解できる
  • IPアドレスとMACアドレスの違いを説明できる
  • 同一LAN内でフレームが届く流れを説明できる
  • 別ネットワーク宛てでゲートウェイのMACを使う理由を説明できる
  • スイッチのMACアドレステーブルの役割を理解できる

MACアドレスとは何か

最初に覚える定義

MACアドレスとは、LAN上で通信するネットワークインターフェースを識別し、 Ethernetフレームを届けるために使われる情報です。

MACは「Media Access Control」の略です。 有線LANポート、無線LAN機能、仮想ネットワークアダプターなど、 ネットワークへ接続するインターフェースごとにMACアドレスが設定されます。 本記事では、仕組みを理解しやすくするため、主に有線Ethernetを例に説明します。

たとえば、1台のノートパソコンに有線LANとWi-Fiの両方が搭載されている場合、 通常はそれぞれ別のMACアドレスを持ちます。 そのため、MACアドレスは「パソコン本体に1つだけ付く番号」というより、 ネットワークへ接続する口ごとに使われる識別情報と考える方が正確です。

MACアドレスが主に使われる範囲は、現在接続しているLANです。

インターネット上の遠い相手まで、同じMACアドレスを使って直接届けるわけではありません。 ルーターを越えるたびに、フレームの送信元MACアドレスと宛先MACアドレスは作り直されます。

MACアドレスはEthernetフレームに入る

LAN内で運ばれるデータは、Ethernetフレームという形になります。 フレームには、誰が送ったのかを示す送信元MACアドレスと、 誰へ届けるのかを示す宛先MACアドレスが含まれます。

Ethernetフレームの簡略イメージ
宛先MACアドレス 00:11:22:33:44:55
送信元MACアドレス AA:BB:CC:DD:EE:FF
データ部分 IPパケットなど

Ethernetフレームの詳しい構造は、初級編第15回「Ethernetフレームの基本」で学びます。 今回は、LAN内では送信元と宛先のMACアドレスを付けてデータを運ぶと理解できれば十分です。

まず全体を1枚の図で理解する

同じLAN内にあるPC-AからPC-Bへ通信する場合を考えます。

同一LAN内でMACアドレスを使って届ける

💻 PC-A IP:192.168.1.10
MAC:AA-AA-AA-AA-AA-AA
🔀 スイッチ 宛先MACを見て
転送先ポートを決める
💻 PC-B IP:192.168.1.20
MAC:BB-BB-BB-BB-BB-BB
送信元MAC:AA-AA-AA-AA-AA-AA
宛先MAC:BB-BB-BB-BB-BB-BB

PC-Aは、PC-BのIPアドレスが同じネットワーク内にあると判断すると、 PC-BのMACアドレスを調べて、宛先MACアドレスとしてフレームへ設定します。

スイッチは宛先IPアドレスではなく、基本的に宛先MACアドレスを見て、 PC-Bが接続されているポートへフレームを転送します。

IPアドレスで通信相手を考え、MACアドレスで現在のLAN上の届け先を指定します。

IPアドレスとMACアドレスは競合する情報ではなく、異なる役割を分担しています。

MACアドレスの見方

Ethernetで一般的に使われるMACアドレスは、48ビットの情報です。 8ビットを1組として6組に分け、通常は16進数で表します。

MACアドレスの表記例
00 1A 2B 3C 4D 5E
前半24ビット
ベンダー識別に使われる領域
後半24ビット
インターフェースを区別する領域

表記方法はOSやネットワーク機器によって異なりますが、意味は同じです。

表記例 区切り方
00:1A:2B:3C:4D:5E コロンで2桁ずつ区切る
00-1A-2B-3C-4D-5E ハイフンで2桁ずつ区切る
001A.2B3C.4D5E 4桁ずつドットで区切る

前半だけでメーカーを必ず特定できるとは限らない

一般的なグローバルMACアドレスでは、前半の領域に機器メーカーへ割り当てられた識別情報が含まれます。 そのため、MACアドレスからメーカーを推測できることがあります。

ただし、現在はスマートフォンやパソコンのWi-Fi機能がプライバシー保護のために ランダム化されたMACアドレスを使うことがあります。 仮想マシンやソフトウェアで作られたネットワークインターフェースもあるため、 MACアドレスの前半だけで実機のメーカーを断定することはできません。

MACアドレスは数字とアルファベットで表されますが、使用されるのは16進数のため、 アルファベットはA〜Fまでです。OやIなどは使用しません。

IPアドレスとMACアドレスの違い

IPアドレスとMACアドレスは、どちらも通信相手を識別するために使われます。 ただし、使われる場所と役割が異なります。

比較項目 IPアドレス MACアドレス
主な役割 通信相手がどのネットワークにいるかを識別する 現在のLAN上でフレームを届ける相手を識別する
使用される層 ネットワーク層 データリンク層
代表的な表記 192.168.1.10 00:1A:2B:3C:4D:5E
設定のされ方 手動設定やDHCPなどで割り当てられる 機器に設定済み、またはOSや仮想環境が生成する
ルーター通過時 基本的に宛先IPは維持される リンクごとに送信元・宛先MACが変わる
主に見る機器 ルーター、端末 スイッチ、端末

住所と配送担当に置き換えて考える

IPアドレス

遠くの目的地まで荷物を運ぶための住所に近い役割です。 どのネットワークへ向かうべきかを判断するために使われます。

MACアドレス

現在いる配送区間で、次に荷物を渡す相手を示す情報に近い役割です。 ルーターを越えて配送区間が変わると、次の相手も変わります。

この例えは役割を理解するための簡略化です。 実際の通信では、IPパケットがEthernetフレームの中に入れられ、 両方のアドレスが同時に使われます。

同じネットワーク内で通信する流れ

PC-Aから、同じネットワークにあるPC-Bへ通信するときの流れを確認します。

  1. PC-Aが宛先IPアドレスを確認する PC-Aは、自分のIPアドレスとサブネットマスクを使い、 宛先の192.168.1.20が同じネットワークにあると判断します。
  2. PC-BのMACアドレスを調べる PC-AはARPという仕組みを使い、 「192.168.1.20を持っている機器のMACアドレスを教えてください」と問い合わせます。
  3. PC-Bが自分のMACアドレスを返す PC-Bは、自分のMACアドレスがBB-BB-BB-BB-BB-BBであると応答します。
  4. PC-AがEthernetフレームを作る 宛先MACにPC-B、送信元MACにPC-Aを設定し、IPパケットをフレームへ入れます。
  5. スイッチがPC-Bのポートへ転送する スイッチは宛先MACアドレスを確認し、PC-Bが接続されているポートへフレームを送ります。

同一ネットワーク内で使われる宛先

💻 PC-A 送信元MAC:AA-AA-AA-AA-AA-AA
🔀 スイッチ 宛先MACを見て転送
💻 PC-B 宛先MAC:BB-BB-BB-BB-BB-BB

同じネットワーク内の相手へ送るときは、相手自身のMACアドレスを宛先にします。

別ネットワークへ通信する流れ

次に、PC-Aからインターネット上のWebサーバーなど、別のネットワークにある相手へ通信する場合を考えます。

PC-Aは、宛先IPアドレスが自分と同じネットワークではないと判断すると、 データをデフォルトゲートウェイへ渡します。 このとき、最初のEthernetフレームの宛先MACアドレスに設定するのは、 遠くにあるWebサーバーのMACアドレスではありません。

重要

別ネットワークへ送る最初のフレームでは、 宛先MACアドレスにデフォルトゲートウェイのMACアドレスを設定します。

別ネットワーク宛ての最初の区間

💻 PC-A 宛先IP:Webサーバー
宛先MAC:ルーター
🔀 スイッチ ルーターのMACへ転送
🌐 ルーター デフォルトゲートウェイ
MAC:CC-CC-CC-CC-CC-CC
宛先IPアドレス:遠くのWebサーバー
宛先MACアドレス:同じLANにあるデフォルトゲートウェイ

ルーターを越えるたびにMACアドレスは変わる

ルーターは受け取ったEthernetフレームからIPパケットを取り出し、 次の区間もEthernetであれば、送り出すための新しいEthernetフレームを作ります。 そのため、送信元MACアドレスと宛先MACアドレスは区間ごとに変わります。

区間1:PC → ルーター1 送信元MAC:PC
宛先MAC:ルーター1
区間2:ルーター1 → ルーター2 送信元MAC:ルーター1
宛先MAC:ルーター2
区間3:ルーター2 → サーバー 送信元MAC:ルーター2
宛先MAC:サーバー

一方、送信元IPアドレスと宛先IPアドレスは、基本的には通信の端から端まで使われます。 ただし、NATを通過する場合などはIPアドレスが変換されることがあります。

インターネット上にあるWebサーバーのMACアドレスを、自宅のPCが直接調べることはありません。 MACアドレスはルーターを越えてそのまま届く情報ではないからです。

スイッチはMACアドレスをどう使うのか

スイッチは、どのMACアドレスの機器がどのポートに接続されているかを MACアドレステーブルに記録します。

MACアドレス ポート
AA-AA-AA-AA-AA-AA ポート1
BB-BB-BB-BB-BB-BB ポート2
CC-CC-CC-CC-CC-CC ポート24

スイッチが行う基本動作

  1. 送信元MACアドレスを学習する フレームを受信したポートと送信元MACアドレスを対応付けて、MACアドレステーブルへ記録します。
  2. 宛先MACアドレスを検索する 受信したフレームの宛先MACアドレスが、どのポートに登録されているかを確認します。
  3. 該当するポートへ転送する 登録があれば、原則としてそのポートだけへフレームを転送します。

宛先MACアドレスがまだ登録されていない場合

スイッチが宛先MACアドレスを知らない場合、受信したポート以外の同じLAN内のポートへ フレームを広げて送ります。この動作をフラッディングと呼びます。

宛先から返信が返ると、スイッチはその送信元MACアドレスを学習できるため、 次回からは必要なポートだけへ転送できるようになります。

MACアドレステーブルの情報は永久に残るわけではありません。 一定時間通信がないエントリーは削除され、必要になれば再び学習されます。

ユニキャスト・マルチキャスト・ブロードキャスト

MACアドレスには、通信を届ける範囲によって主に次の3種類があります。

ユニキャスト

1台の相手へ届けるためのMACアドレスです。

通常のPC同士の通信や、PCからデフォルトゲートウェイへ送る通信で使われます。

マルチキャスト

特定のグループへ届けるためのMACアドレスです。

参加している複数の機器へ、同じ情報を効率よく送る用途などで使われます。

ブロードキャスト

同じLAN内の全機器へ届けるための特別なMACアドレスです。

FF:FF:FF:FF:FF:FFが使われ、ARPの問い合わせなどで登場します。

ARPでは、まだ相手のMACアドレスが分からないため、 最初の問い合わせをブロードキャストでLAN内の全機器へ送ります。

MACアドレスを確認する方法

自分のパソコンに設定されているMACアドレスは、OSの画面やコマンドで確認できます。 有線LAN、Wi-Fi、VPN、仮想アダプターなど、複数のインターフェースが表示されることがあります。

Windows

コマンドプロンプトで次のコマンドを実行します。

ipconfig /all

出力内の「物理アドレス」がMACアドレスです。 一覧だけを確認したい場合は、次のコマンドも使えます。

getmac /v

Linux

ターミナルで次のコマンドを実行します。

ip link show

出力内のlink/etherの後ろに表示される値がMACアドレスです。

macOS

ターミナルでは次のコマンドで確認できます。

ifconfig

対象インターフェースのetherの後ろに表示される値がMACアドレスです。

通信相手のMACアドレス

同じLAN内で通信した相手のIPアドレスとMACアドレスの対応は、ARPテーブルで確認できます。

arp -a

ARPの詳しい仕組みは、初級編第16回で解説します。

Wi-Fiでは、ネットワークごとにランダム化されたMACアドレスを使用する設定があります。 OSの設定画面と、実際にネットワーク上で見えるMACアドレスが異なる場合があります。

MACアドレスに関するよくある勘違い

MACアドレスはパソコン1台につき1つだけ

有線LAN、Wi-Fi、仮想アダプターなど、ネットワークインターフェースごとに別のMACアドレスを持つことがあります。

MACアドレスは絶対に変わらない

OSのランダム化機能、仮想環境、管理上の設定変更などにより、ネットワーク上で使用されるMACアドレスが変わることがあります。

インターネット上の相手までMACアドレスで直接届ける

MACアドレスは主に現在のLAN区間で使われます。ルーターを越えるたびにフレームが作り直され、MACアドレスも変わります。

MACアドレスが分かれば通信相手の場所まで分かる

MACアドレスだけでは、インターネット上の地理的な場所や所属ネットワークを特定できません。

同じMACアドレスは絶対に存在しない

本来は重複を避けるように割り当てられますが、手動変更、仮想環境、複製設定などによって重複する可能性があります。 同じLAN内で重複すると通信が不安定になることがあります。

別ネットワーク宛てではゲートウェイのMACアドレスを使う

宛先IPアドレスは遠くのサーバーでも、最初のEthernetフレームは同じLAN上にあるデフォルトゲートウェイへ渡します。

理解度チェック

記事の内容を確認するため、次の5問に答えてください。 解答を見る前に、一度自分で考えてみましょう。

問題1.MACアドレスの役割として最も適切なものはどれですか。

  1. Webサイトの名前をIPアドレスへ変換する
  2. LAN上でフレームを届けるネットワークインターフェースを識別する
  3. 通信を暗号化する
  4. インターネット上の経路をすべて決定する
解答を見る
正解:B

MACアドレスは、LAN上でEthernetフレームを届ける相手のネットワークインターフェースを識別するために使われます。

問題2.一般的なEthernetのMACアドレスは何ビットですか。

  1. 16ビット
  2. 32ビット
  3. 48ビット
  4. 128ビット
解答を見る
正解:C

一般的なMACアドレスは48ビットで、8ビットずつ6組に分けて16進数で表します。

問題3.PCから別ネットワーク上のWebサーバーへ送る最初のフレームでは、宛先MACアドレスに何を設定しますか。

  1. WebサーバーのMACアドレス
  2. DNSサーバーのMACアドレス
  3. デフォルトゲートウェイのMACアドレス
  4. 自分自身のMACアドレス
解答を見る
正解:C

別ネットワーク宛ての通信は、まず同じLAN上のデフォルトゲートウェイへ渡すため、 宛先MACアドレスにはデフォルトゲートウェイのMACアドレスを設定します。

問題4.ルーターを越えたとき、MACアドレスはどうなりますか。

  1. 通信の最後まで変わらない
  2. 区間ごとに送信元と宛先が作り直される
  3. 宛先MACだけが必ずFFになる
  4. IPアドレスと同じ値になる
解答を見る
正解:B

ルーターは次のリンクへ送るための新しいEthernetフレームを作るため、 送信元MACアドレスと宛先MACアドレスは区間ごとに変わります。

問題5.次のMACアドレスは何を意味しますか。

FF:FF:FF:FF:FF:FF

解答を見る
正解:ブロードキャストMACアドレス

同じLAN内の全機器へフレームを届けるための特別な宛先MACアドレスです。 ARPの問い合わせなどで使われます。

実践演習:宛先MACアドレスを判断しよう

次のネットワーク構成を見て、PC-Aが通信するときに使う宛先MACアドレスを考えます。

演習用ネットワーク

💻 PC-A IP:192.168.1.10
MAC:AA-AA-AA-AA-AA-AA
🔀 スイッチ ポート1:PC-A
ポート2:PC-B
ポート24:ルーター
💻 PC-B IP:192.168.1.20
MAC:BB-BB-BB-BB-BB-BB
🌐 ルーター IP:192.168.1.1
MAC:CC-CC-CC-CC-CC-CC

課題1.同一ネットワーク内のPC-Bへ送る

PC-Aが192.168.1.20のPC-Bへ通信するとき、Ethernetフレームの宛先MACアドレスは何になりますか。

宛先MACアドレス:________________
課題1の解答を見る

BB-BB-BB-BB-BB-BB

PC-Bは同じネットワークにあるため、PC-AはPC-B自身のMACアドレスを宛先にします。

課題2.別ネットワーク上のWebサーバーへ送る

PC-Aがインターネット上のWebサーバーへ通信するとき、最初のEthernetフレームの宛先MACアドレスは何になりますか。

宛先MACアドレス:________________
課題2の解答を見る

CC-CC-CC-CC-CC-CC

Webサーバーは別ネットワークにあるため、PC-Aは最初にデフォルトゲートウェイであるルーターへフレームを渡します。

課題3.スイッチの転送先を考える

スイッチのMACアドレステーブルが次の状態だとします。

MACアドレス ポート
AA-AA-AA-AA-AA-AA ポート1
BB-BB-BB-BB-BB-BB ポート2
CC-CC-CC-CC-CC-CC ポート24

PC-AからPC-B宛てのフレームをポート1で受信した場合、スイッチはどのポートへ転送しますか。

転送先ポート:________
課題3の解答を見る

ポート2

宛先MACアドレスBB-BB-BB-BB-BB-BBがポート2に登録されているため、スイッチはポート2へ転送します。

課題4.障害原因を考える

スイッチのMACアドレステーブルに、同じMACアドレスが短時間でポート2とポート3を行き来して登録されているとします。 どのような原因が考えられるでしょうか。

考えられる原因:____________________________
課題4の解答例を見る
  • 同じMACアドレスを設定した機器が複数存在する
  • 仮想マシンや複製した機器でMACアドレスが重複している
  • スイッチ間にループがあり、同じフレームが別ポートから到着している
  • 端末が物理的に接続先を移動している

実際の現場では、MACアドレステーブルの変化、配線、仮想環境、STPの状態などを確認して原因を絞り込みます。

自分の言葉で説明する課題

最後に、次の質問へ自分の言葉で答えてください。

「IPアドレスがあるのに、なぜMACアドレスも必要なのですか?」と質問されました。 30秒程度で説明してください。

IPアドレスは________________________________。
MACアドレスは_______________________________。
説明例を見る

IPアドレスは、通信相手がどのネットワークにいるかを判断し、遠くの宛先までデータを届けるために使われます。 MACアドレスは、現在接続しているLAN上で、次にフレームを渡すネットワークインターフェースを識別するために使われます。 同じLAN内なら相手のMACアドレスを使い、別ネットワーク宛てなら最初はデフォルトゲートウェイのMACアドレスを使います。

「IPはネットワークを越えるため」「MACは現在のLANで次の相手へ届けるため」 という違いを説明できれば、この記事の目標は達成です。

まとめ

  • MACアドレスは、LAN上でネットワークインターフェースを識別し、Ethernetフレームを届けるために使われる
  • 一般的なMACアドレスは48ビットで、16進数を6組並べて表す
  • IPアドレスは通信相手のネットワークを判断し、MACアドレスは現在のLAN上の届け先を指定する
  • 同じネットワーク内では、通信相手自身のMACアドレスを宛先にする
  • 別ネットワーク宛てでは、最初にデフォルトゲートウェイのMACアドレスを宛先にする
  • ルーターを越えるたびにEthernetフレームが作り直され、送信元MACと宛先MACが変わる
  • スイッチはMACアドレステーブルを使い、フレームを適切なポートへ転送する
  • FF:FF:FF:FF:FF:FFはLAN内の全機器へ送るブロードキャストMACアドレス
  • MACアドレスはランダム化や仮想化によって変わることがあり、必ずしも固定・一意とは限らない

MACアドレスを理解すると、ARP、Ethernetフレーム、スイッチング、 デフォルトゲートウェイの動作が一つの通信の流れとしてつながります。

次の記事:ポート番号とは何か

今回は、LAN上で通信相手のネットワークインターフェースを識別するMACアドレスを学びました。

次の記事では、1台のパソコンやサーバーの中で、 Web、メール、DNSなどのどのアプリケーションへデータを渡すのかを区別する 「ポート番号」を解説します。

IPアドレスが建物の住所なら、ポート番号は建物内の受付窓口に近い役割です。 IPアドレス、MACアドレス、ポート番号の3つを区別できるようにしましょう。

ネットワーク初級編 10/全32記事

初級編では、ネットワークの全体像からIPアドレス、MACアドレス、ポート番号、 DNS、TCP、基本コマンド、障害切り分けまでを順番に学びます。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次