プラットフォームの特性
RBAC を備えたマルチテナント機能
CSO プラットフォームにはマルチテナントのサポートが組み込まれているため、複数のテナントをシステム上に共存させることができます。マルチテナント機能は 、OpenStack Keystone モデルに基づいています。このモデルでは、データベース内の各オブジェクトは特定のテナントに属し、テナント ID が割り当てられます。管理者が特定のテナントに特定のロールを付与されると、そのテナントに属するすべてのオブジェクトに対して特定の権限が付与されます。
サーバーは、API レベルでマルチテナント RBAC を適用します。CSO APIを呼び出す前に、まずアクセストークンを取得するには、ユーザーがCSOのIDおよびアクセス管理(IAM)マイクロサービスで認証する必要があります。API サーバーは、各 API 呼び出しで、オブジェクトのテナント ID がアクセス トークン内の割り当てられたテナント ID と一致し、割り当てられたロールで REST URI が定義されるようにすることで、マルチテナント RBAC を適用します。
CSO の RBAC はオブジェクトベースです。RBACアプリケーションを簡素化するために、CSOには事前に定義されたユーザーロールがあり、ロールに割り当てられたユーザーに特定のオブジェクトへの読み取り専用または読み書き可能なアクセス権を提供します。管理者は、カスタム ロールを使用して、ユーザーまたはその他の特定のオブジェクトに対する追加のアクセス権限を付与できます。
高可用性と拡張性
上記のように、小規模環境向けのCSOインストールアーキテクチャはHAを提供しません。小規模なセットアップには、中央の VM とリージョン VM ごとに 1 つのインスタンスが含まれます。VMの障害が発生するとCSOは動作不能になりますCSOは、複数のサーバーを使用してロードバランシングを行い、大規模な環境に合わせてスケールアウトすることもできます。これらのサーバーは通常、アクティブ/アクティブ HA モードで動作し、サービスはサーバー間で複製されます。サーバーが失われるとCSOの機能に影響を与えることはありません。
重要な設計原則は、メモリ内の状態がないということです。すべての状態はトランザクションであり、ジョブ・マネージャーを使用してデータベース内で保守されます。CSO により、ノードに障害が発生した場合、ジョブ・マネージャーは不完全なジョブを自動的に検出し、処理のために別のサーバーにプロセスを割り当てます。
データベースサービスやメッセージバスなど、すべてのCSOインフラストラクチャサービスでは、HAとスケール向けのマルチノードクラスタリングをサポートする実績のあるオープンソースソフトウェアを使用しています。これらのインフラストラクチャ サービス クラスターは、大規模導入向けに微調整されています。CSOの一次構成と分析データベースは、Cassandra上に構築されています。Cassandraは、コモディティハードウェアやクラウド環境での拡張性と耐障害性で知られています。
すべてのCSOマイクロサービスはステートレスであり、API呼び出し間の状態は保持されません。アプリケーションの状態はデータベースに保持されます。マイクロサービスは、RESTful API または高可用性メッセージ バスを介してのみ相互に通信します。マイクロサービス RESTful API は、コモディティハードウェアやクラウド環境に対して耐障害性の高いべき等(同じ呼び出しを繰り返し行うと同じ結果が得られる)するように設計されています。CSOマイクロサービスはDockerコンテナとしてパッケージ化され、Kubernetesによってオーケストレーションされます。ステートレスな性質とべき等なAPIにより、各マイクロサービスは直線的かつ独立して拡張できます。Kubernetesにより、各マイクロサービスはCPU使用率に基づいて自動的にスケールアップおよびスケールダウンできます。Kubernetesは、CSOマイクロサービスインスタンスの正常性を監視し、失敗したインスタンスを自動修復することもできます。
CSOプラットフォームは、オンプレミスでも、ハイブリッドまたはパブリッククラウドのインフラストラクチャでも導入できます。パブリッククラウドまたはプライベートクラウドの複数のアベイラビリティゾーンに展開した場合、プラットフォームはセンター間の電力障害やネットワーク障害を生き残ることができます。
プログラマビリティと統合
すべてのCSOマイクロサービスは、RESTful APIを介して機能にアクセスできるようにします。これらの API の一部は、CSO 上で実行されている他のマイクロサービスやアプリケーションによる使用を目的としていますが、そのほとんどはノースバウンド OSS/BSS アプリケーションなどの外部システムによって消費される可能性があります。これにより、プロバイダやエンド カスタマーは、スクリプトやバックエンド システムから API を呼び出すことで、さまざまなタスク、プロセス、ワークフローを自動化できます。すべてのマイクロサービスAPIは、YANGのデータモデル記述から生成され、大まかなレベルで分類できます。
CRUD APIを使用して、システム内のリソースの作成、読み取り、更新、削除を行います。これらは、HTTPを使用してステータスと詳細を返す同期APIです。呼び出し元は、テナント トポロジーの定義、このトポロジーへのサイトの追加または削除、顧客サイトでのデバイスの無タッチ アクティベーションの有効化、トポロジーで定義されたネットワーク接続の設定、オンプレミス デバイスのエンド ユーザー構成の有効化、デバイスとリンクステータスの監視などを実行できます。
RPC(リモート プロシージャ コール)API を使用して、これらのリソースの操作を実行します。これらは通常、完了ステータスを返す非同期APIであり、AMQP(高度なメッセージキューイングプロトコル)通知を使用して結果を返します。呼び出し元は応答メッセージの交換とルーティングキーを指定でき、CSOマイクロサービスは、指定されたルーティングキーを使用して結果通知をその交換に公開します。
また、CSOマイクロサービスは、さまざまなリソース状態変更イベントやアラートなど、AMQPサーバーで作成された特定の文書化された交換にさまざまなメッセージを公開します。外部システムは、これらのメッセージを使用してさまざまなタスクを実行できるため、イベント駆動型の自動化タスクを作成できます。FMPMマイクロサービスで新しいルールを設定することで、特定のアラートを生成し、Kafkaなどの異なるメッセージバスにアラートを投稿することもできます。
CSOによって公開されるAPIは、 表1に示すように分類できます。
カタログ管理 |
ネットワーク サービス記述子と VNF を管理するための API |
VIM/POP 管理 |
VIM および POP データ センターの定義と管理を行う API |
トポロジー管理 |
エンドツーエンドの CPE サービス トポロジー(論理)を挿入および管理する API |
サイト/顧客の作成 |
顧客/サイトのオブジェクトを管理し、サービス トポロジー ノードと関連付ける API。 |
ネットワーク設計 API |
仮想化サービスとサービス チェーンを定義する API |
サイトのアクティブ化 |
vCPE/uCPEデバイスの導入、トポロジー、サービス配置を通知するAPI。 |
ID 管理 |
エンタープライズユーザーとサービスプロバイダユーザーの両方のIDを管理するためのAPI |
ブートストラップ サービス |
設定および管理デバイスアクティベーションサービスのAPI |
サービス配置/インスタンス化 |
カスタマー トポロジーにおけるサービス チェーンの配置と管理に使用する API |
デバイスとサービスの監視 |
デバイス、ネットワークサービス、サービストポロジーのステータスを監視するAPI |
根本原因分析/トラブルシューティング |
イベント、アラーム、ログ用の API トレースおよび相関エンジン |
ゼロタッチとデバイス管理 |
NFX/SRXのアクティブ化、プロビジョニング、管理用API |
画像管理 |
NFX、SRX、EX、EX VC のソフトウェア イメージを管理するための API |
SD-WAN |
リンクプロビジョニング、自動VPN、ディスカバーVPN、分散型ルーティングのAPI |
抽象化されたルーティング |
L2/L3 サービス チェーンを作成するための API |
公開鍵基盤(PKI) |
PKI セキュリティ機能を使用するための API |
APIの詳細なリストについては、 Contrail Service Orchestration APIリファレンスを参照してください。
延伸性とカスタマイズ
CSOは、マイクロサービスを簡単に拡張してカスタマイズできるように設計されています。これらの機能は、3 つの主要な構成要素に分類できます。
Plugin-based architecture: EMS、FMPM、VNFM、Flexなど、さまざまなマイクロサービスは、マイクロサービス自体にコードを変更することなく作成およびインストールできるプラグインを使用して動作を拡張およびカスタマイズできるプラグインベースのアーキテクチャを備えています。これらのマイクロサービスには特定のプラグインセットが付属しており、新しいプラグインを作成してフィールドに追加できます。
Customization of site connectivity topology and activation workflows: すべてのサイトについて、WAN側の接続トポロジーと、アクティベーション中にオンプレミスデバイスに導入された設定は、デバイステンプレートとしてモデル化されます。これらのテンプレートは、フィールドで変更したり新しく作成したりして、各サービス プロバイダの固有の要件に基づいてアクティブ化ワークフローと構成をカスタマイズできます。
テレメトリと分析機能
CSOプラットフォームの重要な機能は、さまざまなデバイス/VNFからテレメトリデータを収集し、それを使用して以下を実行する機能です。
時系列データとして保存し、Northbound ApplicationsとCSO UIからデータをクエリー可能にして、チャートやグラフとして表示できます。
に対応できるマイクロサービスのイベントを作成します。たとえば、デバイスから収集されたSLAメトリックが公開され、リンクSLA違反が分析されるため、関連するアプリケーションが適切なアクションを実行できます。
選択したデータをKafkaとRabitMQを介してノースバウンド・リスニング・アプリケーションにパブリッシュします。
CSOはContrail Analyticsノードを使用して時系列データを保存します。Contrail Analytics は水平方向に拡張可能なコンポーネントで、高可用性のほか、REST API を使用してデータをクエリーする機能も備えています。時系列のデータは、CSO API を介して UI およびノースバウンド アプリケーションに公開されます。
インテントベースのポリシー
CSOのユーザーインターフェイスは、オペレーターが実行する必要がある主な機能の多くを簡素化および自動化することに重点を置いています。この簡素化は、エンタープライズオブジェクトをモデル化し、インテントベースのポリシーを使用して構成することで可能になります。
インテントベースのポリシーにより、オペレーターは部門、サイト、サイトグループ、アプリケーショングループなどの構成を使用してポリシーを設定できます。このポリシーは、一致する構成要素で指定されたパラメーターに一致するすべての関連デバイスに適用されます。オペレーターは、デバイスにポリシーを明示的に設定する必要はありません。
インテントは、以下に説明するように、さまざまなワークフローの一部として表すことができます。
Site Onboardingサイトまたはハブのオンボーディング中に、以下のインテントを指定できます。
デフォルトリンク - テナント管理者はデフォルトのリンクを選択できます。ポリシーを持たないすべてのトラフィックのデフォルトオーバーレイパスとして使用されます
アプリケーション ブレークアウト - サイト管理者は、特定のアプリケーション トラフィックをスポーク サイトからインターネットに直接ルーティングすることを指定できます。
中央ブレークアウト - インターネットを宛先とするトラフィックが、エンタープライズ ハブでインターネットに直接送信できるようにします。
部門ブレークアウト - サイト管理者は、特定のローカル部門からインターネットを宛先とするすべてのトラフィックを、スポーク サイトからインターネットに直接ルーティングすることを指定できます。
ハブブレイクアウト - サイト管理者は、すべてのインターネット宛先トラフィックをプロバイダーハブデバイスからインターネットに直接ルーティングするように指定できます。
サイト グループ - 類似の特性を持つサイトのグループに同じポリシーを導入できます。
サイトローカルインターネットブレークアウト - サイト管理者は、すべてのインターネット宛先トラフィックをスポークサイトからインターネットに直接ルーティングすることを指定できます。
Zscalerブレイクアウト - インターネットに向かう前に、すべてのインターネット宛先トラフィックをZscalerの実装にルーティングすることを許可します。このブレークアウトは、ローカル、一元的、またはプロバイダー ハブで実行できます。
メモ:上記のインテントはサイトのオンボーディングプロセスで指定できますが、ZTP後まで適用されません。
SD-WAN Intent Policy Creation– ステアリングプロファイルとブレイクアウトプロファイルは、SD-WANポリシーで使用するために作成できます。
2 種類のプロファイルがサポートされています。
パスベースステアリングプロファイル – オペレータがトラフィックの優先パスを明示的に指定します。このプロファイルを使用してSD-WANポリシーに一致するトラフィックは、優先パスを取得します。
ブレークアウト プロファイル - オペレータは、ブレークアウト タイプとしてアンダーレイ ネットワークを使用したローカル ブレークアウト、ブレークアウト トラフィックにハブ サイトを使用するバックホール、Zscaler などのクラウドベース プラットフォームを使用したローカル ブレークアウトのいずれかを指定します。オペレーターは、ブレークアウト トラフィックのトラフィック タイプ プロファイルと優先パスも指定します。優先パスに一致する WAN リンク タイプが CPE で使用可能でブレークアウトに有効になっている場合、トラフィックはそのリンクをブレークアウト トラフィックに使用します。 任意の パスが優先パスとして選択された場合、CSOは負荷分散の方法でブレークアウトのために有効になっているすべての利用可能なリンクを使用します。
SD-WAN ポリシーは、以下の要素を指定することで作成できます。
送信元エンドポイント - サイト グループ、部門
宛先エンドポイント - アプリケーション/アプリケーション グループ
アクション - ステアリング プロファイルまたはブレークアウト プロファイル
オペレータは、利用可能なドロップダウン メニューからこれらのハイレベルな要素を選択し、ポリシーを展開するだけで済みます。CSOは、これらのインテントを関連するネットワークデバイスにプッシュされる設定に変換する処理を行います。
Security Intent-Based Policies
ファイアウォール ポリシーを作成するには、エンドポイントの場所と接続情報を指定する必要はありません。代わりに、CSOは既存のトポロジー情報を使用して、関連するエンドポイントの接続方法を決定し、適切なポリシー適用ポイントに展開する適切なセキュリティポリシーを作成します。
ファイアウォールポリシーのインテントは、送信元および宛先の識別子として以下の要素を使用して定義できます。
サイト
部門(SRX セキュリティ ゾーン:CSO バージョン 4.1 以降、最大 25 部門をサポート)
アプリケーション(L7:署名ベース)
サービス(プロトコルベース)
ホスト、ネットワーク、IP 範囲などを表すアドレス オブジェクト。
ファイアウォールインテントは順序が区別されません。つまり、オペレーターはインテントを適切な順序で配置する必要はありません。CSOは、すべてのファイアウォールインテントを分析し、セキュリティポリシーステートメントに正しい順序で変換します。
アップグレードと下位互換性
CSOは、インフラストラクチャサービスやマイクロサービスアップグレード、データ移行、デバイス接続、設定など、以前のバージョンからのシームレスなアップグレードをサポートします。
アップグレード手順は「オフライン」アクティビティです。アップグレード進行中にすべてのマイクロサービスがシャットダウンされます。しかし、ネットワークデバイス(CPE、ハブなど)やSD-WAN環境全体は正常に機能し続けています。
CSOデータモデルとAPIは、下位互換性を維持するため、以前のバージョンで作成されたすべてのCSOマイクロサービスサポート(読み取り/書き込み)データの最新バージョンがサポートされます。移行スクリプト/追加のワークフローは、アップグレード プロセスの一環として実行することもできます。
要素管理
CSOには、拡張性に優れたマルチベンダー要素管理機能を提供する一連のマイクロサービスが含まれています。これらの機能は、ソリューション全体を構成する物理および仮想ネットワーク デバイスの管理、オーケストレーション、制御によって SD-WAN サービスを提供するために使用されます。
これらのデバイスは一般的に、CSO管理下に2つの方法で導入できます。
デバイスが既にプロビジョニングされている場合は、CSOによって検出され、デバイスの管理IPアドレスと管理者アカウント認証情報を提供することで、その管理下に持ち込むことができます。通常、このオプションを使用して、サービス プロバイダ POP 内のプロバイダ ハブ デバイスを検出します。
自動的にオンラインにしてプロビジョニングする必要があるデバイスの場合、CSOはゼロタッチメカニズムを採用してデバイスを管理下に持ち込みます。各サイトで予想されるデバイスのシリアル番号を指定することで、CSOは各デバイスに対応するデバイスオブジェクトをデータベースに作成し、配信する必要のあるイメージと設定を準備します。デバイスがサイトに到着し、ラックアップして電源をオンにすると、ジュニパーのリダイレクトサービス(https://redirect.juniper.net)にアクセスして、地域のCSOインスタンスに到達する方法を学習します。CSOサーバーに接続すると、デバイスは割り当てられたソフトウェアイメージと初期設定を受け取ります。起動して実行すると、CSOは、必要なVMの起動、オーバーレイトンネルのプロビジョニング、テレメトリエージェントのインストールなど、デバイス上でさらにアクションを実行します。
CSOは、SSH経由のNETCONFまたはCLIセッションを使用してネットワークデバイスと通信するため、すべての管理通信で安全な暗号化チャネルが使用されます。CSOは、パスワードベースの認証と、デバイスへのSSHキーベース認証の両方をサポートしています。
図 1は、CSO の要素管理機能を提供するために連携するさまざまなマイクロサービスと、それらのマイクロサービスを中央および地域のサーバーに分散する方法を示しています。

マイクロサービス |
説明 |
---|---|
アクティベーションサービス |
draft-ietf-netconf-zerotouch を使用して、CPE デバイスの安全なゼロタッチ アクティベーションをサポートします。 |
デバイス管理サービス |
デバイスのライフサイクルを管理します。デバイスには、VNF、PNF、CPE、PE、IPsecコンセントレータなどが含まれます。 |
設定管理サービス |
設定オブジェクトのライフサイクル(バージョン管理やデバイスへの導入を含む)を管理します。 |
画像管理サービス |
デバイスイメージやその他のソフトウェアパッケージのリポジトリを維持し、デバイスへの展開とインストールを管理します。 |
インベントリ サービス |
デバイス上の物理的および論理的なインベントリ リソースの検出と管理を行います。 |
テンプレートサービス |
システムにオンボードされたすべてのテンプレートを管理し、プラグインを介して異なるテンプレートエンジンを使用してレンダリングするためのAPIを提供します。テンプレートを使用して、設定コマンドや運用コマンドを生成できます。 |
FMPMプロバイダサービス |
FM および PM のすべてのデータを管理し、データの収集と照会用の API を提供する集中サービス。 |
FMPM コレクター サービス |
管理対象から FM および PM データを収集する分散サービス。 |
設定サービス |
管理対象デバイスでコマンドを実行するAPIを提供し、すべてのマイクロサービスと管理対象デバイス間のゲートウェイとして機能します。は、NETCONF/SSH、CLI/SSH、REST/HTTPなど、複数の管理プロトコルをサポートするプラグインベースのアーキテクチャを備えています。 |
デバイス接続サービス |
CSOと管理対象デバイス間のトランスポート接続確立と認証を行います。 |
CSO Behind NAT
CSOはNATゲートウェイの背後にインストールできます。管理対象デバイスを使用すると、一般に公開された IP アドレスを介して CSO にアクセスできます。このオプションは、CSOの最初のインストール時に指定されるため、設定が完了したらNATルールの手動設定を追加する必要があります。
CSO in the Cloud
CSO はサービス プロバイダのネットワーク内にインストールされることが多いのに対し、設計要件に応じてクラウドにインストールすることもできます。
CSO in Public Cloud
図 2 は、AWS VPC 内に CSO があり、プライベート接続からアクセスできる様子を示しています。これは、クラウドホスト型CSO導入と呼ばれます。CSOaaSは、このモデルに基づいています。

実装特性:
CSOのインストールでは、プライベートIPアドレスを使用します。
NATゲートウェイは、CSOのパブリックに面したIPアドレスを提供します。
CSOとハブデバイス間の接続には、MPLSネットワークまたはAWS Direct Connectなどのプライベートインターネット接続が使用されます。
ハブ デバイスは、OAM にパブリック IP アドレスを使用する必要があります。
ハブデバイスのIPアドレスはCSOから直接到達できる必要があります。
スポークデバイスは、NATゲートウェイのパブリックIPアドレスを使用してCSOへの接続を開始します。
CSO on Internet
図 3 は、CSO がプライベート クラウドなど、他のインターネット上の場所にあり、インターネットから直接アクセスできる環境を示しています。

実装特性:
CSOのインストールでは、プライベートIPアドレスを使用します。
NATゲートウェイは、CSOのパブリックに面したIPアドレスを提供します。
CSOとハブデバイス間の接続は、パブリックインターネットを使用します。
ハブ デバイスは、OAM にパブリック IP アドレスを使用する必要があります。
ハブデバイスのIPアドレスはCSOから直接到達できる必要があります。
スポークデバイスは、NATゲートウェイのパブリックIPアドレスを使用してCSOへの接続を開始します。
CSOユーザーインターフェイス
CSOソフトウェアは、テナント、サイト、デバイス、ネットワークトポロジー、セキュリティ、SD-WANポリシーの作成、構成、監視を行う単一のWebベースのUIを提供します。ダッシュボードのスクリーンショットの例を 図 4 に示します。

Web UI Architecture
CSO Web UI は、軽量のフレームワークを使用して、一元的なユーザー インターフェイスを分離された方法で構築します。UI では、独自に開発および導入されたプラグインからワークフローを動的に作成できるため、既存の機能に影響を与えることなく、UI を顧客環境で動的に拡張できます。
UI アーキテクチャは、監視ウィジェットをホストする単一の統合ダッシュボードをサポートします。ウィジェットのサムネイル ビューはフレームワークによって提供され、オペレータはウィジェットをドラッグ アンド ドロップして、カスタマイズされた監視ビューを構成できます。UI には、「プリファレンス」API が含まれており、グリッド インスタンスの列の優先並べ替え順序や表示されるサブセットなど、UI 関連のユーザー設定の読み取りと書き込みに使用できます。これらのプリファレンスは、ユーザーセッション間で保持されます。
Personas
Web UIには主に2つのペルソナがあります。
Service Provider admin—すべての運営会社、テナント、顧客へのグローバルアクセス。管理ポータルからCSOにアクセス
Tenant admin—顧客固有のアクセス。カスタマーポータルからCSOにアクセス
Operating Companies (OpCos)
CSO リリース 4.0 以降は、サービス プロバイダ環境の運用会社(OpCo)をサポートします。
グローバルサービスプロバイダが地域ベース(規制、請求、運用上の理由で)顧客を管理する必要がある場合、OpCo構築により、サービスプロバイダはCSOプラットフォームを拡張して、各地域団体が独自のテナントや顧客にSD-WANサービスを個別に提供できるようになります。
OpCoをサポートする場合、CSOマルチテナント階層には3つのレベルがあります。
Global service provider1 つ以上の運用会社とそのテナントを含み、サービス プロバイダ レベルでリソースを管理し、共通のリソースを運用会社やテナントと共有します。
メモ:CSOaaS では、グローバル サービス プロバイダのロール/階層へのユーザー アクセスはありません。
Operating company—テナントを管理してサービスを提供できる地域固有のサービスプロバイダ。1つのOpCoで管理されるテナントは、別のOpCoのテナントから分離されています。
Tenant—グローバルサービスプロバイダまたはOpCoが提供するリソースを使用します。
図 5 は、グローバル サービス プロバイダ、運営会社、テナントの関係を示しています。

CSOポータル、ユーザータイプ、ペルソナの詳細については、 リリース5.0の CSO管理ポータルユーザーガイド および CSOカスタマーポータルユーザーガイド を参照してください。