らくがきちょう

なんとなく ~所属組織/団体とは無関係であり、個人の見解です~

Cisco ACI で vzAny 設定時の Policy CAM 利用状況を確認する

以前に Cisco ACI で Policy CAM の利用状況を確認する というメモを書きました。 ACI では (個々の EPG に対してでは無く) VRF 全体に対して Contract を設定する、いわゆる「vzAny」と呼ばれている設定方法があります。 今回は vzAny を利用した場合の Policy CAM の消費量を確認してみます。 尚、今回は 5.0(2h) で検証を実施しました。

前提コンフィグ

以下のコンフィグが設定されている前提でテストします。

tenant Tenant1
  access-list Filter1
    match tcp dest 10000
    match tcp dest 10001
    match tcp dest 10002
    match tcp dest 10003
    match tcp dest 10004
    match tcp dest 10005
    match tcp dest 10006
    match tcp dest 10007
    match tcp dest 10008
    match tcp dest 10009
    exit
  contract Contract1
    subject Subject1
      access-group Filter1 both
      exit
    exit
  vrf context Vrf1
    exit
  bridge-domain Bd1
    arp flooding
    vrf member Vrf1
    exit
  bridge-domain Bd2
    arp flooding
    vrf member Vrf1
    exit
  bridge-domain Bd3
    arp flooding
    vrf member Vrf1
    exit
  bridge-domain Bd4
    arp flooding
    vrf member Vrf1
    exit
  bridge-domain Bd5
    arp flooding
    vrf member Vrf1
    exit
  application Ap1
    epg Epg1
      bridge-domain member Bd1
      set qos-class level3
      vmware-domain member Vmm1 deploy immediate
        exit
      exit
    epg Epg2
      bridge-domain member Bd2
      set qos-class level3
      vmware-domain member Vmm1 deploy immediate
        exit
      exit
    epg Epg3
      bridge-domain member Bd3
      set qos-class level3
      vmware-domain member Vmm1 deploy immediate
        exit
      exit
    epg Epg4
      bridge-domain member Bd4
      set qos-class level3
      vmware-domain member Vmm1 deploy immediate
        exit
      exit
    epg Epg5
      bridge-domain member Bd5
      set qos-class level3
      vmware-domain member Vmm1 deploy immediate
        exit
      exit
    exit
  exit

vzAny 設定前

vzAny の設定前は以下のような Zoning-rule が Deploy されていました。

leaf# contract_parser.py --vrf Tenant1:Vrf1
Key:
[prio:RuleId] [vrf:{str}] action protocol src-epg [src-l4] dst-epg [dst-l4] [flags][contract:{str}] [hit=count]

[16:4160] [vrf:Tenant1:Vrf1] permit any epg:any tn-Tenant1/bd-Bd2(32770) [contract:implicit] [hit=0]
[16:4145] [vrf:Tenant1:Vrf1] permit any epg:any tn-Tenant1/bd-Bd4(32771) [contract:implicit] [hit=0]
[16:4156] [vrf:Tenant1:Vrf1] permit any epg:any tn-Tenant1/bd-Bd5(32772) [contract:implicit] [hit=0]
[16:4155] [vrf:Tenant1:Vrf1] permit any epg:any tn-Tenant1/bd-Bd1(49153) [contract:implicit] [hit=0]
[16:4167] [vrf:Tenant1:Vrf1] permit any epg:any tn-Tenant1/bd-Bd3(49154) [contract:implicit] [hit=0]
[16:4146] [vrf:Tenant1:Vrf1] permit arp epg:any epg:any [contract:implicit] [hit=0]
[21:4140] [vrf:Tenant1:Vrf1] deny,log any epg:any epg:any [contract:implicit] [hit=0]
[22:4166] [vrf:Tenant1:Vrf1] deny,log any epg:any pfx-0.0.0.0/0(15) [contract:implicit] [hit=0]

vzAny 設定後

vzAny 設定を実施してみます。 今回は Consumer / Provider 双方向に設定してみました。

tenant Tenant1
  vrf context Vrf1
    contract consumer Contract1
    contract provider Contract1
    exit

vzAny 設定後に Zoning-rule を確認すると以下のようになっていました。

leaf# contract_parser.py --vrf Tenant1:Vrf1
Key:
[prio:RuleId] [vrf:{str}] action protocol src-epg [src-l4] dst-epg [dst-l4] [flags][contract:{str}] [hit=count]

[16:4160] [vrf:Tenant1:Vrf1] permit any epg:any tn-Tenant1/bd-Bd2(32770) [contract:implicit] [hit=0]
[16:4145] [vrf:Tenant1:Vrf1] permit any epg:any tn-Tenant1/bd-Bd4(32771) [contract:implicit] [hit=0]
[16:4156] [vrf:Tenant1:Vrf1] permit any epg:any tn-Tenant1/bd-Bd5(32772) [contract:implicit] [hit=0]
[16:4155] [vrf:Tenant1:Vrf1] permit any epg:any tn-Tenant1/bd-Bd1(49153) [contract:implicit] [hit=0]
[16:4167] [vrf:Tenant1:Vrf1] permit any epg:any tn-Tenant1/bd-Bd3(49154) [contract:implicit] [hit=0]
[16:4169] [vrf:Tenant1:Vrf1] permit ip tcp epg:any epg:any eq 10000  [contract:uni/tn-Tenant1/brc-Contract1] [hit=?]
                                    ip tcp epg:any epg:any eq 10001 
                                    ip tcp epg:any epg:any eq 10003 
                                    ip tcp epg:any epg:any eq 10004 
                                    ip tcp epg:any epg:any eq 10002 
                                    ip tcp epg:any epg:any eq 10005 
                                    ip tcp epg:any epg:any eq 10006 
                                    ip tcp epg:any epg:any eq 10007 
                                    ip tcp epg:any epg:any eq 10008 
                                    ip tcp epg:any epg:any eq 10009 
[16:4134] [vrf:Tenant1:Vrf1] permit ip tcp epg:any eq 10009 epg:any  [contract:uni/tn-Tenant1/brc-Contract1] [hit=?]
                                    ip tcp epg:any eq 10008 epg:any 
                                    ip tcp epg:any eq 10007 epg:any 
                                    ip tcp epg:any eq 10006 epg:any 
                                    ip tcp epg:any eq 10005 epg:any 
                                    ip tcp epg:any eq 10002 epg:any 
                                    ip tcp epg:any eq 10004 epg:any 
                                    ip tcp epg:any eq 10003 epg:any 
                                    ip tcp epg:any eq 10001 epg:any 
                                    ip tcp epg:any eq 10000 epg:any 
[16:4146] [vrf:Tenant1:Vrf1] permit arp epg:any epg:any [contract:implicit] [hit=0]
[21:4140] [vrf:Tenant1:Vrf1] deny,log any epg:any epg:any [contract:implicit] [hit=0]
[22:4166] [vrf:Tenant1:Vrf1] deny,log any epg:any pfx-0.0.0.0/0(15) [contract:implicit] [hit=0]

vzAny 設定により、「Any → Any」な Zoning-rule が増えていることが分かります。 Filter Entry が 10 個ありますが、双方向で設定している為、合計で 20 行増えています。 vzAny 設定前後で Capacity Dashboard を確認すると、確かに Policy CAM が +20 されていました。