# IP / VRF-Lite

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

VRF-Liteを使用するにはフィーチャーライセンスが必要です（VRFインスタンス数は64*）。
また、「VRF-Liteフルライセンス」を追加するとVRFインスタンス数は601*まで拡張されます。
ライセンスのインストール方法については「運用・管理」/「システム」の「ライセンスキーのインストール」をご参照ください。
* グローバルVRFインスタンスを含む

Note

VRF-LiteはIPv6には対応していません。

Note

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

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

Note

IPv4マルチキャストに関連する下記の機能は、グローバルVRFインスタンスだけでなく、作成したVRFインスタンスでも使用可能です。

- PIM-SM
- IGMP
- IGMPプロキシー
- IGMP Snooping

なお、下記の機能は、作成したVRFインスタンスでは使用できません。

- PIM-DM
- IPv4マルチキャストのスタティック経路
- VRFインスタンス間のIPv4マルチキャスト通信
- IPv6マルチキャスト（VRF-LiteはIPv6未対応）

また、作成したVRFインスタンス上では、1つ目のマルチキャストパケットの転送は未サポートです（グローバルVRFインスタンスではサポート）。
PIM-SMについては「IPマルチキャスト」/「PIM」を、IGMP、IGMPプロキシーについては「IPマルチキャスト」/「IGMP」を、IGMP Snoopingについては「IPマルチキャスト」/「IGMP Snooping」をご覧ください。
Note

AMF関連VLANはグローバルVRFインスタンスで使用してください。マネージメントVLAN（初期設定vlan4092）、ドメインVLAN（同vlan4091）、および、AMF仮想リンクで使用するVLANは、グローバルVRFインスタンスに所属させる必要があります。

## 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

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

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

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

Note

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

Note

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

Note

VRFインスタンス間のマルチキャスト通信は未サポートです。

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

ここではスタティックルーティングを用いてルーター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

設定は以上です。

### ダイナミックルーティング（BGP）

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

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

#### ルーターA

1. 必要なVRFインスタンスを作成し、さらにRD（Route Distinguisher）を指定します。これには、ip vrfコマンドとrdコマンドを使います。
   - VRFインスタンス「VRF-BLUE」をVRFインスタンスID「1」で作成し、RDを「500:1」とします。

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

   - VRFインスタンス「VRF-PINK」をVRFインスタンスID「2」で作成し、RDを「500:2」とします。

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

2. VRFインスタンス間での経路情報の送受信を設定します。これには、route-targetコマンドを使います。
   - VRFインスタンス「VRF-BLUE」の経路情報を他のVRFインスタンスにエクスポートできるよう、VRFインスタンス「VRF-BLUE」のRD「500:1」を指定します。

         awplus(config)# ip vrf VRF-BLUE 1
         awplus(config-vrf)# route-target export 500:1

   - VRFインスタンス「VRF-BLUE」に「VRF-PINK」の経路情報をインポートできるよう、VRFインスタンス「VRF-PINK」のRD「500:2」を指定します。

         awplus(config-vrf)# route-target import 500:2
         awplus(config-vrf)# exit

   - 同様に、VRFインスタンス「VRF-PINK」の経路情報を他のVRFインスタンスにエクスポートできるよう、VRFインスタンス「VRF-PINK」のRD「500:2」を指定し、またVRFインスタンス「VRF-PINK」に「VRF-BLUE」の経路情報をインポートできるよう、VRFインスタンス「VRF-BLUE」のRD「500:1」を指定します。

         awplus(config)# ip vrf VRF-PINK 2
         awplus(config-vrf)# route-target export 500:2
         awplus(config-vrf)# route-target import 500:1
         awplus(config-vrf)# exit

3. 作成した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

4. VRFインスタンス間通信で用いるBGPを設定します。AS番号は500とします。

       awplus(config)# router bgp 500

5. VRFインスタンス「VRF-BLUE」にBGPを設定します。
   VRFインスタンス「VRF-BLUE」のインターフェース経路（直結経路）をBGPで再通知できるように設定します。また、VRFインスタンス「VRF-BLUE」で使用するOSPFの経路もBGPで再通知できるように設定します。

       awplus(config-router)# address-family ipv4 vrf VRF-BLUE
       awplus(config-router-af)# redistribute connected
       awplus(config-router-af)# redistribute ospf
       awplus(config-router-af)# exit-address-family

6. VRFインスタンス「VRF-PINK」にBGPを設定します。
   VRFインスタンス「VRF-PINK」のインターフェース経路（直結経路）をBGPで再通知できるように設定します。

       awplus(config-router)# address-family ipv4 vrf VRF-PINK
       awplus(config-router-af)# redistribute connected
       awplus(config-router-af)# exit-address-family

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

       awplus(config)# router ospf 1 VRF-BLUE
       awplus(config-router)# network 192.168.10.0/24 area 0
       awplus(config-router)# redistribute bgp
       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コマンドでスタティック経路を追加するときは、対象のVRFインスタンスをvrfパラメーターで指定してください。
vrfパラメーターを指定しない場合は、グローバルVRFインスタンスに経路が登録されます。
また、ip routeコマンドにはパケット転送先を指定するパラメーターとしてGATEWAY（ネクストホップアドレス）と IFNAME（出力インターフェース）があります。
以下では、VRF環境でスタティック経路を登録する場合にこれらのパラメーターをどのように指定するか、例を示しながら説明します。
Note

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

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

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

転送先機器（ネクストホップ）のアドレス（GATEWAY）を指定します。

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

### 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