1. はじめに
基本的に route 情報は VRF 間で個別に保持されますが
Route Leak を使用することで異なる VRF 間で route 情報を渡すことができます。
例えば下記の図のように VRF A で学習した route 情報を VRF B へ渡すことことができます。
Route Leak には Static Route Leak、BGP Dynamic Route Leak があり、本ドキュメントでは IOS XR ルータにおけるそれぞれの config や show コマンドでの出力例について記載します。
なお、本ドキュメントでは異なる VRF 間で route 情報を渡すことを "Leak する" と表現します。
2. Static Route Leak
Static Route Leak は static route の設定で行います。
Leak される route 情報と併せて宛先となる VRF を指定します。
以下の設定により、GRT(Global Routing Table) における 192.0.2.0/24 宛の通信は VRF-A のルーティングテーブルを参照するように設定できます。
/// default-VRF -> VRF-A ///
router static
address-family ipv4 unicast
192.0.2.0/24 vrf VRF-A 198.51.100.1
GRT における RIB や FIB の状態は以下のようになり、nexthop が VRF-A を指していることがわかります。
RP/0/RP0/CPU0:IOS-XR#show route
-- snip --
S 192.0.2.0/24 [1/0] via 198.51.100.1 (nexthop in vrf VRF-A), 00:00:05
RP/0/RP0/CPU0:IOS-XR#show cef 192.0.2.1
192.0.2.0/24, version 121, internal 0x1000001 0x0 (ptr 0x8ec3f438) [1], 0x0 (0x0), 0x0 (0x0)
Updated May 5 20:47:43.420
Prefix Len 24, traffic index 0, precedence n/a, priority 3
via 198.51.100.1/32, 6 dependencies, recursive [flags 0x0]
path-idx 0 NHID 0x0 [0x8ec4076c 0x0]
next hop VRF - 'VRF-A', table - 0xe0000005
next hop 198.51.100.1/32 via 198.51.100.1/32
static route の設定で nexthop を指定せず、vrf のみを指定することもできます。
その場合 nexthop は VRF-A における 192.0.2.0/24 の nexthop を参照します。
/// default-VRF -> VRF-A without nexthop ///
router static
address-family ipv4 unicast
192.0.2.0/24 vrf VRF-A
3. BGP dynamic Route Leak (default VRF ⇔ non-default VRF)
BGP を用いることで BGP にて学習した route 情報を dynamic に Leak することができます。
BGP を使用し、Leak 元もしくは Leak 先 VRF が default VRF である場合、本セクションに該当します。
Leak 元、Leak 先どちらも default VRF でない場合は次のセクション 4 を確認してください。
以下の設定は、default VRF から VRF-A へ Leak する場合の config です。
/// default -> VRF-A ///
vrf VRF-A
rd 65001:10
address-family ipv4 unicast
import from default-vrf route-policy pass
以下の設定は、VRF-A から default VRF へ Leak する場合の config です。
/// VRF-A -> default ///
vrf VRF-A
rd 65001:10
address-family ipv4 unicast
export to default-vrf route-policy pass
Leak 元もしくは Leak 先 VRF が default VRF である本ケースでは、route-policy を使用して Leak する route を指定する必要があります。
また、BGP configuration にて下記の設定も実施しておく必要があります。
/// BGP dynamic Route Leak に必要な BGP config ///
router bgp 65001
-- snip --
vrf VRF-A
rd 65001:10
address-family ipv4 unicast
RIB や BGP table は以下のようになります。
/// default から VRF-A へ Route Leak ///
RP/0/RP0/CPU0:IOS-XR#show route vrf VRF-A ipv4
-- snip --
B 192.0.2.0/24 [200/0] via 198.51.100.1 (nexthop in vrf default), 00:13:50
RP/0/RP0/CPU0:IOS-XR#show bgp vrf VRF-A ipv4 unicast 192.0.2.0/24
BGP routing table entry for 192.0.2.0/24, Route Distinguisher: 65001:10
Versions:
Process bRIB/RIB SendTblVer
Speaker 30 30
Last Modified: May 5 14:16:05.096 for 00:14:29
Paths: (1 available, best #1)
Advertised to CE peers (in unique update groups):
203.0.113.1
Path #1: Received by speaker 0
Advertised to CE peers (in unique update groups):
203.0.113.1
Local
198.51.100.1 from 198.51.100.1 (198.51.100.1)
Origin IGP, metric 0, localpref 100, valid, internal, best, group-best, import-candidate, imported
Received Path ID 0, Local Path ID 1, version 30
Source AFI: IPv4 Unicast, Source VRF: default, Source Route Distinguisher: 0:0:0
4. BGP dynamic Route Leak (non-default VRF ⇔ non-default VRF)
BGP を使用し、Leak 元、Leak 先どちらも default VRF でない場合は本セクションに該当します。
non-default VRF 間で route leak を有効にしたい場合、以下の設定を実施する必要があります。
- Leak 元の VRF configuration で Leak 先の VRF を route-target で指定
- Leak 先の VRF configuration で Leak 元および自身の VRF を route-target で指定
また、前セクション同様、BGP configuration で rd と address-family ipv4 unicast の設定を実施しておく必要があります。
以下は VRF-A から VRF-B へ Leak する際の config です。
/// VRF-A -> VRF-B ///
vrf VRF-A
rd 65001:10
address-family ipv4 unicast
export route-target
65001:20
!
!
!
vrf VRF-B
rd 65001:20
address-family ipv4 unicast
import route-target
65001:10
65001:20
本ケースでは route-policy の指定は必須ではなく、option です。
セクション 3 との差は config の構文のみとなり、show コマンドでの見え方に差分はないためここでは省略します。
5. BGP 以外の Route を Leak したい場合
BGP route 以外の route を leak する場合は以下のように OSPF 等の IGP から BGP へ redistribute する必要があります。
router bgp 65001
-- snip --
vrf VRF-A
rd 65001:10
bgp router-id 10.10.10.2
address-family ipv4 unicast
redistribute ospf 10