Table of Contents
VRFの設定の流れ
VRFで1台のルータを仮想的に分割してルーティングを行うための設定の流れは以下のようになります。
- 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
- VRF-LiteではRDの設定はなくても動作します。MPLS-VPNを構成するときにはRDの設定は必須です。
- MPLS-VPNにおいては、さらにRT(Route Target)の設定が必要です。
VRFにインタフェースを割り当てる
作成したVRFにインタフェースを割り当てます。割り当てたいインタフェースのインタフェースコンフィグレーションモードで次のコマンドを入力します。
(config)#interface <interface-name>
(config-if)#ip vrf forwarding <vrf-name>
<interfane-name> : インタフェース名
<vrf-name> : VRF名
VRFにインタフェースを割り当てるとそのインタフェースは該当のVRFに含まれるようになり、もともとのルータのインタフェースではなくなってしまいます。インタフェースにすでにIPアドレスが設定されている場合は、IPアドレスの設定が削除されます。
VRFに割り当てたインタフェースにIPアドレスを設定すると、VRFのルーティングテーブル上に直接接続のルート情報が登録されます。本来のグローバルルーティングテーブルにはVRFに割り当てたインタフェースのルート情報は出てこなくなります。
VRFごとのルーティングの設定
VRFごとのルーティングの設定を行って、ルーティングテーブルを作成します。VRFに割り当てたインタフェースにIPアドレスを設定すると、VRFのルーティングテーブルに直接接続のルート情報が登録されます。通常のルーティングと同じように直接接続ではないリモートネットワークのルート情報をVRFのルーティングテーブルに登録します。VRFのルーティングテーブルにリモートネットワークのルート情報を登録するための方法は、以下の2つです。通常のルーティングと考え方は同じです。
- スタティックルート
- ルーティングプロトコル
スタティックルート
VRFのルーティングテーブルにスタティックルートを登録するためには、ip routeコマンドで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
OSPFでも1つのルーティングプロセス上でaddress-familyによってVRFを扱うことができるようになっています。このページでは、address-familyに対応していない従来のOSPFプロセスの設定について解説します。
RIP
VRFでRIPを有効化するには、RIPのコンフィグレーションモードでaddress-familyコマンドによってVRFを指定します。address-familyの中では、通常の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を有効化するインタフェースを決めます。
(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> : ワイルドカードマスク
BGP
VRFでEIGRPを有効化するには、BGPのコンフィグレーションモードでaddress-familyコマンドによってVRFを指定します。address-familyの中では、ネイバーのIPアドレスを指定して、そのネイバーをアクティベイト(有効化)します。また、networkコマンドで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の設定と同様です。
(config)#router ospf <process> vrf <vrf-name>
(config-router)#network <network> <wildcard> area <area>
<process> : プロセス番号
<vrf-name> : VRF名
<network> : ネットワークアドレス
<wildcard> : ワイルドカードマスク
<area> : エリア番号
VRFの確認
VRFの設定と動作を確認するための主なコマンドを以下の表にまとめています。
showコマンド | 概要 |
#show ip vrf | 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を実行します。 |
PingやTraceroute、Telnetを実行するときにはVRFの指定を忘れないように注意してください。VRFの指定をしなければグローバルルーティングプロセスのルーティングテーブルに基づいてコマンドを実行してしまいます。その場合、VRFの通信の確認はできません。
関連記事
「ネットワークのおべんきょしませんか?」内の記事を検索
IPルーティング応用
- DNSラウンドロビン方式の負荷分散
- 負荷分散装置(ロードバランサ)の仕組み
- ルーティングプロセス ~ルーティングプロトコルのプログラムの実体~
- 複数のルーティングプロトコルの利用
- 再配送 ~ルーティングドメイン境界で必須の設定~
- Cisco再配送の設定 ~redistributeコマンド~
- Cisco 再配送の設定例 ~OSPFとRIPの双方向再配送~
- 再配送 設定ミスの切り分けと修正 Part1
- 再配送 設定ミスの切り分けと修正 Part2
- 再配送 設定ミスの切り分けと修正 Part3
- 再配送 設定ミスの切り分けと修正 Part4
- 再配送 設定ミスの切り分けと修正 Part5
- オフセットリスト(offset-list) ~ルート情報のメトリックを加算~
- オフセットリストの設定例 RIP
- オフセットリストの設定例 EIGRP
- ルートフィルタの概要
- ルートフィルタのポイント
- ディストリビュートリストによるルートフィルタの設定
- Ciscoディストリビュートリストによるルートフィルタの設定例
- プレフィクスリスト(prefix-list)によるルートフィルタの設定
- Ciscoプレフィクスリストによるルートフィルタの設定例
- Ciscoルートマップ(route-map)の概要 ~何をどう処理するか~
- Ciscoルートマップの設定
- Ciscoルートマップによる再配送時のルート制御の設定例
- ポリシーベースルーティングの設定例
- GREトンネルインタフェース ~仮想的なポイントツーポイント接続~
- GREトンネルインタフェースの設定例
- GREトンネルの注意点 ~フラッピングしないように~
- ルート制御 ケーススタディ Part1
- ルート制御 ケーススタディ Part2
- ルート制御 ケーススタディ Part3
- VRFの概要 ~仮想的にルータを分割する~
- VRFの設定と確認コマンド(Cisco)
- tunnel vrfコマンド
- tunnel vrfコマンドの設定例