# IP / VRF-Lite

VRF(Virtual Routing and Forwarding)は1台のルーターやスイッチ上に複数のルーティングテーブル（ルーティングインスタンス）を持つことができるようにする機能です。
VRFではルーティングインスタンスをVRFインスタンスと呼びますが、各VRFインスタンスは独立しているため、同一機器上であってもVRFインスタンス間で重複するIPアドレスを使用することができます。
また、ルーティングプロトコルもVRFインスタンスごとに独立して動作させることができます。これらの機能により、1台の機器を複数台の機器のように動作させることができます。
VRFはMPLSネットワーク上で使用することを想定したプロトコルですが、VRF-LiteはMPLSネットワークに依存しない設計となっており、よりシンプルな実装となっています。
本製品のVRF-LiteはIPv4/IPv6両対応です。
Note

作成したVRFインスタンスではマルチキャスト通信、一部のマネージメント機能（Telnetサーバー等）、エンティティーのFQDNホスト定義が動作しません。これらを使用したいときはグローバルVRFインスタンスで行ってください。
なお、ping、tracerouteの各コマンドでは、vrfパラメーターにより任意のVRFインスタンスを指定できます。
また、以下の機能はVRFインスタンス単位での動作に対応しています。

- DNSリレー
- DHCPリレー
- SSHサーバー
- TFTPクライアント
- SNMP（トラップ送信のみ）
- HTTPサーバー/クライアント
- DNSクライアント
- syslog
- TACACS+クライアント
- RADIUSクライアント
- SNMP
- NTPサーバー/クライアント
- NETCONFサーバー
- RESTCONFサーバー

Note

DNSクライアント機能（本製品自身のDNS問い合わせ機能）を作成したVRFインスタンス上で動作させるには次の設定が必要です。

1. DNSサーバーの登録時にVRFインスタンスを指定します（ip name-serverコマンド）。

       awplus(config)# ip name-server vrf VRF-BLUE 192.168.1.5

2. DNSリレー機能を有効にします（ip dns forwardingコマンド）。

       awplus(config)# ip dns forwarding

3. 本製品自身のDNS問い合わせをDNSリレー経由で行うよう設定します（ip domain-lookupコマンド）。

       awplus(config)# ip domain-lookup via-relay

Note

AMF接続に使用するインターフェースはグローバルVRFインスタンスに所属させる必要があります。

Note

アプリケーションコントロール（DPI）機能ではインターネット上のサーバーにアクセスしてデータベースの問い合わせや更新を行いますが、インターネットとの通信に使うインターフェースはグローバルVRFインスタンスに所属している必要があります。

Note

作成したVRFインスタンスに所属させることのできるインターフェースは次のとおりです。

- VAPインターフェース（vapX.Y）
- Ethernetインターフェース（ethX）
- 802.1Q Ethernetサブインターフェース（ethX.Y）
- PPPoEインターフェース（pppX）
- ボンドインターフェース（bondX）
- 802.1Qボンドサブインターフェース（bondX.Y）
- トンネルインターフェース（tunnelX）※IPsec、L2TPv3、OpenVPN、GRE
- 802.1Q トンネルサブインターフェース（tunnelX.Y）
- ブリッジインターフェース（brX）
- ループバックインターフェース（lo）

Note

OpenVPNとVRF-Liteを併用する場合、VRFインスタンスはトンネルインターフェース単位でのみ設定可能であり、ユーザーごとにVRFインスタンスを変える設定はできません。

Note

トンネルインターフェースをVRFインスタンスに所属させることはできますが、トンネリングパケットを送受信するインターフェース（ソースインターフェース）はグローバルVRFインスタンスに所属している必要があります。また、同じソースインターフェース上に作成するトンネルインターフェースは、すべて同じVRFインスタンスに所属させる必要があります。

Note

ファイアウォールおよびNAT機能は、VRFインスタンス間で重複するIPアドレスを使用していない場合のみVRF-Liteと併用できます。

## VRFインスタンス内での通信

VRF-Liteを用いたネットワークを構築するための基本的な手順について説明します。

### VRFインスタンスの作成

ここではVRF-Liteを用いて2個のVRFインスタンスを作成します。また、作成したVRFインスタンスに所属していないインターフェースが所属するVRFインスタンスであるグローバルVRFインスタンスも利用します。どのVRFインスタンスも通信は同じVRFインスタンスに所属する機器間のみ可能となり、他のVRFインスタンスにパケットが送信されることはありません。

なお、以下の例では、VAPインターフェース（vapX.Y）を含む無線機能の設定は完了しているものとします。無線機能の設定については、「無線機能」の章などをご参照ください。

1. 必要なVRFインスタンスを作成します。これには、ip vrfコマンドを使います。
   同コマンドを実行するとVRFモードに移動しますが、ここでは同モードでの設定が不要なため、すぐにexitコマンドを実行してグローバルコンフィグモードに戻ります。
   Note

   グローバルVRFインスタンスは最初から存在しているため、作成する必要はありません。

   - VRFインスタンス「VRF-BLUE」をVRFインスタンスID「1」で作成します。

         awplus(config)# ip vrf VRF-BLUE 1
         awplus(config-vrf)# exit

   - VRFインスタンス「VRF-PINK」をVRFインスタンスID「2」で作成します。

         awplus(config)# ip vrf VRF-PINK 2
         awplus(config-vrf)# exit

2. 作成したVRFインスタンスに各インターフェースを所属させ、IPアドレスを設定します。
   VRFインスタンスへの割り当てはインターフェースモードのip vrf forwardingコマンドで、IPアドレスの設定はip addressコマンドで行います。
   Note

   作成したVRFインスタンスに割り当てていないインターフェースはグローバルVRFインスタンスの所属になります。

   - vap1.1をVRFインスタンス「VRF-BLUE」に割り当て、IPアドレス「10.0.0.1/8」を設定します。

         awplus(config)# interface vap1.1
         awplus(config-if)# ip vrf forwarding VRF-BLUE
         awplus(config-if)# ip address 10.0.0.1/8
         awplus(config-if)# exit

   - vap2.1をVRFインスタンス「VRF-BLUE」に割り当て、IPアドレス「192.168.1.1/24」を設定します。

         awplus(config)# interface vap2.1
         awplus(config-if)# ip vrf forwarding VRF-BLUE
         awplus(config-if)# ip address 192.168.1.1/24
         awplus(config-if)# exit

   - vap1.2をVRFインスタンス「VRF-PINK」に割り当て、IPアドレス「10.0.0.1/16」を設定します。
     このアドレスは、vap1.1のIPアドレス「10.0.0.1/8」とサブネットマスク違いで重複するIPアドレスですが、VRFインスタンスが異なるため問題なく設定・使用することができます。

         awplus(config)# interface vap1.2
         awplus(config-if)# ip vrf forwarding VRF-PINK
         awplus(config-if)# ip address 10.0.0.1/16
         awplus(config-if)# exit

   - vap2.2をVRFインスタンス「VRF-PINK」に割り当て、IPアドレス「192.168.1.1/24」を設定します。
     こちらもvap2.1のIPアドレス「192.168.1.1/24」とサブネットマスクも含めまったく同じIPアドレスですが、VRFインスタンスが異なるため問題なく設定・使用することができます。

         awplus(config)# interface vap2.2
         awplus(config-if)# ip vrf forwarding VRF-PINK
         awplus(config-if)# ip address 192.168.1.1/24
         awplus(config-if)# exit

   - グローバルVRFインスタンス所属のvap1.0にIPアドレス「192.168.1.1/24」を設定します。
     このアドレスもvap2.1、vap2.2のIPアドレス「192.168.1.1/24」とサブネットマスクも含めまったく同じIPアドレスになりますが、VRFインスタンスが異なるため問題なく設定・使用することができます。

         awplus(config)# interface vap1.0
         awplus(config-if)# ip address 192.168.1.1/24
         awplus(config-if)# exit
         awplus(config)# exit

設定は以上です。

### VRFインスタンス内経路の設定

VRFインスタンス内で経路を設定する基本的な手順は以下のとおりです。
下記の手順は前記「VRFインスタンスの作成」の構成を前提としています。
スタティックルーティングの設定は、ip routeコマンドでVRFインスタンス名を指定する点を除き、VRFを使わないときと同じです。
詳しくは本ページの「VRF環境におけるスタティック経路の設定」、および、「IP」/「経路制御」をご覧ください。

    awplus(config)# ip route vrf VRF-BLUE 192.168.2.0/24 192.168.1.254

## VRFインスタンス間通信

各VRFインスタンスは独立しているため、通常VRFインスタンス間での通信はできませんが、機器内部で各VRFインスタンスの経路情報をやりとりすることによりVRFインスタンス間での通信を実現できます。
VRFインスタンス間のルーティングには、スタティックルーティングを利用します。
Note

各VRFインスタンスではVRFインスタンス間でのルーティングとは別にスタティックルーティングを使用することができます。

Note

VRFインスタンス間通信を行っているときはVRFインスタンス間で経路情報を送受信するため、各VRFインスタンスの独立性はなくなります。そのため、VRFインスタンス間で重複するIPアドレス空間は使用できません。

Note

VRFインスタンス間通信時は、 VRFインスタンス間でECMP経路は単一経路としてインポート/エクスポートされます。

### スタティックルーティング

ここではスタティックルーティングを用いてルーターAに設定されている2つのVRFインスタンス間の通信を実現する方法を説明します。なおここでは、ルーターAのインスタンス「VRF-BLUE」とルーターB間ではOSPFを用いてダイナミックルーティングを行います。

なお、以下の例では、VAPインターフェース（vapX.Y）を含む無線機能の設定は完了しているものとします。無線機能の設定については、「無線機能」の章などをご参照ください。
また、本例においてルーターBは本製品以外の機種を想定しています。

#### ルーターA

1. 必要なVRFインスタンスを作成します。これには、ip vrfコマンドを使います。
   - VRFインスタンス「VRF-BLUE」をVRFインスタンスID「1」で作成します。

         awplus(config)# ip vrf VRF-BLUE 1
         awplus(config-vrf)# exit

   - VRFインスタンス「VRF-PINK」をVRFインスタンスID「2」で作成します。

         awplus(config)# ip vrf VRF-PINK 2
         awplus(config-vrf)# exit

2. 作成したVRFインスタンスに各インターフェースを所属させ、IPアドレスを設定します。
   VRFインスタンスへの割り当てはインターフェースモードのip vrf forwardingコマンドで、IPアドレスの設定はip addressコマンドで行います。
   - eth1をVRFインスタンス「VRF-BLUE」に割り当て、IPアドレス「192.168.10.1/24」を設定します。

         awplus(config)# interface eth1
         awplus(config-if)# ip vrf forwarding VRF-BLUE
         awplus(config-if)# ip address 192.168.10.1/24
         awplus(config-if)# exit

   - vap1.0をVRFインスタンス「VRF-PINK」に割り当て、IPアドレス「192.168.20.1/24」を設定します。

         awplus(config)# interface vap1.0
         awplus(config-if)# ip vrf forwarding VRF-PINK
         awplus(config-if)# ip address 192.168.20.1/24
         awplus(config-if)# exit

3. VRFインスタンス間のスタティックルーティングを有効にします。これには、ip route static inter-vrfコマンドを使います。
   Note

   本コマンドはデフォルト有効なため、明示的に無効化していない場合は省略できます。

       awplus(config)# ip route static inter-vrf

4. VRFインスタンス間通信用のスタティック経路を設定します。これには、ip routeコマンドを使います。
   Note

   VRFインスタンス間通信用のスタティック経路を登録する場合の転送先（GATEWAY、IFNAME）指定方法の詳細については、「VRFインスタンスをまたぐスタティック経路」をご覧ください。

   - VRFインスタンス「VRF-BLUE」に対し、VRFインスタンス「VRF-PINK」側のネットワーク「192.168.20.0/24」へのスタティック経路を設定します。
     VRFインスタンス間通信用のスタティック経路において、自装置内で転送が完了する場合、すなわち他のルーターを介する必要がない場合は、転送先として出力インターフェース（IFNAME）だけを指定してください。ネクストホップ（GATEWAY）は不要です。
     この例では、「VRF-PINK」所属のvap1.0が出力先インターフェースとなりますので、次のように設定します。

         awplus(config)# ip route vrf VRF-BLUE 192.168.20.0/24 vap1.0

   - 同様に、VRFインスタンス「VRF-PINK」に対し、VRFインスタンス「VRF-BLUE」側のネットワーク「192.168.10.0/24」へのスタティック経路を設定します。
     この通信も自装置内で完結するため、「VRF-BLUE」側の出力インターフェースであるeth1を指定します。

         awplus(config)# ip route vrf VRF-PINK 192.168.10.0/24 eth1

   - 一方、VRFインスタンス「VRF-PINK」からVRFインスタンス「VRF-BLUE」側のネットワーク「192.168.11.0/24」へは、「VRF-BLUE」所属のeth1に接続されている「ルーターB」を経由しないと到達できません。
     このように、VRFインスタンス間通信用のスタティック経路において、他のルーターを経由する場合、すなわちネクストホップが他の装置になる場合は、転送先としてネクストホップアドレス（GATEWAY）と出力インターフェース（IFNAME）の両方を指定してください。
     この例では、ネクストホップがルーターBのvlan10に設定されている「192.168.10.2」であり、また同ネクストホップに向けてパケットを送り出す本製品の出力インターフェースが「VRF-BLUE」所属のeth1になるため、次のように設定します。

         awplus(config)# ip route vrf VRF-PINK 192.168.11.0/24 192.168.10.2 eth1

5. VRFインスタンス「VRF-BLUE」からルーターB配下のネットワーク「192.168.11.0/24」へのスタティック経路を設定します。
   前述のとおり、VRFインスタンス内におけるスタティックルーティングの設定は、ip routeコマンドでVRFインスタンス名を指定する点を除き、VRFを使わないときと同じです。

       awplus(config)# ip route vrf VRF-BLUE 192.168.11.0/24 192.168.10.2

#### ルーターB

ルーターB（本製品以外の機種を想定）ではVRF-Liteを使用せず、ルーターA（本製品）配下のネットワーク「192.168.20.0/24」へのスタティック経路を設定します。
この場合、ネクストホップはルーターAのeth1に設定されている192.168.10.1となります。

    awplus(config)# ip route 192.168.20.0/24 192.168.10.1

設定は以上です。

## VRF環境におけるスタティック経路の設定

VRF環境では、VRFインスタンスごとに経路を設定する必要があります。
ip route、ipv6 routeコマンドでスタティック経路を追加するときは、対象のVRFインスタンスをvrfパラメーターで指定してください。
vrfパラメーターを指定しない場合は、グローバルVRFインスタンスに経路が登録されます。
また、ip route、ipv6 routeコマンドにはパケット転送先を指定するパラメーターとしてGATEWAY（ネクストホップアドレス）と IFNAME（出力インターフェース）があります。
以下では、VRF環境でスタティック経路を登録する場合にこれらのパラメーターをどのように指定するか、例を示しながら説明します。
ここではIPv4の例を使用していますがIPv6の場合も考え方は同じです。
Note

特定宛先のパケットを破棄するためのnull指定についてはここでは割愛します。詳細はip route、ipv6 routeコマンドのページをご参照ください。

### VRFインスタンス内のスタティック経路

スタティック経路の宛先（DESTINATION）が同一VRFインスタンス内にある場合は、登録先のVRFインスタンスを指定するvrfパラメーターの有無を除き、VRFを使用していないときと同じように指定します。

転送先機器（ネクストホップ）が非ポイントツーポイントインターフェース上にある場合は、転送先機器のアドレス（GATEWAY）を指定します。

    awplus(config)# ip route vrf VRF-BLUE 192.168.11.0/24 192.168.10.2

転送先機器（ネクストホップ）がポイントツーポイントインターフェース上にある場合は、該当インターフェース（IFNAME）を指定します。

    awplus(config)# ip route vrf VRF-PINK 192.168.100.0/24 tunnel0

Note

「非ポイントツーポイントインターフェース」と「ポイントツーポイントインターフェース」については、ip routeコマンドのページをご参照ください。なお、作成したVRFインスタンスに所属可能なインターフェースについてはこちらでご確認ください。

### VRFインスタンスをまたぐスタティック経路

スタティック経路の宛先（DESTINATION）が他のVRFインスタンスにあるときは、自装置内で転送が完了する場合と、他のルーターを経由して宛先ネットワークに到達する場合とで、ip routeコマンドに指定する転送先パラメーター（GATEWAY、IFNAME）の組み合わせが異なります。

自装置内で転送が完了する場合
宛先ネットワークが自装置に直接接続されている場合、すなわち他のルーターを介さずに自装置内で転送が完了する場合は、宛先ネットワークに接続されている本製品の出力インターフェース（IFNAME）だけを指定します。

    awplus(config)# ip route vrf VRF-BLUE 192.168.20.0/24 vap1.0
    awplus(config)# ip route vrf VRF-PINK 192.168.10.0/24 eth1

他のルーターを経由して転送する場合
宛先ネットワークへのパケットを他のルーターに転送する必要がある場合、すなわちネクストホップが他の装置になる場合は、転送先装置のアドレス（ネクストホップアドレス）（GATEWAY）と、本製品の出力インターフェース（IFNAME）の両方を指定します。

    awplus(config)# ip route vrf VRF-PINK 192.168.11.0/24 192.168.10.2 eth1