PR

【L2層・データリンク層】MACアドレス・スイッチング・ARP【YouTube解説動画あり】

ネットワーク
スポンサーリンク

今回はL2層・データリンク層に分類されるMACアドレス、スイッチング、ARPについてご紹介します。

それぞれの用語をバラバラにご紹介してもいいのですが、一緒に紹介すると関連性がつかめてわかりやすいかと思いますのでまとめてご紹介します。

OSI参照モデルについてはこちら

MACアドレスとは


MACアドレスとは16進数で表される48bit(6byte)の番号です。

MACアドレスは『AA:BB:CC:00:11:22』のように16進数が使用がされます。

2文字ごとに『:(コロン)』で区切られ、この区切りをオクテットと呼びます。

前半の24bitは各メーカーやベンダー固有の番号となっています。

ベンダー、メーカによっては複数コードがある場合もあります。

後半の24bitはベンダーやメーカ内で管理されるコードとなっています。

厳密には1オクテット目は機種・製品を意味し、それ以降はシリアルIDを意味します。

MACアドレスは基本的には一意となっており、この世に1つしかない番号となっています。

MACアドレスはNIC(Network Interface Card)やWi-Fiのアンテナ1つ対して1つ付与されています。

この世に1つしかない番号ではありますが、ソフトウェア的に偽装することは簡単です。

またiOSやAndroidの最近のバージョンでは通信に用いるMACアドレスのランダム化がデフォルトで有効となっています。

MACアドレスが使用されるタイミング

MACアドレスはOSI参照モデルではL2層・データリンク層に分類され、主にスイッチングで利用されます。

またこの世に1つしかない番号ということを活かしてセキュリティ対策としても用いることがあります。

スイッチング

スイッチングは同じセグメント・ブロードキャストドメイン間を通信する際に用いられます。

スイッチングを行う機器としては主にL2スイッチやスイッチングハブが挙げられます。

L2層・データリンク層のヘッダは基本的には14byteで宛先MACアドレス(6byte)、送信元MACアドレス(6byte)、Type(2byte)となっています。

『基本的に』と記載したのはタグVLANが使用される場合はこの限りではないからです。

なお、タグVLANについては別の機会にご紹介します。

宛先・送信元MACアドレスはその名の通り、通信したい宛先の機器のMACアドレスと送信元の機器のMACアドレスです。

TypeはIPv4やIPv6、ARPなどの通信のタイプを表しています。

スイッチングとはこの宛先MACアドレスを見て、そのMACアドレスを持つ機器に転送を行うことを差します。

PCが通信を行った際、L2スイッチやスイッチングハブがL2ヘッダの宛先MACアドレスを見て、そのMACアドレスを持つ端末へ転送を行います。

このようにしてスイッチングが行われますが、ここで『どうやってMACアドレスを知るの?』という疑問が生まれます。

MACアドレスを知る方法

MACアドレスを知る方法には『ARP(Address Resolution Protocol)』を使用します。

OSI参照モデルから見る通信の処理順についてで説明したように、通信を送信する側はL7層・アプリケーション層からL1層・物理層に向かって通信の処理が行われます。

宛先IPアドレスが決まり、次はL2層・データリンク層へ処理が渡されます。

宛先IPアドレスを持つ端末もしくは、別セグメントの場合はデフォルトゲートウェイであるルータのMACアドレスを知らなければ通信することができません。

このときに用いられるのが『ARP』です。

このIPアドレスを持つ端末はMACアドレスを教えてとセグメント・ブロードキャストドメイン全体に送信します(ブロードキャスト)。

該当のIPアドレスを持つ端末は自分が持っていると返事をします。

返事をする際は、ブロードキャストではなく、送信MACアドレスを見て該当する端末のみに送信します。

このようにして通信したい端末のMACアドレスを知ることができます。

MACアドレステーブルとARPテーブル

混同してしまいがちなものとして『MACアドレステーブル』と『ARPテーブル』があります。

【MACアドレステーブル】

『MACアドレステーブル』はこのポート(インタフェース)の配下にはこのMACアドレスを持った端末がいるという管理票です。

PCなどの接続されている端末が通信する際の送信元MACアドレスを見て、このMACアドレスを持つ端末がこのポート(インタフェース)にいると記録していきます。

いざその端末宛に通信があった際にはMACアドレステーブルを参照し、転送・スイッチングを行います。

MACアドレステーブルにはずっと情報が保持されているわけではなく、一定時間通信が行われない場合は削除されます。

保持される時間はOSやメーカによって異なりますし、多くの場合は設定変更することが可能です。

主に、L2スイッチやスイッチングハブが保有するテーブルとなります。

【ARPテーブル】

『ARPテーブル』はMACアドレスとIPアドレスの対応表です。

ARPの問い合わせ結果をこのARPテーブルへ記録しておきます。

端末が通信する際はまずこのARPテーブルを参照します。

ARPテーブルに通信したいIPアドレスに対応するMACアドレスの記載がある場合はそのMACアドレス宛に通信を行います。

通信したいIPアドレスに対応するMACアドレスの記載がない場合はARPによってMACアドレスの解決を行います。

ARPテーブルに情報がずっと保持されているわけではなく、一定時間通信が行われない場合は削除されます。

保持される時間はOSやメーカによって異なりますし、多くの場合は設定変更することが可能です。

主にPCやルータ、L3スイッチなどのL3層・ネットワーク層以上のネットワーク機器が保有します。

L2スイッチの中には管理用でIPアドレスを持つことができたり、簡易的なルーティング機能を持つものがありますので、このような機能がある場合はARPテーブルを保持することがあります。

ここで一つ疑問が浮かびます。

MACアドレステーブルとARPテーブルの保存される時間の違いによって、MACアドレステーブルには削除されているが、ARPテーブルにはあるという状態の場合はどうなるの?

この場合、L2スイッチやスイッチングハブはスイッチングすることができませんが、接続されているポート・インタフェース全体に送信する、リピーターハブのような動きをすることでことで事なきを得ます。

このことをフラッディングと呼びます。

セキュリティ対策

この世に1つしかないという利点を活かして、MACアドレスはセキュリティ対策としても使用されることがあります。

MACアドレスをセキュリティに用いるメリットは、単純に接続しただけでは通信することができなくなる点が挙げられます。

DHCP

自動でIPアドレスを払い出すDHCPで、事前に設定したMACアドレスにしかIPアドレスを払い出さないという設定をすることができます。

会社でWi-Fiを使用しているときに使用されることがあります。

打ち合わせなどで来訪した社外の方などが万が一接続したとしても、設定したMACアドレスでない端末の場合はIPアドレスが付与されないので通信することができません。

設定したMACアドレスに対して、意図的に自動ではなく決まったIPアドレスを払い出す場合にも用いられます。

送信元MACで制御

FWなどで指定した送信元MACアドレス以外の通信をブロックするという設定を行うことがあります。

こちらも万が一勝手に接続されても通信することができません。

ポートセキュリティ

L2スイッチの機能として指定したMACアドレス以外の機器が接続された場合、ポート(インタフェース)をリンクアップさせないようにする機能があります。

Ciscoではポートセキュリティと呼ばれています。

指定された機器以外に接続されたくない場合に使用します。

私の経験では、オフィスなどの社員が多く出入りする場所はトラブルを生むので設定することは少ないですが、普段立ち入りできないような場所に勝手に接続されないように設定することがありました。

MACアドレスをセキュリティ対策に用いるデメリット

MACアドレスをセキュリティに用いるデメリットは3点あります。

MACアドレスによるセキュリティ対策を行うことでセキュリティが増すことは確かです。

もちろんデメリットもありますので、デメリットと比較してセキュリティが増すというメリットが上回るのであれば採用を検討すべきかと思います。

  1. 指定しているMACアドレスが漏洩してしまう可能性
  2. 設定変更の回数が増える
  3. 設定が原因でトラブルを生む

デメリット①:指定しているMACアドレスが漏洩するしてしまう可能性

ネットワーク機器自体の設定や設定資料からMACアドレスが漏洩してしまう可能性があります。

漏洩してしまうと、MACアドレスを偽装され、セキュリティを突破されてしまいます。

もともと取り扱いには注意が必要ですが、設定ファイルや資料の扱いにさらに注意する必要があります。

デメリット②:設定変更の回数が増える

新しい社員が増えたり、PCの故障などでMACアドレスの増減・変更があれば、その都度設定変更が必要になります。

設定変更を自社ではなく、別会社にお願いしている場合は設定変更の度に費用が発生する場合もあります。

MACアドレス自体を完全一致で設定する必要があるので、設定ミスが発生しやすくもあります。

デメリット③:設定が原因でトラブルを生む

MACアドレスで制御していることを忘れていると、接続できないトラブルが発生します。

PCとネットワーク機器を管理する会社が別な場合は事前に申請が必要で、申請を忘れたら翌日にしか対応できず作業が延期になるなど、連携面でのミスも発生しやすくあります。

まとめ

MACアドレス、スイッチング、ARPについてご紹介しました。

覚える量は多いかもしれませんが、関連性を意識して覚えるとわかりやすいかと思います。

MACアドレス
・48bitの16進数で表される番号
・前半24bitはベンダ・メーカコード、後半24bitはベンダ・メーカ内の管理コード
・基本的にはこの世に1つしか存在しない番号
・偽装は簡単
・iOSやAndroidでは通信に用いるMACアドレスのランダム化が行われている

スイッチング
・宛先MACアドレスを見て、そのMACアドレスを持つ端末に転送する

ARP
・端末が通信したい宛先のMACアドレスを知らないときに使用するプロトコル
・送るときはブロードキャストで全体に送る

MACアドレステーブル
・ポート(インタフェース)と配下にいる機器のMACアドレスがいるという管理票
・通信が行われている度に記録されていく、一定時間通信が行われなければ削除される
・L2スイッチやスイッチングハブが保持する

ARPテーブル
・IPアドレスとMACアドレスの対応表
・端末は通信する際に自身のARPテーブルを参照、なければARPで解決を行う
・一定時間通信が行われなければ削除される
・PCやルータなどが保持する

MACアドレスはセキュリティ対策でも使える
・指定したMACアドレスを持つ端末のみにDHCPでアドレス払い出し
・FWで送信元MACアドレスによる制御
・ポートセキュリティ
・デメリットを理解した上で設定すること

YouTube解説動画

タイトルとURLをコピーしました