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

ルータはネットワークを相互接続してネットワーク間の通信を行うためのネットワーク機器です。そのため、ルータでVLANによって分割されたネットワークを相互接続できます。レイヤ2スイッチのVLANをルータで相互接続するためには、まずはルータとレイヤ2スイッチ間を物理的に接続しなければいけません。ルータとレイヤ2スイッチ間の物理的な接続として、2通り考えられます。

  • ルータとレイヤ2スイッチ間をVLANごとのアクセスリンクで接続
  • ルータとレイヤ2スイッチ間をトランクリンクで接続

VLANごとのアクセスリンクでの接続

ルータはインタフェースごとにネットワークを接続します。そして、VLANは1つのネットワークです。このことから、ルータとレイヤ2スイッチ間の物理的な接続をわかりやすくシンプルに考えると、VLANごとにルータとレイヤ2スイッチを接続します。たとえば、レイヤ2スイッチで2つのVLANを作成しているのであれば、ルータとレイヤ2スイッチ間を2本の物理的なリンクで接続します。VLANが3つならルータとレイヤ2スイッチ間を3本のリンクで接続します。

物理的に接続しただけでは、ルータでVLANを接続したことにはなりません。レイヤ2スイッチ、ルータそれぞれに適切な設定が必要です。レイヤ2スイッチ側のポートは接続したいVLANのアクセスポートとして設定します。ルータ側のインタフェース(ポート)は、接続するVLANに対応づけているネットワークのIPアドレスを設定します。ルータのインタフェースにIPアドレスを設定することで、ルータはネットワークを接続します。

次の図は、レイヤ2スイッチのVLAN10とVLAN20という2つのVLANをルータで相互接続している例です。

VLANごとのアクセスリンクによる接続
図 VLANごとのアクセスリンクによる接続

レイヤ2スイッチのポート5とルータのインタフェース(ポート)1を物理的に接続しています。この配線はVLAN10を接続するためです。レイヤ2スイッチでは、ポート5をVLAN10のアクセスポートとして設定し、ルータのインタフェース1にはVLAN10に対応づけている192.168.10.0/24内のIPアドレス192.168.10.254/24を設定しています。また、VLAN10にはPC1やPC2が接続されています。これらのPCにもVLAN10に対応づけている192.168.10.024内のIPアドレスを設定します。さらに、デフォルトゲートウェイとしてVLAN10のルータのIPアドレス192.168.10.254を設定します。

レイヤ2スイッチのポート6とルータのインタフェース2の接続は、VLAN20のための物理的な接続です。レイヤ2スイッチのポート6をVLAN20のアクセスポートとして設定し、ルータのインタフェース2にはVLAN20に対応づけている192.168.20.0/24内のIPアドレス192.168.20.254/24を設定しています。VLAN20内のPC3とPC4にも、VLAN20に対応づけている192.168.20.0/24内のIPアドレスとデフォルトゲートウェイ192.168.20.254を設定します。

以上のように、VLANごとにルータとレイヤ2スイッチを物理的に接続したうえで適切な設定を行うとVLANを相互接続できます。しかし、このようなルータとレイヤ2スイッチ間の接続構成は、拡張性に乏しくなってしまいます。VLANがたくさんあれば、ルータとレイヤ2スイッチ間の接続もたくさん必要です。あとからVLANを追加すると、配線の追加も必要です。

トランクリンクで接続(Router-on-a-stick)

ルータとレイヤ2スイッチ間を物理的に1本のリンクだけで接続する構成も可能です。ルータとレイヤ2スイッチを1本のリンクで接続して、VLAN間ルーティングを行うようなネットワーク構成を「Router-on-a-stick」と呼んでいます。

ルータ-レイヤ2スイッチ間の1本の物理的な接続をトランクリンクとします。そのために、レイヤ2スイッチ側のポートをトランクポートとして設定します。トランクポートに設定するということは、VLANごとにポートを分割して扱うことができます。レイヤ2スイッチにVLANが2つあれば、トランクポートは2つに分割されることになります。

そして、ルータは原則として、1つのインタフェースで1つのネットワークを接続します。ルータ側でも物理的に1つのインタフェースを複数に分割します。ただ、ルータ側では、「トランクポート」ではなく「サブインタフェース」という言葉の表現になるので注意してください。言葉の表現は違いますが、イーサネットインタフェースのサブインタフェースはトランクポートに相当します。サブインタフェースによって、ルータの物理的なイーサネットインタフェースをVLANごとに分割して扱うことができます。

次の図は、ルータとレイヤ2スイッチ間をトランクリンクとして、レイヤ2スイッチのVLAN10とVLAN20という2つのVLANをルータで相互接続している例です。

トランクリンクによる接続(Router-on-a-stick)
図 トランクリンクによる接続(Router-on-a-stick)

レイヤ2スイッチのポート5とルータのインタフェース1のみを接続しています。レイヤ2スイッチのポート5をトランクポートとして設定することで、ポート5はVLAN10にもVLAN20にも割り当てられます。これによって、ポート5はVLAN10とVLAN20の2つに分割して扱うことができます。

レイヤ2スイッチでポート5をVLANごとに分割しているので、その対向のルータでもインタフェース1をVLANごとに分割しなければいけません。ルータでは、VLAN10用のサブインタフェース1とVLAN20用のサブインタフェース2の2つに分割します。VLAN10用のサブインタフェース1にはVLAN10のVLANタグを扱うための設定を行います。そして、VLAN10に対応づけている192.168.10.0/24内のIPアドレス 192.168.10.254/24を設定することでサブインタフェース1はVLAN10を接続します。同様に、VLAN20用のサブインタフェース2にはVLAN20のVLANタグを扱うように設定し、VLAN20に対応づけている192.168.20.0/24のIPアドレス192.168.20.254/24を設定します。

PC1~PC4の設定については、VLANごとのアクセスリンクによる接続の場合とまったく同じです。

トランクリンクを利用すると、ルータとレイヤ2スイッチ間の接続を1本のリンクに集約できます。あとからVLANが追加されても、ルータ側で追加したVLAN用のサブインタフェースを作成すればいいだけです。ただし、VLAN間の通信がたくさん行われると、ルータとレイヤ2スイッチ間のリンクがボトルネックになってしまう可能性が高くなります。

VLAN(Virtual LAN)の仕組み