Cisco ACIによるネットワーク構築 -構成要素

# ◆ポリシーとプロファイルの概念
ACI Fabricにサーバや外部ネットワーク機器を接続する場合には、Leafスイッチに接続されることになる。
ACIではAPIC上でLeafポートのLink Speed、CDP、LLDP、VLAN、Domain等の各設定項目を1つ1つポリシーとして定める。
そして各ポリシーをまとめたプロファイルを作成し、Leaｆスイッチの物理ポートに対して適用する事で、これらの設定が反映される。
一度作成したポリシー、プロファイルは使いまわしが可能なので、別のLeafスイッチ・ポートに対して同様の設定を迅速に行えるという利点がある。

# ◆アクセスポリシー
Leafスイッチの物理ポートに対して行う設定を、アクセスポリシーと呼びます。これらはL1-L２設定に該当します。
設定項目は多数ありますが、最低限ネットワーク構築を行う上で必須となる設定は以下となります。
また、各設定項目同士の紐付けを理解する事が重要になります。


- VLAN Pool
- Domain
- Attachable Entity Profile (AEP)
- Interface Policy
- Interface Policy Group
- Interface Profile
- Switch Profile

### VLAN Pool
Leafの物理ポートでVLANを使用するには、VLAN Poolと呼ばれるポリシーを定める必要があります。
VLAN Poolでは単一もしくはレンジでVLANを定義します。Poolの設定自体は後述のポリシーへ紐付ける為の事前設定であり、
関連するプロファイルに正常に紐付ける事で、VLAN Poolで定義した範囲のVLANをLeafの物理ポートで使用できるようになります。

### Domain
VLAN Poolを作成した後、Domainと呼ばれるものに紐付けを行います。Domainには接続する機器に応じていくつかの種類がありますが、基本的に使用するものとして大きく物理ドメイン(PhysicalDomain)とルーテッドドメイン(RoutedDomain)があります。これらはテナントの設定で使用され、PhysicalDomainはEPG、RoutedDomainはL3Out(ExtEPG)に紐付きます。

### Attachable Entity Profile (AEP)
作成したPhysicalDomain、RoutedDomainはAEPに紐付けられます。AEPはDomainを収容する器のようなものです。
1つのAEPに複数のDomainを束ねる事ができます。

### Interface Policy
外部機器を接続する物理ポートに適用する設定内容をポリシーとして定めます。
こちらも多数設定がありますが、主に設定を行うものとして以下があります。

- Link Level (100M/1G/10G/auto)
- CDP Interface (Enabled or Disabled)
- LLDP Interface (Enabled or Disabled)
- MCP Interface (Enabled or Disabled)
- Port Channel (Mode on/LACP Active/LACP passive)

### Interface Policy Group
定義したInterface Policyを１つ１つ物理ポートに対して設定するのは大変です。ACIでは複数のInterface PolicyをグループとしてまとめたPolicy Groupを作成します。Policy Groupを物理ポートに対して設定する事で、グループ化したInterface Policyをまとめて適用できます。
Policy Groupには先述のAEPを指定して紐付けます。AEPを指定する事で、AEPに紐付いているDomainに含まれるVLAN Poolの範囲のVLANが、物理ポートで使用可能になります。

### Interface Profile
定義したPolicy Groupを、どの物理ポートに適用するかを定めます。まず器としてのInterface Profileを作成し、その中で物理ポートを定義するInterface Selectorを作成します。Interface Selectorでは実際の物理ポート番号を指定し、Policy Groupを適用します。
Interface Selectorには複数ポートを定義可能で、複数ポートに同じPolicy Groupを適用する事ができます。

### Switch Profile
定義したInterface Profileを、どのLeafで使用するかを指定します。器となるSwitch Profileを作成し、その中にLeafのノードIDを指定するSwitch Selectorを作成します。

### アクセスポリシーの紐付けイメージ
例として、以下のような接続を想定した場合のアクセスポリシーの紐付けをイメージしてみます。

図１　構成例
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1056057/ef6e79a8-e0ff-68ec-c44e-66b345f2f53c.png)


図2　アクセスポリシー
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1056057/f484cfa3-ba87-8f47-ef3c-2a4ee0a9d4a9.png)


# ◆テナント
SDNにおいて、1企業/顧客に提供する仮想ネットワークの単位をテナントと呼ぶ。テナントの分け方は企業やサービスの大きさにより自由に分けられ、部門毎、サービス単位で分けたりする事もある。Cisco ACIにおいても、ネットワークを構築する上でこのテナントを作成し、テナントの中にネットワークを構築していく。テナントでネットワーク設定を有効化する為には、先述のアクセスポリシーの設定が定義されている事が前提となる。テナントは主に以下の要素で構成されます。

### VRF
1つのテナントの中にはVRFが存在し、必ず1つ以上存在します。VRF（Virtual Routing and Forwarding）はルータの仮想化技術であり、テナントにおいてもこの概念は同じです。テナントで複数VRFを作成して仮想的にネットワークを分けるといった細かなネットワーク構築が可能となります。

### ブリッジドメイン
仮想L2サブネットであり、ブリッジドメインを分ける事でVLANと似たようにブロードキャストドメインを分割できます。ブリッジドメインの中にはACI Fabricに接続するデバイスをグループ化するEPGが存在します。ブリッジドメインではGatewayとなるIPを付与し、仮想的なブリッジドメインインターフェースとして機能させる事ができます。Gateway IPを設定した場合、ブリッジドメイン内のEPGに含まれる接続デバイスはGateway IPをルーティングのネクストホップとして指定する事ができるようになります。これらの論理的な概念はSVIと似ていますが、SVIとは別物です。ブリッジドメイン側はIPを持たせるのみで、Static RouteやBGP/EIGRPといったルーティングの機能は持ちません。

### EPG（End Point Group）
ACI視点で、Leafに接続されるサーバ・外部デバイスの事をEP（エンドポイント）と呼び、それらをグループ化したものをEPGと呼びます。ACI Fabricに接続される機器は、何れかのテナント内のEPGに含まれる事になります。EPGでは主に以下2つの設定を行います。

- StaticBindings(Path)  
サーバ、外部デバイスが接続されるLeaf/ポートをここで指定し、VLANやポート種別を割り当てます。
また、Deployment ImmediacyでLeafスイッチのハードウェアにポリシーが適用されるタイミングを指定できます。Immediate の場合は設定後に反映され、On Demand の場合、最初のパケットを受信した時に反映されます。  

- Domain
アクセスポリシーで定義したPhysical Domainをここで指定します。例えばStaticBindingsでLeaf1000,Port1,Vlan10 を設定する場合、ここで指定したPhysicalDomainに紐付いているVLAN Poolの範囲内にVlan10が含まれている必要があります。

### コントラクト
Leafに接続されるデバイスはEPGに収容されるが、デフォルトの仕様では異なるEPG間の通信は拒否されるようになっている。例えばA-EPGとB-EPGにそれぞれサーバを収容した場合、A-EPGとB-EPG配下のサーバ同士は通信が行えない。その通信を許可したりする要素がコントラクトです。コントラクトにはFilterという要素があり、特定の通信だけを許可、拒否したりと制御を行えます。コントラクトの適用方法は２種類あります。

- 各EPG毎に個別に適用
通信させたい特定のEPGにのみコントラクトを適用する事で、細かな通信制御での設計を行う事ができます。コントラクトを複数作成すればより細かく制御を分けられます。デメリットとしては、制御数を増やす度にコントラクトも増える事になるので、作成や管理が手間になるといった部分があります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1056057/619aa6e1-aaba-8d86-8a80-42f3744377a1.png)


- vzAny (EPG Collection for VRF)
VRFにコントラクトを適用させる事で、同一VRFに所属する全EPGが自動的に通信できるようになる方法です。一度VRFにコントラクトを適用させてしまえば、後々EPGを増やしたとしても自動的に他のEPGをとの接続性を持たせられるので、拡張が楽というメリットがあります。また、vzAnyを適用した状態で一部EPGに個別コントラクトを適用した場合は、個別コントラクトの制御が優先されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1056057/01fdba9e-e96c-5d44-8842-545ee3bf100e.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1056057/3e53f576-723e-d4e0-01dc-a8c4cf3033ee.png)

### L3Out
ACIが、外部ネットワークへ接続する為に必要となるルーティング機能を提供する要素。Static Route/BGP/EIGRP/OSPFがサポートされています。L3Outは主に以下の要素で構成されています。ルーティングプロトコル毎に細かな設定が異なるので、ここでは詳細は省略します。

- L3Oiut main
L3Outの大枠の設定で、VRF/Domain/使用するルーティングプロトコルを指定します。EPGではPhysicalDomainを適用しましたが、L3OutではRoutedDomainを適用します。BGP/EIGRP/OSPFを仕様する場合には該当のチェックボックスをONにします。Static Routeの場合はチェック不要です。

- Logical Node Profile
L3Out配下に作成される要素で、L3Outで仕様するLeafを指定します。Leaf指定はNode IDで行い、Leaf１台に対して１つのルータIDを割り当てます。ルータIDはFabric内で管理される/32のサブネットです。StaticRouteを設定する場合には、ここでLeafを登録した後、Leaf毎にウィンドウを開いて宛先IPとNextHopを設定します。

- Logical Interface Profile
Logical Node Profile配下に作成する要素で、外部ルータが接続されるLeaf/Portに対する設定を行います。ポート種別(Routed/Routed Sub/SVI)を選択し、IP/MAC address/VLAN/MTU等を割り当てます。VLANを有効にするには、L3Out mainで指定したRoutedDomainに適用する範囲のVLANが含まれたVLAN Poolが紐付いている必要があります。

- External EPG(ExtEPG)
ブリッジドメインに含まれるEPGとは別に、L3Outに含まれるEPGがExtEPGです。Logical Interfaceの先に接続される外部ルータはExtEPGに所属します。ExtEPGでは基本的な概念はEPGと似ていますが、外部ルータに向けて広報するサブネットや、外部ルータから受信するサブネットを制御したりできます。またEPG同様にコントラクトがないと他のEPGとの接続は不可となり、vzAnyが有効であれば自動的に通信が許可されるようになります。

### テナントとアクセスポリシーの紐付けイメージ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1056057/fd8e8f0b-2f9a-343d-8875-42065e21645b.png)