2018-06-28 06:08 PM 2018-06-29 04:55 PM 更新
本ドキュメントでは、ACI VRF Route Leakingの設定例とCLIでの設定確認について説明します。
※ ACI Version 3.1 での確認結果をもとに掲載しております。
また、本ドキュメントは 下記 ACI How to のサイトにおいても掲載しております。
https://learningnetwork.cisco.com/docs/DOC-35162
通常、各VRFで管理されるルート情報はVRFを超えて伝搬はされず、VRF間での通信は行なえません。
VRF Route Leaking を設定することで、VRF間での通信を可能にすることができます。
Route Leak 設定前
Route Leak 設定後
末尾 (4.References) のCCOにも記載がありますが、Best Practiceとしては Provider側のEPG配下に Shared Subnet を設定する方法が推奨です。
※ここでは 上記1にある Tenant, VRF, BD 及び Access Policyの設定は済んでいることを前提としています。
Cisco Application Centric Infrastructure Best Practices Guide
"The preferred method remains having the shared subnet defined under the EPG to be shared to another tenant."
(1) Provider側 EPG1 Subnets に Gateway IP を設定し、"Shared between VRFs"にチェックをいれます。
(2) この状態では Provider側、Consumer側で 互いのルート情報をまだImport出来ていないため、Contractの設定が必要です。
EPG1の Contracts 右上の pull down から Add Provided Contract を選択し、Contractを作成します。
Contract作成画面では Nameを設定し、Scope は Global を選択します。
(3) 続いて 上記と同じ画面の下にある Subjectsの設定から、どのような通信を許可するかのFilterを設定します。
デフォルトで Apply Both Directions と Reverse Filter Ports にチェックが入っています。
これによって1つのFilterで双方向のVRF間通信を許可することができ、且つTCAMのリソースを抑えます。
Filterについては、この例では common:default (all permit) を選択しています。
(4) 上記(3)で作成した Contract を Exportして、Consumer Tenant側でConsume出来るようにします。
Tenant Provider > Contracts > Standard を右クリックし、Export Contractを選択します。
(5) Export Contract作成画面で、Nameを入力し、Contract に 上記(2)(3)で作成した Contractを選択します。
Tenantの項目では、Export先の Tenant (この例では Consumer)を選択します。
(6) Consumer Tenantへ移動し、Contract > Imported に Exportされた Contract があることを確認します。
(7) Consumer 側の EPG Contractから、Add Consumed Contract Interface を選択します。
(8) Contract Interface に Exportされた Contract を選択します。
以上で設定は完了です。
Leaf Switchにアクセスし、Route Table、Contract Rule (Zoning-Rule) を確認していきます。
※この例では、EPG1 は Leaf1 に、EPG3 は Leaf3 に接続されています。
(1) Provider:VRF1 のルート情報を確認します。
30.30.30.0/24 が Importされていることがわかります。
Provider:VRF1 |
---|
leaf1# show ip route vrf Provider:VRF1 IP Route Table for VRF "Provider:VRF1" '*' denotes best ucast next-hop '**' denotes best mcast next-hop '[x/y]' denotes [preference/metric] '%<string>' in via output denotes VRF <string>
*via 10.0.192.66%overlay-1, [1/0], 00:13:04, static, tag 4294967295
*via 10.10.10.1, vlan470, [1/0], 00:27:42, local, local
*via 10.0.192.66%overlay-1, [1/0], 00:13:04, static, tag 4294967295 |
(2) Consumer:VRF2 のルート情報を確認します。
10.10.10.0/24 が Importされていることがわかります。
Consumer:VRF2 |
---|
leaf3# show ip route vrf Consumer:VRF2 IP Route Table for VRF "Consumer:VRF2" '*' denotes best ucast next-hop '**' denotes best mcast next-hop '[x/y]' denotes [preference/metric] '%<string>' in via output denotes VRF <string>
*via 10.0.192.66%overlay-1, [1/0], 00:13:48, static, tag 4294967295
*via 10.0.192.66%overlay-1, [1/0], 01:20:02, static, tag 4294967295
*via 30.30.30.1, vlan3327, [1/0], 01:20:02, local, local |
(3) Contract Rule を確認するため、Consumer側 EPG が接続されている Leaf3 で show zoning-rule を参照します。
※ Contract Rule は Consumer VRF 側でのみ適用されます。
※ scope xxxxx に VRFの vnid を入れると 該当VRFの zoning-rule のみにフィルターされて表示されます。 VNIDの確認方法は(4)で後述します。
zoning-rule on Consumer side |
---|
leaf3# show zoning-rule scope 2555906 Rule ID SrcEPG DstEPG FilterID operSt Scope Action Priority ======= ====== ====== ======== ====== ===== ====== ======== 6103 0 32771 implicit enabled 2555906 permit any_dest_any(15) 6104 0 0 implicit enabled 2555906 deny,log any_any_any(20) 6105 0 0 implarp enabled 2555906 permit any_any_filter(16) 4416 0 15 implicit enabled 2555906 deny,log any_vrf_any_deny(21) 4941 5513 0 implicit enabled 2555906 deny,log shsrc_any_any_deny(11) 6094 32772 5513 default enabled 2555906 permit src_dst_any(8) 6095 5513 32772 default enabled 2555906 permit src_dst_any(8) |
→ 上記の zoning-rule で、32772(SrcEPG) → 5513(DstEPG) 及び、その逆向きが Permitされていることが確認できます。
SrcEPG, DstEPG のID (class id) が 16K(16384) 以下のものは Global id として処理されます。 Global id (16K) は ACI Fabric 全体での有限値となります。
上記の例では、class id = 5513 (Global id) は Shared Subnetを設定した Provider EPG1 となります。 class id = 32772 (Local id) は Consumer 側EPGとなります。
(4) VNID (scope) 及び EPG Class ID(sclass) は 以下のコマンド結果 または GUI から得られます。
CLIからの確認方法
Provider EPG |
---|
leaf1# show system internal epm endpoint ip 10.10.10.100 MAC : 0078.8839.da1f ::: Num IPs : 1 IP# 0 : 10.10.10.100 ::: IP# 0 flags : Vlan id : 471 ::: Vlan vnid : 20792 ::: VRF name : Provider:VRF1 BD vnid : 16220191 ::: VRF vnid : 2949124 Phy If : 0x1a003000 ::: Tunnel If : 0 Interface : Ethernet1/4 Flags : 0x80004c04 ::: sclass : 5513 ::: Ref count : 5 EP Create Timestamp : 05/10/2018 16:31:06.043535 EP Update Timestamp : 05/10/2018 16:45:37.745632 EP Flags : local|IP|MAC|sclass|timer| |
Consumer EPG |
---|
leaf3# show system internal epm endpoint ip 30.30.30.100 MAC : 00c8.8b56.8d95 ::: Num IPs : 1 IP# 0 : 30.30.30.100 ::: IP# 0 flags : Vlan id : 3328 ::: Vlan vnid : 20794 ::: VRF name : Consumer:VRF2 BD vnid : 15925299 ::: VRF vnid : 2555906 Phy If : 0x1a002000 ::: Tunnel If : 0 Interface : Ethernet1/3 Flags : 0x80005c04 ::: sclass : 32772 ::: Ref count : 5 EP Create Timestamp : 05/10/2018 15:31:06.939213 EP Update Timestamp : 05/10/2018 16:48:36.017009 EP Flags : local|IP|MAC|host-tracked|sclass|timer| |
GUIからの確認方法
Provider側において、複数の EPG 配下から Route Leakさせる場合、または複数のVRFから共通の VRFへ Route Leakする場合、
Leakさせる Subnetが重複しないように設定してください。
Configuring Inter-Context Communication
Cisco Application Centric Infrastructure Best Practices Guide
検索バーにキーワード、フレーズ、または質問を入力し、お探しのものを見つけましょう
シスコ コミュニティをいち早く使いこなしていただけるよう役立つリンクをまとめました。みなさんのジャーニーがより良いものとなるようお手伝いします