目次
VRFの設定の流れ
VRFで1台のルータを仮想的に分割して、ルーティングを行うための設定の流れは以下のようになります。
- VRFの作成
- VRFにインタフェースの割り当て
- VRFごとのルーティングの設定
「VRFごとにルーティングテーブルを作成する」ということを明確にイメージしながら設定してください。
関連記事
VRFの設定コマンド
VRFの作成
VRFを作成するためには、グローバルコンフィグレーションモードで次のコマンドを入力します。
VRFの作成
(config)#ip vrf <vrf-name>
(config-vrf)#rd <rd>
<vrf-name> : VRF名
<rd> : RDの値
VRFは任意の名前を設定します。そして、RD(Route Distinguisher)でグローバルおよび他のVRFとのアドレス体系が重複しないようにします。RDは64ビットで、VRFを利用しているとRD:IPアドレスのフォーマットでアドレスを認識します。RD:IPアドレスとして96ビットのアドレスフォーマットをVPNv4アドレスと呼びます。RDの値として<AS番号>:<任意の値>とする設定が一般的です。
Notice
- MPLS-VPNにおいては、さらにRT(Route Target)の設定が必要です。
VRFにインタフェースを割り当てる
作成したVRFにインタフェースを割り当てます。割り当てたいインタフェースのインタフェースコンフィグレーションモードで次のコマンドを入力します。
VRFにインタフェースを割り当てる
(config)#interface <interface-name>
(config-if)#ip vrf forwarding <vrf-name>
(config-if)#ip address <address> <subnetmask>
<interfane-name> : インタフェース名
<vrf-name> : VRF名
<address> <subnetmask> : IPアドレス サブネットマスク
VRFにインタフェースを割り当てるとそのインタフェースは該当のVRFに含まれるようになり、もともとのルータのインタフェースではなくなってしまいます。インタフェースにすでにIPアドレスが設定されている場合は、IPアドレスの設定が削除されます。そのため、再度、IPアドレスを設定してください。
VRFに割り当てたインタフェースにIPアドレスを設定すると、VRFのルーティングテーブル上に直接接続のルート情報が登録されます。本来のグローバルルーティングテーブルにはVRFに割り当てたインタフェースのルート情報は出てこなくなります。
VRFごとのルーティングの設定
VRFごとのルーティングの設定を行って、ルーティングテーブルを作成します。VRFに割り当てたインタフェースにIPアドレスを設定すると、VRFのルーティングテーブルに直接接続のルート情報が登録されます。通常のルーティングと同じように直接接続ではないリモートネットワークのルート情報をVRFのルーティングテーブルに登録します。VRFのルーティングテーブルにリモートネットワークのルート情報を登録するための方法は、以下の2つです。通常のルーティングと考え方は同じです。以下の設定でVRFのルーティングテーブルにリモートネットワークのルート情報を登録してください。
- スタティックルート
- ルーティングプロトコル
スタティックルート
VRFのルーティングテーブルにスタティックルートを登録するためには、ip routeコマンドでVRFを指定します。
VRFのスタティックルート
(config)#ip route vrf <vrf-name> <network> <subnetmask> <next-hop>
<vrf-name> : VRF名
<network> : ネットワークアドレス
<subnetmask> : サブネットマスク
<next-hop> : ネクストホップアドレス
ルーティングプロトコル
ルーティングプロトコルは、設定の考え方が2つにわかれます。1つのルーティングプロセスで複数のVRFを扱うことができるルーティングプロトコルと、VRFごとに複数のルーティングプロセスを設定しなければいけないルーティングプロトコルがあります。1つのルーティングプロセスで複数のVRFを扱うためにはaddress-familyとしてVRFを指定します。
1つのルーティングプロセス | RIP、EIGRP、BGP |
複数のルーティングプロセス | OSPF |
Notice
OSPFv3では、1つのルーティングプロセス上でaddress-familyによってVRFを扱うことができるようになっています。このページでは、address-familyに対応していない従来のOSPFv2プロセスの設定について解説します。
RIP
VRFでRIPを有効化するには、RIPのコンフィグレーションモードでaddress-familyコマンドによってVRFを指定します。address-familyの中では、通常のRIPの設定と同様です。
VRFごとのRIPの設定
(config)#router rip
(config-router)#address-family ipv4 vrf <vrf-name>
(config-router-af)#network <network>
(config-router-af)#version 2
(config-router-af)#no auto-summary
<vrf-name> : VRF名
<network> : ネットワークアドレス
EIGRP
VRFでEIGRPを有効化するには、EIGRPのコンフィグレーションモードでaddress-familyコマンドによってVRFを指定します。address-familyの中では、AS番号を指定してnetworkコマンドでEIGRPを有効化するインタフェースを決めます。
VRFごとのEIGRPの設定
(config)#router eigrp <AS1>
(config-router)#address-family ipv4 vrf <vrf-name>
(config-router-af)#autonomous-system <AS2>
(config-router-af)#network <address> [<wildcard>]
(config-router-af)#no auto-summary
<AS1> : グローバルのルーティングプロセスのAS番号
<vrf-name> : VRF名
<AS2> : VRFのAS番号
<network> : ネットワークアドレス
<wildcard> : ワイルドカードマスク
IOSのバージョンによっては、以下のようにVRFごとのAS番号の指定のコマンドが違います。
(config)#router eigrp <AS1>
(config-router)#address-family ipv4 vrf <vrf-name> autonomous-system <AS2>
このコマンドフォーマットになっているIOSバージョンでも、(config-router-af)#autonomous-systemコマンドも認識はされます。ただ、ヘルプで表示されなくなっています。
BGP
VRFでBGPを有効化するには、BGPのコンフィグレーションモードでaddress-familyコマンドによってVRFを指定します。address-familyの中では、ネイバーのIPアドレスを指定して、そのネイバーをアクティベイト(有効化)します。そうすると、該当のVRFのルーティングテーブルに基づいて指定したIPアドレスのBGPネイバーを確立します。
また、networkコマンドでBGPルートとしてアドバタイズするネットワークアドレスを指定します。
VRFごとのBGPの設定
(config)#router bgp <AS1>
(config-router)#address-family ipv4 vrf <vrf-name>
(config-router-af)#neighbor <ip-address> remote-as <AS2>
(config-router-af)#neighbor <ip-address> activate
(config-router-af)#network <network> [mask <subnetmask>]
<AS1> : 自AS番号
<vrf-name> : VRF名
<ip-address> : ネイバーのIPアドレス
<AS2> : ネイバーのAS番号
<network> : ネットワークアドレス
<subnetmask> : サブネットマスク
OSPF
OSPFでは、ルーティングプロセスを有効化する際にVRFを指定します。あとは通常のOSPFの設定と同様です。
VRFごとのOSPFの設定
(config)#router ospf <process> vrf <vrf-name>
(config-router)#network <network> <wildcard> area <area>
<process> : プロセス番号
<vrf-name> : VRF名
<network> : ネットワークアドレス
<wildcard> : ワイルドカードマスク
<area> : エリア番号
VRF間の通信
VRFごとのルーティングテーブルは分離しています。そのため、VRFが異なると通信できません。異なるVRF間で通信する必要があれば、VRFルートリークの設定を行います。VRFルートリークによって、あるVRFのルーティングテーブルに他のVRFのルート情報を登録できます。ルーティングテーブルに他のVRFのルート情報を登録すれば、VRF間の通信ができるようになります。
関連記事
VRFルートリークについて、以下の記事で解説しています。
VRFの確認
VRFの設定と動作を確認するための主なコマンドを以下の表にまとめています。
コマンド | 概要 |
---|---|
#show ip vrf [detail] | VRFの状態を確認します。detailをつけると、より詳細なVRFの状態がわかります。 |
#show ip route vrf <vrf-name> | VRFのルーティングテーブルを表示します。 |
#ping vrf <vrf-name> <ip-address> | 指定したVRFのルーティングテーブルに基づいてPingを実行します。 |
#traceroute vrf <vrf-name> <ip-address> | 指定したVRFのルーティングテーブルに基づいてTracerouteを実行します。 |
#telnet <ip-address> /vrf <vrf-name> | 指定したVRFのルーティングテーブルに基づいてTelnetを実行します。 |
show ip vrf [detail]
show ip vrfコマンドでVRFの状態を表示します。VRFのRD値や割り当てているインタフェースを確認してください。また、detailをつけると詳細な情報がわかります。MPLS-VPNで利用するときは、RT(Route Target)も確認します。
show ip vrf/show ip vrf detail
P1#show ip vrf Name Default RD Interfaces VRF-A 10:10 Et0/1 Lo1 Et0/0.10 VRF-B 20:20 Et0/2 Lo2 Et0/0.20 P1#show ip vrf detail VRF VRF-A; default RD 10:10; default VPNID Interfaces: Et0/1 Lo1 Et0/0.10 Connected addresses are not in global routing table No Export VPN route-target communities No Import VPN route-target communities No import route-map No export route-map VRF label distribution protocol: not configured VRF VRF-B; default RD 20:20; default VPNID Interfaces: Et0/2 Lo2 Et0/0.20 Connected addresses are not in global routing table No Export VPN route-target communities No Import VPN route-target communities No import route-map No export route-map VRF label distribution protocol: not configured
show ip route vrf <vrf-name>
VRFごとのルーティングテーブルを表示するには、show ip route vrf <vrf-name>コマンドを利用します。
show ip route vrf <vrf-name>
P1#show ip route vrf VRF-A Routing Table: VRF-A ~省略~ Gateway of last resort is not set C 192.168.0.0/24 is directly connected, Ethernet0/0.10 C 192.168.1.0/24 is directly connected, Ethernet0/1 192.168.100.0/32 is subnetted, 1 subnets C 192.168.100.1 is directly connected, Loopback1 P1#show ip route vrf VRF-B Routing Table: VRF-B ~省略~ Gateway of last resort is not set C 192.168.0.0/24 is directly connected, Ethernet0/0.20 C 192.168.1.0/24 is directly connected, Ethernet0/2 192.168.100.0/32 is subnetted, 1 subnets C 192.168.100.1 is directly connected, Loopback2
ping vrf <vrf-name> <ip-address>
VRFでの通信を確認するためには、それぞれのVRFのルーティングテーブルに基づいてPingを実行します。ping vrf <vrf-name>コマンドで指定したVRFのルーティングテーブルに基づいてPingを実行します。
ping vrf <vrf-name>
P1#ping vrf VRF-A 192.168.10.101 source loopback 1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.10.101, timeout is 2 seconds: Packet sent with a source address of 192.168.100.1 !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 20/29/40 ms
traceroute vrf <vrf-name> <ip-address>
VRFのルーティングテーブルに基づいてトレースルートを実行するために、traceroute vrf <vrf-name>コマンドを利用してください。
traceroute vrf <vrf-name>
P1#traceroute vrf VRF-A 192.168.10.101 source loopback 1 Type escape sequence to abort. Tracing the route to 192.168.10.101 1 192.168.1.11 8 msec 28 msec 20 msec 2 192.168.10.101 24 msec 44 msec 36 msec
telnet <ip-address> /vrf <vrf-name>
VRFのルーティングテーブルに基づいてTelnetを行うには、/vrfのオプションでVRF名を指定してください。
telnet <ip-address> /vrf <vrf-name>
P1#telnet 192.168.100.11 /vrf VRF-A Trying 192.168.100.11 ... Open A1#exit [Connection to 192.168.100.11 closed by foreign host] P1#
PingやTraceroute、Telnetを実行するときにはVRFの指定を忘れないように注意してください。VRFの指定をしなければグローバルルーティングプロセスのルーティングテーブルに基づいてコマンドを実行してしまいます。その場合、VRFの通信の確認はできません。
関連記事
Multi AF modeのVRF設定(新しいコマンドフォーマット)
VRFでIPv4だけでなくIPv6のAddress-familyも扱えるようになっています。複数のAddress-familyに対応したMulti AF mode VRFの作成とインタフェースの割り当ては、IPv4のみのVRFの設定と若干コマンドが異なります。Multi AF modeでIPv4用のVRFを作成するには、グローバルコンフィグレーションモードで次のコマンドを入力します。
Multi AF mode VRFの作成
(config)#vrf definition <vrf-name>
(config-vrf)#rd <RD>
(config-vrf)#address-family ipv4
(config-vrf-af)#
<vrf-name> : VRF名
<RD> : RDの値
そして、VRFにインタフェースを割り当てます。インタフェースコンフィグレーションモードで次のコマンドを入力します。
Multi AF mode VRFにインタフェースを割り当てる
(config)#interface <interface-name>
(config-if)#vrf forwarding <vrf-name>
(config-if)#ip address <address> <subnetmask>
<interfane-name> : インタフェース名
<vrf-name> : VRF名
<address> <subnetmask> : IPアドレス サブネットマスク
VRFにインタフェースを割り当てると、そのインタフェースのIPアドレスは削除されます。再度、IPアドレスを設定してください。
VRFごとのルーティングプロトコルの設定は、Multi AF modeでもIPv4のみのVRFと同様です。
Multi AF mode VRFの設定コマンドの変換
IPv4 VRFの設定コマンドを新しいMulti AF mode VRFの設定コマンドへ変換できます。グローバルコンフィグレーションモードで次のコマンドを入力します。
Multi AF mode VRFの設定コマンドの変換
(config)#vrf upgrade-cli multi-af-mode common-policies
以下は、vrf upgrade-cliコマンドでIPv4 VRFの設定コマンドをMulti AF mode VRFの設定コマンドを変換している例です。
Multi AF mode VRFの設定コマンドの変換例
IOU3#show run | section vrf|interface Ethernet0/0 ip vrf TEST rd 65001:100 interface Ethernet0/0 ip vrf forwarding TEST ip address 192.168.1.1 255.255.255.0 IOU3#configure terminal Enter configuration commands, one per line. End with CNTL/Z. IOU3(config)#vrf upgrade-cli multi-af-mode common-policies You are about to upgrade to the multi-AF VRF syntax commands. You will lose any IPv6 addresses configured on interfaces belonging to upgraded VRFs. Are you sure ? [yes]: yes Number of VRFs upgraded: 1 IOU3(config)#end IOU3#show run | section vrf|interface Ethernet0/0 vrf definition TEST rd 65001:100 ! address-family ipv4 exit-address-family interface Ethernet0/0 vrf forwarding TEST ip address 192.168.1.1 255.255.255.0
IPルーティング応用
- DNSラウンドロビン方式の負荷分散
- 負荷分散装置(ロードバランサ)の仕組み
- ルーティングプロセス ~実行中のルーティングプロトコル用のプログラム~
- 複数のルーティングプロトコルの利用
- 再配送(再配布) ~ルーティングドメイン境界で必須の設定~
- Cisco再配送(再配布)の設定 ~redistributeコマンド~
- Cisco 再配送の設定例 ~OSPFとRIPの双方向再配送~
- 再配送 設定ミスの切り分けと修正 Part1
- 再配送 設定ミスの切り分けと修正 Part2
- 再配送 設定ミスの切り分けと修正 Part3
- 再配送 設定ミスの切り分けと修正 Part4
- 再配送 設定ミスの切り分けと修正 Part5
- 再配送 設定ミスの切り分けと修正 Part6
- オフセットリスト(offset-list) ~ルート情報のメトリックを加算~
- オフセットリストの設定例 RIP
- オフセットリストの設定例 EIGRP
- ルートフィルタの概要
- ルートフィルタのポイント
- ディストリビュートリストによるルートフィルタの設定
- Ciscoディストリビュートリストによるルートフィルタの設定例
- プレフィクスリスト(prefix-list)によるルートフィルタの設定
- Ciscoプレフィクスリストによるルートフィルタの設定例
- Ciscoルートマップ(route-map)の概要 ~何をどう処理するか~
- Ciscoルートマップの設定
- Ciscoルートマップ(route-map)設定のポイント
- Ciscoルートマップによる再配送時のルート制御の設定例
- ポリシーベースルーティングの設定例
- GREトンネルインタフェース ~仮想的なポイントツーポイント接続~
- GREトンネルインタフェースの設定例
- GREトンネルの注意点 ~フラッピングしないように~
- オーバーレイネットワークとアンダーレイネットワーク
- ルート制御 ケーススタディ Part1
- ルート制御 ケーススタディ Part2
- ルート制御 ケーススタディ Part3
- VRF/VRF-Liteの概要 ~仮想的にルータを分割する~
- VRFの設定と確認コマンド [Cisco]
- VRF-Liteによるレイヤ3VPNの設定例 [Cisco]
- VRFルートリーク(スタティックルート)
- VRFルートリーク(スタティックルート)の設定例
- VRFルートリーク(MP-BGP)
- VRFルートリーク(MP-BGP)の設定例
- [FVRFの仕組み] FVRF(Front door VRF)とは
- [FVRFの仕組み] ポイントツーポイントGREトンネル:FVRFなし
- [FVRFの仕組み] ポイントツーポイントGREトンネル : FVRFあり(tunnel vrfコマンド)
- [FVRFの仕組み] IPSec VTI : FRVRFあり
- [FVRFの仕組み] IPSec VTI : FVRFあり 設定例
- [FVRFの仕組み] DMVPN : FVRFあり
- [FVRFの仕組み] DMVPN : FVRFあり 設定例 Part1
- [FVRFの仕組み] DMVPN : FVRFあり 設定例 Part2
- tunnel vrfコマンド
- tunnel vrfコマンドの設定例
- [演習] ルーティングループの防止
- [演習] 企業ネットワーク構築演習 Part1:拠点1の構築
- [演習] 企業ネットワーク構築演習 Part2:拠点2/拠点3の構築
- [演習] 企業ネットワーク構築演習 Part3:広域イーサネットの接続
- [演習] 企業ネットワーク構築演習 Part4:インターネット(AS1/AS2)の構築
- [演習] 企業ネットワーク構築演習 Part5:インターネットへの接続
- [演習] 企業ネットワーク構築演習 Part6:インターネットVPNの構築