なんだか簡単に理解できそうで,いざ自分で設定するとなるとなかなか納得のいく理解が得られなかったので,理解促進のためにまとめてみました.
ポートVLANとは?
ポートVLANとは、ポートに対してVLANを設定し、同一のVLANが設定されたポートにのみパケットを流すスイッチの機能です。
ポートVLANではタグは付与されません。
タグVLANとは?
タグvlanとは,IEEE802.1Qで規定されているネットワーク規格です.複数のスイッチ同士において,VLANを一つの通信路で透過的に設定することができる方式です.
IEEE802.1Qで定義されたVLANタグが付与されるのはトランクリンク間のみです。(2重タギングされていない限り)
タグVLANがない場合=ポートVLANしか使用できない場合
タグVLANの技術がない場合どうなるか?
スイッチ間で共有したいVLANがある場合,そのVLANごとにLANケーブルで接続してネットワークを形成する必要があります.したがって,スイッチ間で共有したいVLAN数=LANケーブル数となって非常に非効率です.搭載ポート数が少ないスイッチを使用している場合,すぐにポートが足りなくなってしまいます.
タグVLANがある場合
パケットにVLANのtagを付与します.イーサネットフレームにTPIDと呼ばれるVLAN IDを識別するためのtagが追加されます.このtagがついていることによって,スイッチ間でたった一つのLANケーブルを用いてネットワークを形成することが可能です.
(もちろん,実際はネットワーク負荷を考慮して,単一のLANケーブルではなく冗長化させる場合があると思いますが)
tagなしの場合
VLAN3とVLAN5をスイッチ1,2で共有したい場合
スイッチ1 ⇒ packet (LANケーブル1)⇒ スイッチ2
スイッチ1 ⇒ packet (LANケーブル2)⇒ スイッチ2
tagありの場合
スイッチ1 ⇒ packet with VLAN3 (LANケーブル1)⇒ スイッチ2
スイッチ1 ⇒ packet with VLAN5 (LANケーブル1)⇒ スイッチ2
taggedポートとは?
トランクポートとも呼ばれます.このポートから送信されるパケットには,ポートに設定されているVLAN tagが付与されます.逆に受信するパケットにVLAN tagが付与されている場合,パケットのVLAN tagを除去し,そのVLAN tagに従ってVLANへパケットを割り当てます.
したがって,tagged パケットが存在するのは,原則としてスイッチ間の通信(トランクリンク)のみです.スイッチ外にtaggedパケットが出ることはありません.
というより,taggedパケットが外に出てしまうと,NICが IEEE802.1Q のプロトコルに対応している必要があるため,普通は認識できません.
アクセスポートとは?
スイッチ間の通信にtagged VLANの通信目的で使用されるポートがtaggedポートでしたが,それと対比して,一般にエンドポイント(PC)と接続するポートのことをアクセスポートと呼びます.
アクセスポートのVLAN IDは何になる?
アクセスポートのVLANはポートVLANに従います.untaggedなパケットはポートVLAN(PVID)にしたがって特定のVLANに振り分けられます.PVIDはNative VLAN,デフォルトVLANとも呼称されます.
パケットの流れのイメージ
PC1
⇒アクセスポート
⇒アクセスポートのPVIDに応じたVLAN IDへ
⇒アクセスポートならそのままアクセスポートからPC2へ送信
トランクポートならtagを付与してトランクリンクへ
⇒スイッチ2のトランクポートは受信したtagパケットからtagを除去し,tagに応じたVLANへ
⇒最終的にアクセスポートからPC3へ送信
なんだかややこしいですが,スイッチ間の通信だけtaggedつきのパケットでやりとりがなされ,それ以外の場所では普通のVLANと同様なんだと理解できると思います.
アップリンクポートとは?
アップリンクポートはスイッチ間を接続するためのポートです。アップリンクポートは通常のポートよりデータレート等が高く設定されているのが一般的です。
そのため、タグVLANを使用している場合はトランクポートをアップリンクポートに対して設定します。アップリンクポート=トランクポートとなることが一般的ですが、この場合はトランクポートと呼ぶことが多いです。
ポートVLANのみを使用している場合は、インターネット側に接続されるポートをアップリンクポートに設定することが多いです。そのアップリンクポートを通してすべてのVLANのインターネット側への通信を実施します。
Q&A
Q:PVIDとポートが属するVLANIDが一致していない場合
そもそも通信できません.PVIDをVLAN1, ポート1が属するVLANをVLAN2と設定してしまった場合を考えます.
PC ⇒ ポート1 ⇒ PVIDのVLAN1へ
という基本の流れですので,PCから送信したパケットはPVIDのVLAN1へ流れます.
一方で,他のポート2のPVIDがVLAN1でVLAN1にパケットが流れた場合,ポート1のVLANはVLAN2ですのでそのパケットは受け取れません.
また,他のポート2のPVIDがVLAN2でVLAN2にパケットが流れた場合,ポート1のVLANはVLAN2ですので,そのパケットは受け取れます.
したがって,PCから送信できるパケットはVLAN1,受信できるパケットはVLAN2となり,相互通信が成り立ちません.VLAN IDを設定した場合には必ずPVIDは設定されているVLAN IDのいずれかに合わせて変更する必要があります.
Q:スイッチ間のトランクポートのPVIDは一致させないとなぜ困る?
トランクポートにもtagのついていないパケットを送信することが可能です.
そのため上記と同様で,PVIDが一致していない場合,VLAN1のつもりで送信したのに,VLAN2で受信されてしまい(tagがついていないので),VLAN1のパケットがVLAN2に届いてしまいます.逆にVLAN2のつもりで送信したつもりが,VLAN1で受信されてしまうので,もし同じネットワーク帯を使用していた場合奇跡的に通信できてしまうかもしれない.
これはセキュリティ上的にとてもよろしくないので,PVIDは必ず一致させるようにしましょう.
Q:L3SWでのVLANの取り扱い
VLANインターフェースを設定しているかどうかで挙動が変わります。
VLANインターフェースを設定している場合、L3SWにおいては、VLANによってネットワークが分割されていたとしても、ルータ機能によってVLAN間ルーティングされ通信が可能となります。したがって、L3SWでVLANによるネットワーク分割を正しく実施するためには追加でVLAN間ルーティングを必要に応じて禁止するフィルタリングを設定する必要があります。
一方でVLANインターフェースを設定していない場合はLayer2相当で転送されますので、VLAN間の転送は実施されません。
以下が一番分かりやすいです。
Q:VLANを設定するのはL2SWかL3SWか
両方です。VLANは本来Layer2で機能するブロードキャストドメインを分割する機能、即ちブリッジの仮想化技術です。
しかし、一般的なL3SWはL2SWの機能を兼ね備えていることが多いため、L3SWでもVLAN設定が可能です。