ルータによるVLAN間ルーティングの設定

ルータとレイヤ2スイッチをトランクで接続してVLAN間ルーティングを行うための設定は、ルータとスイッチそれぞれで次のように行います。

  • スイッチ
    • ルータと接続されているポートをトランクポートに設定
  • ルータ
    • スイッチで作成されているVLANに対応するサブインタフェースを作成
    • サブインタフェースにVLANに対応するIPアドレスを設定
    • 必要に応じて、スタティックルート、ルーティングプロトコルを設定

スイッチの設定

ルータとスイッチでDTP(Dynamic Trunking Protocol)によるダイナミックなネゴシエーションを行うことはできません。そのため、VLAN間ルーティングを行うには、スイッチのポートをスタティックにトランクポートにします。スイッチのポートをスタティックトランクポートとして設定するには、次のように設定します。

スイッチ トランクポートの設定

(config-if)#switchport trunk encapsulation {dot1q | isl}
(config-if)#switchport mode trunk
(config-if)#switchport nonegotiate

1Q、ISLの両方のトランクプロトコルをサポートしているときのみ、switchport trunk encapsulationコマンドが必要です。
switchport nonegotiateコマンドは必須ではありませんが、ルータはDTPをサポートしていないのでDTPを無効化する方がよいです。

ルータの設定

ルータでサブインタフェースを作成するには、グローバルコンフィグレーションモードで次のように設定します。

サブインタフェースの作成

(config)#interface <type> <slot>/<port>.<subif-num>
(config-subif)#

<subif-num> : サブインタフェース番号

分割する大元のインタフェースはメジャーインタフェースと呼びます。メジャーインタフェースのno shutdownを忘れないようにしてください。

サブインタフェース番号<subif-num>は自由に使えますが、設定をわかりやすくするため対応づけるVLAN番号を利用することが多いです。そして、サブインタフェース上でトランクを有効にしてVLANの対応付けを行うには次のように設定します。

サブインタフェースとVLANの対応付け

(config-subif)#encapsulation {dot1q | isl} <vlan-id> [native]

<vlan-id> : サブインタフェースに対応付けるVLAN番号
native : ネイティブVLANに指定する

IPルーティングを行うためには、サブインタフェースにIPアドレスが必要です。サブインタフェースにIPアドレスを設定するコマンドは、通常のインタフェースに対するものと同じです。モードがサブインタフェースのコンフィグレーションモードになっているだけの違いです。

IPアドレスの設定

(config-subif)#ip address <address> <subnetmask>

たとえば、FastEthernet0/0とスイッチを接続して、VLAN10に対応するサブインタフェースFa0/0.10を作成しIEEE802.1Qトランクとします。そして、そのサブインタフェースにIPアドレス192.168.10.1/24を設定するには次のようにコマンドを入力します。

interface FastEthernet 0/0.10
 encapsulation dot1q 10
 ip address 192.168.10.1 255.255.255.0

サブインタフェースにIPアドレスを設定すれば、Directly Connectedとしてそのネットワークアドレスがルーティングテーブルに載せられます。つまり、ルータによってVLANのネットワークが接続されたことになります。

サブインタフェースのネイティブVLAN指定

また、IEEE802.1Qトランクの場合、ネイティブVLANの設定を行うことがあります。ネイティブVLANのイーサネットフレームをトランクに転送するとき、VLANタグをつけません。ネイティブVLANは対向同士で一致させる必要があります。つまり、スイッチ側のトランクポートでネイティブVLANに合わせて、ルータ側でもネイティブVLANを設定しなければいけません。ルータのサブインタフェースをネイティブVLANに対応づけるためには、次のように設定します。

(config-subif)#encapsulation dot1q <vlan-num> native

<<vlan-num>> : ネイティブVLANにするVLAN番号

下の図は、ルータとスイッチでネイティブVLANを一致させるための設定例です。

ルータとスイッチでネイティブVLANを一致させる設定例
図 ルータとスイッチでネイティブVLANを一致させる設定例

ルータによるVLAN間ルーティングの設定例

次の図のネットワーク構成において、スイッチとルータのVLAN間ルーティングの設定例を考えます。

VLAN間ルーティングのサンプルトポロジ
図 VLAN間ルーティングのサンプルトポロジ
SW1はCatalyst2970とします。Catalyst2970はトランクプロトコルとして1Qをサポートします。

SW1の設定

SW1の設定は次のようにコンピュータが接続されるインタフェースのアクセスポートの設定と、ルータが接続されるインタフェースのトランクポートの設定を行います。

SW1

vlan 2
!
interface fastethernet 0/2
 switchport mode access
 switchport access vlan 1
 switchport nonegotiate
!
interface fastethernet 0/3
 switchport mode access
 switchport access vlan 2
 switchport nonegotiate
!
interface fastethernet 0/1
 switchport mode trunk
 switchport nonegotiate

デフォルトのVLANメンバーシップはVLAN1なので、SW1のFa0/2にはswitchport access vlan 1は設定しなくても構いません。

R1の設定

R1の設定は次のようにVLANに対応するサブインタフェースの作成およびIPアドレスの設定を行います。

R1

interface FastEthernet 0/0.1
 encapsulation dot1q 1 native
 ip address 192.168.1.254 255.255.255.0
!
interface FastEthernet 0/0.2
 encapsulation dot1q 2
 ip address 192.168.2.254 255.255.255.0

スイッチで1Qトランクの設定をするとデフォルトでVLAN1がネイティブVLANとなります。そのため、FastEthernet0/0.1でencapsulation dot1q 1 nativeの設定をしています。

ルータによるVLAN間ルーティングの設定の確認

ルータによるVLAN間ルーティングの設定を確認するには、それぞれのデバイスで次の表のようなshowコマンドを使います。

showコマンド確認する内容
#show vlan brief ホストが接続されているインタフェースのVLANメンバーシップが正しいかを確認します。
#show interface trunk ルータが接続されているインタフェースが正しくトランクポートになっているかを確認します。
表 ルータによるVLAN間ルーティングの主な確認コマンド(スイッチ)
showコマンド確認する内容
#show ip interface brief ルータのサブインタフェースのIPアドレス、スタータスを確認します。IPアドレスだけでなくサブネットマスクも確認するには、show ip interfaceコマンドを使います。
#show vlans #ルータのサブインタフェースとVLANの対応づけを確認します。
#show ip protocols ルーティングプロトコルを利用している場合、ルーティングプロトコルの要約情報を確認します。
#show ip route ルータのルーティングテーブルを確認します。サブインタフェースのネットワークアドレスがDirectly Connectedで載せられます。また、必要に応じてスタティックルート、ダイナミックルートが正しく存在するかを確認します。
表 ルータによるVLAN間ルーティングの主な確認コマンド(ルータ)
ルーティングプロトコルを利用しているときは、さらに各ルーティングプロトコルのshowコマンドで確認してください。

また、PingやTracerouteなどで実際にエンドツーエンドの通信が可能であるかどうかも確認します。設定例で見たネットワーク構成におけるshowコマンドのサンプル出力は次のようになります。

SW1の確認

SW1

SW1#show vlan brief 

VLAN Name                             Status    Ports
---- -------------------------------- --------- -------------------------------
1    default                          active    Fa0/2
2    VLAN0002                         active    Fa0/3
1002 fddi-default                     act/unsup 
1003 token-ring-default               act/unsup 
1004 fddinet-default                  act/unsup 
1005 trnet-default                    act/unsup 
SW1#show interfaces trunk 

Port        Mode         Encapsulation  Status        Native vlan
Fa0/1       on           802.1q         trunking      1

Port      Vlans allowed on trunk
Fa0/1       1-4094

Port        Vlans allowed and active in management domain
Fa0/1       1-2

Port        Vlans in spanning tree forwarding state and not pruned
Fa0/1       1-2

R1の確認

R1

R1#show ip interafaces brief 
Interface                  IP-Address      OK? Method Status                Protocol
FastEthernet0/0            unassigned      YES unset  up                    up      
FastEthernet0/0.1          192.168.1.254   YES manual up                    up
FastEthernet0/0.2          192.168.2.254   YES manual up                    up
Serial0/0                  unassigned      YES unset  administratively down down    
FastEthernet0/1            unassigned      YES unset  administratively down down    
Serial0/1                  unassigned      YES unset  administratively down down    
R1#show ip protocols 

R1#show ip route 
~省略~

Gateway of last resort is not set

C    192.168.1.0/24 is directly connected, FastEthernet0/0.1
C    192.168.2.0/24 is directly connected, FastEthernet0/0.2
R1#show vlans 

Virtual LAN ID:  1 (IEEE 802.1Q Encapsulation)

   vLAN Trunk Interface:   FastEthernet0/0.1

 This is configured as native Vlan for the following interface(s) :
FastEthernet0/0

   Protocols Configured:   Address:              Received:        Transmitted:
           IP              192.168.1.254             1950                   0

Virtual LAN ID:  2 (IEEE 802.1Q Encapsulation)

   vLAN Trunk Interface:   FastEthernet0/0.2

   Protocols Configured:   Address:              Received:        Transmitted:
           IP              192.168.2.254                0                   0

サンプルのR1ではルーティングプロトコルを利用していないので、show ip protocolsでは何も出力されていません。

VLAN(Virtual LAN)の仕組み