パソコンやWi-Fi、ルーターの設定を確認していると、
「IPアドレス」
「MACアドレス」
という2種類のアドレスが表示されることがあります。
たとえば、
IPアドレス:192.168.1.20
MACアドレス:00:11:22:33:44:55
のような表示です。
すると、
「MACアドレスとIPアドレスは何が違う?」
「どちらも機器を識別する番号ではないの?」
「IPアドレスがあればMACアドレスはいらない?」
「MACアドレスは一生変わらない?」
「Webサイトから自分のMACアドレスは分かる?」
「ARPは何をしている?」
「IPv6ではMACアドレスを使わない?」
と疑問に感じることがあります。
結論からいうと、「IPアドレス」はIPネットワーク上で通信先を識別し、ネットワークを越えてデータを届けるために使うアドレスです。一方、「MACアドレス」はEthernetやWi-Fiなどのリンク層で、同じリンク上の通信相手を識別するために使われるアドレスです。
一言で覚えるなら、
IPアドレス=「ネットワークを越えて目的地を示す住所」
MACアドレス=「今いるLAN内で次に届ける相手を示す識別子」
です。
一般的なEthernetでは、MACアドレスとして48ビットのIEEE 802アドレスが使われます。
一方、IPv4アドレスは32ビット、IPv6アドレスは128ビットです。
さらに両者は独立して存在するだけではありません。
IPv4のEthernet LANでは、
ARP
を利用して、IPアドレスに対応するEthernetアドレスを調べます。
IPv6ではARPの代わりに、
Neighbor Discovery(ND)
によって近隣ノードのリンク層アドレスを確認します。
この記事では、「MACアドレス」と「IPアドレス」の違いから、L2・L3、ARP、ルーター、スイッチングハブ、IPv6、MACアドレスのランダム化まで詳しく解説します。
- 「MACアドレス」と「IPアドレス」の違い【結論】
- 「MACアドレス」とは?
- MACアドレスは「パソコン本体の番号」?
- 「IPアドレス」とは?
- IPアドレスも「機器そのものの番号」ではない
- MACアドレスとIPアドレスの最大の違いは「使う範囲」
- 郵便でたとえると?
- ルーターを越えるとMACアドレスはどうなる?
- ルーターはリンク層のヘッダーを付け替える
- Webサイトから自分のMACアドレスは見える?
- 「ARP」とは?
- ARPの動作を簡単に説明すると
- 「ARPテーブル」とは?
- 別ネットワークのサーバーにもARPする?
- 「MACアドレス」と「スイッチングハブ」の関係
- 「IPアドレス」と「ルーター」の関係
- 「L2」と「L3」の違い
- MACアドレスは世界に1つだけ?
- 「メーカーが書き込んだMACアドレス」はある?
- 「MACアドレスのランダム化」とは?
- ランダムMACを使うと何が変わる?
- MACアドレスからメーカーが分かる?
- MACアドレスは変更できる?
- MACアドレス制限だけでセキュリティは十分?
- IPアドレスも変更できる?
- 同じMACアドレスでIPアドレスだけ変わることはある?
- 1つのMACアドレスに複数のIPアドレスを設定できる?
- 「IPv6」とMACアドレスの関係
- IPv6ではARPを使わない?
- IPv6アドレスにはMACアドレスが埋め込まれている?
- IPv6には一時的なIPアドレスもある
- 「MAC・IP」で迷ったときの3秒判定
- 「MACアドレス」を使った例文
- 「IPアドレス」を使った例文
- 具体例で比較:同じLANのプリンターへ送る
- 具体例で比較:インターネット上のWebサイトへ送る
- よくある間違い1:「MACアドレスとIPアドレスは同じもの」と思う
- よくある間違い2:「MACアドレスは必ず永久に変わらない」と思う
- よくある間違い3:「MACアドレスは世界中のどこからでも見える」と思う
- よくある間違い4:「IPアドレスとMACアドレスは必ず1対1」と思う
- よくある間違い5:「IPv6ではMACアドレスを使わない」と思う
- よくある間違い6:「IPv6アドレスには必ずMACアドレスが埋め込まれている」と思う
- よくある間違い7:「MACアドレスが分かれば安全に本人確認できる」と思う
- 「MACアドレス」と「IPアドレス」に関するよくある質問
- まとめ
- 参考リンク・出典
「MACアドレス」と「IPアドレス」の違い【結論】
| 比較項目 | MACアドレス | IPアドレス |
|---|---|---|
| 主な役割 | 同じリンク・LAN内で通信相手を識別 | IPネットワーク上の通信先を識別 |
| 代表的な階層 | L2(データリンク層) | L3(ネットワーク層) |
| 代表的な長さ | Ethernetでは一般に48ビット | IPv4は32ビット、IPv6は128ビット |
| 表記例 | 00:11:22:33:44:55 | 192.168.1.20、2001:db8::1 |
| 主に利用する機器 | スイッチ等 | ルーター等 |
| 別ネットワークまでそのまま使うか | 通常はリンクごとに変わる | ルーティングで宛先として使われる |
| 変更されるか | 変更・ランダム化される場合がある | DHCP、回線、ネットワーク移動等で変化する場合がある |
| IPv4で両者を対応付ける仕組み | ARP | |
| IPv6で近隣のリンク層アドレスを調べる仕組み | Neighbor Discovery | |
3秒で判断するなら、
「同じLANのどの機器へフレームを渡す?」 → MACアドレス
「IPネットワーク上のどこへパケットを届ける?」 → IPアドレス
と考えると分かりやすいでしょう。
「MACアドレス」とは?
Ethernet・Wi-Fiなどのリンク層で使うアドレス
MACは、
Media Access Control
の略です。
MACアドレスは、EthernetやWi-FiなどIEEE 802系ネットワークで、フレームを送受信するインターフェースを識別するために利用されます。
Ethernetでは一般に、
48ビット
のアドレスが使われます。
たとえば、
00:11:22:33:44:55
のように、16進数を使って表記します。
「:」ではなく、
00-11-22-33-44-55
のように「-」で表記される場合もあります。
MACアドレスは「パソコン本体の番号」?
初心者向けには、
「機器固有の番号」
と説明されることがあります。
しかし厳密には、MACアドレスはパソコンという物理的な箱そのものではなく、
ネットワークインターフェースに関連するリンク層アドレス
です。
たとえば1台のノートパソコンに、
- 有線LAN
- Wi-Fi
の両方があれば、それぞれ異なるMACアドレスを持つことがあります。
仮想ネットワークアダプターにも、別のMACアドレスが割り当てられる場合があります。
「IPアドレス」とは?
IPネットワークで送信元・宛先を示すアドレス
IPアドレスは、
Internet Protocol
で通信先を識別するためのアドレスです。
IPv4なら、
192.168.1.20
のような32ビットのアドレスを利用します。
IPv6なら、
2001:db8::1
のような128ビットのアドレスを利用します。
ルーターは宛先IPアドレスとルーティング情報を基に、パケットを次のネットワークへ転送します。
IPアドレスも「機器そのものの番号」ではない
IPアドレスについても、
「1台の機械に永久に1個付いている番号」
ではありません。
1台のパソコンが、
- IPv4アドレス
- IPv6アドレス
- Wi-Fi用アドレス
- 有線LAN用アドレス
- VPN用アドレス
など複数のIPアドレスを同時に持つ場合があります。
またDHCP等によってIPアドレスが変わることもあります。
MACアドレスとIPアドレスの最大の違いは「使う範囲」
両者の最大の違いは、
通信のどの範囲で利用するか
です。
MACアドレスは主に、
現在接続しているEthernet・Wi-Fiなどのリンク内
でフレームを届けるために利用します。
IPアドレスは、
ルーターを越えて別のIPネットワークまで通信する
ために利用します。
つまり、
MACアドレス=近距離の配送
IPアドレス=ネットワーク全体の配送
というイメージです。
郵便でたとえると?
完全な対応ではありませんが、イメージとしては、
IPアドレス=最終目的地の住所
MACアドレス=今いる配送拠点から次に荷物を渡す相手
に近い関係です。
遠い場所へ荷物を送る場合、最終目的地は変わりませんが、途中の配送拠点から次の配送拠点へ渡す相手は変化します。
ネットワークでも、IPパケットがルーターを通過すると、各リンクで利用するリンク層の送信元・宛先アドレスは変わります。
ルーターを越えるとMACアドレスはどうなる?
ここは両者の違いを理解するうえで非常に重要です。
パソコンAからインターネット上のサーバーへ通信するとします。
サーバーは自宅LANと同じリンクには存在しません。
そのためパソコンAは、サーバー自身のMACアドレスへ直接Ethernetフレームを送るわけではありません。
まず、
デフォルトゲートウェイであるルーター
へフレームを送ります。
このとき概念的には、
IP宛先=インターネット上の最終サーバー
Ethernet宛先MAC=自宅ルーター
となります。
ルーターはリンク層のヘッダーを付け替える
ルーターがパケットを別のリンクへ転送するときには、そのリンクで必要なリンク層情報を使って新たに転送します。
そのため、インターネット上で何台ものルーターを通過するとき、
MACアドレス等のリンク層情報は各リンクで変化します。
一方、NATなどがない通常のIPルーティングであれば、IPパケットの送信元・宛先IPアドレスは最終的な通信相手を示したままルーティングされます。
なお、NAT・NAPTを通過する場合にはIPアドレスやポート番号が途中で変換されることがあります。
Webサイトから自分のMACアドレスは見える?
通常のインターネット通信で、遠隔のWebサイトへ自宅PCのEthernet・Wi-Fi MACアドレスがそのまま送られるわけではありません。
MACアドレスは基本的に、そのリンク上で通信するために利用されます。
ルーターを越えるとリンク層ヘッダーは付け替えられるため、遠隔のWebサーバーが通常のHTTP通信だけから自宅PCのLAN側MACアドレスを取得することはできません。
Webサーバー側では、接続元IPアドレスなど別の情報が見えます。
ただし、同じWi-Fi・LAN内に存在するネットワーク機器や管理システムは、そのリンク上で使用しているMACアドレスを確認できる場合があります。
「ARP」とは?
IPv4アドレスからリンク層アドレスを調べる仕組み
IPv4のEthernet LANで重要なのが、
ARP(Address Resolution Protocol)
です。
RFC 826はARPについて、IPアドレスなどのプロトコルアドレスを、Ethernetの48ビットアドレスへ対応付ける仕組みとして規定しています。
たとえばパソコンが、
192.168.1.50
へIPv4パケットを送りたいとします。
同じEthernet LAN内の相手へ実際にフレームを送るには、その相手のMACアドレスを知る必要があります。
そこでARPを使います。
ARPの動作を簡単に説明すると
送信元PCが、
「192.168.1.50を使っている機器のMACアドレスを教えてください」
というARP Requestを送ります。
192.168.1.50を持つ端末が、
「私です。MACアドレスはXX:XX:XX:XX:XX:XXです」
というARP Replyを返します。
送信元はその対応関係を記録し、Ethernetフレームを相手へ送信します。
「ARPテーブル」とは?
毎回同じ相手へ通信するたびにARP問い合わせを行うのは非効率です。
そこでOSは、
IPアドレス ↔ MACアドレス
の対応を一定期間保存します。
一般にこれを、
ARPキャッシュ
ARPテーブル
などと呼びます。
Windowsでは、環境によってコマンドラインから、
arp -a
などを利用して確認できます。
別ネットワークのサーバーにもARPする?
最終サーバーが別ネットワークにある場合、通常はそのサーバー自身のMACアドレスをARPで調べません。
代わりに、
次の転送先であるデフォルトゲートウェイ
のMACアドレスを調べます。
たとえば、
PC:192.168.1.20
ルーター:192.168.1.1
Webサーバー:別ネットワーク
なら、PCは192.168.1.1に対応するMACアドレスを使ってルーターへフレームを送ります。
そこから先は各ルーターが次のリンクへ転送します。
「MACアドレス」と「スイッチングハブ」の関係
一般的なL2スイッチは、MACアドレスを利用してEthernetフレームの転送先を決めます。
スイッチは受信したフレームの送信元MACアドレスから、
「このMACアドレスはポート3の先にある」
といった情報を学習します。
その情報を、
MACアドレステーブル
に保存します。
宛先MACアドレスの接続先が分かっていれば、そのポートへフレームを転送できます。
「IPアドレス」と「ルーター」の関係
ルーターは、主に、
IPアドレス
を基にパケットを別のネットワークへ転送します。
つまり大まかには、
スイッチ+MACアドレス=LAN内の転送
ルーター+IPアドレス=ネットワーク間の転送
と整理できます。
「L2」と「L3」の違い
ネットワークの説明では、
L2
L3
という言葉がよく使われます。
一般的には、
L2=データリンク層
L3=ネットワーク層
です。
| 階層 | 代表的なアドレス | 代表的な機器 |
|---|---|---|
| L2 | MACアドレス | Ethernetスイッチ |
| L3 | IPアドレス | ルーター |
この関係を覚えておくと、ルーターとスイッチングハブの違いも理解しやすくなります。
MACアドレスは世界に1つだけ?
「どんな状況でも世界中で永久に重複しない」と考えるのは正確ではありません。
IEEE 802のアドレスには、グローバルに管理されるアドレスだけでなく、
Locally Administered Address
もあります。
さらに現在のスマートフォンやPCではプライバシー保護のため、Wi-Fi利用時などにランダム化したMACアドレスを使うことがあります。
IETFのRFC 9724およびRFC 9797でも、端末追跡などのプライバシー問題を軽減するため、MACアドレスのランダム化・変更が各種クライアントで利用されていることが説明されています。
「メーカーが書き込んだMACアドレス」はある?
あります。
ネットワークインターフェースには、製造・管理上グローバルに割り当てられたIEEEアドレスを持つものがあります。
そのため従来は、
「MACアドレスはNICに焼き付けられた変更不能な固有番号」
のように説明されることもありました。
しかし現在は、OSやネットワークドライバーが、実際の通信に別のローカルMACアドレスを使用できるため、この説明だけでは不十分です。
「MACアドレスのランダム化」とは?
スマートフォンなどが同じ固定MACアドレスをすべてのWi-Fi環境で使用すると、異なる場所でも、
「同じ端末が来た」
と関連付けられる可能性があります。
そこで端末が、ネットワークごとなどに異なるMACアドレスを生成して利用する仕組みが、
MACアドレスランダム化
です。
RFC 9797では、MACアドレスと端末・通信・位置・利用者を関連付けることで生じるプライバシー問題を軽減するために、このような技術が利用されていると説明しています。
ランダムMACを使うと何が変わる?
ネットワーク側で、
MACアドレス=常に同じ端末
という前提で設定していると影響が出ることがあります。
たとえば、
- MACアドレスによる端末登録
- DHCPの固定割り当て
- 利用端末管理
- アクセス制御
などです。
端末が使用するMACアドレスが変わると、ネットワーク側では別端末として扱われる場合があります。
MACアドレスからメーカーが分かる?
グローバルに割り当てられたIEEEアドレスでは、アドレスの一部から割り当て先組織を調べられる場合があります。
ただし、
- ローカル管理アドレス
- ランダム化MACアドレス
- 仮想ネットワーク
などでは、単純にMACアドレスから実際の端末メーカーを特定できるとは限りません。
したがって、
「MACアドレスの先頭を見れば必ずPCメーカーが分かる」
とは考えないほうがよいでしょう。
MACアドレスは変更できる?
使用するリンク層アドレスを変更できる環境があります。
OS、ドライバー、仮想マシン、Wi-Fiのプライバシー機能などによって、製造時に割り当てられたものとは異なるMACアドレスで通信することが可能です。
このため、
MACアドレス=絶対に偽装できない本人証明
ではありません。
MACアドレス制限だけでセキュリティは十分?
十分ではありません。
Wi-Fiルーターなどには、登録したMACアドレスだけを許可する、
MACアドレスフィルタリング
が用意されている場合があります。
しかしMACアドレスは通信上観測されたり、環境によって変更されたりする可能性があります。
そのためWi-Fiの安全性を確保するには、
- WPA2・WPA3等の適切な暗号化
- 強力なパスワード
- 機器のアップデート
- 適切なネットワーク分離
などを組み合わせることが重要です。
IPアドレスも変更できる?
IPアドレスも固定とは限りません。
たとえば家庭LANではDHCPによって、
192.168.1.20
だった端末が、将来、
192.168.1.35
になることがあります。
ネットワークを移動すれば、利用するIPアドレスはさらに変わります。
そのため、
IPアドレス=機械そのものを永久に識別する番号
でもありません。
同じMACアドレスでIPアドレスだけ変わることはある?
あります。
同じネットワークインターフェースが別のLANへ移動すれば、同じMACアドレスを使いながら別のIPアドレスを取得することがあります。
また同じLANでもDHCPの割り当てが変わる場合があります。
ただしMACアドレスランダム化を利用している環境では、MACアドレス側も変化することがあります。
1つのMACアドレスに複数のIPアドレスを設定できる?
できます。
1つのネットワークインターフェースに、
- IPv4アドレス
- IPv6アドレス
を同時に設定するのは一般的です。
さらに複数のIPv6アドレスを同時に持つこともあります。
したがって、
MACアドレスとIPアドレスが常に1対1対応
するわけではありません。
「IPv6」とMACアドレスの関係
IPv6でもEthernetやWi-Fiなどのリンクを利用する以上、リンク層アドレスは引き続き重要です。
IPv6ではIPv4のARPに代わり、
Neighbor Discovery Protocol(NDP・ND)
を利用します。
RFC 4861では、IPv6ノードがNeighbor Discoveryを利用して、同じリンク上の近隣ノードのリンク層アドレスを調べる仕組みが規定されています。
IPv6ではARPを使わない?
IPv6ではIPv4のARPをそのまま利用しません。
IPv6 Neighbor Discoveryでは、
- Neighbor Solicitation
- Neighbor Advertisement
- Router Solicitation
- Router Advertisement
など、ICMPv6を使ったメッセージが利用されます。
同じリンク上の相手のリンク層アドレスを知りたい場合には、Neighbor SolicitationとNeighbor Advertisementなどを利用します。
IPv6アドレスにはMACアドレスが埋め込まれている?
現在では「IPv6アドレスを見れば必ずMACアドレスが分かる」と考えるのは誤りです。
古い方式では、48ビットMACアドレスからModified EUI-64形式のインターフェース識別子を作る方法が利用されることがありました。
RFC 4291にもその生成方法が記載されています。
しかし、固定したリンク層アドレスをIPv6アドレスへ埋め込むと、端末追跡などのプライバシー上の問題が生じます。
そこでRFC 8064は、SLAACで安定したIPv6アドレスを生成するとき、
安定したリンク層アドレスをIPv6のInterface Identifierへ埋め込まない方式
を推奨しています。
IPv6には一時的なIPアドレスもある
RFC 8981では、IPv6のプライバシー向上のため、ランダム化されたInterface Identifierを持つ、
Temporary Address
の生成方式が規定されています。
一定期間ごとに異なるIPv6アドレスを利用することで、同じIPアドレスを長期間利用した場合の追跡を難しくできます。
つまり現在のネットワークでは、
MACアドレスも変化する場合がある
うえに、
IPv6アドレスも複数・一時的に変化する場合がある
ということです。
「MAC・IP」で迷ったときの3秒判定
| こんな場合 | 答え |
|---|---|
| 00:11:22:33:44:55 | MACアドレス |
| 192.168.1.20 | IPv4アドレス |
| 2001:db8::1 | IPv6アドレス |
| EthernetのL2通信 | MACアドレス |
| ネットワーク間のルーティング | IPアドレス |
| スイッチが学習 | MACアドレス |
| ルーターが経路判断 | IPアドレス |
| IPv4でIP→Ethernetアドレスを対応付け | ARP |
| IPv6で近隣のリンク層アドレスを確認 | Neighbor Discovery |
最も簡単に覚えるなら、
MACアドレス=「同じLANで次に渡す相手」
IPアドレス=「ネットワーク上の最終的な行き先」
です。
「MACアドレス」を使った例文
- ネットワークアダプターのMACアドレスを確認する。
- スイッチがMACアドレスを学習する。
- Wi-Fi接続でランダム化されたMACアドレスを利用する。
- DHCP予約へ端末のMACアドレスを登録する。
- ARPによってIPアドレスに対応するMACアドレスを調べる。
「IPアドレス」を使った例文
- パソコンへIPアドレスを割り当てる。
- ルーターが宛先IPアドレスを確認する。
- DHCPからIPアドレスを取得する。
- DNSでドメイン名に対応するIPアドレスを調べる。
- IPv6のIPアドレスでサーバーへ接続する。
具体例で比較:同じLANのプリンターへ送る
パソコンが、同じ家庭LAN内にあるプリンターへデータを送りたいとします。
プリンターのIPv4アドレスが、
192.168.1.100
だったとします。
パソコンはまず、このIPアドレスが同じサブネット内にあると判断します。
そしてARP等によって、192.168.1.100に対応するMACアドレスを確認します。
その後、
IP宛先=192.168.1.100
Ethernet宛先=プリンターのMACアドレス
として通信します。
具体例で比較:インターネット上のWebサイトへ送る
今度は、同じPCからインターネット上のWebサーバーへアクセスするとします。
サーバーは同じLANではありません。
そのためPCは、サーバーのMACアドレスを直接調べません。
PCは、
IP宛先=WebサーバーのIPアドレス
としたパケットを、
Ethernet宛先=デフォルトゲートウェイのMACアドレス
としてルーターへ渡します。
この例が、MACアドレスとIPアドレスの役割の違いを最も分かりやすく表しています。
よくある間違い1:「MACアドレスとIPアドレスは同じもの」と思う
違います。
MACアドレスは主にリンク層、IPアドレスはネットワーク層で利用します。
よくある間違い2:「MACアドレスは必ず永久に変わらない」と思う
現在ではWi-Fiのプライバシー機能などによって、ランダム化・変更されたMACアドレスを利用することがあります。
よくある間違い3:「MACアドレスは世界中のどこからでも見える」と思う
通常のIP通信ではMACアドレスはリンクごとに使用され、ルーターを越えて最終サーバーまで同じMACアドレスが運ばれるわけではありません。
よくある間違い4:「IPアドレスとMACアドレスは必ず1対1」と思う
違います。
1つのインターフェースがIPv4・IPv6を含む複数のIPアドレスを持つ場合があります。
よくある間違い5:「IPv6ではMACアドレスを使わない」と思う
EthernetやWi-Fiなどを利用する限り、リンク層アドレスは引き続き使われます。
IPv6ではARPの代わりにNeighbor Discoveryを利用します。
よくある間違い6:「IPv6アドレスには必ずMACアドレスが埋め込まれている」と思う
現在の推奨では、安定したIPv6 Interface IdentifierへMACアドレスをそのまま反映する方式は推奨されていません。
プライバシー保護のため、別の生成方式や一時アドレスが利用されます。
よくある間違い7:「MACアドレスが分かれば安全に本人確認できる」と思う
MACアドレスは変更可能な場合があり、ランダム化も普及しています。
そのためMACアドレスだけを強力な本人認証手段として扱うのは適切ではありません。
「MACアドレス」と「IPアドレス」に関するよくある質問
Q1. MACアドレスとIPアドレスの一番簡単な違いは?
MACアドレスは主に同じリンク内の通信、IPアドレスはネットワークを越えた通信先の指定に利用します。
Q2. MACアドレスは何ビットですか?
Ethernet等では48ビットのIEEE 802アドレスが一般的です。
ただし「リンク層アドレス」という広い概念では、すべてのネットワーク技術が必ず48ビットとは限りません。
Q3. IPアドレスは何ビットですか?
IPv4は32ビット、IPv6は128ビットです。
Q4. MACアドレスからIPアドレスが分かりますか?
ネットワーク環境によってはARPテーブル、DHCP管理情報などから対応関係を確認できる場合があります。
ただしMACとIPは常に世界中で1対1に固定されているわけではありません。
Q5. IPアドレスからMACアドレスが分かりますか?
同じIPv4 LAN内などではARPによってリンク層アドレスを調べられる場合があります。
しかしインターネット上の遠隔サーバーについて、そのサーバーのMACアドレスを自宅PCからARPで取得することは通常できません。
Q6. ルーターはMACアドレスを使いますか?
使います。
ルーターはIPアドレスで経路を判断しますが、Ethernetなどのリンク上で次の機器へ実際にフレームを送る際にはリンク層アドレスも利用します。
Q7. Wi-FiにもMACアドレスがありますか?
はい。
IEEE 802.11のWi-Fi通信でもMACアドレスが利用されます。
現在の端末ではプライバシー保護のためランダム化されたMACアドレスが利用される場合があります。
Q8. MACアドレスを変更するとインターネットへ接続できなくなりますか?
環境によります。
MACアドレスを基にDHCP予約、認証、アクセス制御などを行っているネットワークでは影響が出る場合があります。
Q9. IPv6でもARPを使いますか?
IPv6ではIPv4のARPではなく、Neighbor Discoveryを利用して近隣ノードのリンク層アドレスなどを確認します。
Q10. MACアドレスとIPアドレスはどちらが重要ですか?
どちらが上という関係ではありません。
IPネットワークで通信するにはIPアドレスが必要であり、EthernetやWi-Fiの同一リンク上で実際にフレームを届けるにはリンク層アドレスが重要になります。
両者が異なる階層で協力して通信を成立させています。
まとめ
「MACアドレス」と「IPアドレス」は、どちらもネットワーク通信で使うアドレスですが、役割と利用範囲が異なります。
| MACアドレス | IPアドレス |
|---|---|
| 主にL2 | 主にL3 |
| 同じリンク上で利用 | IPネットワーク全体で利用 |
| Ethernetでは一般に48ビット | IPv4は32ビット、IPv6は128ビット |
| スイッチが転送判断に利用 | ルーターが経路判断に利用 |
| 各リンクで変化し得る | 通信の送信元・宛先として利用 |
最も簡単な覚え方は、
MACアドレス=「同じLAN内で次に届ける相手」
IPアドレス=「IPネットワーク上で届けたい目的地」
です。
IPv4のEthernet通信では、IPアドレスだけ分かっていても実際に同一LANの相手へフレームを送るにはリンク層アドレスが必要になるため、
ARP
によってIPアドレスとEthernetアドレスの対応を調べます。
IPv6ではARPを使わず、
Neighbor Discovery
を利用します。
また、MACアドレスについて、
「端末に永久に固定された絶対に変更できない番号」
と覚えるのも現在では正確ではありません。
Wi-Fiなどではプライバシー保護のため、ランダム化されたMACアドレスが利用されるようになっています。
同様にIPアドレスもDHCP、ネットワーク移動、IPv6の一時アドレスなどによって変化します。
したがってネットワークを理解するときは、
MACアドレス=機械そのものを永久識別する番号
IPアドレス=人間そのものを識別する番号
とは考えないことが重要です。
最後に通信全体を整理すると、
スイッチ+MACアドレス=同じLAN内のL2転送
ルーター+IPアドレス=ネットワーク間のL3転送
ARP=IPv4でIPとリンク層アドレスを対応付け
Neighbor Discovery=IPv6で近隣ノード・リンク層アドレス等を確認
と覚えると、MACアドレスとIPアドレスの違いを理解しやすくなるでしょう。
参考リンク・出典
-
IETF / RFC Editor「RFC 826: An Ethernet Address Resolution Protocol」
― ARPを規定するInternet Standard。IPなどのプロトコルアドレスからEthernetの48ビットアドレスへ対応付ける仕組みを説明 -
IETF / RFC Editor「RFC 4861: Neighbor Discovery for IP version 6 (IPv6)」
― IPv6 Neighbor Discoveryを規定。同じリンク上のノードが互いの存在・リンク層アドレス・ルーター・到達可能性などを確認する仕組みを説明 -
IETF / RFC Editor「RFC 4291: IP Version 6 Addressing Architecture」
― IPv6の128ビットアドレス体系、インターフェース識別子、IEEE 802の48ビットMACアドレスからModified EUI-64形式を生成する従来方式などを解説 -
IETF / RFC Editor「RFC 8064: Recommendation on Stable IPv6 Interface Identifiers」
― IPv6 SLAACで安定したアドレスを生成するとき、固定されたリンク層アドレスをInterface Identifierへ埋め込む方式をデフォルトとして使用しないことを推奨 -
IETF / RFC Editor「RFC 8981: Temporary Address Extensions for Stateless Address Autoconfiguration in IPv6」
― プライバシー向上を目的に、一時的・ランダム化されたInterface Identifierを利用するIPv6 Temporary Addressを規定 -
IETF / RFC Editor「RFC 7042: IANA Considerations and IETF Protocol and Documentation Usage for IEEE 802 Parameters」
― IEEE 802で利用されるEUI-48・EUI-64等のアドレスと、IANAに割り当てられたIEEE識別子の扱いを整理 -
IETF「RFC 9797: Randomized and Changing Media Access Control (MAC) Addresses」
― MACアドレスと端末・通信・位置・利用者を関連付けることによるプライバシー問題、およびWi-Fi等で利用されるMACアドレスランダム化の背景・影響を解説
※本記事では一般的なEthernet・Wi-Fi環境を中心に「MACアドレス=L2」「IPアドレス=L3」と整理しています。すべてのデータリンク技術が必ず48ビットMACアドレスを利用するわけではありません。
※MACアドレスは「機器から絶対に変更できない永久固有番号」とは限りません。ローカル管理アドレス、仮想インターフェース、Wi-FiのMACアドレスランダム化などによって、実際の通信で利用するアドレスが変化する場合があります。
※IPv6アドレスにMACアドレスが必ず埋め込まれているわけではありません。RFC 8064では、安定したIPv6アドレスのInterface Identifierへ固定リンク層アドレスを埋め込む方式をデフォルトとして利用しないことが推奨されています。
※遠隔Webサイトが通常のIP通信だけでLAN側のMACアドレスを直接取得することはできませんが、同一リンク上のネットワーク設備や管理システムからは使用中のリンク層アドレスが確認できる場合があります。
※ARP・Neighbor Discovery・MACアドレス学習などの具体的な動作は、利用するOS、リンク技術、仮想化環境、ネットワーク機器等によって詳細が異なる場合があります。
