EPG は、タグ fvAEPg
で始まり、name 属性があります。
<fvAEPg name="web1">
<fvRsBd tnFvBDName="solarBD1" />
<fvRsDomAtt tDn="uni/vmmp-VMware/dom-mininet" />
<fvRsProv tnVzBrCPName="webCtrct" matchT ="All">
<vzProvSubjLbl name="openProv"/>
<vzProvSubjLbl name="secureProv"/>
<vzProvLbl name="green"/>
</fvRsProv>
</fvAEPg>
EPG は、ポリシー モデルの最も重要な基本オブジェクトです。これは、ポリシーの観点から同じ方法で処理されるエンドポイントの集合を表します。それらのエンドポイントは個別に設定および管理されるのではなく、EPG 内に配置され、集合またはグループとして管理されます。
EPG オブジェクトは、どのようなポリシーが適用されるのか、また他のどの EPG がこの EPG と通信できるかを規定するラベルが定義されている場所です。また、EPG 内のエンドポイントが関連付けられるブリッジ ドメイン、およびそれらが関連付けられる
Virtual Machine Manager(VMM)のドメインへの参照が含まれています。VMM により、2 台の VM サーバ間の仮想マシンのモビリティがアプリケーションのダウンタイムなしで即座に可能になります。
この例の最初の EPG は「web1」という名前です。EPG 内の fvRsBd
要素は、関連付けられるブリッジ ドメインを定義します。ブリッジ ドメインは tnFxBDName
属性の値によって識別されます。この EPG は、前述の「ブリッジ ドメイン」の項で名前を付けられた「solarBD1」というブリッジ ドメインに関連付けられます。ブリッジ ドメインへのバインディングは、デフォルト ゲートウェイ アドレスがこの
EPG のエンドポイントのためにどうあるべきかを理解するためにシステムによって使用されます。エンドポイントが同じサブネットにあるということや、ブリッジングを介してのみ通信できるという意味ではありません。エンドポイントのパケットがブリッジングまたはルーティングされるかどうかは、送信元エンドポイントがパケットをデフォルト
ゲートウェイまたは要求される最後の宛先に送信するかどうかで決定されます。デフォルト ゲートウェイにパケットを送信すると、パケットはルーティングされます。
この EPG で使用される VMM ドメインは fvRsDomAtt
タグによって識別されます。この要素は、他の場所で定義された VMM ドメイン オブジェクトを参照します。VMM ドメイン オブジェクトは、その tDn
name 属性によって識別されます。この例では、「uni/vmmp-VMware/dom-mininet」と呼ばれる VMM ドメイン 1 個のみを示します。
「web1」EPG の次の要素は、この EPG が提供するコントラクトを定義し、fvRsProv
タグによって識別されます。「web1」が複数のコントラクトを提供すると、fvRsProv
要素が複数あります。同様に、それが 1 つ以上のコントラクトを消費すると、fvRsCons
要素があります。
fvRsProv
要素には、提供されているコントラクトの名前である必須属性があります。「web1」は、tDn=“uni/tn-coke/brc-webCtrct”
と呼ばれる以前に定義されたコントラクト「webCtrct」を提供しています。
次の属性は、matchT
属性です。その属性には、それがサブジェクト ラベルのコントラクト内にあったので、プロバイダーまたはコンシューマのラベルと一致するための同じセマンティックがあります(All
、AtLeastOne
または None
の値を取ることができます)。この条件は、対応するコンシューマ ラベルと比較されるときにプロバイダーのラベルに適用されます。ラベルの一致は、コンシューマとプロバイダーがコントラクトで許可された場合に通信できることを意味します。つまり、コントラクトが通信を許可する必要があり、コンシューマとプロバイダーのラベルがプロバイダーで指定された一致基準を使用して一致する必要があります。
コンシューマには、対応する一致基準がありません。使用される一致タイプはプロバイダーによって常に定められます。
プロバイダー要素 fvRsProv
の中で、管理者は使用するラベルを指定する必要があります。2 種類のラベル、プロバイダー ラベルとプロバイダー サブジェクト ラベルがあります。プロバイダー ラベル vzProvLbl
は、前述の matchT
基準を使用する他の EPG 内のコンシューマ ラベルに一致させるために使用されます。プロバイダー サブジェクト ラベル vzProvSubjLbl
は、コントラクトで指定されるサブジェクト ラベルに一致させるために使用されます。ラベルの唯一の属性は name 属性です。
「web1」EPG では、2 つのプロバイダー サブジェクト ラベル openProv
および secureProv
が「webCtrct」コントラクトのサブジェクト「http」および「https」と一致するように指定されます。1 つのプロバイダー ラベル「green」が、「App」EPG 内の同じラベルと一致する All
の一致基準で指定されます。
この例の次の EPG「web2」は「web1」と似ていますが、vzProvSubjLbl
が 1 つだけあり、ラベル自体は異なっています。
3 番目の EPG は「app」と呼ばれるもので、次のように定義されます。
<fvAEPg name="app">
<fvRsBd tnFvBDName="solarBD1" />
<fvRsDomAtt tDn="uni/vmmp-VMware/dom-mininet" />
<fvRsCons tnVzBrCPName="webCtrct">
<vzConsSubjLbl name="openCons"/>
<vzConsSubjLbl name="secureCons"/>
<vzConsLbl name="green"/>
</fvRsCons>
</fvAEPg>
最初の部分は「web1」EPG とほぼ同じです。主な違いは、この EPG は「webCtrct」のコンシューマで、対応するコンシューマ ラベルとコンシューマ サブジェクト ラベルがあることです。構文はほぼ同じですが、タグで「Prov」が「Cons」に置き換えられます。プロバイダーをコンシューマ
ラベルに一致させるための一致タイプがプロバイダーで指定されるため、FvRsCons
要素に一致属性はありません。
最後の EPG では、純粋なコンシューマであるという点において「db」は「app」EPG と非常によく似ています。
この例では、EPG は単一コントラクトのコンシューマまたはプロデューサであり、EPG が即座に複数のコントラクトのプロデューサおよび複数のコントラクトのコンシューマになることが一般的です。