Cisco ACI では通常、同一 EPG に所属している EndPoint 同士は通信出来てしまいます。 従来のネットワークで言うところの「Private VLAN」と近い感覚で「同一 EPG に所属する EndPoint 同士の通信を 拒否する」には Intra EPG Isolation
の設定を行います。 今回は 5.0(2h) 環境で Intra EPG Isolation
無効時 / 有効時を比較してみました。
Intra EPG Isolation 無効 (デフォルト)
Intra EPG Isolation
設定は EPG の設定内に存在します。 デフォルトでは無効 (Unenforced
) です。
通信結果
適切に Contract が設定されていれば「同一 EPG 内」「異なる EPG 間」を問わず、通信出来るはずです。
show zoning-rule
この場合、zoning-rule に目立った点はありません。
leaf# show zoning-rule scope 2555910
+---------+--------+--------+----------+----------------+---------+---------+-------------------+----------+----------------------+
| Rule ID | SrcEPG | DstEPG | FilterID | Dir | operSt | Scope | Name | Action | Priority |
+---------+--------+--------+----------+----------------+---------+---------+-------------------+----------+----------------------+
| 4179 | 0 | 0 | implicit | uni-dir | enabled | 2555910 | | deny,log | any_any_any(21) |
| 4154 | 0 | 0 | implarp | uni-dir | enabled | 2555910 | | permit | any_any_filter(17) |
| 4134 | 0 | 15 | implicit | uni-dir | enabled | 2555910 | | deny,log | any_vrf_any_deny(22) |
| 4146 | 0 | 16387 | implicit | uni-dir | enabled | 2555910 | | permit | any_dest_any(16) |
| 4184 | 0 | 49153 | implicit | uni-dir | enabled | 2555910 | | permit | any_dest_any(16) |
| 4153 | 32770 | 16388 | default | bi-dir | enabled | 2555910 | Tenant1:Contract1 | permit | src_dst_any(9) |
| 4176 | 16388 | 32770 | default | uni-dir-ignore | enabled | 2555910 | Tenant1:Contract1 | permit | src_dst_any(9) |
+---------+--------+--------+----------+----------------+---------+---------+-------------------+----------+----------------------+
contract_parser.py
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]
[9:4176] [vrf:Tenant1:Vrf1] permit any tn-Tenant1/ap-Ap1/epg-Epg2(16388) tn-Tenant1/ap-Ap1/epg-Epg1(32770) [contract:uni/tn-Tenant1/brc-Contract1] [hit=0]
[9:4153] [vrf:Tenant1:Vrf1] permit any tn-Tenant1/ap-Ap1/epg-Epg1(32770) tn-Tenant1/ap-Ap1/epg-Epg2(16388) [contract:uni/tn-Tenant1/brc-Contract1] [hit=0]
[16:4146] [vrf:Tenant1:Vrf1] permit any epg:any tn-Tenant1/bd-Bd1(16387) [contract:implicit] [hit=0]
[16:4184] [vrf:Tenant1:Vrf1] permit any epg:any tn-Tenant1/bd-Bd2(49153) [contract:implicit] [hit=0]
[16:4154] [vrf:Tenant1:Vrf1] permit arp epg:any epg:any [contract:implicit] [hit=0]
[21:4179] [vrf:Tenant1:Vrf1] deny,log any epg:any epg:any [contract:implicit] [hit=0]
[22:4134] [vrf:Tenant1:Vrf1] deny,log any epg:any pfx-0.0.0.0/0(15) [contract:implicit] [hit=0]
Intra EPG Isolation 有効
Intra EPG Isolation
を有効化してみます。 Intra EPG Isolation
を有効化のみ、proxy-arp
を設定出来るようになります (デフォルトは無効)。
通信結果
Intra EPG Isolation
を有効化している為、「同一 EPG 内の通信」は拒否されてしまいます (※ ARP は許可されます)。 適切に Contract が設定されていれば「異なる EPG 宛の通信」は許可されます。
show zoning-rule
Intra EPG Isolation
無効時と比べて Src / Dst EPG が同じ (どちらも 32770) を deny する zoning-rule が増えていることが分かります。 しかも、この zoning-rule は Priority 2 と、非常に優先度が高く設定されます。
leaf# show zoning-rule scope 2555910
+---------+--------+--------+----------+----------------+---------+---------+-------------------+----------+----------------------+
| Rule ID | SrcEPG | DstEPG | FilterID | Dir | operSt | Scope | Name | Action | Priority |
+---------+--------+--------+----------+----------------+---------+---------+-------------------+----------+----------------------+
| 4179 | 0 | 0 | implicit | uni-dir | enabled | 2555910 | | deny,log | any_any_any(21) |
| 4154 | 0 | 0 | implarp | uni-dir | enabled | 2555910 | | permit | any_any_filter(17) |
| 4134 | 0 | 15 | implicit | uni-dir | enabled | 2555910 | | deny,log | any_vrf_any_deny(22) |
| 4146 | 0 | 16387 | implicit | uni-dir | enabled | 2555910 | | permit | any_dest_any(16) |
| 4184 | 0 | 49153 | implicit | uni-dir | enabled | 2555910 | | permit | any_dest_any(16) |
| 4153 | 32770 | 16388 | default | bi-dir | enabled | 2555910 | Tenant1:Contract1 | permit | src_dst_any(9) |
| 4176 | 16388 | 32770 | default | uni-dir-ignore | enabled | 2555910 | Tenant1:Contract1 | permit | src_dst_any(9) |
| 4192 | 32770 | 32770 | implicit | uni-dir | enabled | 2555910 | | deny,log | class-eq-deny(2) |
+---------+--------+--------+----------+----------------+---------+---------+-------------------+----------+----------------------+
contract_parser.py
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]
[2:4192] [vrf:Tenant1:Vrf1] deny,log any tn-Tenant1/ap-Ap1/epg-Epg1(32770) tn-Tenant1/ap-Ap1/epg-Epg1(32770) [contract:implicit] [hit=0]
[9:4176] [vrf:Tenant1:Vrf1] permit any tn-Tenant1/ap-Ap1/epg-Epg2(16388) tn-Tenant1/ap-Ap1/epg-Epg1(32770) [contract:uni/tn-Tenant1/brc-Contract1] [hit=0]
[9:4153] [vrf:Tenant1:Vrf1] permit any tn-Tenant1/ap-Ap1/epg-Epg1(32770) tn-Tenant1/ap-Ap1/epg-Epg2(16388) [contract:uni/tn-Tenant1/brc-Contract1] [hit=0]
[16:4146] [vrf:Tenant1:Vrf1] permit any epg:any tn-Tenant1/bd-Bd1(16387) [contract:implicit] [hit=0]
[16:4184] [vrf:Tenant1:Vrf1] permit any epg:any tn-Tenant1/bd-Bd2(49153) [contract:implicit] [hit=0]
[16:4154] [vrf:Tenant1:Vrf1] permit arp epg:any epg:any [contract:implicit] [hit=0]
[21:4179] [vrf:Tenant1:Vrf1] deny,log any epg:any epg:any [contract:implicit] [hit=0]
[22:4134] [vrf:Tenant1:Vrf1] deny,log any epg:any pfx-0.0.0.0/0(15) [contract:implicit] [hit=0]
コメント