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両対応です。
VRFインスタンス内での通信
VRF-Liteを用いたネットワークを構築するための基本的な手順について説明します。VRFインスタンスの作成
ここではVRF-Liteを用いて2個のVRFインスタンスを作成します。また、作成したVRFインスタンスに所属していないインターフェースが所属するVRFインスタンスであるグローバルVRFインスタンスも利用します。どのVRFインスタンスも通信は同じVRFインスタンスに所属する機器間のみ可能となり、他のVRFインスタンスにパケットが送信されることはありません。
- 必要なVRFインスタンスを作成します。これには、ip vrfコマンドを使います。
同コマンドを実行するとVRFモードに移動しますが、ここでは同モードでの設定が不要なため、すぐにexitコマンドを実行してグローバルコンフィグモードに戻ります。
- 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
- VRFインスタンス「VRF-BLUE」をVRFインスタンスID「1」で作成します。
- 作成したVRFインスタンスに各インターフェースを所属させ、IPアドレスを設定します。
VRFインスタンスへの割り当てはインターフェースモードのip vrf forwardingコマンドで、IPアドレスの設定はip addressコマンドで行います。
- 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
- vap1.1をVRFインスタンス「VRF-BLUE」に割り当て、IPアドレス「10.0.0.1/8」を設定します。
設定は以上です。
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インスタンス間のルーティングには、スタティックルーティングを利用します。
スタティックルーティング
ここではスタティックルーティングを用いてルーターAに設定されている2つのVRFインスタンス間の通信を実現する方法を説明します。なおここでは、ルーターAのインスタンス「VRF-BLUE」とルーターB間ではOSPFを用いてダイナミックルーティングを行います。
また、本例においてルーターBは本製品以外の機種を想定しています。
ルーターA
- 必要な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
- VRFインスタンス「VRF-BLUE」をVRFインスタンスID「1」で作成します。
- 作成した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
- eth1をVRFインスタンス「VRF-BLUE」に割り当て、IPアドレス「192.168.10.1/24」を設定します。
- VRFインスタンス間のスタティックルーティングを有効にします。これには、ip route static inter-vrfコマンドを使います。
awplus(config)# ip route static inter-vrf
- VRFインスタンス間通信用のスタティック経路を設定します。これには、ip routeコマンドを使います。
- 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
- VRFインスタンス「VRF-BLUE」に対し、VRFインスタンス「VRF-PINK」側のネットワーク「192.168.20.0/24」へのスタティック経路を設定します。
- 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の場合も考え方は同じです。
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
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