VRFは1台の物理装置の中に複数の仮想ルータを作成するような技術ですが、そのままでは仮想ルータ間の通信はできません。
VRFルートリークは、この仮想ルータ間の通信を可能にする技術です。
このブログでは、NX-OSでのVRFルートリークの設定と確認方法を記載します。
構成図

中央の装置(NX002)にVRFルートリークの設定を行います。
BLUEというVRFを作成し、右側のE1/2にBLUEのVRFを設定します。
左側のE1/1は、VRFの設定をしません。設定をしないとVRFはdefaultとなります。
defaultのVRFには、1.1.1.1/32のスタティックルートを、BLUEのVRFには、3.3.3.3/32のスタティックルートを設定します。
これらのスタティックルートを互いのVRFにルートリークし通信できるようにします。
設定内容
NX001
[plain]
feature interface-vlan
hostname NX001
ip route 0.0.0.0/0 192.168.12.2
interface Ethernet1/1
no switchport
ip address 192.168.12.1/24
no shutdown
interface loopback0
ip address 1.1.1.1/32
[/plain]
NX002
[plain]
feature bgp
feature interface-vlan
hostname NX002
ip route 1.1.1.1/32 192.168.12.1
route-map ALL permit 10
vrf context BLUE
ip route 3.3.3.3/32 192.168.23.3
address-family ipv4 unicast
import vrf default map ALL
export vrf default map ALL
interface Ethernet1/1
no switchport
ip address 192.168.12.2/24
no shutdown
interface Ethernet1/2
no switchport
vrf member BLUE
ip address 192.168.23.2/24
no shutdown
router bgp 65535
address-family ipv4 unicast
redistribute static route-map ALL
vrf BLUE
address-family ipv4 unicast
redistribute static route-map ALL
[/plain]
NX003
[plain]
feature interface-vlan
hostname NX003
ip route 0.0.0.0/0 192.168.23.2
interface Ethernet1/2
no switchport
ip address 192.168.23.3/24
no shutdown
interface loopback0
ip address 3.3.3.3/32
[/plain]
確認方法
中央の装置(NX002)のルーティングテーブルを確認すると、「*via 192.168.23.3%BLUE」「*via 192.168.12.1%default,」の部分でルートリークが有効であることがわかります。
左側の装置(NX001)から送信元を1.1.1.1として右側の装置(NX003)の3.3.3.3にpingを送信すると、応答があります。
NX002
[plain]
NX002# show ip route vrf all
IP Route Table for VRF "default"
‘*’ denotes best ucast next-hop
‘**’ denotes best mcast next-hop
‘[x/y]’ denotes [preference/metric]
‘%<string>’ in via output denotes VRF <string>
1.1.1.1/32, ubest/mbest: 1/0
*via 192.168.12.1, [1/0], 00:16:11, static
3.3.3.3/32, ubest/mbest: 1/0
*via 192.168.23.3%BLUE, [20/0], 00:16:44, bgp-65535, external, tag 65535
192.168.12.0/24, ubest/mbest: 1/0, attached
*via 192.168.12.2, Eth1/1, [0/0], 00:16:49, direct
192.168.12.2/32, ubest/mbest: 1/0, attached
*via 192.168.12.2, Eth1/1, [0/0], 00:16:49, local
IP Route Table for VRF "BLUE"
‘*’ denotes best ucast next-hop
‘**’ denotes best mcast next-hop
‘[x/y]’ denotes [preference/metric]
‘%<string>’ in via output denotes VRF <string>
1.1.1.1/32, ubest/mbest: 1/0
*via 192.168.12.1%default, [20/0], 00:16:46, bgp-65535, external, tag 65535
3.3.3.3/32, ubest/mbest: 1/0
*via 192.168.23.3, [1/0], 00:00:23, static
192.168.23.0/24, ubest/mbest: 1/0, attached
*via 192.168.23.2, Eth1/2, [0/0], 00:16:48, direct
192.168.23.2/32, ubest/mbest: 1/0, attached
*via 192.168.23.2, Eth1/2, [0/0], 00:16:48, local
[/plain]
NX001
[plain]
NX001# ping 3.3.3.3 source 1.1.1.1
PING 3.3.3.3 (3.3.3.3) from 1.1.1.1: 56 data bytes
64 bytes from 3.3.3.3: icmp_seq=0 ttl=253 time=102.745 ms
64 bytes from 3.3.3.3: icmp_seq=1 ttl=253 time=7.05 ms
64 bytes from 3.3.3.3: icmp_seq=2 ttl=253 time=8.269 ms
64 bytes from 3.3.3.3: icmp_seq=3 ttl=253 time=7.459 ms
64 bytes from 3.3.3.3: icmp_seq=4 ttl=253 time=6.922 ms
— 3.3.3.3 ping statistics —
5 packets transmitted, 5 packets received, 0.00% packet loss
round-trip min/avg/max = 6.922/26.489/102.745 ms
[/plain]

補足
上記のサンプルは、全てのスタティックルートをルートリークの対象としています。
特定のルートをルートリークの対象とするには、route-mapを使用します。
また、ダイナミックルートや直接接続されたルートを対象としたい場合は、bgpの再配送の設定箇所を修正します。