グループベース ポリシーの概要
グループベース ポリシー(GBP)は OpenStack 用の API フレームワークです。基盤となるインフラストラクチャに依存しない方法でアプリケーション要件を説明することを目的としたインテント主導型モデルを提供します。GBP はレイヤ 2 ドメインなどのネットワーク中心の構成要素を提供するのではなく、グループ間の接続、セキュリティ、およびネットワーク サービスを説明するポリシー モデルとともに、汎用の「グループ」プリミティブを導入します。ネットワーク ドメインに重点が置かれている GBP ですが、ネットワーキングを越えた一般的なフレームワークとして機能できます。
GBP は Neutron プロセス空間内のサービス プラグインとして実行されます。
グループベース ポリシーの使用例
グループベース ポリシー(GBP)は、OpenStack クラウドでアプリケーション要件をキャプチャして複雑なアプリケーションを導入するための強力かつシンプルな言語の提供を目的に設計されました。GBP は、アプリケーション要件を理解しているアプリケーション開発者とさまざまなインフラストラクチャ機能を理解しているインフラストラクチャ チーム間の差異を解消します。
GBP は OpenStack に備わっていない次の機能を提供します。
依存関係マッピング | ユーザは GBP によって、階層が異なるアプリケーション間の関係を指定できます。この依存関係マップはアプリケーションのセキュリティ要件ドキュメントとして機能し、異なる階層のアプリケーションの個別の進化を可能にします。依存関係マップにより、インフラストラクチャのスケーリングおよび自動化も非常に簡単に行えます。 |
考慮事項の分離 | GBP は、アプリケーションのセキュリティ要件(通信できる相手など)をネットワーク固有の要件(使用する IP アドレス範囲、ネットワーク境界の位置、仮想 IP アドレスの割り当て方法など)と分離するために設計されました。これにより、アプリケーション チーム、セキュリティ チーム、および運用チームがそれぞれ独立しながら協調的に業務を行えます。 |
グループベース ポリシーのしくみ
グループベース ポリシー(GBP)は、Horizon 拡張機能(openstack-dashboard-gbp)、Heat(openstack-heat-gbp)、cli(openstack-neutron-gbp)などの複数の OpenStack インターフェイスを介してポリシー API を提供します。GBP は Neutron 上のレイヤとして機能するように設計されています。
GBP では、基盤となるインフラストラクチャへのマッピング形式として次の 2 つがサポートされます。
Neutron マッピング ドライバ | Neutron マッピング ドライバは、GBP リソースを既存の Neutron API コールに変換します。これにより、Neutron で既存のオープン ソースやベンダー プラグイン(ML2 など)を実行できます。また、OpenStack 環境で GBP を使用できるようにします。Neutron API または GBP API を使用して OpenStack プロジェクトを定義する必要があります。同じ OpenStack インストールの別のプロジェクトでは、異なる API が使用される可能性があります(例:Neutron または GBP)。 |
ネイティブ ドライバ | ポリシーの構成要素を最初に Neutron API に変換せずに、別の SDN コントローラまたは外部エンティティ経由で直接レンダリングするドライバを作成できます。これにより、コントローラが L2 または L3 の動作に関係なく、より柔軟にポリシーを解釈および適用できるようになるため重要です。現在は、Cisco APIC、VMware NSX ポリシー、および One Convergence NSP を含む 4 つのネイティブ ドライバがあります。 |
グループベース ポリシー モデルの概要
グループベース ポリシー(GBP)は、さまざまな論理グループやアプリケーション層の関係を説明するポリシー モデルを導入します。基盤となるインフラストラクチャ機能からセマンティクスを分離するようにプリミティブが選択されています。リソースは、特定のテナントに対してパブリックの場合もローカルの場合もあります。
主なプリミティブは次のとおりです。
リソース | 説明 |
---|---|
ポリシー ターゲット | 個々のネットワーク エンドポイント(通常は NIC)です。ポリシー ターゲットは、アーキテクチャ内のアドレス指定可能な基本ユニットです。 |
ポリシー グループ | 同じプロパティを持つポリシー ターゲットは、GBP の基本プリミティブであるポリシー グループに編成されます。ポリシー グループによって、ネットワーク セマンティクスを指定しなくても、ブロードキャストと同じ方法でインフラストラクチャに依存せずにグループを構築できます。各グループは、消費するルール セットだけでなくグループに提供するルール セットも宣言することで、依存関係をモデル化します。 |
ポリシー分類子 | プロトコル、ポート範囲、方向(イン、アウト、または双方向)などの、ネットワーク トラフィックのフィルタリング手段です。 |
ポリシー アクション | 特定のルールが適用されるときに実行するアクションです。サポートされているタイプには、「allow」などがあります。 |
ポリシー ルール | アクションとペアリングされた分類子です。 |
ポリシー ルール セット | ポリシー ルール セットには、複数のポリシー ルールが含まれます。ルール セットは親子関係を使ってネストできます。 |
ネットワーク ポリシーの概要
グループベース ポリシー(GBP)の目的は、ネットワーク ポリシーの説明を一元化して、グループやルール セットなどのアプリケーションレベル ポリシーと分けることです。これにより、アプリケーション所有者の考慮事項とクラウド/インフラストラクチャ管理者の考慮事項を分離できます。
リソース | 説明 |
---|---|
レイヤ 2 ポリシー | 同じスイッチング ドメイン内のグループ セットを指定します。レイヤ 2 ポリシーは特定のレイヤ 3 ポリシーを参照する必要があります。 |
レイヤ 3 ポリシー | 多数のレイヤ 2 ポリシーを含む、重複の可能性がある IP アドレス空間を指定します。 |
ネットワーク サービス ポリシー | VIP 割り当てなどのネットワーク サービス チェーンに必要なネットワーク固有パラメータを指定します。 |
共有ポリシーの概要
グループベース ポリシー(GBP)モデル内のリソースは、テナント間でリソースを可視化するように設定できる shared
属性をサポートします。ポリシー リソースを共有して、関連するチームがポリシーを作成して他のユーザがそのポリシーを消費できるようにすると、考慮事項の分離が促進されます。共有リソースにはグローバル可視性があるため、すべてのテナントが共有リソースを表示できます。shared
属性を設定または更新できるのは、管理者ロールを持つユーザのみです。
次の例では、CLI を使用して共有レイヤ 3 ポリシーを作成します。
# gbp l3policy-create --shared True my-shared-l3p
同様に、GUI にはリソースの共有または非共有を有効にするチェックボックスがあります。
リソースを共有するタイミングと方法には特定の制約があります。
-
共有リソースは、他の共有リソースにのみ関連付けることができます。たとえば、共有レイヤ 2 ポリシーが存在できるのは共有レイヤ 3 ポリシー上のみです。
-
現在使用されている共有リソースは共有解除できません。
(注) |
ポリシー ターゲット リソースは、 |
Neutron マッピング ドライバの概要
グループベース ポリシー(GBP)モデルとその実装の最も便利な側面の 1 つは、ポリシーを Neutron API に直接マッピングできるので既存の Neutron プラグインを使用できることです。デフォルト マッピングは次のとおりです。
GBP リソース | Neutron |
---|---|
ポリシー ターゲット | ポート |
ポリシー ターゲット グループ | サブネット |
レイヤ 2 ポリシー | ネットワーク |
レイヤ 3 ポリシー | ルータ |
(注) |
カスタム マッピングを設計して「リソース マッピング」ポリシー ドライバに実装できます。 |