【VLANの設定・理解につまづいた方必見!】たった3つの「VLANの掟!」でしくみが理解できる!

Layer2:MAC層

こんにちは!ネットワークトラブル調査歴・ユーザサポート窓口バックサポート歴20年のHyde Niwaです。

「VLAN」について、次のような状態でつまづいていらっしゃる方、いらっしゃるんじゃないでしょうか?

  • 概念はわかっていても、いざ実際に自分で設定してみようとしても、どう考えたらいいのかよくわからない
  • スイッチ製品を実際の環境に合わせて設定してみると、意図した動作にならない。
    製品に添付の「設定事例集」の通りならその通りに動作するんだけどな。。。
  • 設定の問題点を探そうにも、勘所がわからない
  • ネットで検索しても、高価な大手スイッチメーカ製品が前提になっていてピンとこない
  • 「ポートベースVLAN」はまだわかるけど、実際の現場で使いたいものじゃない。「マルチプルVLAN」「タグVLAN」は、なんだか複雑でよくわからない

この記事では、「VLANの掟!」と私が命名した「VLANの動作を理解し、各自の設定・設計を検証するのにも使える基本ルール」を解説します。
「VLANの掟!」を使えば、どんなに大きなネットワークのVLANでも確実に設定でき、確実に検証ができます。
なんだか敬遠したくなる「タグVLAN」も怖くありません。
私は、実際に、次のような場面で「VLANの掟!」をお渡しして、VLANへの理解を深めていただいてきました。

  • スイッチ製品ユーザ様からのお問い合わせへの回答
  • お問い合わせに対応するサポート窓口の担当者様への教育
  • 新たに配属されたトラブル調査員への教育

「VLAN」は難しい?!

機器のメーカによって仕様・動作・用語がまちまちであるためか、「VLANは難しい」と思われている方が多いですね。
また、CISCO社仕様とCISCO社用語が、中途半端な理解のままデファクトスタンダードとして流通していることで、さらに混乱が生じている印象があります。CISCO社一辺倒の情報があふれているのは、これまでの歴史的背景とCCNA/CCNPなどの資格制度も相まってのことでしょうが。

VLANの用語といえば次のようなものです。

•ポートベースVLAN(ポートVLAN)
•tag VLAN(タグVLAN)
•マルチプルVLAN
•アクセスポート、トランクポート
•Native VLAN
など。。。

さらには、Layer3でのネットワーク分割も、その設定方法区分などが同じ機能の延長線上にあって「VLAN」と呼ばれているため、混乱に拍車がかかっています。

そこで、「難しい」と言われている「VLAN」の理解を進められるように、この記事を作成しました。
この記事では、まず、「VLANとはLayer2(L2)でネットワークを分割するしくみである」と定義して進めます。Layer3でのネットワーク分割は、別項「ルータの掟」で見ていくことにしましょう。

VLANには統一規格がある!IEEE802.1Q

L2でネットワークを分割するしくみの規格には、「IEEE802.1Q」というものがあります。
「IEEE802.1Q」はL2フレーム内に設けることができる「VLANのID」と「通信の優先度」を付与する「タグ」フィールドについて規定した規格です。
・「IEEE802.1Q」に規定する「タグ」を利用してネットワークを分割するしくみ
・一般的なスイッチの動作
を組み合わせ、「IEEE802.1Q-VLAN」として理解すると、広く応用できる知識となりえるのです。

「IEEE802.1Q」では何を規定しているか?

それでは、まず「タグ」フィールドとはどういうものか、見ていきましょう。

EthernetⅡとして規定されるDIX規格イーサネットのL2(MAC層)フレームは「図1」のような構造をしています。

 ・いきなり出てきた「フレーム」って何?
 ・「パケット」とどう違うの?
という方もいらっしゃるかもしれませんね。
大きな意味で言えば、
データをある一定以内の大きさの塊に分割して送りあう通信方式
を「パケット通信」と呼びますので、その意味では「パケット」とほぼ同義です。
ただ、通信の世界では、
 ・L2での分割単位を「フレーム」と呼び
 ・「フレーム」でカプセル化して運ばれるL3以上のペイロード部分を「パケット」と呼ぶ
ことが一般的であり、このサイトでも極力こちらの意味で使っています。

L2(MAC層)フレームには、図2のように「タグ」フィールドをオプションとして追加することができます。
「タグ」フィールドの長さは32ビット(4バイト)で、追加できる位置は、送信元MACアドレスのフィールドとType/Sizeのフィールドの間です。
図1の構造のフレームは、PCなどが直接扱えるフレームの形で、これを「untagフレーム」と呼びます。これに対して図2のように「タグ」フィールドを追加した形のフレームを「taggedフレーム」と呼びます。

L2(MAC層)フレームの構造
図1 untag
図2 tagged
 802.1Q Tagフィールドの詳細

「タグ」フィールドのうち、初めの16ビットは「TPID (Tag Protocol Identifier)」、次の16ビットは「TCI (Tag Control Information)」と呼ばれます。

TPID (Tag Protocol Identifier)

「TPID」は、IEEE 802.1Q による「タグ」付きフレームであることを示すため、0x8100 という値を置く16ビットのフィールドです。
EthernetⅡ機器は、到来する信号を概念的には到来順に1ビットずつ受け取っていきます。
そしてType/Sizeフィールドをペイロードの内容・プロトコルを示すEtherTypeとして使います。したがって、「タグ」フィールドの「TPID」は「Type」フィールドとして受信・解釈されることになります。
「Type」フィールドが0x8100であるものがtaggedフレーム、それ以外がuntagでそれぞれ「Type」値が示すプロトコルのフレームという見方もできます。

TCIはさらに以下の部分で構成されます。

PCP (Priority Code Point)

IEEE 802.1p で定義された優先度を指定する3ビットのフィールドです。
フレームの優先度を0(最低)から7(最高)で示し、各種トラフィック(音声、動画、データなど)の優先順位づけに利用されます。

CFI (Canonical Format Indicator)

CFIフィールドは、イーサネットとトークンリングの相互接続時に使われるフィールドで、通常のイーサネットだけで構成したネットワークでは気にする必要のないフィールドです。
1ビットのフィールドで、イーサネットの場合はつねに0です。
イーサネットポートでCFIが1のフレームを受信した場合、そのフレームはタグ付けされていないポートへはブリッジされません(1は、「MACアドレスが正規フォーマットではない」ことを示しています)。

VID (VLAN Identifier)

12ビットのフィールドで、当該フレームを転送するべきVLANを指定するために使われます。
VID=0の「タグ」は単なる「優先度タグ (priority tag) 」として使われていることを表します。
VID=0xFFFは(実装で使用するために)予約されています。
「0」「0xFFF」以外の全ての値が、VLANの識別子として使われることになり、「0x001」から「0xFFE」の最大4094個のVLANを扱うことができるわけです。
IEEE802.1Qに対応しているスイッチングHUBなどのブリッジ機器の多くが、VIDのうち1番 (0x001) を管理(いわゆる「管理VLAN」)用に予約しているか、初期値として使用しています。

IEEE802.1Q対応スイッチの概念的構造、基本要素と動作

IEEE802.1Q対応スイッチングHUB(スイッチ)の概念的構造、基本要素と動作は、メーカによっても大きな違いはありません。図3のような構造概念で表すことができます。
※なお、これはあくまで動作を理解するための「概念的構造、基本要素と動作」です。実際のハードウェア構造とは異なる可能性があります。

IEEE802.1Q対応VLANスイッチ構造概念図(SVL例)

IEEE802.1Q対応スイッチの内部には、
 「ポート」
 「スイッチエンジン」
 「MACアドレス学習機能」
の3つの構成要素があります。

•「ポート」

・スイッチの外の機器と接続されていて外から到来するフレームを受信し「スイッチエンジン」に渡す
・untagフレームを受信した際には「PrimaryVID=PVID」をVIDに持つ「タグ」を追加する
・「スイッチエンジン」から渡されたフレームを接続されている機器に送信する
という機能を果たす部位を指します。
理想的なIEEE802.1Q対応スイッチの各ポートは、スイッチに設定された複数のVLANに所属させることが可能であるべきです。
「ポート」をVLANに所属させることを、当該VLANの「メンバにする」と表現します。
「VLANのメンバ」には「taggedメンバ」と「untagメンバ」の2種類があります。

•「スイッチエンジン」

「ポート」から渡されたフレームを、送信出力する「ポート」へ渡す働きをする部位を指します。
※なお、このサイトではスイッチエンジン内で「VLANn」は「VID=nであるVLAN」を意味するものとして使います。

•「MACアドレス学習機能」

スイッチを含むほとんどのブリッジ機器では、「ポート」に受信したフレームの送信元MACアドレスを受信したポートに紐づけて記憶(学習)する機能を持ちます。この機能を「MACアドレス学習」と呼んでいます。
入力されたフレームの宛先MACアドレスが

  • 学習されているポートだけがそのフレームを送信できる
  • いずれのポートにも学習されていなければ、当該フレームが転送されるVLANのメンバポートすべてが当該フレームを送信できる(Flooding, フラッディング)

なお、IEEE802.1Q-VLAN対応スイッチングHUBの「MACアドレス学習機能」には2種類の方式があり、

  • MACアドレス毎にスイッチ全体で一つのポートにだけ記憶するものを「SVL」
  • MACアドレス毎・VLAN毎に記憶するものを「IVL」

と呼びます。「MACアドレス学習機能」の種類ごとの動作概念については、別項で詳細に解説します

★IEEE802.1Q VLANの掟!★

IEEE802.1Q-VLAN対応のスイッチングHUBの概念的動作は、次の3か条の「掟」ですべてを説明できます。私は、この3か条の「掟」を「VLANの掟!」と呼んでいます。

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

なお、3項で当該ポートから実際に送信するかどうかは、フレームの宛先MACアドレスの学習状況によって決まります。

ポートからのフレーム送信可否
宛先MACアドレス学習状態どのポートにも学習されていない当該ポートに学習済他のポートに学習済
送信可否送信可送信可送信不可

多くの場合、「tagVLAN(タグVLAN)」は、VLANの中でもさらに特殊な難しいものと捉えられています。しかしながら、実は、この「タグ」を利用してネットワークを分割しているのが「VLAN(IEEE802.1Q VLAN)」である、という考え方をすることで、VLANのすべてが体系的に説明できます。体系化した基本ルールが「VLANの掟!」で、設計・設定の検証ツールとしても使えるのです。

tagVLANもマルチプルVLANもポートVLANもすべて同じ一連のルール「VLANの掟」で理解できる

「VLANの掟!」にしたがえば、「マルチプルVLAN」も「tagVLAN」も「ポートVLAN」もすべて同じ一連のルール(掟)で理解できます。言い方を変えると、VLANを含むネットワーク分割を構築した結果として出来上がったものに、それぞれ別の名前を付けているに過ぎないとも言えるでしょう。

それでは、「マルチプルVLAN」の動作、「tagVLAN」の動作、「ポートVLAN」の動作が「VLANの掟!」でどう説明できるか、それぞれ別項で検証してみましょう。

マルチプルVLAN

L2での「マルチプルVLAN」の構成では、「タグ」を直接扱えない安価なルータやサーバ、NASを、相互に通信させたくない分離したネットワークから共用するネットワークが、一つのIPセグメントで構成できます。

次の記事では「マルチプルVLAN」の動作について「VLANの掟!」で検証をしています。

ルータやサーバなど、分離した各VLANから共有する機器からのフレームを転送させるための「お帰りVLAN」を設定することが重要ポイントです。
そして、実際の「やってみたがうまくいかない」お問い合わせでも、多くがこの点でつまづいておられました。

tagVLAN(タグVLAN)

二つ以上のスイッチを使って、同じ概念で設定したVLANを機能させることができるのが、「tagVLAN」です。

次の記事では「tagVLAN」の動作について「VLANの掟!」で検証をしています。

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

ポートVLAN(ポートベースVLAN)

現実のネットワーク構築において、設置現場のコンセントの数が限られ、複数台のスイッチを設置できないなどの制約がある場合には、「ポートVLAN」を使うことも大変有用です。

次の記事では「ポートVLAN」の動作について「VLANの掟!」で検証をしています。

「ポートVLAN」とは、「構成する一つ一つの物理ポートを、それぞれ一つのVLANにだけ所属させる」ように設定した状態のことです。
一つのスイッチ内で「マルチプルVLAN」を構成する部分、「ポートVLAN」を構成する部分などの混在状態にすることも可能です。

「VLANの掟!」で捉えなおしたCISCO社用語の例

CISCO社用語の「アクセスポート」「トランクポート」を「VLANの掟!」で捉えなおしてみましょう。

CISCO社用語でいう「アクセスポート」は、すべての所属VLANにおいてuntagメンバとなっている状態のポートであると理解できます。
そしてCISCO社製品の事例においては、アクセスポートは所属VLANが通常一つと説明されている事例が多いですね。

CISCO社用語でいう「トランクポート」は、CISCO社デフォルトの設定では
 当該スイッチに流入している全VLANのフレームがフラッディングされ、
 taggedフレームとして送信されていく
状態のポートです。
ただし、
 「Native VLAN」についてだけはuntagメンバになっていて、
 「Native VLAN」に指定されたVIDのタグが付与されたフレームだけはタグが除去され、untagフレームとして送信されます。
「Native VLAN」とは、そのポートのPVIDに設定したVIDを持つVLANのことです。

おっと。「Native VLAN」なんで用語も出てきてしまいましたね。「Native VLAN」も含め、CISCO社用語の捉え方については、別項でもあらためて解説しています。

まとめ

以上、VLANの動作を理解し、各自の設定・設計を検証するのにも使える基本ルールを「VLANの掟!」として解説しました。

★IEEE802.1Q VLANの掟!★

IEEE802.1Q-VLAN対応のスイッチングHUBの概念的動作は、次の3か条の「掟」ですべてを説明できます。私は、この3か条の「掟」を「VLANの掟!」と呼んでいます。

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

「VLANの掟!」を使って、VLANを理解し、VLAN設定を検証しよう

「VLANの掟!」を使えば、どんなに大きなネットワークのVLANでも確実に設定できます。また、「VLANの掟!」を使って、フレームの流れをStep by Stepで検証することができます。
「難しい」と敬遠されがちな「タグ」こそが、VLANの基本です。
「タグ」を使った動作を理解してしまえば、すべてのVLANの動作が「VLANの掟!」で説明できます。
VLANの構成がどんなに複雑であっても、この「VLANの掟!」で、転送されていくフレームの動きを地道に追うことができますよ。

コメント

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