L2スイッチング / バーチャルLAN
バーチャルLAN(VLAN)は、スイッチの設定によって論理的にブロードキャストドメインを分割する機能です。レイヤー2スイッチは、宛先MACアドレスとフォワーディングデータベースを用いて不要なトラフィックをフィルタリングする機能を持ちますが、未学習の宛先MACアドレスを持つユニキャストパケットと、マルチキャスト/ブロードキャストパケットは全ポートに出力します。VLANを作成して、頻繁に通信を行うホスト同士をグループ化することにより、不要なトラフィックの影響を受ける範囲を限定し、帯域をより有効に活用できるようになります。VLANの種類
本製品がサポートしているVLANの種類は次のとおりです。- ポートVLAN(タグVLANを含む)
ポートの種類
VLANを利用するには、VLANを作成(定義)した後、各スイッチポートに対してどのVLANに所属させるかを指定する必要があります。特定のVLANに所属しているスイッチポートの集合を、該当VLANのメンバーポートと呼びます。メンバーポートには、次の種類があります。- タグなしポート(アクセスポート)
- タグ付きポート(トランクポート)
ポートとVLAN
スイッチポートは少なくとも1つのポートVLANに所属していなくてはなりません(ミラーポートを除く)。また、ポートは複数のVLANに所属できますが、所属先VLANの種類によって、いくつのVLANに所属できるかが異なります。基本ルールは次のとおりです。- ポートVLAN(タグなし):1つのVLANにだけ所属できます
- ポートVLAN(タグ付き):複数のVLANに所属できます
ポートが複数のVLANに所属している場合、受信パケットの所属先は次の基準にしたがって決定されます。スイッチポートがどのVLANに所属しているかは、show interface switchportコマンドで確認できます。
- 該当ポートがタグ付きポート(トランクポート)の場合
- 受信パケットがタグ付きの場合は、VLANタグに格納されたVIDが、該当ポートの所属先タグVLAN(switchport trunk allowed vlanコマンドで指定されたVLAN)のどれかと一致する場合、そのVIDを持つVLANの所属と判断する。所属先でないVIDを持つタグ付きパケットを受信した場合は、該当ポートのイングレスフィルタリング設定(switchport modeコマンドのingress-filterパラメーター)によって以下のように処理する。
- イングレスフィルタリングが有効(初期設定)であれば、該当パケットを破棄する。
- イングレスフィルタリングが有効(初期設定)であれば、該当パケットを破棄する。
- 受信パケットがタグなしの場合は、次の順序で所属VLANが決定される。
- 該当ポートのネイティブVLAN(switchport trunk native vlanコマンドで設定)がなし(none)に設定されている場合、タグなしパケットを受け入れずに破棄する。
- ネイティブVLANが設定されている場合は、該当ポートのネイティブVLANの所属と判断する。
- 該当ポートのネイティブVLAN(switchport trunk native vlanコマンドで設定)がなし(none)に設定されている場合、タグなしパケットを受け入れずに破棄する。
- 受信パケットがタグ付きの場合は、VLANタグに格納されたVIDが、該当ポートの所属先タグVLAN(switchport trunk allowed vlanコマンドで指定されたVLAN)のどれかと一致する場合、そのVIDを持つVLANの所属と判断する。所属先でないVIDを持つタグ付きパケットを受信した場合は、該当ポートのイングレスフィルタリング設定(switchport modeコマンドのingress-filterパラメーター)によって以下のように処理する。
- 該当ポートがタグなしポート(アクセスポート)の場合
- switchport access vlanコマンドで設定されたポートVLANの所属と判断する。
- switchport access vlanコマンドで設定されたポートVLANの所属と判断する。
以下の各節では、上記をふまえ、ポートVLANとタグVLANについて説明します。
デフォルトVLAN
初期状態では、すべてのポートがタグなしポート(アクセスポート)としてvlan1(デフォルトVLAN)に所属しており、すべてのポートが相互に通信可能になっています。単なるレイヤー2スイッチとして本製品を使用する場合は、特別な設定を行うことなく、設置・配線を行うだけで使用できます。
デフォルトVLANは特殊なVLANであり、削除することはできません。
ポートVLAN
次に単純なポートVLANの設定方法を示します。デフォルトでは、すべてのスイッチポートがvlan1(デフォルトVLAN)に所属しています。
- vlan databaseコマンドでVLANモードに移行し、vlanコマンドで3つのVLAN(vlan10, vlan20, vlan30)を作成します。
awplus(config)# vlan database awplus(config-vlan)# vlan 10,20,30 awplus(config-vlan)# exit
- 次にスイッチポートをVLANに割り当てます。ポートごとにinterfaceコマンドを実行してインターフェースモードに移行し、switchport modeコマンドで該当ポートをアクセスポート(タグなしポート)に設定し、最後にswitchport access vlanコマンドで所属VLANを指定します。
awplus(config)# interface port1.0.1-1.0.2 awplus(config-if)# switchport mode access awplus(config-if)# switchport access vlan 10 awplus(config-if)# exit awplus(config)# interface port1.0.3-1.0.6 awplus(config-if)# switchport mode access awplus(config-if)# switchport access vlan 20 awplus(config-if)# exit awplus(config)# interface port1.0.7-1.0.8 awplus(config-if)# switchport mode access awplus(config-if)# switchport access vlan 30 awplus(config-if)# exit
設定は以上です。
このようにしてポートをデフォルトVLAN以外のVLANに割り当てると、そのポートは自動的にデフォルトVLANから削除されます。

これで、物理的には1台のスイッチでありながら、ネットワーク的には3台のスイッチに分割されたような状態となります。vlan10、20、30は完全に独立しており、互いに通信することはできません。
VLANの設定を確認するには、show vlanコマンドを使います。
awplus# show vlan all
VLAN ID Name Type State Member ports
(u)-Untagged, (t)-Tagged
======= ================ ======= ======= ====================================
1 default STATIC ACTIVE
10 VLAN0010 STATIC ACTIVE port1.0.1(u)
20 VLAN0020 STATIC ACTIVE port1.0.2(u) port1.0.3(u)
30 VLAN0030 STATIC ACTIVE port1.0.4(u)
ポートをデフォルトVLANに戻すには、インターフェースモードに移行してから、switchport access vlanコマンドをno形式で実行してください。たとえば、port1.0.7~1.0.8をデフォルトVLANの所属に戻すには、次のようにします。
awplus(config)# interface port1.0.7-1.0.8 awplus(config-if)# no switchport access vlan
VLANを削除するには、vlanコマンドをno形式で実行します。たとえば、vlan30を削除するには次のようにします。これにより、vlan30所属のタグなしポート(アクセスポート)はデフォルトVLANの所属に戻ります。
awplus(config)# vlan database awplus(config-vlan)# no vlan 30
タグVLAN
タグVLANを使用すると、1つのポートを複数のVLANに所属させることができます。これは、イーサネットフレームにVLAN IDの情報を挿入し、各フレームが所属するVLANを識別できるようにすることによって実現されます(IEEE 802.1Q VLANタギング)。タグVLANは、複数のVLANを複数の筐体にまたがって作成したい場合や、IEEE 802.1Q対応サーバーを複数VLANから共用したい場合などに利用します。
以下では、VLANタグを利用して2台のスイッチにまたがるVLANを作成する方法を説明します。ここでは次のようなネットワーク構成を例に説明します。

この例では、port1.0.1をタグ付きポート(トランクポート)に設定し、vlan10、vlan20両方のトラフィックがスイッチ間で流れるようにします。スイッチA、Bとも設定は同じです。
- vlan databaseコマンドでVLANモードに移行し、2つのVLAN(vlan10, vlan20)を作成します。
awplus(config)# vlan database awplus(config-vlan)# vlan 10,20 awplus(config-vlan)# exit
- 次にタグなしポート(アクセスポート)をVLANに割り当てます。ポートごとにinterfaceコマンドを実行してインターフェースモードに移行し、switchport modeコマンドで該当ポートをアクセスポート(タグなしポート)に設定し、最後にswitchport access vlanコマンドで所属VLANを指定します。
awplus(config)# interface port1.0.2-1.0.4 awplus(config-if)# switchport mode access awplus(config-if)# switchport access vlan 10 awplus(config-if)# exit awplus(config)# interface port1.0.5-1.0.8 awplus(config-if)# switchport mode access awplus(config-if)# switchport access vlan 20 awplus(config-if)# exit
- 最後にport1.0.1をタグ付きポート(トランクポート)に設定し、vlan10とvlan20のトラフィックだけを通すよう設定します。switchport modeコマンドで該当ポートをトランクポートに設定し、switchport trunk allowed vlanコマンドで所属VLANを指定します。アクセスポートと異なり、トランクポートは複数のVLANに所属させることができます。
awplus(config)# interface port1.0.1 awplus(config-if)# switchport mode trunk awplus(config-if)# switchport trunk allowed vlan add 10,20 awplus(config-if)# exit
設定は以上です。
これにより、各ポートから送受信されるフレームは次のようになります。
| vlan10宛てのフレームをタグなしで出力する | |||
| 受信 | 受信したタグなしフレームはvlan10所属と見なす。タグ付きフレームはvlan10宛てのみ受け入れ、その他は破棄する | ||
| vlan20宛てのフレームをタグなしで出力する | |||
| 受信 | 受信したタグなしフレームはvlan20所属と見なす。タグ付きフレームはvlan20宛てのみ受け入れ、その他は破棄する | ||
| vlan10、vlan20宛てのフレームをタグ付きで出力する。VLANタグにはVLAN ID(10か20)を格納する | |||
| 受信 | 受信したタグ付きフレームは、タグに格納されたVLAN IDが10であるか20であるかによって、vlan10かvlan20の所属と見なす。それ以外のVLAN IDを持つタグ付きフレームは破棄する。タグなしフレームを受信した場合は、ネイティブVLANの所属と見なす |
タグVLANを使って複数のスイッチにまたがるVLANを作成する場合は、各筐体で同じVLAN IDを設定するようにしてください。
上記の設定では、port1.0.1はデフォルトVLAN(vlan1)にも(タグなしポートとして)所属したままになっています(これをネイティブVLANと呼びます)。他にもデフォルトVLAN所属のポートがあってトラフィックが流れている場合、port1.0.1にもデフォルトVLANのブロードキャストパケットが送出されます。これが望ましくない場合は、switchport trunk native vlanコマンドを使って、port1.0.1のネイティブVLANをなし(none)に設定します。
awplus(config)# interface port1.0.1 awplus(config-if)# switchport trunk native vlan none
ネイティブVLAN
ネイティブVLANとは、タグ付きポートで受信したタグなしパケットの所属先VLANのことです。初期状態ではvlan1に設定されているため、タグ付きポートで受信したタグなしパケットはvlan1の所属として扱われます。これを変更したい場合はswitchport trunk native vlanコマンドで別のVLAN IDを指定する必要があります。VLAN間ルーティング
各VLANは独立したブロードキャストドメインになるため、互いに通信することはできません。しかし、各VLANにレイヤー3アドレス(IPアドレス)を割り当てれば、ネットワーク層レベルでパケットが転送され、VLAN間通信が可能になります。ここではIPを例に、VLAN間ルーティングの基本設定について説明します。- VLANを作成します。
awplus(config)# vlan database awplus(config-vlan)# vlan 10,20,30 awplus(config-vlan)# exit
- VLANにポートを割り当てます。
awplus(config)# interface port1.0.1-port1.0.2 awplus(config-if)# switchport mode access awplus(config-if)# switchport access vlan 10 awplus(config-if)# exit awplus(config)# interface port1.0.3-port1.0.6 awplus(config-if)# switchport mode access awplus(config-if)# switchport access vlan 20 awplus(config-if)# exit awplus(config)# interface port1.0.7-port1.0.8 awplus(config-if)# switchport mode access awplus(config-if)# switchport access vlan 30 awplus(config-if)# exit
- 各VLAN(VLANインターフェース)にIPアドレスを割り当てます。IPアドレスの設定はip addressコマンドで行います。
awplus(config)# interface vlan10 awplus(config-if)# ip address 192.168.10.1/24 awplus(config-if)# exit awplus(config)# interface vlan20 awplus(config-if)# ip address 192.168.20.1/24 awplus(config-if)# exit awplus(config)# interface vlan30 awplus(config-if)# ip address 192.168.30.1/24 awplus(config-if)# exit
設定は以上です。
これにより、VLAN間でIPパケットが転送されるようになります。VLAN間ルーティングは、同じプロトコルのレイヤー3アドレスを2つ設定した時点で自動的に有効になります。
次の図は、この状態を概念的に示したものです。VLAN分けにより分割された仮想的なスイッチ3台の上位に、仮想的なルーターを設置したものと考えることができます。実際にはこれらのスイッチやルーターの機能は、1台の筐体内で実現されています。

各VLANに割り当てられたIPアドレスは、show ip interfaceコマンドで確認できます。
awplus# show ip interface
いずれかのVLAN上に別のルーターが存在する場合は、経路制御の設定が必要です。経路情報を静的に設定するにはip routeコマンドを使います。
awplus(config)# ip route 0.0.0.0/0 192.168.10.254
より詳しくは以下の各解説編をご覧ください。
- IPアドレスの設定については、「IP」の「IPインターフェース」をご覧ください。
- 静的経路制御については、「IP」の「経路制御」をご覧ください。
- 動的経路制御(RIP)については、「IP」の「経路制御(RIP)」をご覧ください。
- 動的経路制御(OSPF)については、「IP」の「経路制御(OSPF)」をご覧ください。
- 動的経路制御(BGP)については、「IP」の「経路制御(BGP)」をご覧ください。