ACI で Intra EPG Isolation を設定し、同一 EPG 内の通信を拒否する
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
) です。
![file](01.png)
通信結果
適切に Contract が設定されていれば「同一 EPG 内」「異なる EPG 間」を問わず、通信出来るはずです。
![file](02.png)
show zoning-rule
この場合、zoning-rule に目立った点はありません。
1
2
3
4
5
6
7
8
9
10
11
12 | 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
を設定出来るようになります (デフォルトは無効)。
![file](03.png)
通信結果
Intra EPG Isolation
を有効化している為、「同一 EPG 内の通信」は拒否されてしまいます (※ ARP は許可されます)。 適切に Contract が設定されていれば「異なる EPG 宛の通信」は許可されます。
![file](04.png)
show zoning-rule
Intra EPG Isolation
無効時と比べて Src / Dst EPG が同じ (どちらも 32770) を deny する zoning-rule が増えていることが分かります。 しかも、この zoning-rule は Priority 2 と、非常に優先度が高く設定されます。
1
2
3
4
5
6
7
8
9
10
11
12
13 | 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
1
2
3
4
5
6
7
8
9
10
11
12 | 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]
|
参考