この記事は、 「ネットワーク初級編|通信の仕組みをゼロから学ぶ」 の第10回です。
前回までに学んだIPアドレス、サブネットマスク、デフォルトゲートウェイを踏まえ、 今回はLAN内でデータを届けるために使われるMACアドレスを学びます。
MACアドレスとは?IPアドレスとの違いと通信での役割を初心者向けに図解
パソコンが同じLAN内の相手へデータを届けるとき、IPアドレスだけでなくMACアドレスも使われます。 この記事では、MACアドレスの意味、48ビットの見方、IPアドレスとの違い、スイッチが通信を転送する仕組み、 ルーターを越えるとMACアドレスが変わる理由を図解します。
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フレームの詳しい構造は、初級編第15回「Ethernetフレームの基本」で学びます。 今回は、LAN内では送信元と宛先のMACアドレスを付けてデータを運ぶと理解できれば十分です。
まず全体を1枚の図で理解する
同じLAN内にあるPC-AからPC-Bへ通信する場合を考えます。
同一LAN内でMACアドレスを使って届ける
MAC:AA-AA-AA-AA-AA-AA
転送先ポートを決める
MAC:BB-BB-BB-BB-BB-BB
宛先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進数で表します。
ベンダー識別に使われる領域
インターフェースを区別する領域
表記方法は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へ通信するときの流れを確認します。
- PC-Aが宛先IPアドレスを確認する PC-Aは、自分のIPアドレスとサブネットマスクを使い、 宛先の192.168.1.20が同じネットワークにあると判断します。
- PC-BのMACアドレスを調べる PC-AはARPという仕組みを使い、 「192.168.1.20を持っている機器のMACアドレスを教えてください」と問い合わせます。
- PC-Bが自分のMACアドレスを返す PC-Bは、自分のMACアドレスがBB-BB-BB-BB-BB-BBであると応答します。
- PC-AがEthernetフレームを作る 宛先MACにPC-B、送信元MACにPC-Aを設定し、IPパケットをフレームへ入れます。
- スイッチがPC-Bのポートへ転送する スイッチは宛先MACアドレスを確認し、PC-Bが接続されているポートへフレームを送ります。
同一ネットワーク内で使われる宛先
同じネットワーク内の相手へ送るときは、相手自身のMACアドレスを宛先にします。
別ネットワークへ通信する流れ
次に、PC-Aからインターネット上のWebサーバーなど、別のネットワークにある相手へ通信する場合を考えます。
PC-Aは、宛先IPアドレスが自分と同じネットワークではないと判断すると、 データをデフォルトゲートウェイへ渡します。 このとき、最初のEthernetフレームの宛先MACアドレスに設定するのは、 遠くにあるWebサーバーのMACアドレスではありません。
別ネットワークへ送る最初のフレームでは、 宛先MACアドレスにデフォルトゲートウェイのMACアドレスを設定します。
別ネットワーク宛ての最初の区間
宛先MAC:ルーター
MAC:CC-CC-CC-CC-CC-CC
宛先MACアドレス:同じLANにあるデフォルトゲートウェイ
ルーターを越えるたびにMACアドレスは変わる
ルーターは受け取ったEthernetフレームからIPパケットを取り出し、 次の区間もEthernetであれば、送り出すための新しいEthernetフレームを作ります。 そのため、送信元MACアドレスと宛先MACアドレスは区間ごとに変わります。
宛先MAC:ルーター1
宛先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 |
スイッチが行う基本動作
- 送信元MACアドレスを学習する フレームを受信したポートと送信元MACアドレスを対応付けて、MACアドレステーブルへ記録します。
- 宛先MACアドレスを検索する 受信したフレームの宛先MACアドレスが、どのポートに登録されているかを確認します。
- 該当するポートへ転送する 登録があれば、原則としてそのポートだけへフレームを転送します。
宛先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
コマンドプロンプトで次のコマンドを実行します。
出力内の「物理アドレス」がMACアドレスです。 一覧だけを確認したい場合は、次のコマンドも使えます。
Linux
ターミナルで次のコマンドを実行します。
出力内のlink/etherの後ろに表示される値がMACアドレスです。
macOS
ターミナルでは次のコマンドで確認できます。
対象インターフェースのetherの後ろに表示される値がMACアドレスです。
通信相手のMACアドレス
同じLAN内で通信した相手のIPアドレスとMACアドレスの対応は、ARPテーブルで確認できます。
ARPの詳しい仕組みは、初級編第16回で解説します。
Wi-Fiでは、ネットワークごとにランダム化されたMACアドレスを使用する設定があります。 OSの設定画面と、実際にネットワーク上で見えるMACアドレスが異なる場合があります。
MACアドレスに関するよくある勘違い
有線LAN、Wi-Fi、仮想アダプターなど、ネットワークインターフェースごとに別のMACアドレスを持つことがあります。
OSのランダム化機能、仮想環境、管理上の設定変更などにより、ネットワーク上で使用されるMACアドレスが変わることがあります。
MACアドレスは主に現在のLAN区間で使われます。ルーターを越えるたびにフレームが作り直され、MACアドレスも変わります。
MACアドレスだけでは、インターネット上の地理的な場所や所属ネットワークを特定できません。
本来は重複を避けるように割り当てられますが、手動変更、仮想環境、複製設定などによって重複する可能性があります。 同じLAN内で重複すると通信が不安定になることがあります。
宛先IPアドレスは遠くのサーバーでも、最初のEthernetフレームは同じLAN上にあるデフォルトゲートウェイへ渡します。
理解度チェック
記事の内容を確認するため、次の5問に答えてください。 解答を見る前に、一度自分で考えてみましょう。
問題1.MACアドレスの役割として最も適切なものはどれですか。
- Webサイトの名前をIPアドレスへ変換する
- LAN上でフレームを届けるネットワークインターフェースを識別する
- 通信を暗号化する
- インターネット上の経路をすべて決定する
解答を見る
MACアドレスは、LAN上でEthernetフレームを届ける相手のネットワークインターフェースを識別するために使われます。
問題2.一般的なEthernetのMACアドレスは何ビットですか。
- 16ビット
- 32ビット
- 48ビット
- 128ビット
解答を見る
一般的なMACアドレスは48ビットで、8ビットずつ6組に分けて16進数で表します。
問題3.PCから別ネットワーク上のWebサーバーへ送る最初のフレームでは、宛先MACアドレスに何を設定しますか。
- WebサーバーのMACアドレス
- DNSサーバーのMACアドレス
- デフォルトゲートウェイのMACアドレス
- 自分自身のMACアドレス
解答を見る
別ネットワーク宛ての通信は、まず同じLAN上のデフォルトゲートウェイへ渡すため、 宛先MACアドレスにはデフォルトゲートウェイのMACアドレスを設定します。
問題4.ルーターを越えたとき、MACアドレスはどうなりますか。
- 通信の最後まで変わらない
- 区間ごとに送信元と宛先が作り直される
- 宛先MACだけが必ずFFになる
- IPアドレスと同じ値になる
解答を見る
ルーターは次のリンクへ送るための新しいEthernetフレームを作るため、 送信元MACアドレスと宛先MACアドレスは区間ごとに変わります。
問題5.次のMACアドレスは何を意味しますか。
FF:FF:FF:FF:FF:FF
解答を見る
同じLAN内の全機器へフレームを届けるための特別な宛先MACアドレスです。 ARPの問い合わせなどで使われます。
実践演習:宛先MACアドレスを判断しよう
次のネットワーク構成を見て、PC-Aが通信するときに使う宛先MACアドレスを考えます。
演習用ネットワーク
MAC:AA-AA-AA-AA-AA-AA
ポート2:PC-B
ポート24:ルーター
MAC:BB-BB-BB-BB-BB-BB
MAC:CC-CC-CC-CC-CC-CC
課題1.同一ネットワーク内のPC-Bへ送る
PC-Aが192.168.1.20のPC-Bへ通信するとき、Ethernetフレームの宛先MACアドレスは何になりますか。
課題1の解答を見る
BB-BB-BB-BB-BB-BB
PC-Bは同じネットワークにあるため、PC-AはPC-B自身のMACアドレスを宛先にします。
課題2.別ネットワーク上のWebサーバーへ送る
PC-Aがインターネット上のWebサーバーへ通信するとき、最初のEthernetフレームの宛先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秒程度で説明してください。
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フレーム、スイッチング、 デフォルトゲートウェイの動作が一つの通信の流れとしてつながります。

コメント