トランクリンクを流れるフレームには、必ず802.1Qタグが付いているのでしょうか?
前回、トランクは荷物に「荷札(VLANタグ)」を付けて運ぶ仕組みだと学びました。でも、荷札の付いていない荷物がまぎれ込んだら、スイッチはどう扱うのでしょう。考えながら読み進めてください。
タグの付いていないフレームはどうなるのか
前回、トランクリンク上のフレームには802.1Qタグが付けられ、どのVLANのものかが分かるようになっていると学びました。しかし実は、トランクリンクにはタグの付いていないフレームが流れてくることがあります。これをどう扱うかを決めるのが、今回のテーマであるネイティブVLANです。
ネイティブVLANとは
ネイティブVLANとは、トランクリンク上で「タグを付けずに送受信する」特別なVLANのことです。トランクポートには必ず1つのネイティブVLANが設定されており、CiscoのデフォルトではVLAN 1がネイティブVLANになっています。
タグなしのフレームがトランクポートに届くと、スイッチはそのフレームを自動的にネイティブVLANのものとして扱います。逆に、スイッチ自身がネイティブVLANに属するフレームを送信するときは、あえてタグを付けずに送り出します。荷札のない荷物は「いつもの決まった配送先」として扱う、という特別ルールだとイメージすると分かりやすいです。
ネイティブVLAN不一致の危険性
ここが試験でも実務でも非常に重要なポイントです。トランクリンクの両端にあるスイッチで、ネイティブVLANの設定が食い違っていると、深刻な問題が起こります。
たとえばスイッチAのネイティブVLANがVLAN 1、スイッチBのネイティブVLANがVLAN 99に設定されていたとします。スイッチAがタグなしで送ったVLAN 1のフレームを、スイッチBは「タグが無い=ネイティブVLANであるVLAN 99のフレームだ」と誤解してしまいます。これにより、本来届くべきでないVLANにフレームが漏れてしまう、いわゆるVLANホッピングという攻撃の糸口にもなり得ます。IOSはこの不一致を検知すると、コンソールやログに警告(native VLAN mismatch)を出します。
トランクリンクを設定するときは、必ず両端のネイティブVLANを一致させることが鉄則です。
Switch(config)# interface gigabitEthernet 0/1
Switch(config-if)# switchport trunk native vlan 99
このように switchport trunk native vlan コマンドで、ネイティブVLANを明示的に変更できます。セキュリティ上の理由から、デフォルトのVLAN 1をそのままネイティブVLANとして使い続けず、あえて別の番号(未使用のVLAN)に変更しておくことも、実務ではよく行われる対策です。
音声VLANとは
もう1つ、トランクに関連する重要な機能が音声VLANです。オフィスでは、1つのポートにIP電話を接続し、そのIP電話にさらにPCを接続する、という構成がよく使われます。この場合、同じポートから「音声(IP電話)」と「データ(PC)」という性質の異なる2種類のトラフィックが流れてくることになります。
このとき、音声トラフィックだけを別のVLANに分離しつつ、PC側のデータトラフィックは通常のアクセスVLANのまま扱えるようにするのが音声VLANです。
Switch(config)# interface fastEthernet 0/5
Switch(config-if)# switchport mode access
Switch(config-if)# switchport access vlan 10
Switch(config-if)# switchport voice vlan 20
この設定では、ポートFa0/5はアクセスポートとしてVLAN 10(データ用)に所属しつつ、switchport voice vlan 20 によってIP電話からの音声トラフィックはVLAN 20として扱われます。1本の物理ポートでありながら、内部的には2つのVLANの情報が流れる、いわば「小さなトランクのような」働きをするのが音声VLANの特徴です。音声トラフィックは遅延やゆらぎに敏感なため、専用VLANに分けて優先制御(QoS)しやすくする狙いもあります。
トランクリンクの両端で、スイッチAのネイティブVLANが1、スイッチBのネイティブVLANが99に設定されていました。この状態で起こり得る問題は何でしょう?
答えを見る
答えは「ネイティブVLAN不一致により、タグなしフレームの所属VLANが両端で食い違い、意図しないVLANへフレームが渡ってしまう可能性がある」ことです。これはセキュリティ上のリスク(VLANホッピングの糸口)にもなるため、トランクリンクの両端は必ず同じネイティブVLANに設定する必要があります。
試験でのポイント
CCNA試験では、ネイティブVLANの役割(タグなしフレームを扱う特別なVLAン)と、そのデフォルト値(VLAN 1)、そして両端不一致が招く問題がセットで問われます。「トランクを組めば自動的に安全」と誤解せず、ネイティブVLANの一致確認が運用上の必須チェック項目であることを覚えておきましょう。また、音声VLANは switchport access vlan(データ用)と switchport voice vlan(音声用)を1つのポートに共存させる設定である点も、コマンドの組み合わせとして狙われやすいポイントです。
IP電話とPCを1本のケーブルでスイッチの同じポートに接続し、音声とデータを別々のVLANとして扱いたい場合に使うコマンドの組み合わせはどれでしょう?
答えを見る
答えは「switchport access vlan(データ用VLANの指定)と switchport voice vlan(音声用VLANの指定)を同じポートに設定する」です。これにより、PCからのデータトラフィックはアクセスVLAN、IP電話からの音声トラフィックは音声VLANとして、1つの物理ポートで区別して扱われます。
ネイティブVLANは「タグなしフレームの行き先」、両端で一致させないと危険——ここは実務でもよくあるトラブルの元だから覚えておいてね。音声VLANは1ポートでデータと音声を分ける仕組みだったね。次はいよいよ、VLANを越えて通信するためのVLAN間ルーティングに入っていくよ。