【図解】タグVLANとネイティブVLAN (PVID)の違い,native vlanを変更する理由,不一致による影響

タグVLAN とは

タグVLAN (Tag VLAN) とは、複数のVLANを1本のLAN接続だけで複数スイッチ間で共有できる技術です。IEEE802.1q という規格で規定されており、VLAN ID は 1~4094 が使えます

具体的な例として、スイッチ同士を接続するポートに trunk port (トランクポート。 tag port と呼ばれたりします) の設定を入れて接続します。するとそのリンク(トランクリンク)は VLAN ID 情報を含む Tag を付けて通信するようになります

例では VLAN が 3 つだけですので、各VLAN 1本ずつ、系3本のケーブルをスイッチ間で接続する構成も可能ですがこれは非効率です。例えばこれが、VLAN が20個あったとしたらそれだけでケーブルとポートを20ポートも消費してしまいます。

このようなケースでも、タグ VLAN を使えば 1 ポートだけで 20 個の VLAN を共有できます。

Native VLAN (PVID) とは

Native VLAN とはトランクポートの中で、タグを付けない VLAN ID のことを指します。デフォルトVLAN や PVID (Port VLAN ID) も同じ意味です。

この Native VLAN も IEEE802.1q の規格で決まっており、各トランクポートで1つだけ、この Native VLAN を指定することができます(機器単位ではなくポート単位で指定できるものが多いです)。デフォルトでは全ポート VLAN ID=1 が Native VLAN になっています。

Native VLAN の不一致

上図左側の例に示した通り、Native VLAN はトランクリンクの両端で揃える必要があります(スイッチの全トランクポートでそろえる必要はありません)。

もし揃えないと、例の右側の「悪い例」のように、VLAN 1 の通信が VLAN 2 に混入したりと、論理構成に捻じれが発生したりします

Native VLAN の不一致は、特に PVSTPではループの検知が出来なくなる可能性があるため、エラーにも出力されます。

なお、CDP (Cisco Discovery Protocol) には Native VLAN 情報も乗っており、不一致があると "%CDP-4-NATIVE_VLAN_MISMATCH: Native VLAN mismatch discovered on " といったログが出力されます。

どういう時にネイティブVLANを変更する?

変更する理由は基本的には無いはずですが、ケースとして2つ例を挙げます。

1つ目は、例えばネイティブ VLAN を 10 にすると、そのポートに PC や VLAN 非対応のスイッチングハブを接続すると、VLAN 10 で通信できます。このあたりは下記記事にも記載しています。

【図解】トランクポートとアクセスポートの違い、trunk port に access port や PC を接続するとどうなるか
【図解】トランクポートとアクセスポートの違い、trunk port に access port や PC を接続するとどうなるか
タグ VLAN を使う場合はポートにトランクポート (trunk port) と...

2つ目は、1つ目に関連するのですが、デフォルト VLAN である VLAN 1 は、telnet 接続用等の管理用として使われることも多いです。トランクポートを一般ユーザが物理的にいじれる位置にあると、そのポートを引っこ抜いて PC に接続すると VLAN 1 へアクセスできてしまいます

そのようなセキュリティの理由で、適当な VLAN に変更するケースが考えられます。

accessポート、trunkポートとtagged, untaggedについて

メーカによっては、access ポート、trunk ポートという括りがなく、単純にポート単位で tagged、untagged のVLAN ID を指定するスイッチもあります。

例えば以下のような対応になります。

access, trunktagged, untagged
access vlan=10untagged=10
trunk vlan=10,20tagged=10,20
trunk vlan=20(native vlan), 30,40untagged=20, tagged=30,40

各ポートで untagged の VLAN は 0~1個、tagged の VLAN は0個以上です。

両方とも 0 個になることはなく、untagged が 1 個だけならそのポートはアクセスポート、そこに tagged も1個以上乗るならそれはトランクポート(untagged は native VLAN)になります。

Native VLAN をタグ付きで受信した場合の挙動

Native VLAN や untagged に指定したVLAN を、タグ付きで受信した場合の挙動は、メーカによって異なります

例えば、Native VLAN=10 に設定したポートで、タグ付きの VLAN 10 を受信した場合、通常の VLAN=10 として許可する場合もありますし、破棄されてしまう場合もありますので、もしそのような構成をする場合は事前に確認が必要です。

voice vlan でタグを付ける理由

voice vlan はタグを付けるのが cisco の推奨です。2 byte とはいえ、速度にシビアな音声パケットにオーバーヘッドともなるタグを付けるのは何故でしょうか?

これは、tag vlan には IEEE802.1p という QoS で利用できるフィールド (通称 cos) があるからです。音声パケットはこの cos 値を 5 に設定することで、スイッチに『このパケットは優先で通過させてね』と伝えるのです。

なお、単に cos 値を 5 にセットするだけでは QoS は動作しません。経由する各スイッチで『cos 値 = 5 のパケットを優先で出力する』という設定が必要です。