現在のネットワーク構築に欠かせない技術であるVLAN。そのVLANを管理する技術がVTPです。VTPを使うことにより,大規模なVLANが構成できるようになります。また,今回はVLAN間のルーティング手法も学びましょう。
VLAN設定を自動化するVTP
複数のスイッチを使って論理的にネットワークを構築していく場合,必要となるすべてのスイッチにVLANの情報を1つ1つ登録していくことになります。スイッチの台数が多いと,手間がかかり,設定ミスなども起こしやすくなります。VLAN設定の自動化,統一化を図るプロトコルがVTP(VLAN Trunking Protocol)です。VTPはISL,もしくはIEEE802.1Qでカプセル化されてスイッチ間のトランクリンクでマルチキャストとして転送されます。VTPにより,各スイッチにVLANを設定する作業が省かれ,VLAN名の重複などの設定ミスを防ぐことができます。送信されるVTPの情報は,VTPアドバタイズと呼ばれます。
VTPを動作させているスイッチには3種類のモードがあります。サーバモード,クライアントモード,トランスペアレントモードです。
モード | VLANの作成/削除 | VLAN設定の保存 | その他 |
---|---|---|---|
サーバ | 可 | 保存する | VTPアドバタイズを送信 |
クライアント | 不可 | 保存しない | サーバからのアドバタイズによってのみVLANを設定する |
トランスペアレント | 可 | 保存する | サーバからのアドバタイズを無視する。独自の設定のみ有効 |
サーバモードとクライアントモードに分けることにより,少数のサーバモードのスイッチから多数のクライアントモードのスイッチを管理することが可能になります。トランスペアレントモードのスイッチは,それらとは関係なく独自に手動で設定されたVLAN設定のみを使用します。ただし,トランスペアレントモードのスイッチもVTPアドバタイズを受け取ると,それを他のスイッチへ転送します。
VTPはVTP管理ドメインというものを構成します。同じVTPドメイン名を持ったスイッチ同士で情報を交換します。VTPアドバタイズにはVTPドメイン名が記載され,異なるVTPドメイン名のあるVTPアドバタイズは無視されます。またVTPアドバタイズには,リビジョン番号が記載されています。この番号はVLANの情報が新しくなるたびに大きくなっていきます。つまり,リビジョン番号が大きい情報が新しい情報であるということがわかる形になっています。
VTPの設定とVTPプルーニング
スイッチでVTPを設定する際に,重要な設定項目は,VTPドメイン名,VTPモードの2つです(図1)。- (config)# vtp domain [VTPドメイン名] ・・・ VTPドメイン名を設定する
- [VTPドメイン名]
- VTPドメイン名を設定する。大文字と小文字は区別するので要注意
- [VTPドメイン名]
- (config)# vtp mode [server | client | transparent] ・・・ VTPモードを設定する

また,現在のスイッチのVTP情報を入手するには,showコマンドを使います(図2)。
- # show vtp status ・・・ VTPの情報を表示する。

VTPを使用することにより,同一のVTP管理ドメイン内のすべてのスイッチが同じVLAN情報を持つことになります。ただし,すべてのスイッチで全部のVLANが設定されているとは限りません。そこで必要のないトラフィックを排除する機能がVTPにはあります。この機能をVTPプルーニングと呼びます。
VTPプルーニングを有効にするには,以下のコマンドを実行します。
- (config)# vtp pruning ・・・ VTPプルーニングを有効にする
VLAN間のルーティング
同一のスイッチに接続されているとしても,所属するVLANが異なればネットワークが異なり,VLAN間での通信はできません。ネットワーク間通信には,ルータが必要になります。VLAN間で通信するためには,スイッチにルータを接続し,VLAN間のルーティングを実行しなければなりません。各VLANにマッピングされたポートとルータをつなぎ,ルータをデフォルトゲートウェイとして使用することにより,VLAN間でのルーティングが可能になります。
しかしこのような場合,VLANごとにルータと接続することになり,VLANの数だけルータとスイッチにインタフェースが必要になります。
これを解決するための手法としては,スイッチとルータの接続は1つのリンクだけにし,そのリンクをトランクリンクとしてVLANタグを付けてやりとりする方法があります。そのためには,ルータのインタフェースがトランキングプロトコル(ISLまたはIEEE802.1Q)を理解できる必要があります。
ルータ側はトランクリンクの物理インタフェースをそれぞれのVLANごとに論理的に分割します。論理的に分割されたインタフェース(サブインタフェース)は,それぞれのVLANパケットを受け取り,ルーティングを行います。
これにより,ルータはサブインタフェースからタグ付きのフレームを受け取ってルーティングしたあと,あて先のVLANのタグを付けて対応するサブインタフェースから送信します。
スイッチ側の設定は,ルータに接続するポートをトランクポートに設定します。一方のルータ側ではサブインタフェースの設定が必要です。まず,物理インタフェースに設定されているIPアドレスは不要ですので削除します(図3)。
- (config)# interface [タイプ] [物理ポート番号] ・・・ 物理インタフェースの設定モードに入る
- (config-if)# no ip address ・・・ 物理インタフェースのIPアドレスを削除する

このあとで,サブインタフェースを設定します。サブインタフェースは「ポート番号.サブインタフェース番号」という形式で指定します。例えば,「FastEthernet 0.1」とした場合は,「ファストイーサネット0番ポートの1番サブインタフェース」という意味になります。サブインタフェースには,通常と同じようにIPアドレス,トランキングプロトコルの種類,所属するVLANを設定します(図4)。
- (config)# interface [タイプ] [物理ポート番号].[サブインタフェース番号] ・・・ サブインタフェースの設定モードに入る
- (config-subif)# encapsulation [isl | dot1q] [VLAN番号]
- [isl | dot1q]
- 使用するトランキングプロトコルを決定する
- [VLAN番号]
- サブインタフェースが所属するVLAN番号
- [isl | dot1q]
- (config-subif)# ip address [IPアドレス] [サブネットマスク]

なお,必ず「トランキングプロトコルの設定」→「IPアドレスの設定」の順番で実行します。
VLANとSTP
STPはVLANが動作しているスイッチでも有効で冗長性を保ちながら,VLANを利用することができます。ですが,VLANで使われる情報(レイヤ3)とSTPで使われる情報(レイヤ2)は異なるため,場合によっては非効率的なスイッチングが行われることがありえます。
これはすべてのVLANでSTPのスパニングツリー情報(インスタンス)が共通のために起きることとなります。これをCST(Common Spanning-Tree)と呼びます。
Ciscoではこれに対し,PVST+(Per-VLAN Spanning-Tree Plus)と呼ばれる独自技術を使用します。これはVLAN毎にルートブリッジを設定可能にして,インスタンスをVLANごとに持つことが可能になります。BPDUを拡張し,BPDUの情報にVLAN番号を追加することにより,VLAN別の情報を持つことができます。
PVST+はCisco独自のSTP対応の技術です。RSTPの登場により,RSTPに対応したPVRST(Per-VLAN Rapid Spanning-Tree)が作られています。また,IEEEがIEEE802.1sを規格化しています。IEEE802.1sはMST(Multiple Spanning-Tree)またはMIST(Multiple Instance Spanning-Tree)と呼ばれます。MSTとPVST+(PVRST)の違いは,PVST+はVLANごとに1つのインスタンスを作成しますが,MSTはいくつかのVLANでインスタンスを共通化できます。たとえば,100のVLANがあった場合,PVST+では100のインスタンスが必要ですが,MSTでは50個のVLANで共通のインスタンスを使うなどより少ないインスタンスで済むことになり,その分スイッチの処理が軽くなります。
(改定履歴)
・「VLANとSTP」の部分を追加しました。(2008/7/24)