前の記事では、TCP/IPモデルを使って HTTP・TCP・IP・Ethernetがそれぞれ異なる役割を担当している ことを学びました。
その中で、TCP/IPモデルの最下層にあたる ネットワークインターフェース層では、 Ethernetなどを利用して実際にLAN内でデータを転送します。
ここで重要になるのが、 MACアドレス(Media Access Control Address)です。
MACアドレスを学び始めると、多くの初学者が次の疑問を持ちます。
この疑問を解消すると、 Ethernet、L2スイッチ、IPアドレス、ルーターなど、 これから学習するネットワーク技術同士の関係が見えやすくなります。
MACアドレスの形式を覚えるだけではなく、 「同じLAN内でEthernetフレームが どの機器へ届けられるのか」 をイメージできる状態を目指します。
MACアドレスとは?
MACアドレスとは、 Ethernetなどのデータリンク層(L2)の通信で、 ネットワークインターフェースを識別するために使われるアドレス です。
一般的なEthernetのMACアドレスは 48ビット(6バイト)で構成され、 次のような形式で表されます。
16進数で12桁の値が並び、 環境によってコロンやハイフンなどで区切って表示されます。
MACアドレスは、 主に同じL2ネットワーク上でEthernetフレームを届けるために使われる情報 です。
MACアドレスはOSI参照モデルの第2層で使われる
以前学んだOSI参照モデルでは、 MACアドレスは 第2層(データリンク層) と深く関係します。
TCP/IPモデルでは、 Ethernetなどの機能は ネットワークインターフェース層 として整理されます。
つまり、前の記事で学習したTCP/IPモデルの最下層を もう少し詳しく見ているのが今回の記事です。
IPアドレスがあるのに、なぜMACアドレスが必要なのか
MACアドレスを理解するうえで、 ここが最も重要なポイントです。
IPアドレスとMACアドレスは、 どちらも通信相手を識別するために使われますが、 使われる階層と役割が異なります。
MACアドレス
L2上の転送先を識別Ethernetなどで、 フレームをどのインターフェースへ届けるのかを判断するときに使われます。
AA:BB:CC:DD:EE:FF
IPアドレス
ネットワーク上の通信相手を識別異なるネットワークを越えて、 最終的な通信相手へデータを届けるために使われます。
192.168.1.20
L2ではMACアドレス、 L3ではIPアドレス が重要になります。 IPアドレスについては次の記事で詳しく学習します。
同じLAN内ではMACアドレスを使ってフレームを届ける
具体的な通信を見てみましょう。
同じLANの中にPC-AとPC-Bがあるとします。
PC-AからPC-BへEthernetフレームを送る場合、 フレームには送信元MACアドレスと宛先MACアドレスが含まれます。
L2スイッチは、 この宛先MACアドレスを確認して、 適切なポートへEthernetフレームを転送します。
MACアドレスはEthernetフレームに含まれる
Ethernetでは、 データをフレーム(Ethernetフレーム) という単位で転送します。
細かなフィールドはありますが、 初学者の段階では次のようなイメージを持っておけば十分です。
つまり、 IPパケットなどのデータをEthernetで運ぶ際に、 その外側へ 送信元MACアドレスや宛先MACアドレスなどのL2情報 が付けられます。
L2スイッチはMACアドレスを見てフレームを転送する
L2通信で重要な機器が L2スイッチです。
スイッチは、 受信したフレームの送信元MACアドレスなどから 「どのMACアドレスの機器がどのポート側にいるのか」を学習します。
学習した情報は、 MACアドレステーブル などと呼ばれるテーブルに保持されます。
| MACアドレス | ポート |
|---|---|
| AA-AA | Port 1 |
| BB-BB | Port 2 |
| CC-CC | Port 3 |
たとえば宛先MACアドレスが BB-BBのフレームを受信すると、 スイッチはMACアドレステーブルを確認します。
BB-BBがPort 2に存在すると分かっていれば、 フレームをPort 2へ転送できます。
宛先MACアドレスをスイッチが知らない場合はどうなる?
では、宛先MACアドレスが MACアドレステーブルに登録されていなかった場合はどうなるでしょうか。
このようなフレームは Unknown Unicast(未知のユニキャスト) として扱われます。
L2スイッチは基本的に、 受信したポートを除く同一VLAN内のポートへ フレームを転送します。
この動作を フラッディング と呼びます。
その後、通信によってMACアドレスを学習すれば、 以降は必要なポートへ絞って転送できるようになります。
MACアドレスにはブロードキャストアドレスもある
Ethernetでは、 特定の1台だけではなく、 同じL2ネットワーク上の端末全体へフレームを送る場合もあります。
そのとき利用される代表的なアドレスが ブロードキャストMACアドレスです。
同じブロードキャストドメイン内へ フレームを送信するために利用されます。
今の段階では、 「FFが6個並んだMACアドレスはブロードキャスト」 と覚えておけば十分です。
MACアドレスはどのような形式になっている?
一般的なEthernet MACアドレスは48ビット、 つまり6バイトで構成されています。
合計すると、
MACアドレスの一部には、 ネットワーク機器のベンダーを識別する OUI(Organizationally Unique Identifier) が関係しています。
ただし、MACアドレスの割り当て方式や ローカルアドレスなどの詳細まで、 この段階で暗記する必要はありません。
MACアドレスは絶対に変更できない?
初心者向けの説明では、 MACアドレスを 「機器固有の変更できない番号」 と表現することがあります。
しかし、これは完全に正確ではありません。
ネットワークインターフェースにはMACアドレスが割り当てられていますが、 OS・仮想マシン・スマートフォンなどでは、 別のMACアドレスを設定・生成して利用するケースもあります。
特に近年のスマートフォンなどでは、 プライバシー保護のためにWi-Fi接続時のMACアドレスを ランダム化する機能もあります。
初級では、 「EthernetなどのL2通信でインターフェースを識別するためのアドレス」 と理解しておけば問題ありません。
ここで実際に試してみよう:L2スイッチの転送先を判断しよう
ここまでの内容を使って、 スイッチがEthernetフレームをどのポートへ転送するのか確認してみましょう。
宛先MACアドレスを選択すると、 MACアドレステーブルを参照した結果が表示されます。
MACアドレス転送シミュレーター
フレームの宛先MACアドレスを選択してください。
Port 2へ転送
宛先MACアドレスBB-BBはMACアドレステーブルに登録されています。 BB-BBはPort 2に存在するため、スイッチはフレームをPort 2へ転送します。
理解度チェック:MACアドレスとIPアドレスを区別してみよう
次は、 どの情報がL2で使われ、 どの情報がL3で使われるのかを確認します。
MACアドレスなのかIPアドレスなのか確認してみましょう。
MACアドレスは実際のネットワーク運用でも確認する
MACアドレスは、 資格試験のためだけに覚える知識ではありません。
実際のネットワーク運用やトラブルシューティングでも、 頻繁に確認する情報です。
MACアドレステーブルから、 特定の端末がどのポート側で学習されているか確認できます。
通信できない端末のMACアドレスが スイッチに正しく学習されているか確認できます。
VLANやスイッチポートなど、 L2ネットワークの切り分けにも利用できます。
確認問題:MACアドレスとL2通信を理解できたか確認しよう
最後に3問の確認問題へ挑戦してみましょう。
MACアドレスと特に関係が深いOSI参照モデルの層はどれですか?
MACアドレスはEthernetなどの 第2層(データリンク層)の通信で重要になる情報です。
L2スイッチがEthernetフレームの転送先を判断するとき、 主に利用する情報はどれですか?
L2スイッチはMACアドレステーブルと Ethernetフレームの宛先MACアドレスなどを利用して 転送先ポートを判断します。
EthernetのブロードキャストMACアドレスはどれですか?
FF:FF:FF:FF:FF:FFは、 Ethernetで利用されるブロードキャストMACアドレスです。
3問に挑戦してみましょう。
MACアドレスを理解したら、次はIPアドレスを理解しよう
ここまでで、 MACアドレスを使って 同じL2ネットワーク上でEthernetフレームを転送する仕組み を理解しました。
しかし、ネットワーク通信では 同じLAN内だけでなく、 別のネットワークに存在する端末とも通信する必要があります。
そこで重要になるのが、 OSI参照モデルの第3層で利用される IPアドレスです。
次の記事では、 IPv4アドレスの基本的な構造や、 ネットワーク部・ホスト部、 プライベートIPアドレスなどを学習していきます。
まとめ
今回は、MACアドレスとL2通信の基本について解説しました。
MACアドレスは EthernetなどのL2通信で利用される識別情報
一般的なEthernet MACアドレスは 48ビット(6バイト) で構成される
L2スイッチは 宛先MACアドレスとMACアドレステーブル を利用してフレームを転送する
宛先MACアドレスが未知の場合、 スイッチは同一VLAN内へ フラッディングする
MACアドレスはL2、 次に学ぶIPアドレスはL3で重要になる
次は「IPアドレスとは?IPv4の基本を理解する」を学びましょう
MACアドレスを使ったL2通信を理解したら、 次は異なるネットワークを越えて通信するために重要となる IPアドレスを学びます。 IPv4アドレスの構造やネットワーク部・ホスト部を理解すると、 ルーターがどのように通信先を判断するのかも理解しやすくなります。
次のレッスンへ進む →
