ルートマップを使用したVRF間のルートリークとは
Virtual Routing and Forwarding (VRF) 環境において、異なるVRFインスタンス間で特定のルート情報を共有するための方法です。通常、VRFは独立したルーティングテーブルを持ち、他のVRFのルート情報とは分離されていますが、特定のシナリオでは、VRF間でルート情報をリーク(共有)する必要があります。ルートマップを使用することで、このルートリークのプロセスを詳細に制御できます。
設定例

事前Config(VRF基本設定はすでに投入済みです)
R1
hostname R1
vrf definition R2
rd 100:2
address-family ipv4
vrf definition R3
rd 100:3
address-family ipv4
interface GigabitEthernet2
vrf forwarding R2
ip address 192.168.12.1 255.255.255.0
no shutdown
interface GigabitEthernet3
vrf forwarding R3
ip address 192.168.13.1 255.255.255.0
no shutdown
int lo1
ip address 1.1.1.1 255.255.255.0
router bgp 65001
address-family ipv4 vrf R2
neighbor 192.168.12.2 remote-as 65002
neighbor 192.168.12.2 activate
network 1.1.1.1 mask 255.255.255.255
exit-address-family
router eigrp 1
address-family ipv4 vrf R3
network 1.1.1.1 255.255.255.255
network 192.168.13.0 255.255.255.0
autonomous-system 1
R2
hostname R2
int g0/1
ip address 192.168.12.2 255.255.255.0
no shut
int lo2
ip address 2.2.2.2 255.255.255.255
router bgp 65002
network 2.2.2.2 mask 255.255.255.255
neighbor 192.168.12.1 remote-as 65001
neighbor 192.168.12.1 activate
R3
hostname R3
int g0/1
ip address 192.168.13.3 255.255.255.0
no shut
int lo3
ip address 3.3.3.3 255.255.255.255
router eigrp 1
network 3.3.3.3 255.255.255.255
network 192.168.13.0 255.255.255.0
1.ルートマップの設定
ルートリークする通信を識別するために、プレフィックスリストを作成します。
ルートマップの作成方法
プレフィックスリストの作成
Router(config)#ip prefix-list {list-name [seq number] {deny | permit} network/length [ge ge-length] [le le-length] | description 説明 | sequence-number}
| オプション | 意味 |
|---|---|
| list-name | プレフィックスリストの名前。 |
| seq number | ルールの順序を指定するためのオプションのシーケンス番号。 指定しない場合、ルーターは自動的にシーケンス番号を生成します。 |
| deny | permit | 指定されたプレフィックスを拒否(deny)するか許可(permit)するかを指定します。 |
| network / length | フィルタリング対象のIPプレフィックス。network はネットワークアドレス、length はサブネットマスクの長さ(ビット数)を示します。 |
| ge ge-length | 指定された長さ以上のプレフィックスを一致させます。範囲フィルタリングに使用されます。 |
| le le-length | 指定された長さ以下のプレフィックスを一致させます。範囲フィルタリングに使用されます。 |
| description description | プレフィックスリストに説明文を追加するオプション。リストの内容を理解しやすくするための注釈です。 |
| sequence-number | プレフィックスリストエントリの順序を指定するための番号。 |
ルートマップを作成します。
Router(config)#route-map map-tag [ permit | deny ] [sequence-number]
| オプション | 意味 |
|---|---|
| map-tag | ルートマップの名前(識別子)。ルートマップは、この名前で識別されます。 |
| deny | permit | ルートが条件に一致した場合に、そのルートを許可(permit)するか拒否(deny)するかを指定します。 |
| sequence-number | ルートマップのエントリのシーケンス番号。 指定しない場合、ルーターは自動的にシーケンス番号を生成します。 シーケンス番号により、ルートマップのエントリの順序が決まります。 |
作成したプレフィックスリストやアクセスリストを使用して、どのルートをリークするかを定義します。
Router(config-route-map)#match ip address { access-list-number [ access-list-number . .. | access-list-name . .. ] | access-list-name [ access-list-number . .. | access-list-name ] | prefix-list prefix-list-name [ prefix-list-name . .. ] }
| オプション | 意味 |
|---|---|
| access-list-number… | 標準または拡張アクセスリストの番号(1-199, 1300-2699)。複数のアクセスリストをスペースで区切って指定することも可能です。 |
| access-list-name | 名前付きのアクセスリスト。名前を使って識別します。複数のアクセスリストを指定することも可能です。 |
| prefix-list prefix-list-name | プレフィックスリストの名前。複数のプレフィックスリストを指定することも可能です。 |
今回はそれぞれのLoアドレスを対象にルートマップを作成します。
R1(config)#ip prefix-list LEAK_FROM_R2 seq 5 permit 2.2.2.2/32
R1(config)#ip prefix-list LEAK_FROM_R3 seq 5 permit 3.3.3.3/32
R1(config)#route-map LEAK_TO_R3 permit 10
R1(config-route-map)#match ip address prefix-list LEAK_FROM_R2
R1(config-route-map)#exit
R1(config)#route-map LEAK_TO_R2 permit 10
R1(config-route-map)#match ip address prefix-list LEAK_FROM_R3
R1(config-route-map)#exit
2.VRF定義の設定
VRF R2にVRF R3のルート情報をインポート、VRF R3にVRF R2のルート情報をインポートするため、RTの設定をします。route-target import の対象は対抗側のRD、route-target exportの対象は自身のRDとなります。
また、export mapコマンドとimport mapコマンドでルートマップで定義したルート情報を制御しています。
R1(config)#vrf definition R2
R1(config-vrf)#address-family ipv4
R1(config-vrf-af)#export map LEAK_TO_R3
R1(config-vrf-af)#import map LEAK_TO_R2
R1(config-vrf-af)#route-target import 100:3
R1(config-vrf-af)#route-target export 100:2
R1(config-vrf-af)#exit
R1(config-vrf)#vrf definition R3
R1(config-vrf)#address-family ipv4
R1(config-vrf-af)#export map LEAK_TO_R2
R1(config-vrf-af)#import map LEAK_TO_R3
R1(config-vrf-af)#route-target import 100:2
R1(config-vrf-af)#route-target export 100:3
R1(config-vrf-af)#exit
3.EIGRPへのルート情報再配布
①VRF R3にBGP 65001を作成して、同じVRFのEIGRPからのルート情報を再配布します。
②VRF R2とVRF R3のBGP間については、前段のVRF定義の設定でルート情報の共有が完了しているので、結果的にVRF R3のEIGRPからVRF R2のBGPにルート情報を再配布されます。
③VRF R3のEIGRPにBGPのルート情報を再配布します。
R1(config)#router bgp 65001
R1(config-router)#address-family ipv4 vrf R3
R1(config-router-af)#redistribute eigrp 1
R1(config-router-af)#exit
R1(config)#router eigrp 1
R1(config-router)#address-family ipv4 vrf R3
R1(config-router-af)#redistribute bgp 65001 metric 100 1 255 1 1500
R1(config-router-af)#end
4.動作確認
R1のVRFのルーティングテーブルでそれぞれ再配布されたルーティングが表示されています。

R3のルーティングテーブルにもR2のLoアドレスが表示され、通信できるようになりました。
