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インスタンスに所属していないVLANが所属する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コマンドで行います。
- 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
- vlan10を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
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)」をご覧ください。
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インスタンス間のルーティングには、スタティックルーティングもしくはBGPによるダイナミックルーティングを利用します。
スタティックルーティング
ここではスタティックルーティングを用いてルーターAに設定されている2つのVRFインスタンス間の通信を実現する方法を説明します。なおここでは、ルーターAのインスタンス「VRF-BLUE」とルーターB間ではOSPFを用いてダイナミックルーティングを行います。
ルーター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コマンドで行います。
- 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
- vlan10を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」所属の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
- VRFインスタンス「VRF-BLUE」に対し、VRFインスタンス「VRF-PINK」側のネットワーク「192.168.20.0/24」へのスタティック経路を設定します。
- 最後に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を動作させます。- 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
- 同様に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
- 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を用いてダイナミックルーティングを行います。
ルーターA
- 必要な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
- VRFインスタンス「VRF-BLUE」をVRFインスタンスID「1」で作成し、RDを「500:1」とします。
- 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
- VRFインスタンス「VRF-BLUE」の経路情報を他のVRFインスタンスにエクスポートできるよう、VRFインスタンス「VRF-BLUE」のRD「500:1」を指定します。
- 作成した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
- vlan10をVRFインスタンス「VRF-BLUE」に割り当て、IPアドレス「192.168.10.1/24」を設定します。
- VRFインスタンス間通信で用いるBGPを設定します。AS番号は500とします。
awplus(config)# router bgp 500
- 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
- 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
- 最後に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を動作させます。- 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
- 同様に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
- 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の場合も考え方は同じです。
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