概要
VRF同士は独立しているため、異なるVRF間で通信するためにはRoute Leakが必要となる。junosではrib-groupsを用いてRoute Leakを行う。rib-groupsとは、1 つ以上のルーティングテーブルをグループ化して、ルーティングテーブルグループを形成すること。
https://www.juniper.net/documentation/jp/ja/software/junos/cli-reference/topics/ref/statement/rib-groups-edit-routing-options.html
Route Leak前のルートテーブル(vrf-002.inet.0)
admin@BorderRouter> show route table vrf-002.inet.0
vrf-002.inet.0: 13 destinations, 13 routes (13 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
10.120.0.0/29 *[Direct/0] 00:15:42
> via ge-0/0/1.201
10.120.0.1/32 *[Local/0] 00:15:42
Local via ge-0/0/1.201
10.120.0.8/29 *[Direct/0] 00:15:42
> via ge-0/0/1.202
10.120.0.9/32 *[Local/0] 00:15:42
Local via ge-0/0/1.202
10.120.0.16/29 *[Direct/0] 00:15:42
> via ge-0/0/1.203
10.120.0.17/32 *[Local/0] 00:15:42
Local via ge-0/0/1.203
172.16.60.1/32 *[BGP/170] 00:03:58, localpref 100
AS path: 65001 I, validation-state: unverified
> to 172.16.92.1 via ge-0/0/0.92
172.16.92.0/30 *[Direct/0] 00:15:42
> via ge-0/0/0.92
172.16.92.2/32 *[Local/0] 00:15:42
Local via ge-0/0/0.92
設定
vrf-001がOSPFで学習した経路をvrf-002へRoute Leakする。経路をインポートするときに使用するimport-ribはPolicy Statementで指定する。
//RIB-Group "RG-001-to-002" を作成
routing-options {
rib-groups {
RG-001-to-002 {
import-rib [ vrf-001.inet.0 vrf-002.inet.0 ];
import-policy PS-001-to-002;
}
}
}
//import-policyに適用するPolicy Statement "PS-001-to-002" を作成
policy-options {
policy-statement PS-001-to-002 {
term 10 {
from {
prefix-list PL-001;
}
then accept;
}
}
}
//Policy Statementに適用するPrefix List "PL-001" を作成
policy-options {
prefix-list PL-001 {
172.16.11.1/32;
172.16.11.3/32;
172.16.22.4/32;
172.16.33.2/32;
}
}
//RIB-Groupをvrf-001へ適用
routing-instances {
vrf-001 {
instance-type vrf;
protocols {
ospf {
area 0.0.0.0 {
interface ge-0/0/0.91;
interface ge-0/0/1.101;
interface ge-0/0/1.102;
interface ge-0/0/1.103;
}
rib-groups {
inet RG-001-to-002;
}
}
}
interface ge-0/0/0.91;
interface ge-0/0/1.101;
interface ge-0/0/1.102;
interface ge-0/0/1.103;
route-distinguisher 65001:91;
vrf-target target:65001:91;
}
}
動作確認
Route Leak後のルートテーブル(vrf-002.inet.0)
OSPFの経路が追加されていることが分かる。双方向で通信するためには戻り用にvrf-002⇒vrf-001へのRoute Leakも設定する必要あり。
admin@BorderRouter> show route table vrf-002.inet.0
vrf-002.inet.0: 13 destinations, 13 routes (13 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
10.120.0.0/29 *[Direct/0] 00:25:39
> via ge-0/0/1.201
10.120.0.1/32 *[Local/0] 00:25:39
Local via ge-0/0/1.201
10.120.0.8/29 *[Direct/0] 00:25:39
> via ge-0/0/1.202
10.120.0.9/32 *[Local/0] 00:25:39
Local via ge-0/0/1.202
10.120.0.16/29 *[Direct/0] 00:25:39
> via ge-0/0/1.203
10.120.0.17/32 *[Local/0] 00:25:39
Local via ge-0/0/1.203
172.16.11.1/32 *[OSPF/150] 00:00:08, metric 1, tag 3489725929
> to 172.16.91.1 via ge-0/0/0.91
172.16.11.3/32 *[OSPF/150] 00:00:08, metric 1, tag 3489725929
> to 172.16.91.1 via ge-0/0/0.91
172.16.22.4/32 *[OSPF/150] 00:00:08, metric 1, tag 3489725929
> to 172.16.91.1 via ge-0/0/0.91
172.16.33.2/32 *[OSPF/150] 00:00:08, metric 1, tag 3489725929
> to 172.16.91.1 via ge-0/0/0.91
172.16.60.1/32 *[BGP/170] 00:13:55, localpref 100
AS path: 65001 I, validation-state: unverified
> to 172.16.92.1 via ge-0/0/0.92
172.16.92.0/30 *[Direct/0] 00:25:39
> via ge-0/0/0.92
172.16.92.2/32 *[Local/0] 00:25:39
Local via ge-0/0/0.92