CISCO仕様・用語の罪

CISCO社製品は高額ではありますが、これまでの歴史と導入実績、CCNA/CCNPなどの資格制度の関係から、VLANやスイッチ製品に関する情報の多くは、CISCO社製品を前提としたものになっています。
ただ、動作原理・原則の説明を端折っているものが多く、中途半端な理解のもと、却って混乱が深まっている印象があります。この記事では「VLANの掟!」にのっとって、CISCO社特有の用語や仕様を紐解いてみます。

アクセスポート、トランクポート

CISCO社スイッチ製品の設定についての解説などでは、各ポートを「アクセスポートとするかトランクポートとするか」設定をすることになっています。
しかしながら、IEEE802.1Qの概念からすれば、本来は各ポートについて「メンバとするVLANでtagged/Untagのどちらのふるまいをさせるか」を設定することが必要なはずです。

CISCO社用語の「アクセスポート」「トランクポート」を「VLANの掟!」で捉えなおしてみると次のようになります。

「VLANの掟!」から見た「アクセスポート」

CISCO社用語でいう「アクセスポート」は、

「すべての所属VLANにおいてuntagメンバとなっている状態のポート」

であると理解できます。そしてCISCO社製品の事例においては、「アクセスポートは所属VLANが通常一つ」と説明されている事例が多く見られます。したがって、「アクセスポート」から送信されるフレームにはタグフィールドが含まれていません。

「VLANの掟!」から見た「トランクポート」

同様にCISCO社用語でいう「トランクポート」は、CISCO社デフォルトの設定では当該スイッチに流入している全VLANのフレームがフラッディングされ、taggedフレームとして送信されていく状態のポートということになります。CISCO社製品で使われている「トランクポート」という用語が意味するものは、要するに

「フレームをtaggedで送信できる状態に設定されたポート」

であるものを指している模様です。

CISCO社デフォルト設定状態の「トランクポート」では、 「Native VLAN」(PVIDに設定したVIDを持つVLAN)所属以外のすべてのtaggedフレームが転送されてきて、そのままtaggedフレームで送信されることになっています。つまり、特に各VLANについてtaggedメンバに設定することなく、すべてのVLANについてtaggedフレームで送信されることになります。ただし、「Native VLAN」についてだけはuntagメンバになっていて、Native VLANに指定されたVIDのタグが付与されたフレームだけはタグが除去され、untagフレームとして送信されます。

CISCO社「トランクポート」仕様の功罪

この仕様ゆえに、「トランクポート」について転送するべきVLANのtaggedメンバに設定せずとも転送ができてしまうという、どうやら横着な設定が可能ですが、次のようなちょっとした問題があると考えられます。

  • 転送先の別スイッチに同じVIDを使いながら実際には別ネットワークとするべきネットワークを収容するポートが存在していると、本来流したくないフレームが転送されてしまう。
  • 本来到来するべきでないフレームが受信できる状態が生まれる可能性があることになり、セキュリティ上好ましくない。
  • 少なくとも無駄にパケット量を増加させる。
  • 通信の混乱を生じる懸念がある。

筆者が実際に現地調査したある大学様のネットワークでは、無線LAN-APの接続ポートで、そのAPでは扱っていないVLANも含めて、およそすべての設定されたVLANのVIDを持つフレームが採取できました。それが直ちに障害につながっていたという結論には至りませんでしたが、無線LAN-APが本来受信する必要のないフレームも受信していることは、本来発現する必然性のないトラブルを無用に招くリスクがあります。

もちろん、メンバでないVLANのVID「タグ」を持ったフレームは、CISCO社製スイッチ製品であろうとも
・入力されても該当するVLANのメンバポートに転送しない(Ingres Filter
・ポートから送信しない(そのポートから送信が必要なVLANについてのみメンバに設定する)
といった丁寧な設定をすることで、こういった横着な状態を回避することは十分可能です。

なお、CISCO社製に限らず、ソフトウェア的に「タグ」付きフレームを扱えるような機能を持たせた無線AP製品などでは、tagged設定したポートから、当該の無線APには設定されていないVIDのものも含めてすべての「タグ」付きフレームを送信する仕様のものが存在しています。これは、「タグ」の処理に関するCPU処理の重さとの兼ね合いによってそのような仕様にせざるを得なかったと考えられます。

Native VLAN

さて、「トランクポート」動作の説明の中で「Native VLAN」という新たな用語が出てきました。これもCISCO社製特有の概念・仕様なので、合わせて解説しましょう。

Native VLANとは

あるポートにとっての「Native VLAN」とは、そのポートのPVIDに設定したVIDを持つVLANのことです。例えば、あるポートを管理VLANのメンバとし、PVIDを管理VLANのVIDと同じにすれば、当該ポートに入力されたフレームは管理コンソールを動かしているCPUに届きますし、VID=管理VLANのVIDの「タグ」を持っているフレームも同様にCPUに届きます。
そして、CISCO社製を含む多くのスイッチ製品のデフォルトでは、各ポートのPVID、管理VLANのVIDは「1」に設定されているものです。

Native VLANで気を付けるべき点

気を付ける必要があるのは、

「Native VLAN」すなわち当該ポートのPVIDに設定したVIDを持つVLANについては、untagメンバになっている

という点です。「Native VLAN」という概念がないメーカのスイッチ製品では、PVIDに設定したVIDを持つVLANについてもtaggedメンバに設定でき、「タグ」を付けた状態で送信させることが可能なのですが、「Native VLAN」についてはuntagメンバになってしまうという(少なくともデフォルトの)仕様があるために、

IEEE802.1Qトランクポートでは、対向ポートとネイティブVLANの設定が一致していなければいけません。もし、ネイティブVLANの設定が不一致だと、一致していない設定のVLANの通信ができなくなってしまいます。
(引用元:ネットワークのおべんきょしませんか?ネイティブVLAN不一致の具体例

といった注意が必要になってしまいます。IEEE802.1Qという点だけから見れば、本来、スイッチ間をつなぐ対抗ポート同士のPVIDを一致させる必然性はなく、ただ、PVIDをVIDに持つVLANについても当該ポートをtaggedメンバに設定すれば(できれば)よいだけのことです。

NativeVLANに抱く幻想

「NativeVLAN」というものについての簡単な説明からイメージした勝手な幻想にも、多く遭遇しました。どのような「幻想」かというと

  1. VID=1の「タグ」を付与すれば、ネットワークのどこからでも(WEB設定画面やTELNET、SSHなどの)設定コンソールにアクセスができる
  2. 如何に複雑なVLANを設定していても、ポートにPCをつなげば設定コンソールにアクセスができる

といったものでした。中途半端な理解からこのような幻想に至ってしまうのでしょうが、なにか特殊な技術で実現されている便利な機能だと思われるのでしょう。2項などは明らかにセキュリティ上破綻した論だと言わざるを得ませんが、程度の差はあれ、このような幻想を抱かれている方によく遭遇したものです。

まとめ:「VLANの掟!」でCISCO仕様・用語の呪縛から解放されよう!

CISCO社製品のVLAN仕様・動作も「VLANの掟!」ですべて理解することができます。
CISCO社特有の用語や仕様に惑わされず、正しい理解を身に着けて、余計な呪縛や幻想から解放されましょう。潤沢な予算があって、必ずCISCO社製品を使うのだという場合なら、それでもやっていけるでしょうが、L2でのVLANを実現するだけなら、もっと廉価で十分な製品が多く存在しています。

ポートの設定については、まず「アクセスポート」か「トランクポート」かを設定するのではなく、「どのVLANでuntagメンバとし、どのVLANでtaggedメンバとするか」ネットワーク設計に基づいてメンバ設定をする

「Native VLAN」の幻想に陥らず適切なメンバ設定とPVIDを設計・設定する

タグ付きフレームを送信させる場合、必要なフレームだけを送信させ、トラフィックを無駄に増やさず、セキュリティを確保する

ことが肝要です。そしてこれらは「VLANの掟!」で確実に実行できます!

コメント

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