はじめに
データリンク層(Layer 2)ではVLANという技術があり、VLANを設定した場合はスイッチの各ポートがどのVLANに属しているかを割り当てます。初期状態であれば一般的に全てのポートはVLAN 1に属しています。
そして、スイッチのポートにはアクセスポートとトランクポートという2つの種類があります。今回はそれぞれの説明と、動作の違いについて説明します。
ざっくりとした説明
大枠を捉えていただくため、アクセスポートとトランクポートについて簡単に説明します。
アクセスポートとは
1つのVLANのみを割り当てることができる。
主に端末やPCなどを接続する。
トランクポートとは
複数のVLANを割り当てることができる。
送信時にタグとしてVLAN情報を付与して送信する。
主にスイッチ同士を接続する。
また、スイッチ同士を接続する際にアクセスポートとトランクポートで接続することは原則できず、基本的には同じ種類で接続します。
アクセスポート
アクセスポートとは、1つのVLANのみを割り当てることができるポートです。主にPCやプリンタなどの端末を接続します。
スイッチはアクセスポートで受信したフレームを、そのポートに割り当てられているVLANとして処理します。
例えば、次のように端末Aから受信したフレームの宛先MACアドレスがMACアドレステーブルに登録されていなければ、同じVLAN 10が割り当てられているポートからフラッディングされます。
(1)端末Aがフレームを送信
(2)スイッチは受信したフレームをVLAN 10として処理し、宛先MACアドレスがMACアドレステーブルに登録されているかどうかをチェック
(3)登録されていなかったため、VLAN 10が割り当てられている全てのポートからフラッディング
ここで注意すべき点は、アクセスポートから送信されるフレームにはVLAN情報は付与されず、受信した際に割り当てられているVLANとして処理されるということです。
例えば、次のようにスイッチAとスイッチBがアクセスポートで接続されています。
スイッチAは端末Aが接続されているポートもスイッチBとの接続ポートもVLAN10、スイッチBは端末Bが接続されているポートもスイッチAとの接続ポートもVLAN20です。さて、この時端末Aと端末Bは通信できるでしょうか?
これは、通信できます。
実際に起きている処理順序としては次の通りです。
(1)スイッチAは端末Aから受信したフレームをVLAN 10と認識する
(2)スイッチAはVLAN 10が割り当てられているスイッチBとの接続ポートから送信する
(3)スイッチBはスイッチAから受信したフレームをVLAN 20と認識する
(4)スイッチBはVLAN 20が割り当てられている端末Bとの接続ポートから送信する
このように、アクセスポート同士であれば異なるVLANが割り当てられていたとしても通信することが可能です。
トランクポート
トランクポートとは、複数のVLANを割り当てることができるポートです。主にスイッチ同士を接続します。
トランクポートはアクセスポートと異なり複数のVLANを割り当てることができるため、受信側がこのフレームはどのVLANとして扱えばいいのか教えてあげる必要があります。
そのために、送信側はタグというものを付与し、VLAN番号をその中に記載します。受信側はタグに記載されたVLAN番号を読み取ることで、どのVLANとして処理をすればよいか見分けることができるのです。
また、トランクポートにはNative VLANという概念が存在します。これは、タグが付与されていないフレームを受信したらVLAN Xとして処理する というものです。デフォルトでは、VLAN 1がNative VLANとして設定されています。
送信側もNative VLANとして処理されたフレームをトランクポートから送信する場合は、タグを付けずに送信します。
トランクポートの処理は、次のようになります。
(1)スイッチAは端末Bから受信したフレームをVLAN 10と認識する
(2)スイッチAはVLAN 10というタグを付けてスイッチBに送信する
(3)スイッチBはスイッチAから受信したフレームに付与されたタグからVLAN 10と認識する
(4)スイッチBはVLAN 10が割り当てられている端末Eとの接続ポートから送信する
トランクポートのNative VLANの処理は、次のようになります。
(1)スイッチAは端末Aから受信したフレームをVLAN 1と認識する
(2)VLAN 1はNative VLANであるため、スイッチAはタグを付けずにスイッチBに送信する
(3)スイッチBはスイッチAから受信したフレームにタグが付与されていないため、VLAN 1と認識する
(4)スイッチBはVLAN 1が割り当てられている端末Bとの接続ポートから送信する
まとめ
アクセスポートとトランクポートという名前は知っていたとしても、実際に行われている処理まで理解されている方は少ないように思えます。
基礎的な知識ですが、基礎知識こそ非常に重要なため振り返りになれば幸いです。
関連コンテンツ