二つ以上のスイッチを使って、同じ概念で設定したVLANを機能させることができるのが、「tagVLAN」です。「難しい」と敬遠されがちな「tagVLAN」の動作を「VLANの掟!」でどう説明できるか、二つのスイッチをtaggedポート同志で接続したネットワーク事例の動作を実際に机上検証してみましょう。
★IEEE802.1Q VLANの掟★
まず、おさらいです。
IEEE802.3Q VLAN対応のスイッチングHUBの概念的動作は、次の3か条の「掟」ですべてを説明できます。
- 各ポートは、受信したフレームに次の処理をして、スイッチエンジンに渡す
・Taggedフレームはそのまま
・Untagフレームは当該ポートのPVIDの値を「VIDフィールド」に持つ「タグ」フィールドを追加(FCSも計算しなおしたうえで) - スイッチエンジンは、渡されたフレーム内「VIDフィールド」値をVIDにもつVLANに属するメンバポートに当該フレームを渡す
- 渡された各ポートは、渡されたフレーム内の「タグ」に次の処理をし、宛先MACアドレスの学習状況にしたがって送信可能な場合外へ送信する
・自身が当該のVLANにおいてtaggedメンバに設定されている場合は、そのまま「タグ」フィールド付で
・自身が当該のVLANにおいてuntagメンバに設定されている場合は、「タグ」フィールドを削除して(当然FCSも計算しなおし)
tagVLANの事例を「VLANの掟」で説明できるか検証
では、二つのスイッチをtaggedポート同志で接続したネットワーク事例の動作を「掟」で検証してみましょう。図は「マルチプルVLAN」で検証した事例を拡張し、もう一つ追加したスイッチ側でも事務所PCのVLANと来客PCのVLANを持たせたネットワークの事例です。
- 事務所PC2がインターネットに接続しようとルータにフレームを送ると、
事務所PC2のMACアドレス「F」が右のスイッチの「ポート2」に学習され、
「ポート2」のPVIDである「2」がVIDフィールドにセットされた「タグ」がフレームに追加されたうえで、スイッチエンジンに送られます。(掟第1条) - フレームを受けとったスイッチエンジンは、VIDフィールドの「2」をVIDにもつVLAN2のメンバであるポートの「ポート1」と「CPU」に当該フレームを転送します。(掟第2条)
- 「ポート1」はVLAN2の「tagged」メンバなので、「ポート1」では転送されたフレームを「タグ」もそのまま、左のスイッチの「ポート4」に向けて送信します。(掟第3条)
- 左のスイッチの「ポート4」は、右のスイッチから受信したフレームを付与されている「タグ」もそのまま、スイッチエンジンに渡します。(掟第1条)
- フレームを受けとったスイッチエンジンは、
VIDフィールドの「2」をVIDにもつVLAN2のメンバであるポートの「ポート1」と「CPU」に当該フレームを転送します。(掟第2条) - 「ポート1」はVLAN2の「untag」メンバなので、当該フレームから「タグ」を除去したうえで、ルータに向けて送信します。(掟第3条)
- インターネット側から事務所PC2に向けて送られてくる応答を含むフレームは、ルータから「ポート1」に送られてきます。
「ポート1」にはルータのMACアドレス「A」が学習されます。
ルータから送信されたフレームはuntagフレームなので、「ポート1」のPVIDである「1」がVIDフィールドにセットされた「タグ」が追加されたうえで、スイッチエンジンに送られます。(掟第1条) - フレームを受けとったスイッチエンジンは、VIDフィールドの「1」をVIDにもつVLAN1のメンバである「ポート2」「ポート3」「ポート4」「ポートn」「CPU」のすべてに当該フレームを転送します。(掟第2条)
- 図3のように
「ポート4」がVLAN1のtaggedメンバに設定されている場合は転送されたフレームをそのまま、「ポート4」がVLAN1のuntagメンバに設定されている場合は転送されたフレームから「タグ」を除去して、
右のスイッチの「ポート1」に対して送信します。(掟第3条)
「ポート2」「ポート3」「ポートn」から送信するかどうかは、宛先MACアドレスの学習状況によります。 - 右のスイッチの「ポート1」にuntagフレームが届いた場合は「ポート1」のPVIDである「1」をVIDフィールドにセットした「タグ」を追加して、
図3のようにtaggedフレームが届いた場合は「タグ」もそのまま、
スイッチエンジンにフレームを渡します。(掟第1条) - フレームを受けとったスイッチエンジンは、VIDフィールドの「1」をVIDにもつVLAN1のメンバである「ポート2」「ポート3」「CPU」のすべてに当該フレームを転送します。(掟第2条)
- 「ポート2」はVLAN1の「untag」メンバなので、「ポート2」では転送されたフレームの「タグ」を除去して(事務所PC2に向けて)送信します。(掟第3条)
- 仮に事務所PC1が事務所PC2のMACアドレス情報を持っていて事務所PC2あてのフレームを作成し送信した場合、1項と同様、当該フレームには「ポート2」のPVIDである「2」がVIDフィールドにセットされた「タグ」が追加されたうえで、スイッチエンジンに送られます。(掟第1条)
- 事務所PC1が送信した事務所PC2のMACアドレス「F」あてのフレームのVIDフィールドは「2」であるため、スイッチエンジンはこのフレームをVLAN2のメンバである「ポート1」「ポート4」「CPU」に転送します。(掟第2条)
- 左のスイッチの「ポート4」はVLAN2のtaggedメンバであるため、「ポート4」は転送されたフレームを「タグ」もそのまま右のスイッチに向けて送信します。(掟第3条)
- 右のスイッチの「ポート1」に受信されたフレームはtaggedフレームであるため、そのまま、スイッチエンジンに渡されます。(掟第1条)
- スイッチエンジンは「タグ」にセットされたVIDの「2」に合致するVLAN2のメンバであるポートにフレームを転送します。ここでは「ポート2」「CPU」が該当です。(掟第2条)
- 「ポート2」はVLAN2の「untag」メンバなので、「ポート2」では転送されたフレームの「タグ」を除去して(事務所PC2に向けて)送信します。(掟第3条)(12項と同様)
- 事務所PC2から事務所PC1へのフレーム送信も同様になることはお分かりでしょうか?
- 来客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」なのです。
コメント