Cisco ACI で通信の許可 / 拒否を制御するには Contract を利用しますが、特に「拒否」を制御するには Taboo Contract を利用する方法があります。 しかし、Taboo Contract は「必ず Provider 側にしか設定出来ない」や「特定の EPG との間にだけ、設定することは出来ない」などの制約があります。 ケース・バイ・ケースではありますが、場合によっては Deny Filter を利用する方が柔軟に通信制御を行うことが可能です。
構成
以下の構成を考えます。
この設定により、ICMP だけが拒否され、他の通信は許可されます。 実際に Leaf において、どのような Zoning-rule が展開されたのか?は show zoning-rule
などで確認することが出来ますが、contract_parser.py
を利用する方が簡単です。 contract_parser.py
は様々な実行方法がありますが、例えば以下のように実行するのが簡単です。 show zoning-rule
と異なり、VRF / EPG の pcTag などが分からなくても、設定名から Zoning-rule を表示出来る点が優れています。
contract_parser.py --sepg [SRC-EPG] --depg [DST-EPG]
今回のケースであれば以下のように表示されました。 Deny Filter が挿入されていることがわかります。
leaf# contract_parser.py \
> --sepg tn-Tenant1/ap-Ap1/epg-Epg1 \
> --depg tn-Tenant1/ap-Ap1/epg-Epg2
Key:
[prio:RuleId] [vrf:{str}] action protocol src-epg [src-l4] dst-epg [dst-l4] [flags][contract:{str}] [hit=count]
[7:4147] [vrf:Tenant1:Vrf1] deny ip icmp tn-Tenant1/ap-Ap1/epg-Epg1(49153) tn-Tenant1/ap-Ap1/epg-Epg2(32770) [contract:uni/tn-Tenant1/brc-Contract1] [hit=0]
[9:4146] [vrf:Tenant1:Vrf1] permit any tn-Tenant1/ap-Ap1/epg-Epg1(49153) tn-Tenant1/ap-Ap1/epg-Epg2(32770) [contract:uni/tn-Tenant1/brc-Contract1] [hit=0]
コメント