アカウントをお持ちの場合

  •   パーソナライズされたコンテンツ
  •   製品とサポート

アカウントをお持ちでない場合

アカウントを作成

クラウド ネイティブを目指し
シスコが推進する CNF と
ネットワーク サービス メッシュの実現

ネットワーク機能を仮想化して実装する技術として、数年前から導入が進んできた NFV。

しかし NFV では、クラウドのポテンシャルを引き出すことは困難であることがわかってきています。この問題を解決するため、シスコシステムズは”クラウド ネイティブ”に向けた取り組みを推進。従来の VNF から、ネットワーク機能をコンテナとして実装する CNF へのシフトを進めつつあります。

それでは VNF と CNF には、どのような根本的な違いがあるのでしょうか。そしてそれによってもたらされるメリットとは。シスコシステムズでエンジニアリング担当シニア バイス プレジデント、CTO & チーフ アーキテクトを務めるデイヴ・ワード(Dave Ward)に、その具体的な内容を聞きました。

CNF で重要になる CUPS とユーザ スペースでの転送処理

 SDN/NFVは、多分にMarketing Hype的だった時代を経て、本格的な導入が進んでいます。シスコでは、Intent Basedアプローチ、 Model Driven性を取り入れることによりSDNの諸問題を大きく改善しました。しかし、NFV(Network Functions Virtualization)については、十分な効果を得る迄に至っていないのが実情です。ユーザ トラフィックは急速な勢いで増大し続けており、スケーリングやパフォーマンス非最適などの問題に直面したり、開発運用保守のライフサイクルが複雑化するケースも少なくありません。このような問題を根本から解決するためにシスコが取り組んでいるのが、クラウド ネイティブなネットワーク機能の仮想化です。

 「NFV は基本的に、ハードウェアで構成されたアプライアンスをソフトウェアへと“リフト & シフト”することであり、三階層クライアントサーバー型に近いアーキテクチャに基づいていました」とデイヴ・ワード(以下 デイヴ)。そのためサービス プロバイダにとって、サービスの柔軟な変更を可能にすることは難しかったと指摘します。「問題の根本にあるのは、提供可能なサービスの密度が非常に低いということです。またアプライアンスの多くはシングル テナントだという問題もあります。サービス プロバイダがマルチ テナントに対応したサービスを柔軟に、かつスケーラビリティを以て提供するには、さらに大きな変化によって、クラウド ネイティブになる必要があると気づいたのです」。

 これを可能にするテクノロジーの 1 つが CNF です。これは「Cloud-Native Network Functions」の略ですが、その実態は「Containerized Network Functions」というべきものです。

 「クラウド ネイティブへの第1ステップは、マネジメント プレーンをコンテナ化し、Kubernetes などでオーケストレーションする、というアプローチです。しかしこれも先に述べた“リフト & シフト”に過ぎません」。

 十分な密度とスケーリングを可能にするには、仮想マシン上で動いていた VNF もコンテナ化し、CNF にすることが不可欠であり、その際に重視すべきポイントが、大きく 2 点あると指摘します。

 第 1 は、コントロール プレーンとユーザ プレーン(データ プレーン)を分離するCUPS(Control and User Plane Separation)を行うことです。これによってコントロール プレーンとユーザ プレーンを、独立に、水平的にスケーリングできるようになります。またそれらの配置の自由度も向上します。例えばコントロール プレーンをデータセンター内に集約しながら、ユーザ プレーンはよりエッジに近い部分に置く、といったことが可能になるのです。

 「このようなことは以前の NFV では不可能でした。しかしこれが可能になれば、経済性の高いサービスを生み出すために最適な、サービス密度と配置を見出すことが容易になります。このようなことは、5G ネットワークの実現でも重要な要素になるはずです」。

 第 2 は、ネットワーク機能をカーネル内から取り出し、ユーザ スペースで実行できるようにすることです。

 従来のコンテナ化されたアプリケーションは、ホスト OS のサービスとして提供されるネットワーク機能を利用していますが、これではルータやスイッチの状態がカーネルの状態に依存してしまい、十分な性能やスケーラビリティ、高機能の実現が困難です。これに対してユーザ スペースでネットワーク サービスを実行すれば、性能やスケーラビリティの自由度が高まり、機能開発も迅速に行えるようになります。すでにシスコでは以前から、ネットワーク機能の多くをカーネルから取り出すという取り組みを進めてきましたが、これと同じことを CNF でも行っています。

Kubernetes のサービス メッシュをネットワークにも

 しかしこれだけでは十分ではありません。第 3 ステップとしてもう 1 つ行うべきことがあります。それが CNF のオーケストレーションです。

 ここでシスコが着目したのが Kubernetes です。しかしそこには大きな課題が存在していたとデイヴは振り返ります。コンテナ化されたネットワーク サービスを構築するために必要な基本要素が、Kubernetes には存在していなかったのです。

そこでシスコは、ネットワーク サービス メッシュを Kubernetes の基本要素として組み込んでいく、という取り組みを推進。Kubernetes では、 Istio という OSS によって、複雑なアプリケーション サービス メッシュを管理できるようにしています。これと同様のことをL2/L3ペイロードを扱うネットワーク サービスでも実現することが目指されたのです。

 ネットワーク サービス メッシュが実現されれば、VLAN や IP アドレスの自動割当や、水平方向にスケーリングされた複数のデータ プレーン間での自動フォワーディングなど、様々な自動化が可能になります。単にオペレーターによるサービス チェーンのプログラミングを可能にするだけではなく、さらに一歩踏み込んだ「完全自動化」も可能になるでしょう。これによってオペレータは、上位レイヤーにおけるサービス提供に集中できるようになります。

 このためにシスコは、まず、データプレーンの最適化と柔軟なプログラミングを実現するVPP(Vector Packet Processing )技術をfd.ioとしてオープンソース化しました。さらに、サービスのインスタンス化やアドレス割付、サービスチェーンを自動実行する機能を Ligato としてオープンソース化しました。Ligatoは VPPベースのCNFを管理・制御するVPPエージェントを持ち、Kubernetes ポッド内で自動コントローラとして機能します。なお Ligato プロジェクトは、Kubernetes などのクラウドネイティブな OSS 技術の推進を行う団体 CNCF(Cloud Native Computing Foundation)でホストされています。またネットワーク サービス メッシュのオーケストレーションは、前述の Istio によって行われます。

 このようなネットワーク サービス メッシュによって、ネットワークに関する細かい知識がなくとも、ネットワーク サービスを開発できるようになります。またパブリック クラウド上の仮想プライベート クラウドと、オンプレミスのプライベート クラウドとを、シームレスに連携させることも可能です。さらに、ネットワーク サービス展開の自動化だけではなく、セキュリティ ポリシーを統合することも目指されています。

業界のエコシステム全体が一丸となることが不可欠

 これと同様の取り組みは、すでに多くのベンダーが進めつつあります。しかしクラウド ネイティブに関するこれだけ広範なアーキテクチャを持つのは、今のところシスコだけだとデイヴはいいます。しかしその一方で、シスコだけではクラウド ネイティブを軌道に乗せることは不可能なのだとも指摘します。

 「私たちはそのために、主要なテクノロジーをオープンソース化すると共に、OSS コミュニティにおける活動をリードし続けています。また Google との協業によって、オンプレミスとクラウドでアプリケーションをシームレスに実行できる『Cisco Hybrid Cloud Platform for Google Cloud 』も提供しています。このビジョンやアーキテクチャを築き上げていくには、業界のエコシステム全体が一丸となる必要があると考えているからです」。

 多くのライバルとも協業することで、クラウド ネイティブを軌道に乗せていく。これができなければ業界は分断され、クラウド ネイティブへの取り組みも失速してしまうだろうとデイヴは語ります。「私たちは NFV のときのように、CNF が行き詰まる様子を見たくはありません。業界全体が同じ軌道に乗り、それによって取り組みが加速していく。これこそが私たちの願いなのです」。