VRFの設定の流れ

VRFで1台のルータを仮想的に分割してルーティングを行うための設定の流れは以下のようになります。

  1. VRFの作成
  2. VRFにインタフェースの割り当て
  3. 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にインタフェースを割り当てます。割り当てたいインタフェースのインタフェースコンフィグレーションモードで次のコマンドを入力します。

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を指定します。

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の設定と同様です。

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を有効化するインタフェースを決めます。

VRFごとのaddress-familyの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ルートとしてアドバタイズするネットワークアドレスを指定します。

VRFごとのaddress-familyの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の設定と動作を確認するための主なコマンドを以下の表にまとめています。

showコマンド概要
#show ip vrfVRFの状態を確認します。
#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を実行します。
表 VRFの主な確認コマンド

PingやTraceroute、Telnetを実行するときにはVRFの指定を忘れないように注意してください。VRFの指定をしなければグローバルルーティングプロセスのルーティングテーブルに基づいてコマンドを実行してしまいます。その場合、VRFの通信の確認はできません。

関連記事

「ネットワークのおべんきょしませんか?」内の記事を検索

IPルーティング応用