「VLANの掟!」で理解する「tagVLAN」(タグVLAN)

Layer2:MAC層

二つ以上のスイッチを使って、同じ概念で設定したVLANを機能させることができるのが、「tagVLAN」です。「難しい」と敬遠されがちな「tagVLAN」の動作を「VLANの掟!」でどう説明できるか、二つのスイッチをtaggedポート同志で接続したネットワーク事例の動作を実際に机上検証してみましょう。

★IEEE802.1Q VLANの掟★

まず、おさらいです。
IEEE802.3Q VLAN対応のスイッチングHUBの概念的動作は、次の3か条の「掟」ですべてを説明できます。

  1. ポートは受信したフレームに次の処理をして、スイッチエンジンに渡す
    Taggedフレームはそのまま
    Untagフレームは当該ポートのPVIDの値を「VIDフィールド」に持つ「タグ」フィールドを追加(FCSも計算しなおしたうえで)
  2. スイッチエンジンは、渡されたフレーム内「VIDフィールド」値をVIDにもつVLANに属するメンバポートに当該フレームを渡す
  3. 渡された各ポートは、渡されたフレーム内の「タグ」に次の処理をし、宛先MACアドレスの学習状況にしたがって送信可能な場合外へ送信する
    ・自身が当該のVLANにおいてtaggedメンバに設定されている場合は、そのまま「タグ」フィールド
    ・自身が当該のVLANにおいてuntagメンバに設定されている場合は、「タグ」フィールドを削除して(当然FCSも計算しなおし)

tagVLANの事例を「VLANの掟」で説明できるか検証

では、二つのスイッチをtaggedポート同志で接続したネットワーク事例の動作を「掟」で検証してみましょう。図は「マルチプルVLAN」で検証した事例を拡張し、もう一つ追加したスイッチ側でも事務所PCのVLANと来客PCのVLANを持たせたネットワークの事例です。

図1
tagVLAN構成例
左のスイッチのポート4と右のスイッチのポート1が接続されている。
<左スイッチ>
ポート1:PVD=1,ルータ(MAC=A)を接続、VLAN1,2,3にuntag
ポート2:PVD=2,事務所PC(MAC=B)を接続、VLAN1,2にuntag
ポート3:PVD=3,来客PC(MAC=C)を接続、VLAN1,3にuntag
ポート4:PVD=1,身後のスイッチポート1を接続、VLAN2,3にtagged, VLAN1にuntagもしくはtagged
<右スイッチ>
ポート1:PVID=1、左スイッチポート4を接続、VLAN2,3にtagged, VLAN1にuntagもしくはtagged
ポート2:PVD=2,事務所PC(MAC=F)を接続、VLAN1,2にuntag
ポート3:PVD=3,来客PC(MAC=G)を接続、VLAN1,3にuntag
  1. 事務所PC2がインターネットに接続しようとルータにフレームを送ると、
    事務所PC2のMACアドレス「F」が右のスイッチの「ポート2」に学習され、
    「ポート2」のPVIDである「2」がVIDフィールドにセットされた「タグ」がフレームに追加されたうえで、スイッチエンジンに送られます。(掟第1条)
  2. フレームを受けとったスイッチエンジンは、VIDフィールドの「2」をVIDにもつVLAN2のメンバであるポートの「ポート1」と「CPU」に当該フレームを転送します。(掟第2条)
  3. 「ポート1」はVLAN2の「tagged」メンバなので、「ポート1」では転送されたフレームを「タグ」もそのまま、左のスイッチの「ポート4」に向けて送信します。(掟第3条)
図2
右スイッチポート2の事務所PC2からルータ向けフレームの流れ
  1. 左のスイッチの「ポート4」は、右のスイッチから受信したフレームを付与されている「タグ」もそのまま、スイッチエンジンに渡します。(掟第1条)
  2. フレームを受けとったスイッチエンジンは、
    VIDフィールドの「2」をVIDにもつVLAN2のメンバであるポートの「ポート1」と「CPU」に当該フレームを転送します。(掟第2条)
  3. 「ポート1」はVLAN2の「untag」メンバなので、当該フレームから「タグ」を除去したうえで、ルータに向けて送信します。(掟第3条)
図3
左スイッチポート1のルータから右スイッチポート2の事務所PC2向けフレームの流れ
  1. インターネット側から事務所PC2に向けて送られてくる応答を含むフレームは、ルータから「ポート1」に送られてきます。
    「ポート1」にはルータのMACアドレス「A」が学習されます。
    ルータから送信されたフレームはuntagフレームなので、「ポート1」のPVIDである「1」VIDフィールドにセットされた「タグ」が追加されたうえで、スイッチエンジンに送られます。(掟第1条)
  2. フレームを受けとったスイッチエンジンは、VIDフィールドの「1」をVIDにもつVLAN1のメンバである「ポート2」「ポート3」「ポート4」「ポートn」「CPU」のすべてに当該フレームを転送します。(掟第2条)
  3. 図3のように
    「ポート4」がVLAN1のtaggedメンバに設定されている場合は転送されたフレームをそのまま、「ポート4」がVLAN1のuntagメンバに設定されている場合は転送されたフレームから「タグ」を除去して、
    右のスイッチの「ポート1」に対して送信します。(掟第3条)
    「ポート2」「ポート3」「ポートn」から送信するかどうかは、宛先MACアドレスの学習状況によります。
  4. 右のスイッチの「ポート1」にuntagフレームが届いた場合は「ポート1」のPVIDである「1」をVIDフィールドにセットした「タグ」を追加して、
    図3のようにtaggedフレームが届いた場合は「タグ」もそのまま
    スイッチエンジンにフレームを渡します。(掟第1条)
  5. フレームを受けとったスイッチエンジンは、VIDフィールドの「1」をVIDにもつVLAN1のメンバである「ポート2」「ポート3」「CPU」のすべてに当該フレームを転送します。(掟第2条)
  6. 「ポート2」はVLAN1の「untag」メンバなので、「ポート2」では転送されたフレームの「タグ」を除去して(事務所PC2に向けて)送信します。(掟第3条)
  7. 仮に事務所PC1が事務所PC2のMACアドレス情報を持っていて事務所PC2あてのフレームを作成し送信した場合、1項と同様、当該フレームには「ポート2」のPVIDである「2」がVIDフィールドにセットされた「タグ」が追加されたうえで、スイッチエンジンに送られます。(掟第1条)
図4
左スイッチポート2の事務所PC1から右スイッチポート2の事務所PC2向けフレームの流れ
  1. 事務所PC1が送信した事務所PC2のMACアドレス「F」あてのフレームのVIDフィールドは「2」であるため、スイッチエンジンはこのフレームをVLAN2のメンバである「ポート1」「ポート4」「CPU」に転送します。(掟第2条)
  2. 左のスイッチの「ポート4」はVLAN2のtaggedメンバであるため、「ポート4」は転送されたフレームを「タグ」もそのまま右のスイッチに向けて送信します。(掟第3条)
  3. 右のスイッチの「ポート1」に受信されたフレームはtaggedフレームであるため、そのまま、スイッチエンジンに渡されます。(掟第1条)
  4. スイッチエンジンは「タグ」にセットされたVIDの「2」に合致するVLAN2のメンバであるポートにフレームを転送します。ここでは「ポート2」「CPU」が該当です。(掟第2条)
  5. 「ポート2」はVLAN2の「untag」メンバなので、「ポート2」では転送されたフレームの「タグ」を除去して(事務所PC2に向けて)送信します。(掟第3条)(12項と同様)
  6. 事務所PC2から事務所PC1へのフレーム送信も同様になることはお分かりでしょうか?
  7. 来客PCと事務所PCの間の通信ができないことについても、同様にご自身で確認可能です。

まとめ

以上で、「tagVLAN」の動作が、「VLANの掟!」で説明できることが検証できました。

スイッチ間を行きかうフレームにtaggedフレームを使うことで、送り先のスイッチでもtagに指定したVLANのメンバポートにフレームを届けられるのが「tagVLAN」

VLANの掟!」では、スイッチ内部でtagを使ってVLANの分離を実現していると理解します(掟第2条)。入り口ポートで受信したフレームがuntagフレームならPVIDのtagの追加を行い(掟第1条)、出口ポートではVLANへのメンバ設定に従ってtagを取り去るか(untagメンバ)、tagを付けたまま送信するか(taggedメンバ)している(掟第3条)のです。スイッチ間を行きかうフレームにtaggedフレームを使うことで、送り先のスイッチでもtagに指定したVLANのメンバポートにフレームを届けられるのが「tagVLAN」なのです。

コメント

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