現在のネットワークでよく使われている技術がVLANです。VLANを使うことで自由にネットワーク境界を作れるようになり,ネットワークの構成に幅が出ます。今回はこのVLANを学びましょう。

VLANの概要と利点

 通常,同じスイッチにつながるホストは同一のネットワークに所属します。同一のブロードキャストドメイン,同一のネットワークアドレスを持つグループです。ネットワーク(ブロードキャストドメイン)を分割したい場合は,ルータが必要です。

 VLAN(Virutal LAN)は,レイヤ2のスイッチでネットワーク(ブロードキャストドメイン)を,ルータに頼らずに分割する技術です。これにより今までは物理的な配置(同じスイッチに接続=同じネットワーク)にしばられていたネットワーク構成が,論理的な配置(どのスイッチに接続しているかとネットワークは別)で構成を変更できるようになるわけです(図1)。

図1●VLANの概要
図1●VLANの概要

 物理的な配置とは関係なく,ネットワークが形成できるので,仮想LAN(Virutal LAN)と呼ばれます。VLANはスイッチ上では番号により識別されます。VLAN1,VLAN2・・・のように番号がつけられます。VLAN上の各ホストから送信されたフレームは同じVLANにしか届きません。つまり,物理的には同じスイッチに接続されていても,論理的には別のスイッチに接続されているのと同じことになります(図2)。

図2●VLANでのデータの流れ

 このように,本来ならばルータでしかできないネットワークの分割をスイッチで行うことにより(ルータの台数が少なくてすむため)コストダウンや,物理的な場所に依存しない柔軟なネットワーク構成をとることができます。

VLANメンバーシップ

 VLANではスイッチのポートそれぞれに別のVLANを割り当てることができます。同じVLANに割り当てられたポートは同じネットワークに,異なるVLANを割り当てると違うネットワークになります。VLANをスイッチのポートに割り当てる方法(VLANメンバシップ)は2種類あります。「静的」な方法と「動的」な方法です。

 静的な(スタティック)VLANはポートベースVLANとも呼ばれ,各ポートそれぞれにポートが所属するVLANを割り当てる方式です。ホストはケーブルを介してつながる先のポートに割り当てられているVLANに所属します。簡単に言えば,VLAN1に設定しているポートにホストを接続したら,そのホストはVLAN1に所属します。

 ポートにVLANを設定するには,「VLANを作成する」,「VLANにポートを割り当てる」の2段階の手順を踏むことになります。まず,vlanコマンドでVLANを作成することから始めます。vlanコマンドにより,VLAN設定モードに入るとVLANに識別用に名前を付けることができます。

  • (config)# vlan [VLAN番号] ・・・ VLANを作成し,VLAN設定モードに入る
  • (config-vlan)# name [VLAN名]
    • [VLAN名]
      • VLANに管理用の名前を付ける

 次に,このVLANに割り当てるポートを設定します(図3)。

  • (config)# interface [タイプ] [ポート番号]
  • (config-if)# switchport mode access
  • (config-if)# switchport access vlan [VLAN番号]

図3●ポートベースVLANの設定
図3●ポートベースVLANの設定

 作成されたVLANと,そのVLANに所属するポートはshowコマンドで確認できます(図4)。

  • (config)# show vlan ・・・ VLAN情報を確認する。
  • (config)# show vlan brief ・・・ VLAN情報(簡易)を確認する。

図4●show vlan
図4●show vlan

 show vlanで見ることができるVLANの情報は,設定ファイル(startup-config)とは別に,vlan.datというファイルでフラッシュメモリに保存されます。

 一方,動的な(ダイナミック)VLANには,ユーザベースVLANやアドレスベースVLANなどがあります。ポートに接続したホストのアドレスや,ホストにログインしているユーザの情報から,そのホストが所属すべきVLANを決める方法です。これにはアドレスやユーザ情報と,VLANの対応データベースが必要になります。

 また,そのVLANの使用を禁止したい場合,shutdownコマンドを使うことにより,そのスイッチでのVLANのトラフィックの転送を止めることができます。

  • (config-vlan)# shutdown ・・・ VLAN設定モードではそのVLANのトラフィックの転送を禁止できる。
  • (config)# shutdown vlan [VLAN番号] ・・・ グローバル設定モードでは指定したVLANのトラフィックの転送を禁止できる。

管理VLANとは

 管理VLANはVLANの中で1つだけ存在するVLANで,デフォルトではVLAN1が管理VLANになります。この管理VLANには「スイッチ自身」も含まれ,スイッチ自身がTCP/IPによる通信をする場合,管理VLANが使われます。

 SNMPによる状態の通知や,TELNETによるリモートログインなど,スイッチにIPアドレスが必要な場合があります。このような場合,管理VLANにスイッチ自身が所属するものとして扱います(図5)。

図5●管理VLAN
図5●管理VLAN

 スイッチ編の第1回でも説明しましたが,スイッチにIPアドレスを割り当てる方法は以下の通りです。これは管理VLANに所属する仮想的なインタフェース(VLANインタフェース)をスイッチ内に作り,そのインタフェースと通信する,という形です。

  • (config)# interface VLAN 1 ・・・ 仮想インタフェースVLAN 1の設定モードに入る
  • (config-if)# ip address [IPアドレス] [サブネットマスク]
    • [IPアドレス] [サブネットマスク]
      • スイッチに設定したいIPアドレス,サブネットマスク

トランクとは

 複数台のスイッチでVLANを設定することも可能です。その場合,スイッチとスイッチをつなぐリンクには複数のVLANのフレームが流れます。このとき,スイッチが受け取ったフレームは,どのVLANのフレームか識別する必要があります。

 そこで,所属するVLANを示すタグというものをフレームに追加して,フレームをやりとりします(図6)。

図6●タグを使ったスイッチ間VLAN

 このスイッチ間のリンクのことを「トランクリンク」,そのポートを「トランクポート」。通常のホストに接続されるリンク・ポートのことを「アクセスリンク」「アクセスポート」と呼びます。

 このトランクリンクで使用されるタグを付ける方法は2種類あります。

  • ISL(InterSwitchLink) ・・・ Cisco社独自のタグ付けプロトコル
  • IEEE802.1Q ・・・ IEEE標準のタグ付けプロトコル

 このISLとIEEE802.1Qは「VLAN番号を示すタグを付ける(フレームタギング)」という観点では同じですが,その付け方が異なります(図7)。

図7●ISLとIEEE802.1Q
図7●ISLとIEEE802.1Q

 トランクリンクを通る時だけ使うヘッダとトレーラを,もともとのイーサネットフレームに付ける方式がISL,イーサネットフレーム中にタグを埋め込む方式がIEEE802.1Qです。ISLはヘッダとトレーラの分の30バイトが追加されて最大1548バイト,IEEE802.1Qはタグ分の4バイトが追加されて最大1522バイトになります。

 どちらの方式を使うかは,スイッチの機種によって異なります。例えば,Catalyst1900シリーズはISLのみ,Catalyst2950ではIEEE802.1Qのみです。現在は標準であるIEEE802.1Q対応の機種が多くなっています。

 ポートをトランクポートに設定するには,先ほども使ったswtichportコマンドを使用します(図8)。

  • (config)# interface [タイプ] [ポート番号]
  • (config-if)# switchport mode trunk {encapsulation isl | dot1q}
    • {encapsulation isl | dot1q}
      • ISL,IEEE802.1Qの両方が使える機種では使用するプロトコルを設定する

図8●トランクポートの設定
図8●トランクポートの設定