# 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-Liteとアンチウイルス（プロキシー型アンチウイルス）は同一装置上で同時に使用できません。

Note

VRF-LiteはIPv6にも対応していますが、以下のIPv6機能には対応していません。

- IPv6マルチキャスト

Note

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

- DNSリレー
- DHCPリレー
- SSHサーバー
- TFTPクライアント
- SNMP（トラップ送信のみ）
- HTTPサーバー/クライアント
- DNSクライアント
- syslog
- TACACS+クライアント
- RADIUSクライアント
- SNMP
- sFlowエージェント
- 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）、IPレピュテーション（IPアドレスブラックリスト）、マルウェアプロテクション（ストリーム型アンチウイルス）機能ではインターネット上のサーバーにアクセスしてデータベースの問い合わせや更新を行いますが、インターネットとの通信に使うインターフェースはグローバルVRFインスタンスに所属している必要があります。

Note

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

- Ethernetインターフェース（ethX）
- 802.1Q Ethernetサブインターフェース（ethX.Y）
- VLANインターフェース（vlanX）
- PPPoEインターフェース（pppX）
- トンネルインターフェース（tunnelX）※IPsec、L2TPv3、OpenVPN、GRE（L2TPv2はトンネルインターフェースを使わないため非対応。マルチポイントIPsec、マルチポイント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インスタンスに所属していないVLANが所属するVRFインスタンスであるグローバルVRFインスタンスも利用します。どのVRFインスタンスも通信は同じVRFインスタンスに所属する機器間のみ可能となり、他のVRFインスタンスにパケットが送信されることはありません。

なお、以下の例では、VLANの作成とスイッチポートへの割り当ては完了しているものとします。VLANの設定については、「L2スイッチング」の「バーチャルLAN」をご覧ください。

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インスタンスの所属になります。

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

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

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

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

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

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

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

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

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

         awplus(config)# interface vlan31
         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

RIPを使う場合は、address-family ipv4コマンドでVRFインスタンス名を指定してから、VRFを使わないときと同様にRIPの設定を行います。
詳しくは「IP」/「経路制御（RIP）」をご覧ください。

    awplus(config)# router rip
    awplus(config-router)# address-family ipv4 vrf VRF-BLUE
    awplus(config-router-af)# network 192.168.1.0/24
    awplus(config-router-af)# network 10.0.0.0/8
    awplus(config-router-af)# exit-address-family
    awplus(config-router)# exit

OSPFを使う場合は、router ospfコマンドでプロセスID（1～65535の任意の数値）とVRFインスタンス名を指定してから、VRFを使わないときと同様にOSPFの設定を行います。
詳しくは「IP」/「経路制御（OSPF）」をご覧ください。

    awplus(config)# router ospf 1 VRF-BLUE
    awplus(config-router)# network 192.168.1.0/24 area 0
    awplus(config-router)# network 10.0.0.0/8 area 0
    awplus(config-router)# exit

BGPを使う場合は、address-family ipv4コマンドでVRFインスタンス名を指定してから、VRFを使わないときと同様にBGPの設定を行います。
詳しくは「IP」/「経路制御（BGP）」をご覧ください。

    awplus(config)# router bgp 65010
    awplus(config-router)# address-family ipv4 vrf VRF-BLUE
    awplus(config-router-af)# redistribute connected
    awplus(config-router-af)# neighbor 192.168.1.2 remote-as 65010
    awplus(config-router-af)# neighbor 192.168.1.2 activate
    awplus(config-router-af)# exit-address-family
    awplus(config-router)# exit

RIPngを使う場合は、RIPngモードのaddress-family ipv6コマンドでVRFインスタンス名を指定してから、VRFを使わないときと同様にRIPngの設定を行います。
詳しくは「IPv6」/「経路制御（RIPng）」をご覧ください。

    awplus(config)# router ipv6 rip
    awplus(config-router)# address-family ipv6 vrf VRF-BLUE
    awplus(config-router-af)# exit-address-family
    awplus(config-router)# exit
    awplus(config)# interface vlan10
    awplus(config-if)# ip vrf forwarding VRF-BLUE
    awplus(config-if)# ipv6 router rip
    awplus(config-if)# exit

OSPFv3を使う場合は、router ipv6 vrf ospfコマンドでVRFインスタンス名を指定してから、VRFを使わないときと同様にOSPFv3の設定を行います。
なお、ipv6 router ospf areaコマンドでIPv6インターフェースとOSPFv3エリアを関連付けるときは、tagオプションでVRFインスタンス名を指定してください。
詳しくは「IPv6」/「経路制御（OSPFv3）」をご覧ください。
Note

前記「VRFインスタンスの作成」の構成例では vlan10、vlan11 にIPv6アドレスを設定していないため、以下の例にはipv6 addressコマンドによるIPv6アドレスの設定手順を含めています。また、前記例と重複しますが、VRFインスタンスの割り当てを行う ip vrf forwardingコマンドも示しています。

    awplus(config)# router ipv6 ospf vrf VRF-BLUE
    awplus(config-router)# router-id 10.0.0.1
    awplus(config-router)# exit
    awplus(config)# interface vlan10
    awplus(config-if)# ip vrf forwarding VRF-BLUE
    awplus(config-if)# ipv6 address 2001:db8:1:10::1/64
    awplus(config-if)# ipv6 router ospf area 0 tag VRF-BLUE
    awplus(config-if)# exit
    awplus(config)# interface vlan11
    awplus(config-if)# ip vrf forwarding VRF-BLUE
    awplus(config-if)# ipv6 address 2001:db8:1:11::1/64
    awplus(config-if)# ipv6 router ospf area 0 tag VRF-BLUE
    awplus(config-if)# exit

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

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

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

Note

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

Note

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

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

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

なお、以下の例では、VLANの作成とスイッチポートへの割り当ては完了しているものとします。VLANの設定については、「L2スイッチング」の「バーチャルLAN」をご覧ください。

#### ルーター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コマンドで行います。
   - vlan10をVRFインスタンス「VRF-BLUE」に割り当て、IPアドレス「192.168.10.1/24」を設定します。

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

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

         awplus(config)# interface vlan20
         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」所属のvlan20が出力先インターフェースとなりますので、次のように設定します。

         awplus(config)# ip route vrf VRF-BLUE 192.168.20.0/24 vlan20

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

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

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

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

5. 最後にVRFインスタンス「VRF-BLUE」・ルーターB間での経路交換に用いるOSPFを設定します。
   これには、router ospfコマンド、networkコマンド、redistributeコマンドを使用します。
   OSPFメッセージの送受信を行うネットワークを「192.168.10.0/24」とし、所属エリアを「エリア0」とします。またVRFインスタンス間通信で設定したスタティック経路を再通知できるように設定します。

       awplus(config)# router ospf 1 VRF-BLUE
       awplus(config-router)# network 192.168.10.0/24 area 0
       awplus(config-router)# redistribute static
       awplus(config-router)# exit

#### ルーターB

ルーターBではVRF-Liteを使用せずにOSPFを動作させます。

1. vlan10にIPアドレス「192.168.10.2/24」を設定します。

       awplus(config)# interface vlan10
       awplus(config-if)# ip address 192.168.10.2/24
       awplus(config-if)# exit

2. 同様にvlan11にIPアドレス「192.168.11.1/24」を設定します。

       awplus(config)# interface vlan11
       awplus(config-if)# ip address 192.168.11.1/24
       awplus(config-if)# exit

3. OSPFを設定します。
   OSPFメッセージの送受信を行うネットワークを「192.168.10.0/24」とし、所属エリアを「エリア0」とします。またvlan11のインターフェース経路を再通知できるように設定します。

       awplus(config)# router ospf
       awplus(config-router)# network 192.168.10.0/24 area 0
       awplus(config-router)# redistribute connected
       awplus(config-router)# exit

設定は以上です。

## 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 vlan20
    awplus(config)# ip route vrf VRF-PINK 192.168.10.0/24 vlan10

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

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