JP2019533340A - 分散顧客構内機器 - Google Patents

分散顧客構内機器 Download PDF

Info

Publication number
JP2019533340A
JP2019533340A JP2019513292A JP2019513292A JP2019533340A JP 2019533340 A JP2019533340 A JP 2019533340A JP 2019513292 A JP2019513292 A JP 2019513292A JP 2019513292 A JP2019513292 A JP 2019513292A JP 2019533340 A JP2019533340 A JP 2019533340A
Authority
JP
Japan
Prior art keywords
network
plane subsystem
data
control
control plane
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2019513292A
Other languages
English (en)
Other versions
JP7113006B2 (ja
Inventor
ベイズ,ロバート
ナラヤン,シュリーニバス
Original Assignee
エイ・ティ・アンド・ティ インテレクチュアル プロパティ アイ,エル.ピー.
エイ・ティ・アンド・ティ インテレクチュアル プロパティ アイ,エル.ピー.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US15/338,082 external-priority patent/US10257089B2/en
Application filed by エイ・ティ・アンド・ティ インテレクチュアル プロパティ アイ,エル.ピー., エイ・ティ・アンド・ティ インテレクチュアル プロパティ アイ,エル.ピー. filed Critical エイ・ティ・アンド・ティ インテレクチュアル プロパティ アイ,エル.ピー.
Publication of JP2019533340A publication Critical patent/JP2019533340A/ja
Application granted granted Critical
Publication of JP7113006B2 publication Critical patent/JP7113006B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/44Distributed routing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/42Centralised routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/645Splitting route computation layer and forwarding layer, e.g. routing according to path computational element [PCE] or based on OpenFlow functionality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/58Association of routers
    • H04L45/586Association of routers of virtual routers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/76Routing in software-defined topologies, e.g. routing between virtual machines

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

いくつかのデバイスを備える分散顧客構内機器(CPE)を提供するための技法が開示される。分散CPEは、第1のデバイス上で実行されるように構成された制御プレーン・サブシステムと、第2のデバイス上で実行されるように構成された第1のデータプレーン・サブシステムと、第3のデバイス上で実行されるように構成された第2のデータプレーン・サブシステムとを含むことができる。第2のデバイスは、第1のネットワーク機能を実行することができる第1の仮想マシンを実行するようにさらに構成され得る。第3のデバイスは、第2のネットワーク機能を実行することができる第2の仮想マシンを実行するようにさらに構成され得る。特定の実施形態では、制御プレーン・サブシステムは、第1のデータプレーン・サブシステムおよび第2のデータプレーン・サブシステムの転送機能性を制御し、第1のネットワーク機能および第2のネットワーク機能を制御するように構成され得る。特定の実施形態では、第1のデバイスおよび第2のデバイスは、顧客構内機器(CPE)デバイスである。

Description

関連出願の相互参照
本特許出願は、「DISTRIBUTED CUSTOMER PREMISE EQUIPMENT」という名称の2016年9月9日に出願された米国仮特許出願第62/385,352号、および「DISTRIBUTED CUSTOMER PREMISE EQUIPMENT」という名称の2016年10月28日に出願された米国非仮特許出願第15/388,082号の優先権を主張するものである。米国仮特許出願第62/385,352号および米国非仮特許出願第15/388,082号の内容は、あらゆる目的でそれらの全体が参照により本明細書に組み込まれる。
本開示は、一般に、データのルーティングおよび転送に関し、より詳細には、顧客構内機器(customer premises equipment:CPE)の制御、構成および管理を集中化および改善するための技法に関する。
従来、CPEは、顧客に対する特定のネットワークベースのサービスを容易にするためのハードウェアベースの解決策を提供するデバイスである。CPEは、加入者の構内に配置された任意の端末/デバイスおよび関連機器であり得る。いくつかの例では、CPEは、ネットワーク・オペレータまたはキャリアの通信チャネルと接続される。いくつかの例では、CPEは、ネットワーク・オペレータのサービスを顧客に提供するためのネットワーク・オペレータの分界点(「デマーク(demarc)」)を提供する。言い換えれば、CPEは、ネットワーク・オペレータの顧客構内に存在する拡張部分として機能し、ネットワーク・オペレータによって顧客に提供されるサービスを促進する。デマークは、ネットワーク・オペレータの配線インフラストラクチャまたは中央局のいずれかに配置された機器から顧客機器を分離するために建物、複合施設、またはシステムに確立されたポイントである。
CPEは、一般に、電話、ルータ、スイッチ、レジデンシャル・ゲートウェイ(RG)、セットトップ・ボックス、固定モバイル・コンバージェンス製品、ホーム・ネットワーク・アダプタ、インターネット・アクセス・ゲートウェイなどのデバイスであって、LAN(ローカル・エリア・ネットワーク)、デジタル加入者線(DSL)もしくは他のブロードバンド・インターネット・ルータ、ボイス・オーバ・インターネット・プロトコル(VoIP)基地局、または特定のサービス・プロバイダによって使用される他のシステムを介して、通信サービス・プロバイダのサービスに顧客がアクセスすることを可能にし、サービスを顧客の家または構内の周辺へ配信するデバイスを指すことができる。また、主要な電話システムおよびほとんどの構内交換機(PBX)も含まれる。
一般に、CPEが顧客の構内に物理的にいったん配置されると、CPEに対する何らかの変更により技術者が顧客を訪問することになり、よりコストおよび不都合が生じる結果となる。さらに、特定の機能性もしくはサービスがCPEによってサポートされていない場合、またはCPEのアップグレードが必要な場合、通常はCPEを交換する必要があり、顧客またはネットワーク・オペレータに追加のコストをもたらすことになる。さらに、CPEは、単一機能デバイスであり、顧客は、同じCPEを使用して複数のサービスおよび機能性を有効にして使用できないことがある。
本明細書を通してCPEについて論じられるが、いくつかの実施形態では、CPEの代わりにルータを使用して、本明細書に論じられるいくつかの実施形態を実施することもできる。さらに、いくつかの例では、CPEそれ自体が、ネットワーク・データ・パケットの転送などのルータの機能を実行してよい。ルータは、ネットワーク間でデータ(たとえば、ネットワーク・データ・パケット)を転送して、データのそのソースからその意図した宛先への送達を促進するように構成された特殊なネットワーク・デバイスである。ルータは、インターネットワーク・トポロジを通じて最適なルートまたはデータ経路を決定し、これらの最適経路を使用してネットワーク・データ・パケットを移送するように構成されている。また、ルータは、ファイアウォールやサービス品質(QoS)など他の様々なサービスも提供する。
従来のルータは、典型的には、ネットワーク・パケットをルーティングし、制御プレーン・サブシステム(control plane subsystem)および1つまたは複数のデータプレーン・サブシステム(data plane subsystem)を備え、それらは全て、単一のボックスまたはシャーシ内に収容されている。ネットワーク・パケットは、ネットワーク制御パケットおよびネットワーク・データ・パケットを含むことができる。ネットワーク制御パケットは一般に、ネットワークそれ自体の作成および動作に使用される、ルータ(たとえば、制御プレーン・サーバ・コンピュータ(control plane server computer))で生成または受信されたパケットを指すことがある。一例では、ネットワーク制御パケットは、データプレーン・サブシステムを更新および/または構成することができる。ネットワーク・データ・パケットは一般に、中間ネットワーク・デバイスによって他のエンド・デバイスに転送される、エンド・デバイス・ユーザ・アプリケーションで生成されたパケットを指すことができる。
データプレーンは、従来のシステムではラインカード(linecard)として実装されることがあり、データプレーンの1つまたは複数のポートを介してネットワーク・データ・パケットを受信および転送するように構成されている。転送は、データプレーンによって記憶された情報を転送することに基づいて行われる。データプレーンがネットワーク・データ・パケットを転送するために使用する転送情報は、典型的には、ルータの制御プレーン・サブシステムによってプログラムされ、制御プレーン・サブシステムは、1つまたは複数の管理カードを備え得る。制御プレーン・サブシステムは、ルータによって実行されるネットワーキング関連機能を制御するように構成され、そうした機能は、たとえば、ルーティング情報(たとえばルーティング情報テーブル)を維持すること、ルーティング情報に基づいて情報を転送するデータ転送プレーンをプログラムすること、様々なネットワーキング制御プロトコルを取り扱うこと、制御プレーンで終端するパケット(たとえば、制御および/またはデータ・パケット)の処理を取り扱うこと、処理アクセス制御リスト(ACL)、サービス品質(QoS)、管理機能を処理することなどを含む。
先に示したように、従来のルータでは、ルータの制御プレーン・サブシステム、および制御プレーン・サブシステムによって制御されるデータプレーンは、ルータの同じ物理的ネットワーク・デバイス・ボックスまたはシャーシ内に物理的に全て一緒に配置される。結果として、ルータの制御プレーン・サブシステムおよびデータプレーン・サブシステムの間に静的な関係がある。このことにより、そのようなルータを何万個も含み得る大きなネットワーク(たとえばインターネット)内のそのようなルータのプログラミングは、複雑で柔軟性に欠けるものとなる。そのようなネットワークに対して変更(たとえば、データ経路の追加または再構成、ネットワーク・デバイスの追加または削除)が必要なとき、変更に影響される各個別のルータ・ボックスは、個別にプログラムまたは再プログラムされなければならない。このようなルータ単位中心の管理要件は、そのようなネットワークの管理を非常に複雑かつ時間のかかるものとする。結果として、従来のルータを使用するネットワークは、現在(および将来)のネットワーク・アプリケーション、たとえば、クラウド・コンピューティング、モバイル・コンピューティング、リアルタイムおよびオンデマンドのビデオ・トラフィックなどで望まれる柔軟性および動的設定可能性に欠けることになる。
したがって、従来のCPE、特にルーティング能力を実装するCPEのネットワークを維持することは、費用がかかり、複雑であり、柔軟性に欠け、アップグレードおよび管理が困難である。
本開示は、一般に、データのルーティングおよび転送に関し、より詳細には、顧客構内機器(CPE)の制御、構成および管理を集中化および改善するための技法に関する。
特定の実施形態において、新規の分散CPEが提供される。特定の実施形態によれば、分散CPEは、集中制御プレーン・サーバ・コンピュータと、ソフトウェア・データプレーン・サブシステムをネイティブに(すなわち仮想化なしに)実行するいくつかのCPEとを含む。制御プレーン・サブシステムを実行する制御プレーン・サーバ・コンピュータが、CPEを制御する。各CPEは、仮想マシンをホストし、それぞれの仮想マシンにおいて仮想ネットワーク機能(VNF)を実行する能力も有してよい。
特定の実施形態では、ソフトウェア・データプレーン・サブシステムに対するオーバーレイ・ネットワークと共に集中制御プレーン・サブシステムを有することにより、単一の大きなルータに似るビューがオペレータに提供される。また、制御プレーン・サブシステムとデータプレーン・サブシステムの分離により、パケット転送のためにCPEにおけるハードウェア・リソースのフィールド利用を最大化し、より処理集約的であるがレイテンシに敏感でない(または比較的敏感でない)タスクであり得る制御プレーン・タスクを、リモートの集中制御プレーン・サブシステムへ押し出す。さらに、このCPE設計は、ソフトウェア・データプレーン・サブシステムによるネイティブ・パケット処理を可能にすると共に、CPEが仮想ネットワーク機能を使用して特定のネットワーク機能をアップグレードおよび/または増強することを可能にする。したがって、開示されている技法は、ネットワークの管理の改善を可能にする。
例示的な分散顧客構内機器(CPE)は、第1の位置に配置された制御プレーン・サーバ・コンピュータと、第2の位置に配置された、複数のデバイスのうちの第1のデバイスと、第3の位置に配置された、複数のデバイスのうちの第2のデバイスとを含むことができる。複数のデバイスは、顧客構内機器(CPE)デバイスであってよい。特定の実施形態では、第1の位置はデータセンタであり、第2の位置および第3の位置は顧客構内である。特定の実施形態では、第1の位置における制御プレーン・サーバ・コンピュータと第2の位置における第1のデバイスとは、ネットワーク・チャネルを使用して接続され得る。特定の実施形態では、制御プレーン・サーバ・コンピュータと第1のデバイスとの間の距離は、閾値上回るものとしてよい。
制御プレーン・サーバは、1つまたは複数のプロセッサ、および1つまたは複数のプロセッサによって実行可能な命令を記憶するメモリを備えることができ、命令は、実行されたとき、制御プレーン・サーバ・コンピュータに、複数のデバイス上の動作を制御するために1つまたは複数のネットワーク・インターフェースを使用してネットワーク制御パケットを送信する制御プレーン・サブシステムを実行させる。
第1のデバイスは、1つまたは複数のプロセッサ、および1つまたは複数のプロセッサによって実行可能な命令を記憶するメモリを備えることができ、命令は、実行されたとき、第1のデバイスに、ネットワーク・データ・パケットを転送するように構成された第1のデータプレーン・サブシステムを実行することであって、ネットワーク・データ・パケットの転送は、制御プレーン・サーバ・コンピュータから受信されたネットワーク制御パケットのうちの1つに少なくとも基づく、実行すること、および第1のネットワーク機能を実行することができる第1の仮想マシンをインスタンス化することを行わせる。特定の実施形態では、第1のデバイスは、第1の仮想マシンをインスタンス化するために、データプレーン・サブシステムおよびハイパーバイザ(hypervisor)を備える、メモリに記憶されたホスト・ソフトウェア・スタックを備える。第1のネットワーク機能は、仮想ネットワーク機能(VNF)であってよい。特定の実施形態では、第1のネットワーク機能は、ネットワーク・ファイアウォール、ネットワーク・レベル2転送(network level 2 forwarding)、ネットワーク・レベル3転送(network level 3 forwarding)、仮想プライベート・ネットワーク(VPN)、アクセス制御リスト(ACL)、または構内交換機(PBX)である。
特定の実施形態では、第1のデバイスは、制御プレーン・サーバ・コンピュータの制御プレーン・サブシステムから1つまたは複数のネットワーク制御パケットを受信し、第1のデバイスにおいて第3の仮想マシンをインスタンス化し、1つまたは複数のネットワーク制御パケットの受信に基づいて、第1のデバイスにおいて第3の仮想マシンの内部で実行される第3のネットワーク機能をインスタンス化するように構成され得る。
特定の実施形態では、第1の仮想マシンは、制御プレーン・サーバ・コンピュータからのネットワーク制御パケットのうちの1つの受信に少なくとも基づいて、第1のデバイスによってインスタンス化される。特定の実施形態では、第1のネットワーク機能は、制御プレーン・サーバ・コンピュータからのネットワーク制御パケットのうちの少なくとも1つのネットワーク制御パケットの受信に少なくとも基づいて構成される。
第2のデバイスは、1つまたは複数のプロセッサ、および1つまたは複数のプロセッサによって実行可能な命令を記憶するメモリを備えることができ、命令は、実行されたとき、第2のデバイスに、ネットワーク・データ・パケットを転送するように構成された第2のデータプレーン・サブシステムを実行することであって、ネットワーク・データ・パケットの転送は、制御プレーン・サーバ・コンピュータから受信されたネットワーク制御パケットのうちの1つに少なくとも基づく、実行すること、および第2のネットワーク機能を実行することができる第2の仮想マシンをインスタンス化することを行わせる。
別の例示的な分散顧客構内機器は、第1のデバイス上で実行されるように構成された制御プレーン・サブシステムと、第2のデバイス上で実行されるように構成された第1のデータプレーン・サブシステムであって、第2のデバイスはさらに、第1のネットワーク機能を実行することができる第1の仮想マシンを実行するように構成される、第1のデータプレーン・サブシステムと、第3のデバイス上で実行されるように構成された第2のデータプレーン・サブシステムであって、第3のデバイスはさらに、第2のネットワーク機能を実行することができる第2の仮想マシンを実行するように構成される、第2のデータプレーン・サブシステムとを備えることができ、制御プレーン・サブシステムは、第1のデータプレーン・サブシステムおよび第2のデータプレーン・サブシステムの転送機能性を制御し、第1のネットワーク機能および第2のネットワーク機能を制御するように構成される。
特定の実施形態では、第1のデバイスおよび第2のデバイスは、顧客構内機器(CPE)デバイスであってよい。特定の実施形態では、第1のネットワーク機能は仮想ネットワーク機能(VNF)であってよい。特定の実施形態では、第1のネットワーク機能は、ネットワーク・ファイアウォール、ネットワーク・レベル2転送、ネットワーク・レベル3転送、仮想プライベート・ネットワーク(VPN)、アクセス制御リスト(ACL)、または構内交換機(PBX)のうちの1つまたは複数を含むことができる。
特定の実施形態では、第1のデバイスは、制御プレーン・サーバ・コンピュータから1つまたは複数のネットワーク制御パケットを受信し、1つまたは複数のネットワーク制御パケットの受信に基づいて、第1のデバイスにおいて第3の仮想マシンをインスタンス化し、1つまたは複数のネットワーク制御パケットの受信に基づいて、第1のデバイスにおいて第3の仮想マシンの内部で実行される第3のネットワーク機能をインスタンス化するように構成される。
特定の実施形態では 第1のデバイスから、第2のデバイス上で実行されるように構成されたデータプレーン・サブシステムの転送機能性を制御し、第1のデバイスから、第2のデバイス上の仮想マシンのインスタンス化を制御し、第1のデバイスから、仮想マシンにおけるネットワーク機能の実行を制御するための例示的な方法が開示される。上記方法は、第1のデバイスから、転送機能性、仮想マシンのインスタンス化、およびネットワーク機能の実行を制御するために制御プレーン・サブシステムを実行することを含むことができる。上記方法は、第1のデバイスから、第3のデバイス上で実行されるように構成された第2のデータプレーン・サブシステムの転送機能性を制御することと、第1のデバイスから、第2のデバイス上の第2の仮想マシンのインスタンス化を制御することと、第1のデバイスから、第2の仮想マシンにおける第2のネットワーク機能の実行を制御することとをさらに含むことができる。
特定の実施形態では、ネットワーク・データ・パケットを転送するための例示的な方法は、第1のデバイスにおいて、第1のデバイスについてのネットワーク・データ・パケットの転送機能性を変更するための、サーバからのネットワーク制御パケットを受信することと、第1のデバイス上でホスト・ソフトウェア・スタック内で実行されているデータプレーン・サブシステムにおいて第1のデバイスの転送機能性を変更することと、第1のデバイスにおいて、第1のネットワーク・データ・パケットを受信することと、データプレーン・サブシステムを使用して第1のネットワーク・データ・パケットを転送することと、第1のデバイスにおいて、第2のネットワーク・データ・パケットを受信することと、第1のデバイスにおいて仮想マシン内で実行されるネットワーク機能を使用して第2のネットワーク・データ・パケットを処理することであって、ホスト・ソフトウェア・スタックにおけるハイパーバイザが、仮想マシンをインスタンス化する、処理することとを含むことができる。第1のデバイスは、顧客構内機器(CPE)であってよい。
本発明の実施形態による分散顧客構内機器を示す簡略ブロック図である。 本発明の特定の実施形態による、ソフトウェア・データプレーン・サブシステムを備える物理デバイスを示す例示的なブロック図である。 本発明の特定の実施形態による、ソフトウェア制御プレーン・サブシステムを備える物理デバイスを示す例示的なブロック図である。 本開示の1つまたは複数の例示的態様による、本発明の実施形態を実施するための方法を示すフロー図である。 本開示の1つまたは複数の例示的態様による、本発明の実施形態を実施するための方法を示す別のフロー図である。 本開示の1つまたは複数の例示的態様による、分散ルータの様々なコンポーネントを実行するために使用され得るコンピューティング・システムまたはデバイスの簡略ブロック図である。
以下の説明では、説明の目的で本発明の実施形態の完全な理解を与えるために具体的詳細が述べられている。しかしながら、これらの具体的詳細なしに様々な実施形態が実施され得ることは明らかであろう。図および説明は限定を意図するものではない。「例示的」という語は、本明細書では「例、実例、または例示の役目をすること」を意味するために使用される。本明細書において「例示的」として説明される実施形態または設計は、必ずしも他の実施形態または設計よりも好ましいまたは有利であると解釈されるべきではない。
特定の実施形態では、新規の分散CPEが提供される。特定の実施形態によれば、分散CPEは、集中制御プレーン・サーバ・コンピュータと、ソフトウェア・データプレーン・サブシステムをネイティブに(すなわち仮想化なしに)実行するいくつかのCPEとを含む。制御プレーン・サブシステムを実行する制御プレーン・サーバ・コンピュータが、CPEを制御する。各CPEは、仮想マシンをホストし、それぞれの仮想マシンにおいて仮想ネットワーク機能(VNF)を実行する能力も有してよい。
特定の実施形態では、ソフトウェア・データプレーン・サブシステムに対するオーバーレイ・ネットワークと共に集中制御プレーン・サブシステムを有することにより、単一の大きなルータに似るビューがオペレータに提供される。また、制御プレーン・サブシステムとデータプレーン・サブシステムの分離により、パケット転送のためにCPEにおけるハードウェア・リソースのフィールド利用を最大化し、より処理集約的であるがレイテンシに敏感でない(または比較的敏感でない)タスクであり得る制御プレーン・タスクを、リモートの集中制御プレーン・サブシステムへ押し出す。さらに、このCPE設計は、ソフトウェア・データプレーン・サブシステムによるネイティブ・パケット処理を可能にすると共に、CPEが仮想ネットワーク機能を使用して特定のネットワーク機能をアップグレードおよび/または増強することを可能にする。したがって、開示されている技法は、ネットワークの管理の改善を可能にする。
図1は、本発明の実施形態による分散顧客構内機器(CPE)100を示す簡略ブロック図である。図1に示す実施形態は、単に例であり、本発明の請求される実施形態を不当に限定するように意図されていない。当業者であれば、多くの変形形態、代替形態、および修正形態を認識するであろう。たとえば、他のいくつかの実施形態では、分散CPE100は、図1に示されるよりも多いまたは少ないコンポーネントを有してもよく、2つ以上のコンポーネントを組み合わせてもよく、またはコンポーネントの異なる構成または配置を有してもよい。たとえば、分散CPE100は、ソフトウェア・データプレーン・サブシステムを実行する物理デバイスを図1に開示されているよりも多く有してよく、各物理デバイスは、仮想ネットワーク機能を実行するために1つまたは複数の仮想マシンを実行する。
図1に示す分散CPE100は、複数のデバイス(たとえば、102、104および106)を含み、各デバイスは、制御プレーン・レイヤ、または1つもしくは複数のデータプレーン・サブシステムを備えるデータプレーン・レイヤを含む。図1を参照して開示される物理デバイスは、図6に開示される1つまたは複数のコンポーネントを使用して実装され得る。分散CPE100は、(OSIモデルの)レイヤ2およびレイヤ3のルーティング機能性を提供するように構成される。分散CPE100は、開放型システム間相互接続(OSI)モデルのレイヤ4〜7における機能性も提供してよい。
特定の実施形態では、物理デバイス104および物理デバイス106のような、ソフトウェア・データプレーン・サブシステムを実行するデバイスは、顧客構内機器(customer premises equipment:CPE)、顧客構内設備(customer premise equipment:CPE)、ユニバーサルCPEまたはuCPE、仮想CPEまたはvCPEと呼ばれることがある。特定の実施形態では、制御プレーン・サブシステム128を有する物理デバイス102、ならびにソフトウェア・データプレーン・サブシステム(108、118)を有する複数の物理デバイス(104、106)が、本明細書では集合的に分散CPE100システムと呼ばれることがある。
特定の実施形態では、図1によって示されるように、ソフトウェア制御プレーン・サブシステム128は、集中物理デバイス102内に存在し、集中物理デバイス102は、それぞれ異なる物理デバイス(104、106)上に存在するいくつかのソフトウェア・データプレーン・サブシステム(108、118)と通信する。図1に示すように、ソフトウェア制御プレーン・サブシステム128を備える物理デバイス102は、それぞれソフトウェア・データプレーン・サブシステム(108、118)を備える複数の物理デバイス(104、106)を、一対多の関係で制御することができる。特定の実施形態では、制御プレーン・サブシステム128によって制御されるデータプレーン・サブシステムは、ソフトウェア・データプレーン・サブシステム(108、118)および/またはハードウェア・データプレーン・サブシステム(図示せず)を含む異なるタイプのものとすることができる。制御プレーン・サブシステムは、ネットワーク134を介して制御チャネル132などのネットワーク・チャネルを使用して、並行してまたは同時に複数のデータプレーン・サブシステムと通信することができる。
特定の実施形態では、これらの物理デバイス(102、104および106)は地理的に分散されてよい。たとえば、分散CPE100は、地理的に分散された分局配置を可能にし、この場合、ソフトウェア制御プレーン・サブシステム128は、中央データセンタに配置された物理デバイス102に存在してよく、各ソフトウェア・データプレーン・サブシステム(たとえば108、118)は、複数の異なる位置にある複数の異なる局(すなわち顧客構内)にわたって地理的に分散された別個の物理デバイス(たとえば104、106)に存在してよい。特定の実施形態では、ソフトウェア制御サブシステム128を備える物理デバイス102と、ソフトウェア・データプレーン・サブシステム(108、118)を備える物理デバイス(104、106)との間の距離は、特定の閾値上回るものとしてよい。物理デバイスは、有線または無線通信ネットワーク・チャネルを使用して互いに接続され得る。他の特定の実施形態では、制御プレーン・サブシステムおよびデータプレーン・サブシステムをホストする物理デバイスは、統合されたマルチサービス・プラットフォームを提供するために単一のシャーシに設けられ得る。
以下により詳細に開示されるように、物理デバイス(たとえば104、106)は、仮想ネットワーク機能(VNF)をホストしてもよい。特定の例では、VNFは、ネットワーク機能仮想化(NFV)と呼ばれることもあり、これは、本開示の範囲から逸脱することなくVNFと交換可能に使用され得る。特定の実施形態では、VNFは、明確に定義されかつプログラム可能なパケット処理機能を実施するために1つまたは複数の仮想マシンまたはコンテナ内で実行されるプログラムの集合を指すことがある。特定の実装形態では、基礎となるハードウェア(たとえばプロセッサ)、オペレーティング・システム、および/またはハイパーバイザが、ソフトウェア・データプレーン・サブシステム(たとえば108、118)と一緒に、仮想ネットワーク機能(VNF)をホストするための仮想化技術をサポートすることができる。たとえば、物理デバイス104は、ソフトウェア・データプレーン・サブシステム108、オペレーティング・システム・カーネル110、およびハイパーバイザ112を含むことができる。ハイパーバイザ112は、仮想マシン(VM A114およびVM B116)をインスタンス化し、仮想マシンにおいてネットワーク機能を実行することができる。同様に、物理デバイス106は、ソフトウェア・データプレーン・サブシステム118、オペレーティング・システム・カーネル120、およびハイパーバイザ122を含むことができる。ハイパーバイザ122は、仮想マシン(VM X124およびVM Y126)をインスタンス化し、仮想マシンにおいてネットワーク機能を実行することができる。特定の実施形態では、分散CPE100は、物理デバイス(104、106)上でネイティブ(すなわち仮想化なし)データプレーン転送および/またはルーティング機能性を提供すると共に、仮想化を使用して、新しい機能性を追加する、または既存のソフトウェア・データプレーン転送機能性を増強する柔軟性を提供する。
VNFをサポートおよびホストするために仮想化技術を使用することは、上記に開示されているが、特定の実施形態では、仮想化ハードウェア・サポートなしに、さらにいくつかの例ではハイパーバイザなしに、ソフトウェア・コンテナを使用してVNFを実装することができる。たとえば、VNFは、Unix/Linuxベースのカーネルによって促進されるUnix/Linuxベースのコンテナを使用することができる。
特定の実施形態では、コントローラ(図示せず)が、NETCONFおよび/またはOpenFlowなどのプロトコルを使用して物理デバイス102においてソフトウェア制御プレーン・サブシステム128を構成することができる。
ソフトウェア制御プレーン・サブシステム128は、コントローラから受信されたネットワーク・ポリシを実装するように構成され得る。一実施形態では、制御プレーン・サブシステム128は、ポリシを実装するために、ソフトウェア制御プレーン・サブシステム128によって制御されるデータプレーン・サブシステム(108、118)が行うべきアクションのセットへ、ポリシを変換するように構成される。したがって、ソフトウェア制御プレーン・サブシステム128は、コントローラから受信されたネットワーク・ポリシを取得し、それらをソフトウェア・データプレーン・サブシステム(108、118)のアクションに変換することを担当する。ソフトウェア制御プレーン・サブシステム128は、ソフトウェア・データプレーン・サブシステムがそれらの初期化フェース中にそれら自体をソフトウェア制御プレーン・サブシステム128に登録したとき、それがどのソフトウェア・データプレーン・サブシステムを制御するかを学習する。特定の実施形態では、制御プレーン・サブシステムは、NETCONFやOpenFlowなどの通信プロトコルを使用して外部からプログラム可能であり、REST APIを使用してプログラムされてもよい。
ソフトウェア制御プレーン・サブシステム128は、ソフトウェア・データプレーン・サブシステム(108、118)と通信するために様々な異なる通信技法を使用してよい。特定の実施形態では、図1に示すように、ソフトウェア制御プレーン・サブシステム128は、ソフトウェア・データプレーン・サブシステム(108、118)の両方と通信するために制御チャネル132を使用する。一実施形態では、制御チャネル132を介するメッセージングは、JSON(JavaScript Open Notation)カプセル化を用いたZeroMQトランスポート・メカニズムを使用することができる。ZeroMQ(OMQまたは0MQまたはZMQとも表記される)は、スケーラブルな分散または並列アプリケーションでの使用を目的とした高性能非同期メッセージング・ライブラリである。それは、専用メッセージ・ブローカなしで実行できるメッセージ・キューを提供する。ライブラリは、馴染みあるソケット・スタイルAPIを有するように設計される。それは、インプロセス、プロセス間、TCP、およびマルチキャストのような様々なトランスポートにわたってアトミック・メッセージを搬送するソケットを提供する。その非同期I/Oモデルは、スケーラブルなマルチコア・アプリケーションを可能にする。JSONは、分散ネットワーク・システムの階層ビューを提供するためのメカニズムを提供する。ソフトウェア制御プレーン・サブシステム128の観点から、それは、ソフトウェア・データプレーン・サブシステムまたはハードウェア・データプレーン・サブシステムと通信するときに、同じ制御チャネル132および同じ通信方式を使用してよい。この意味で、ソフトウェア制御プレーン・サブシステム128は、それがソフトウェア・データプレーンと通信しているかそれともハードウェア・データプレーンと通信しているかを区別しない。
たとえば、ソフトウェア制御プレーン・サブシステム128は、コントローラからユーザによって構成されたファイアウォール・ポリシを受信することができる。これに応じて、ソフトウェア制御プレーン・サブシステム128は、ファイアウォール・ポリシのデータ・モデル表現を作成し、ローカル・データ構造にポリシ関連情報を記憶することができる。次いで、ソフトウェア制御プレーン・サブシステム128は、データ・モデル表現をJSON表現に変換することができ、次いで、その表現は、ZeroMQメッセージにカプセル化され、制御チャネル132を介してZeroMQバスを使用して様々なデータプレーン・サブシステムに伝達される。
ソフトウェア制御プレーン・サブシステム128はまた、制御チャネル132を介してデータプレーン・サブシステムを含む1つまたは複数の物理デバイスからメッセージを受信することができる。これらのメッセージは、たとえば、データプレーン・サブシステムおよび/またはVNFについてのステータスおよび状態情報を、制御プレーン・サブシステムに伝達することができる。たとえば、データプレーン・サブシステムでの変化(たとえば、インターフェース状態変化)がある場合、その情報は、データプレーン・サブシステムによってJSON表現にカプセル化され、次いで、ZeroMQメッセージ・バスにカプセル化され、制御チャネル132を使用して制御プレーン・サブシステム128に送信される。次いで、制御プレーン・サブシステム128は、状態変化に応答するためにアクションを行うことができる(たとえば、状態情報の変更、ルータの変更など)。
特定の実施形態では、物理デバイス102は、オペレーティング・システム・カーネル130およびソフトウェア制御プレーン・サブシステム128を含む。オペレーティング・システム・カーネル130およびソフトウェア制御プレーン・サブシステム128は、インテル(登録商標)またはAMD(登録商標)または他のプロセッサによって提供されるプロセッサなどの1つまたは複数の処理エンティティによって実行される、命令(コードまたはプログラム)のセットとして実装される。たとえば、ソフトウェア制御プレーン・サブシステム128は、図6に示され後述されるようなコンピューティング・システムによって実行され得る。マルチコア・プロセッサ環境では、制御プレーン・サブシステムは、1つまたは複数のプロセッサの1つまたは複数のコアによって実行され得る。1つまたは複数のプロセッサによって実行される1つまたは複数の仮想マシンを含む仮想化環境において、制御プレーン・サブシステムは、仮想マシン内で実行されもしくは仮想マシンによりホストされてよく、またはさらに、ハイパーバイザ(たとえばKVMハイパーバイザ)もしくはネットワーク・オペレーティング・システムによってホストされてもよい。制御プレーン・サブシステムは、ベアメタル上および仮想マシン内などに配備されてよい。本明細書ではソフトウェア制御データプレーン128が開示されているが、特定の実装形態では、本開示の範囲から逸脱することなくハードウェア制御データプレーンが実装されもよい。
ソフトウェア制御プレーン・サブシステム128は、データプレーン・サブシステム(108、118)および/またはVNFの構成および管理を担当する。たとえば、ソフトウェア制御プレーン・サブシステム128は、分散ネットワークに関するルーティングおよびトポロジ情報を維持するように構成される。次いで、この情報は、ソフトウェア制御プレーン・サブシステム128によって、1つまたは複数のデータプレーン・サブシステムおよび/またはVNFをプログラムするために使用され、そうすることで、それらは、データ・パケットのそのソースからその意図した宛先への送達を促進するようにデータ・パケットを転送することが可能になる。特定の実施形態では、ソフトウェア制御プレーン・サブシステム128は、転送情報をソフトウェア・データプレーン・サブシステム、および/またはVNFにダウンロードするように構成される。次いで、この転送情報は、ソフトウェア・データプレーン・サブシステムを含む物理デバイスによって受信されたネットワーク・データ・パケットを転送するために、ソフトウェア・データプレーン・サブシステムおよび/またはVNFによって使用される。ソフトウェア制御プレーン・サブシステム128はまた、他のポリシ関連(たとえば、ファイアウォール・ポリシに関係付けられた)情報をデータプレーン・サブシステムにダウンロードしてもよい。
制御プレーン・サブシステム128がネットワークおよびトポロジ情報を受信し得る様々な方法がある。制御プレーン・サブシステム128は、ネットワーク・デバイス間のネットワークおよびトポロジ情報を交換する様々なネットワーキング・プロトコルをサポートするために処理を行うことができる。制御プレーン・サブシステム128は、分散ネットワーク・システムの他のコンポーネントを宛先とするまたはそれによって発信される制御プレーンパケットを生成および処理することができる。たとえば、制御プレーン・サブシステム128は、互いに、または他のネットワーク・デバイスもしくはシステムとトポロジ情報を交換し、ルーティング情報プロトコル(RIP)、オープン・ショーテスト・パス・ファースト(open shortest path first:OSPF)またはボーダ・ゲートウェイ・プロトコル(BGP)などのルーティング・プロトコルを使用して、ルーティング・テーブルを構築/維持することができる。
物理デバイス104および物理デバイス106内で具現されるソフトウェア・データプレーン・サブシステム(108、118)はそれぞれ、分散CPE100のデータ転送レイヤを表す。たとえば、分散CPE100の実装形態は、それぞれの物理デバイス(104、106)上で実行される1つまたは複数のソフトウェア・データプレーン・サブシステム(108、118)のみを有し、ハードウェア・データプレーン・サブシステムを有しなくてよい。
物理デバイス(104、106)は、仮想ネットワーク機能(VNF)などの追加のネットワーク機能をサポートするために、ソフトウェア・データプレーン・サブシステム(108、118)と一緒に仮想化技術をサポートすることもできる。特定の例では、VNFは、ネットワーク機能仮想化(NFV)と呼ばれることもあり、これは、本開示の範囲から逸脱することなくVNFと交換可能に使用され得る。特定の実施形態では、VNFは、明確に定義されかつプログラム可能なパケット処理機能を実施するために1つまたは複数の仮想マシンまたはコンテナ内で実行されるプログラムの集合を指すことがある。特定の実装形態では、基礎となるハードウェア(たとえばプロセッサ)、オペレーティング・システム、および/またはハイパーバイザが、ソフトウェア・データプレーン・サブシステム(たとえば108、118)と一緒に、仮想ネットワーク機能(VNF)をホストするための仮想化技術をサポートすることができる。
仮想化技術は、同じ物理リソースを共有する異なる動作環境の間の隔離を実現する。言い換えれば、仮想化は、コンピューティング・リソースの物理的制約からの論理的抽象化を実現する。1つの一般的な抽象化は、仮想マシン(ゲストとも呼ばれる)またはVMと呼ばれ、これは、VMにおいて実行されているコンテンツに、抽象化を維持しながら物理ハードウェアへの直接的インターフェースを提供する。仮想化技術は、同じ物理的ハードウェア上で実行されている複数のVMが独立して動作して互いに隔離されることを可能にする。システム上の1つまたは複数のVMは、ハイパーバイザ(仮想化マシン・モニタすなわちVMMとも呼ばれる)によって管理される。ハイパーバイザは、仮想マシンのホストおよび管理を担当するソフトウェアまたはファームウェア・レイヤである。ハイパーバイザは、システムのプロセッサ、メモリを管理し、各VMに対する他のリソースを割り振る。
図1を再び参照すると、物理デバイス104は、ソフトウェア・データプレーン・サブシステム108、オペレーティング・システム・カーネル110、およびハイパーバイザ112を含むことができる。ハイパーバイザ112は、仮想マシン(VM A114およびVM B116)をインスタンス化し、仮想マシンにおいて仮想ネットワーク機能を実行することができる。仮想マシンをインスタンス化することは、仮想マシンのページ・テーブルおよび物理リソースをセットアップすること、仮想マシンのイベント処理、および、ゲスト・オペレーティング・システムなどの仮想マシン・イメージを仮想マシンにロードすることを含むことができる。同様に、物理デバイス106は、ソフトウェア・データプレーン・サブシステム118、オペレーティング・システム・カーネル120、およびハイパーバイザ122を含むことができる。ハイパーバイザ122は、仮想マシン(VM X124およびVM Y126)をインスタンス化し、仮想マシンにおいて仮想ネットワーク機能を実行することができる。特定の実施形態では、分散CPE100は、物理デバイス上でネイティブ(すなわち仮想化なし)データプレーン転送およびルーティング機能性を提供すると共に、仮想化を使用して、新しい機能性を追加するまたは既存のデータプレーン転送機能性を増強する柔軟性を、仮想ネットワーク機能(VNF)を使用して提供する。
VNFをサポートおよびホストするために仮想化技術を使用することは、上記に開示されているが、特定の実施形態では、仮想化ハードウェア・サポートなしに、または、さらにいくつかの例ではハイパーバイザなしに、ソフトウェア・コンテナを使用してVNFを実装することができる。たとえば、VNFは、Unix/Linuxベースのカーネルによって促進されるUnix/Linuxベースのコンテナを使用することができる。
VNFは、1つまたは複数の仮想マシンにおいて動作する特定のネットワーク機能の処理を担当することができる。強化されたネットワーキング機能性を提供するために、個々の仮想化ネットワーク機能をビルディング・ブロック様式で一緒につなげるまたは組み合わせることができる。ハイパーバイザは、物理デバイス(104、106)が、仮想マシンにおいて顧客構内でVNF、たとえば、レベル2(L2)、レベル3(L3)ネットワーキング機能、ファイアウォール、仮想プライベート・ネットワーク(VPN)終端、アクセス制御リスト(ACL)などを実行することを可能にする。たとえば、顧客がローカル電話集約のために顧客構内で構内交換機(PBX)を動作させることを選択した場合、顧客は、データプレーンも実行しているホスト・ソフトウェアで実行されているハイパーバイザによってホストされる仮想マシンにおいてVNFとしてPBXを配備することができる。したがって、ソフトウェア・データプレーン・サブシステムを実行する(CPEとしても知られる)物理デバイスは、ネイティブ・データプレーン機能性を維持しながら、ホストされたVMとして新しい追加の機能性をホストおよび実行することができる。同様に、他の特定の実施形態では、他のネットワーキングまたは他の機能、たとえば、ディープ・パケット・インスペクション(DPI)機能、ネットワーク分析機能、ネットワーク機械学習機能、または他の適切な機能などが、CPEのホスト・ソフトウェア・スタック上で仮想マシンにおけるVNFとして配備され得る。
特定の例では、ソフトウェア制御プレーン・サブシステム128は、命令または制御メッセージをそれぞれの物理デバイスに提供することによって、ソフトウェア・データプレーン・サブシステムおよびハイパーバイザをホストする物理デバイスにおける仮想マシンのインスタンス化を制御する。さらに、ソフトウェア制御プレーン・サブシステム128は、制御メッセージをそれぞれの物理デバイスに提供することによって、仮想マシンにおける仮想ネットワーク機能のインスタンス化を制御し、仮想ネットワーク機能を適切に構成してもよい。仮想ネットワーク機能をインスタンス化することは、仮想マシンにおいてネットワーキング動作を行うためにネットワーク機能に対する命令をロードし実行することを含むことができる。仮想ネットワーク機能をインスタンス化することは、仮想ネットワーク機能に関連付けられた特定のパラメータおよび機能を構成することを含むこともできる。
集合的に、それぞれの物理デバイス上で実行されるハイパーバイザによってホストされるソフトウェア・データプレーン・サブシステム(108、118)およびVNFを実行している物理デバイス(104、106)は、ソフトウェア制御プレーン・サブシステム128から受信された転送および構成情報に基づいて、データ・パケットを受信しネットワーク内の次のホップへデータ・パケットを転送することを担当する。ソフトウェア・データプレーン・サブシステムを備える各物理デバイスは、ソフトウェア制御プレーン・サブシステムから受信された転送情報を用いてプログラムされる。ソフトウェア・データプレーン・サブシステムおよび/またはVNFは、データ・パケットを転送するために転送情報を使用する。特定の実装形態では、ソフトウェア・データプレーン・サブシステムおよび/またはVNFは、(OSIモデルの)レイヤ2およびレイヤ3のルーティング機能性をサポートする。特定の実施形態では、データプレーン・サブシステムおよび/またはVNFは、OSIレイヤ4〜7の機能性も提供してよい。ソフトウェア・データプレーン・サブシステムおよび/またはVNFはまた、ステートフルおよびステートレス・ファイアウォールなどのルータ関連の機能性、アプリケーション・フロー、アプリケーション・ロジック・ゲートウェイ、ネットワーク・アクセス・デバイス(NAD)能力を提供することがあり、いくつかの例では、レイヤ4ルーティングおよびより高レベルのデータ・パケット・インスペクション能力の部分的または完全な実装、MPLS関連の処理、ネットワーク・アドレス変換(NAT)、ステートフル・ネットワーク接続ストレージ(NAS)、階層型QoS(サービス品質)、Q−in−Q、インターネット・プロトコル・セキュリティ(IPsec)のサポート、総称ルーティング・カプセル化(GRE)、仮想拡張LAN(VXLAN)、データフローの分析および管理のための様々なツール、ディープ・パケット・インスペクション(DPI)、最長パケット一致(LPM)パケット・ルックアップ、仮想プライベート・ネットワーク(VPN)、ならびに他の機能性を提供することがある。
ソフトウェア・データプレーン・サブシステム(108、118)は、物理デバイス(104、106)のポートを介してネットワーク・データ・パケットを受信することができる。ポートは、論理ポートまたは物理ポートであってよい。次いで、ソフトウェア・データプレーン・サブシステム(108、118)は、受信したネットワーク・データ・パケットをどのように転送するかを決定する。この決定の一部として、ソフトウェア・データプレーン・サブシステム(108、118)は、受信したデータ・パケットから情報(たとえばヘッダ情報)を抽出し、抽出した情報から、ネットワーク・データ・パケットのソースおよび宛先情報を決定し、次いで、抽出した情報、転送情報、および、ソフトウェア・データプレーン・サブシステムによってソフトウェア制御プレーン・サブシステム128から受信されソフトウェア・データプレーン・サブシステム(108、118)によって記憶された他の適用可能なポリシに関連する情報に基づいて、ネットワーク・データ・パケットをどのように転送するかを決定することができる。特定の実施形態では、ソフトウェア・データプレーン・サブシステム(108、118)が、受信したネットワーク・データ・パケットをどのように転送するかを決定することができない場合、パケットが破棄される。さもなければ、ソフトウェア・データプレーン・サブシステム(108、118)は、パケットをその意図した宛先への通信を促進するように、ネットワーク・データ・パケットを次のホップに転送するために使用すべき出力ポートを決定する。次いで、ソフトウェア・データプレーン・サブシステム(108、118)は、決定した出力ポートを使用してネットワーク・データ・パケットを転送する。
ソフトウェア・データプレーン・サブシステム(108、118)、カーネル(110、120)、ハイパーバイザ(112、122)、および、仮想マシンにおいて実行されるそれぞれのVNFは、1つまたは複数の処理エンティティ、たとえば、インテル(登録商標)、AMD(登録商標)、Power、ARMにより提供されるプロセッサ、特定用途向け集積回路(ASIC)、またはフィールド・プログラマブル・ゲート・アレイ(FPGA)、またはネットワーク処理ユニット(NPU)などによって実行される命令(またはコード)のセットとして実装される。たとえば、図1に示すソフトウェア・データプレーン・サブシステム(108、118)は、図6に示され後述されるようなコンピューティング・システムによって実行され得る。異なるプロセッサ・アーキテクチャ上で実行されている異なるソフトウェア・データプレーン・サブシステムが、同じソフトウェア制御プレーン・サブシステム128によって制御されてよい。
上記に示したように、ソフトウェア・データプレーン・サブシステム(108、118)は、1つまたは複数のNPUによって実行されてもよい。NPUは、一般に、ネットワーク関連機能を処理するために特に設計され最適化されたプログラマブル・マルチコア・マイクロプロセッサである。ネットワーク・プロセッサは、典型的にはソフトウェア・プログラマブル・デバイスであり、汎用中央処理装置と同様の一般的特性を有し、パターン・マッチング、キー・ルックアップ、計算、ビット操作、バッファの割当ておよび管理など、ネットワーク関連機能を実行するために最適化される。
ソフトウェア・データプレーン・サブシステム(108、118)は、高速データ・パケット転送能力を提供するように構成される。一実施形態では、ソフトウェア・データプレーン・サブシステム(108、118)は、Linuxベースの転送パイプラインを使用することができる。別の実施形態では、さらに速い処理のために、ネットワーク・データ・パケットを高速で並列に処理するのを可能にするMCEE(マルチコア実行環境)アーキテクチャが使用される。MCEEモデルを使用するソフトウェア・データプレーン・サブシステムは、受信されたネットワーク・データ・パケットを、それらのネットワーク・データ・パケットの処理に割り当てられた個々のコアに分散するように構成される。各コアは、それが受信したネットワーク・データ・パケットを処理し、ネットワーク・データ・パケットをアウトバウンド・ポートに転送する。パケット処理は、MCEEアーキテクチャを使用するとかなり迅速であり、なぜならば、それにより、ネットワーク・データ・パケットの並列処理と、ネットワーク・データ・パケットの処理に割り当てられたいくつかの処理リソースへのネットワーク・データ・パケットの分散とが可能になるからである。
そのような分散CPE100において、顧客構内(すなわちCPEデバイス)に配置された物理デバイス(104、106)は、ホスト・ソフトウェア・スタックの一部としてソフトウェア・データプレーン・サブシステム(108、118)およびハイパーバイザ(112、122)を実行するが、制御プレーン機能性は実行せず、代わりに、制御プレーン・サブシステム128をホストするリモートの集中物理デバイス102と対話する。特定の実施形態では、ソフトウェア・データプレーン・サブシステム(108、118)を実行する顧客構内(すなわちCPEデバイス)に配置された物理デバイス(104、106)は、制御プレーン・サブシステムを有しない。他の実施形態では、ソフトウェア・データプレーン・サブシステム(108、118)を実行する顧客構内に配置された物理デバイス(104、106)(すなわちCPEデバイス)は、制御プレーン・ソフトウェアを有することができるが、そのような機能性を無効にしてよく、または制御プリーン機能性に関連付けられた命令を実行しなくてよい。
特定の実施形態では、顧客構内に配置された物理デバイス(104、106)における制御プレーン・サブシステムおよび/または制御プレーン機能性の欠如は、主要な制御プレーン機能性、たとえば、ルーティング・プロトコル、MPLSなど、および図3でより詳細に論じられる他の主要な制御プレーン・サブシステム機能性を、そのようなデバイス(104、106)が提供または実行しないことを意味することがある。特定の実施形態では、ソフトウェア・データプレーン・サブシステムを備える物理デバイス(104、106)が、主要な制御プレーン・サブシステム機能性をまったく実行せずに、分散CPE100におけるリモート物理デバイス(102)および他のリモート・ノード上で動作する制御プレーン・サブシステム128に対する接続性を提供するソフトウェア・データプレーン・サブシステムへの制御プレーン・システム・インターフェースをやはり提示することができる。
特定の実施形態では、ソフトウェア・データプレーン・サブシステムに対するオーバーレイ・ネットワークと共に集中制御プレーン・サブシステム128を有することにより、単一の大きなルータに似るビューがオペレータに提供される。また、制御プレーン・サブシステムとデータプレーン・サブシステムのそのような分離により、分散機器(すなわちCPE)のハードウェア・リソースが、ネットワーク・データ・パケットを転送するためにハードウェア・リソースのフィールド利用を最大化することを可能にし、より処理集約的であるがレイテンシに敏感でない(または比較的敏感でない)タスクであり得る制御プレーン・タスクを、リモートの集中制御プレーン・サブシステムへ押し出す。集中制御プレーン・サブシステムは、複数のCPEにおいて動作する複数のソフトウェア・データプレーン・サブシステムを制御することができる。
特定の実施形態では、開示される特定の態様が、新しいデータプレーン・サブシステムを用いて、CPEなどのデバイス上のネイティブ・ソフトウェア・データ・プレーン・サブシステムの機能性を増強することをサポートすることもできる。たとえば、ハイパーバイザを使用するホスト・ソフトウェア・スタックは、仮想マシンに新しいデータプレーン・サブシステムを導入し、ネイティブ・データプレーン・サブシステムを使用して物理ネットワークと仮想マシン内の新しいデータプレーン・サブシステムとの間でネットワーク・データ・パケットをサービス・チェイニングすることができる。特定の実施形態では、ハイパーバイザはラインカード内にあり、いくつかのそのようなラインカードがネットワーク全体を通して分散された機能である。
また、制御プレーン機能性を集中化することは、個々のCPEデバイスにおける高速転送のための分散データプレーン機能性を提供し続けながら、制御プレーン機能性の統合/集約を可能にする。これはまた、全てのそれらの分散CPEデバイスの制御が集中化されるので、ネットワークの容易な構成、および全部の分散デバイスの維持を促進する。ソフトウェア制御プレーン・サブシステムにおける単一の命令は、個々のCPE上で動作している全ての関連ソフトウェア・データプレーン・サブシステムに解釈され広められることが可能である。
特定の実施形態では、これにより、サービス型ソフトウェア(Software as a Service)モデルが可能になり、このモデルでは、管理者が、データセンタにおける1つの制御プレーン・サブシステム・インターフェイスを介して引き出される分散ルータ・インターフェイスを介して全てつながるローカル・サービス機能に追加される相互接続分岐およびSP LAN機能性を実行することができる。
特定の実施形態では、オーケストレーション・レイヤ(orchestration layer)が、分散機能を有する1つのルータのように見えるシステムの単一の可視化を提供することができ、そのルータ用のソフトウェア制御プレーン・サブシステム128は、データセンタで実行されていて、ソフトウェア・データプレーン・サブシステム、ならびに仮想マシンおよびVFN機能性をサポートするハイパーバイザは、CPEなどの個々のデバイス上で実行されている。たとえば、管理者がログインしてインターフェースを見たとき、物理的なeth0インターフェースがオースティンにあってもよく、eth1インターフェースがデンバーにあってもよく、それに対し、制御プレーン・サブシステムそれ自体はカリフォルニア州サンノゼで実行されてもよい。
図2は、本開示の特定の態様による、ソフトウェア・データプレーン・サブシステムを備える物理デバイス200を示す例示的なブロック図である。たとえば、物理デバイス200は、図1の例示的な物理デバイス104または106を示す。デバイス200は、分散CPE100の例示的なCPEデバイスであり得る。図2に示すように、デバイス200は、メモリ230およびハードウェア・リソース220を含むことができる。ハードウェア・リソース220は、1つまたは複数のプロセッサ222および物理ネットワーク・インターフェース224を含むことができるが、それらに限定されない。図6に関して開示される他のいくつかのコンポーネントが、デバイス200を実装する際に利用されてもよい。物理ネットワーク・インターフェース224は、デバイス200におけるネットワーク・データおよび制御パケットを送信および受信するための物理ポートを提供することができる。言い換えれば、物理ネットワーク・インターフェース224は、デバイス200とプライベートまたはパブリック・ネットワーク(たとえば134)との間の相互接続のポイントである。たとえば、イーサネットポートが物理ネットワーク・インターフェースであってよい。ハードウェア・リソース220における1つまたは複数のプロセッサ222は、ネットワーク・データ・パケット転送に関連付けられた動作を実行するために、ストレージ・デバイス625および/またはネットワークからホスト・ソフトウェア・スタック226をメモリ230内にロードすることができる。
メモリ230は、オペレーティング・システム・カーネル空間(またはカーネル)204およびユーザ空間208を含むいくつかの領域へ論理的に分割され得る。カーネル空間204からロードされた命令は、1つまたは複数のプロセッサ222にロードされると、カーネル・モードで実行することができる。同様に、ユーザ空間208からロードされた命令は、1つまたは複数のプロセッサ222にロードされると、ユーザ・モードで実行することができる。カーネル・モードでカーネル204から実行される命令は、いくつかの例では、より高い特権を有してよく、プロセッサに関連付けられた特定の制御レジスタを操作するなどの特権命令を実行できてよい。
特定の実施形態では、ハイパーバイザ206は、先に論じたように、仮想化環境をサポートするために、ホスト・ソフトウェア・スタック226の一部としてカーネル204と共に実装、追加、または実行され得る。そのような環境において、カーネル204、ハイパーバイザ206、およびユーザ空間208の一部として実行されているソフトウェア・コンポーネントは、ホスト・ソフトウェア・スタック226の一部と見なされてよい。図2に示すように、メモリ230からデバイス200上で実行されているハイパーバイザ206は、VNFをホストするために、VM1(228−1)、VM2(228−2)、およびVM N(228−N)(簡単にするため、集合的にVM228とも呼ばれる)などのいくつかの仮想マシンを管理することができる
特定の実施形態では、CPE200は、ハードウェアにサポートされた仮想化された環境、またはカーネルベースの仮想マシン(KVM)および/もしくはクイック・エミュレータ(Quick Emulator:Qemu)を使用するソフトウェアベースの仮想化環境(すなわちエミュレーション)を有することができる。たとえば、KVMは、名前空間の仮想化、およびプロセッサ仮想化によってサポートされるリソースの仮想化を可能にすることができる。他方で、Qemuは、プロセッサ/カーネルが仮想化しないリソースをエミュレートする。たとえば、Qemuは、ネットワーク・インターフェース・カード(NIC)インターフェースをエミュレートする。
特定の実施形態では、LibVirt216は、ハイパーバイザ206とVM228との間の追加のレイヤとして使用される。特定の実施形態では、LibVirt216は、アプリケーション・プログラマブル・インターフェース(API)をQemuへ提供することができる。LibVirt216はまた、VMの始動、停止、および管理などの仮想化機能を管理するためのツールセットを提供する。加えて、特定の実施形態では、本開示の態様によれば、LibVirt216コマンドは、ソフトウェア制御プレーン・サブシステム128によってVM228がリモート管理されることが可能なように、デバイス200によって提示される。特定の例では、OpenStackなどのプロトコルは、LibVirt216 APIを通じて直接VM228を管理するためにソフトウェア制御プレーン・サブシステム128によって使用され得る。
カーネルにおける物理ネットワーク・インターフェース224で受信されたネットワーク・データ・パケットは、イーサネット・ドライバによってカーネル空間内で処理される。カーネルのネットワーキング・スタックは、ネットフィルタリング、ルーティングを実行し、次いで、処理されたパケットを、異なる物理ネットワーク・インターフェースを介して送出することができる。しかしながら、特定の実装形態では、ネットワーク・インフラストラクチャをサポートするデバイス200のいくつかの態様は、システムの応答性を向上するためにユーザ空間208の一部として実装され得る。たとえば、ソフトウェア・データプレーン・サブシステム232が、ユーザ空間208におけるホスト・ソフトウェア・スタック226内に実装され得る。1つの例示的な実装形態では、ソフトウェア・データプレーン・サブシステム232は、例示的なL2パケット処理パイプライン212およびL3パケット処理パイプライン214を実装することができる。カーネル204は、ソフトウェア・データプレーン・サブシステム232によって提供される機能を促進することができる。たとえば、一実装形態では、カーネル204は、カーネル204からシャドウ・インターフェース・ドライバ(shadow interface drivers)を実行することができる。これらのシャドウ・インターフェース・ドライバは、カーネル性能に無視できるほどの負担をかけるだけで、パケットを受け取り、それらをソフトウェア・データプレーン・サブシステム232のためのユーザ空間パケット・パイプライン(ブロック212および214)に移動することができる。ソフトウェア・データプレーン・サブシステム232内のユーザ空間208において、パケットは、プロセッサまたは処理コア上で実行されているリアルタイム・スレッドを使用して処理され得る。リアルタイム・スレッドは、他のスレッドもしくはタスクよりも高い優先度を使用して実行されてよく、または専用のリソースが割り当てられてもよい。特定の実装形態では、ネットワーク・データ・パケットの処理などの特定のタスクに対してリアルタイム・スレッドを割り当てることが、そのスレッドの処理に対して物理的コアを割り当てることをもたらし、その結果、ネットワーク・データ・パケットの比較的ジッターフリーで優先された処理をもたらし得る。
本開示の態様によれば、特定のネットワーキング機能が、ホストスタックソフトウェア226のユーザ空間208内のソフトウェア・データプレーン・サブシステム232によって処理される。そのような実装形態は、分散CPU100の柔軟性を許容し、デバイス200の顧客構内への配備の後、デバイス200は、ホスト・ソフトウェア・スタック228におけるソフトウェア・データプレーン・サブシステム232の一部として実装されたネイティブルーティング能力を使用してルーティング機能性を提供することができ、VM228においてルーティング能力を提供することによってネットワーク機能性を増強または置換することができる。
特定の実施形態では、デバイス200は、分散CPE100におけるリモート物理デバイス102および他のリモート・ノード上で動作する制御プレーン・サブシステム128に対する接続性を提供するネットワーキング・スタック234を含むことができる。 ネットワーキング・スタック234は、デバイス200のための基本的なネットワーキング機能性、たとえば、動的ホスト構成プロトコル(DHCP)を使用して割り当てられたアドレスを取得すること、データプレーン・サブシステム起動プロセスをリモート・ソーシングすること、デバイス200を制御プレーン・サブシステムを含む物理デバイスに接続することなどを提供する。ネットワーキング・スタック234は、ルーティング・プロトコル、MPLSなど、および図3により詳細に論じられる他の主要な制御プレーン・サブシステム機能性を実行せず、単に接続性をリモート・システムに提供する。
特定の実施形態では、デバイス200は、コマンドライン・インターフェース(CLI)を直接使用して受信された、または表現状態転送(representational state transfer:REST)およびNETCONFなどのプロトコルを使用し制御プレーン・サブシステム128からリモートで受信された、全ての新しいコマンドから生じる状態を隔離できる、ローカル・システム・データ・モデル236を含むことができる。特定の実施形態では、ローカル・システム・データ・モデル236は、ユーザ資格情報、(ノードへのリモート・アクセスを可能にするための)sshサービス、およびローカル・インターフェースのための構成など、ローカル・パラメータおよび機能を管理/構成することができる。特定の実施形態では、ローカル・システム・データ・モデル236は、制御プレーン・サブシステムを備える物理デバイスによって管理されるデータ・モデルの部分的ビューをキャッシュまたは維持することができる。
そのような分散CPE100において、顧客構内に配置されたデバイス200は、ホスト・ソフトウェア・スタック226の一部としてソフトウェア・データプレーン・サブシステム232およびハイパーバイザ206を実行するが、制御プレーン機能を実行せず、代わりに、制御プレーン・サブシステム128をホストするリモートの集中物理デバイス102と対話することに留意されたい。特定の実施形態では、ソフトウェア・データプレーン・サブシステム232を実行する顧客構内に配置されたデバイス200は、制御プレーン・サブシステムを有しない。他の実施形態では、ソフトウェア・データプレーン・サブシステム232を実行するデバイス200は、制御プレーン・ソフトウェアを有することができるが、そのような機能性を無効にしてよく、または制御プリーン機能性に関連付けられた命令を実行しなくてよい。
特定の実施形態では、上述されたように、物理デバイス200上の制御プレーン・サブシステムおよび/または制御プレーン機能性の欠如は、主要な制御プレーン機能性、たとえば、ルーティング・プロトコル、MPLSなど、および図3でより詳細に論じられる他の主要な制御プレーン・サブシステム機能性を、提供または実行しないことを意味することがある。
図3は、本開示の特定の態様による、ソフトウェア制御プレーン・サブシステムを備える物理デバイス300を示す例示的なブロック図である。たとえば、物理デバイス300は、図1の例示的な物理デバイス102を示す。図3に示すように、デバイス300は、メモリ330およびハードウェア・リソース320を含むことができる。ハードウェア・リソース320は、1つまたは複数のプロセッサ322および物理ネットワーク・インターフェース324を含むことができるが、それらに限定されない。図6に関して開示される他のいくつかのコンポーネントが、デバイス300を実装する際に使用されてもよい。物理ネットワーク・インターフェース324は、デバイス300におけるネットワーク制御パケットを送信および受信するための物理ポートを提供することができる。言い換えれば、物理ネットワーク・インターフェース324は、デバイス200とプライベートまたはパブリック・ネットワーク(たとえば314)との間の相互接続のポイントである。たとえば、イーサネットポートが物理ネットワーク・インターフェースであってよい。特定の実施形態では、ハードウェア・リソース320における1つまたは複数のプロセッサ322は、ネットワーク・データ・パケット転送に関連付けられた動作を実行するために、ストレージ・デバイス625および/またはネットワークからカーネル304、データ・モデル310、およびソフトウェア制御プレーン・サブシステム315をメモリ330内にロードすることができる。特定の実装形態では、データ・モデル310およびソフトウェア制御プレーン・サブシステム315の少なくとも部分が、ユーザ空間306内に実装され得る。
特定の実施形態では、制御プレーン・サーバ・コンピュータとも呼ばれる制御プレーンを実行しているデバイスが、分散されたCPEなどのソフトウェア・データプレーン・サブシステムを有する全ての物理デバイスの統一され集中化されたビューを維持するように、データ・モデル310を実装する。データ・モデル310は、異なるコマンド・インターフェースを介し、コマンドライン・インターフェース(CLI)を直接使用して、または表現状態転送(REST)およびNETCONFなどのプロトコルを使用しコントローラからリモートで受信された、全ての新しいコマンドから生じる状態を隔離できる。そのような動作モード・コマンドを使用して、分散CPE100の状態が、データ・モデル310において制御プレーン・サーバ・コンピュータで維持され得る。
一実装形態では、データ・モデル310は、YANG(yet another next generation)モデルを使用して実装され得る。YANGは、NETCONFのためのデータ・モデリング言語である。YANGは、ネットワーク要素の構成データおよび状態データの両方をモデル化するために使用することができる。さらに、YANGは、ネットワーク要素によって発せられたイベント通知のフォーマットを定義するために使用することができる。したがって、YANGを使用して実装されたデータ・モデル310は、分散CPE100が、統一されたモデルを使用して遷移状態および静的状態を維持することを可能にする。そのような統一されたデータ・モデル310の実装形態は、システムにおける様々なデータ要素のより良い同期を可能にする。
ソフトウェア制御プレーン・サブシステム315は、データ・モデル310に結合され、コントローラから受信されたコマンドまたはネットワーク・ポリシを実装するように構成され得る。一実施形態では、ソフトウェア制御プレーン・サブシステム315は、コントローラから受信されたネットワーク・ポリシを取得し、それらをデータプレーン・サブシステム(108、118)のアクションに変換することを担当する。ソフトウェア制御プレーン・サブシステム315は、ソフトウェア・データプレーン・サブシステムがそれらの初期化の際にそれら自体をソフトウェア制御プレーン・サブシステム315に登録したとき、それがどのソフトウェア・データプレーン・サブシステムを制御するかを学習する。
ソフトウェア制御プレーン・サブシステム315は、ソフトウェア・データプレーン・サブシステム(108、118)と通信するために様々な異なる通信技法を使用してよい。特定の実施形態では、図1に示すように、ソフトウェア制御プレーン・サブシステム315は、ソフトウェア・データプレーン・サブシステム(108、118)の両方と通信するために制御チャネル132を使用する。一実施形態では、制御チャネル132を介するメッセージングは、JSON(JavaScript Open Notation)カプセル化を用いたZeroMQトランスポート・メカニズムを使用することができる。ZeroMQ(OMQまたは0MQまたはZMQとも表記される)は、スケーラブルな分散または並列アプリケーションでの使用を目的とした高性能非同期メッセージング・ライブラリである。それは、専用メッセージ・ブローカなしで実行できるメッセージ・キューを提供する。ライブラリは、馴染みあるソケット・スタイルAPIを有するように設計される。それは、インプロセス、プロセス間、TCP、およびマルチキャストのような様々なトランスポートにわたってアトミック・メッセージを搬送するソケットを提供する。その非同期I/Oモデルは、スケーラブルなマルチコア・アプリケーションを可能にする。JSONは、分散ネットワーク・システムの階層ビューを提供するためのメカニズムを提供する。
たとえば、データ・モデル310は、コントローラからユーザによって構成されたファイアウォール・ポリシを受信し、ファイアウォール・ポリシのデータ・モデル表現を作成し、データ・モデル310にポリシ関連情報を記憶することができる。次いで、ソフトウェア制御プレーン・サブシステム315は、データ・モデル表現をJSON表現に変換することができ、次いで、その表現は、ZeroMQメッセージにカプセル化され、制御チャネル132を介してZeroMQバスを使用して様々なデータプレーン・サブシステムに伝達される。
ソフトウェア制御プレーン・サブシステム315はまた、制御チャネル132を介してデータプレーン・サブシステムからメッセージを受信することができる。これらのメッセージは、たとえば、データプレーン・サブシステムおよび/またはVNFについてのステータスおよび状態情報を、ソフトウェア制御プレーン・サブシステム315に伝達することができる。たとえば、ソフトウェアデータプレーン・サブシステムでの変化(たとえば、インターフェース状態変化)がある場合、その情報は、ソフトウェア・データプレーン・サブシステムによってJSON表現にカプセル化され、次いで、ZeroMQメッセージ・バスにカプセル化され、制御チャネル132を使用して制御プレーン・サブシステム315に送信される。次いで、制御プレーン・サブシステム315は、状態変化に応答するためにアクションを行うことができる(たとえば、データ・モデル310の更新、ルータ変更など)。
特定の実施形態では、制御プレーン・サーバ・コンピュータ300は、オペレーティング・システム・カーネル304、データ・モデル310のためのロジック、およびソフトウェア制御プレーン・サブシステム315を含む。オペレーティング・システム・カーネル304、データ・モデル310のためのロジック、およびソフトウェア制御プレーン・サブシステム315は、インテル(登録商標)もしくはAMD(登録商標)より提供されるプロセッサまたは他のプロセッサなどの1つまたは複数の処理エンティティによって実行される命令(コードまたはプログラム)のセットとして実装される。たとえば、制御プレーン・サブシステム128は、図6に示され後述されるようなコンピューティング・システムによって実行され得る。マルチコア・プロセッサ環境では、制御プレーン・サブシステムは、1つまたは複数のプロセッサの1つまたは複数のコアによって実行され得る。1つまたは複数のプロセッサによって実行される1つまたは複数の仮想マシンを含む仮想化環境において、ソフトウェア制御プレーン・サブシステム315は、仮想マシン内で実行されもしくは仮想マシンによりホストされてよく、またはさらに、ハイパーバイザ(たとえばKVMハイパーバイザ)もしくはネットワーク・オペレーティング・システムによってホストされてもよい。本明細書ではソフトウェア制御データプレーン315が開示されているが、特定の実装形態では、本開示の範囲から逸脱することなくハードウェア制御データプレーンが実装されもよい。
ソフトウェア制御プレーン・サブシステム315は、データプレーン・サブシステム(108、118)および/またはVNFの構成および管理を担当する。たとえば、制御プレーン・サブシステム315は、分散ネットワークに関するルーティングおよびトポロジ情報を維持するように構成される。次いで、この情報は、制御プレーン・サブシステムによって、1つまたは複数のデータプレーン・サブシステムおよび/またはVNFをプログラムするために使用され、そうすることで、それらは、データ・パケットのそのソースからその意図した宛先への送達を促進するようにデータ・パケットを転送することが可能になる。特定の実施形態では、ソフトウェア制御プレーン・サブシステム315は、転送情報をソフトウェア・データプレーン・サブシステムまたはVNFにダウンロードするように構成される。次いで、この転送情報は、ソフトウェア・データプレーン・サブシステムを含む物理デバイスによって受信されたデータ・パケットを転送するために、データプレーン・サブシステムおよび/またはVNFによって使用される。ソフトウェア制御プレーン・サブシステム315はまた、他のポリシ関連(たとえば、ファイアウォール・ポリシに関係付けられた)情報をデータプレーン・サブシステムにダウンロードしてもよい。
ソフトウェア制御プレーン・サブシステム315がネットワークおよびトポロジ情報を受信し得る様々な方法がある。ソフトウェア制御プレーン・サブシステム315は、ネットワーク・デバイス間のネットワークおよびトポロジ情報を交換する様々なネットワーキング・プロトコルをサポートするために処理を行うことができる。ソフトウェア制御プレーン・サブシステム315は、分散ネットワーク・システムの他のコンポーネントを宛先とするまたはそれによって発信される制御プレーンパケットを生成および処理することができる。たとえば、制御プレーン・サブシステム315は、互いに、または他のネットワーク・デバイスもしくはシステムとトポロジ情報を交換し、ルーティング情報プロトコル(RIP)、オープン・ショーテスト・パス・ファースト(OSPF)またはボーダ・ゲートウェイ・プロトコル(BGP)などのルーティング・プロトコルを使用して、ルーティング・テーブルを構築/維持することができる。
また、データ・モデル310、ならびにソフトウェア制御プレーン・サブシステム315およびソフトウェア・データプレーン・サブシステム232の分岐を使用して、制御プレーン機能性を集中化することは、CPEなどの個々のデータ転送デバイスにおける高速転送のための分散データプレーン機能性を提供し続けながら、制御プレーン機能性の統合/集約を可能にする。これにより、ネットワークの容易な構成、および分散デバイスの維持もまた、制御プレーン・サーバ・コンピュータにおいてそれらの全ての分散デバイスの制御が集中化されるために促進される。制御プレーン・サブシステムにおける単一の命令は、個々のCPE上で動作している全ての関連データプレーン・サブシステムに解釈され広められることが可能である。
特定の実施形態では、これにより、サービス型ソフトウェア・モデルが可能になり、このモデルでは、管理者が、データセンタにおける1つの制御プレーン・サブシステム・インターフェイスを介して引き出される分散ルータ・インターフェイスを介して全てつながるローカル・サービス機能に追加される相互接続分岐およびSP LAN機能性を実行することができる。
特定の実施形態では、制御プレーン・サーバ・コンピュータは、分散機能を有する1つのルータのように見えるシステムの単一の可視化を提供できるオーケストレーション・レイヤ(図示せず)をホストすることもでき、そのルータ用のソフトウェア制御プレーン・サブシステムは、データセンタで実行されていて、ソフトウェア・データプレーン・サブシステム、ならびに仮想マシンおよびVFN機能性をサポートするハイパーバイザは、個々に実行されている。
図4は、本開示の1つまたは複数の例示的態様による、本発明の実施形態を実施するための方法400を示すフロー図である。1つまたは複数の態様によれば本明細書に説明される方法および/または方法ステップのいずれかおよび/または全てが、物理デバイス104(もしくはデバイス106)、デバイス200、またはコンピュータ・システム600によって、および/または物理デバイス104(もしくはデバイス106)、デバイス200、またはコンピュータ・システム600に内で実装され得る。一実施形態では、図4に関連して説明される方法ステップのうちの1つまたは複数が、プロセッサ610または別のプロセッサなどのコンピューティング・システム600の1つまたは複数のプロセッサによって実装される。加えてまたは代わりに、本明細書に説明される方法および/または方法ステップのいずれかおよび/または全ては、コンピュータ可読命令、たとえば、メモリ635、ストレージ625、または別のコンピュータ可読媒体などのコンピュータ可読媒体に記憶されたコンピュータ可読命令で実装されてよい。
ブロック402で、デバイスのコンポーネントは、第1のデバイスについてのネットワーク・データ・パケットのネットワーク・データ・パケット転送を変更するための第1のネットワーク制御パケットを受信することができる。特定の実施形態では、デバイスは顧客構内に配置されてよく、CPEデバイスと呼ばれることがある。ネットワーク制御パケットは一般に、ネットワーク自体の作成および動作に使用される、ネットワーク・デバイス(たとえば、制御プレーン・サーバ・コンピュータ)で生成または受信されたパケットを指すことがある。一例では、ネットワーク制御パケットは、デバイス上で実行されるデータプレーン・サブシステムおよび/またはVNFを更新および/または構成することができる。ネットワーク制御パケットを使用する例示的なプロトコルは、ARP、BGP、OSPF、およびネットワークを一緒に制御する他のプロトコルを含むが、これらに限定されない。
ブロック404で、デバイスのコンポーネントは、第1のデバイス上でホスト・ソフトウェア・スタック内で実行されているデータプレーン・サブシステムにおいてデバイスの転送機能性を変更することができる。
ブロック406で、デバイスは、第1のネットワーク・データ・パケットを受信することができる。ネットワーク・データ・パケットは一般に、中間ネットワーク・デバイスによって他のエンド・デバイスに転送される、エンド・デバイス・ユーザ・アプリケーションで生成されたパケットを指すことができる。ネットワーク・デバイスの観点からは、ネットワーク・データ・パケットは常に輸送宛先インターネット・プロトコル(IP)アドレスを有し、データプレーン・サブシステムの宛先IPアドレスベースの転送プロセスを使用してルーティングされる。
ブロック408で、デバイスは、データプレーン・サブシステムを使用して第1のネットワーク・データ・パケットを転送することができる。
ブロック410で、デバイスは、第2のネットワーク・データ・パケットを受信する。ブロック412で、デバイスは、第1のデバイスにおいて仮想マシン内で実行されるネットワーク機能を使用して第2のネットワーク・データ・パケットを処理することができ、ホスト・ソフトウェア・スタックにおけるハイパーバイザが、仮想マシンをインスタンス化する。特定の実装形態では、ネットワーク機能を実装することは、ネットワーク・ノードまたは機能性を実装することを含むことができる。
図4に示す特定のステップは、本発明の実施形態による動作のモード間の切替えの特定の方法を提供することは理解されよう。他の系列のステップが代替実施形態で相応に実行されてもよい。たとえば、本発明の代替実施形態では、上述されたステップを他の順序で実行してもよい。さらに、特定の用途に応じて、追加のステップまたはステップに対する変形が加えられまたは除去されてもよい。当業者であれば、プロセスの多くの変形、修正、および代替形態を認識および理解するであろう。
図5は、本開示の1つまたは複数の例示的態様による、本発明の実施形態を実施するための方法500を示すフロー図である。1つまたは複数の態様によれば、本明細書に説明される方法および/または方法ステップのいずれかおよび/または全てが、物理デバイス102、デバイス300、またはコンピュータ・システム600によって、および/または物理デバイス102、デバイス300、またはコンピュータ・システム600内で実装され得る。一実施形態では、図5に関連して説明される方法ステップのうちの1つまたは複数が、プロセッサ610または別のプロセッサなどのコンピューティング・システム600の1つまたは複数のプロセッサによって実装される。加えてまたは代わりに、本明細書に説明される方法および/または方法ステップのいずれかおよび/または全ては、コンピュータ可読命令、たとえば、メモリ635、ストレージ625、または別のコンピュータ可読媒体などのコンピュータ可読媒体に記憶されたコンピュータ可読命令で実装されてよい。
ブロック502で、制御プレーン・サーバ・コンピュータなどの第1のデバイスが、制御プレーン・サブシステムを実行することができる。特定の実施形態では、制御プレーン・サブシステムは、命令を有するソフトウェア制御プレーン・サブシステムであり、命令は、メモリのストレージ・デバイスからロードされ1つまたは複数のプロセッサ上で実行される。第1のデバイスは、制御プレーン・サーバ・コンピュータおよびいくつかの他のデバイス、たとえばCPEデバイスなどを含むオーバーレイ・ネットワークに対するインターフェースを提供することができる。全てのデバイスは集合的に分散CPEを表すことができる。
ブロック504で、第1のデバイスは、第2のデバイス上で実行されるように構成された第1のソフトウェア・データプレーン・サブシステムの転送機能性を制御することができる。いくつかのシナリオでは、第2のデバイスは顧客構内に配置され、CPEと呼ばれることがある。特定の実装形態では、第1のデバイスは、ネットワーク制御パケットを第2のデバイスに送信することによって、第2のデバイス上でデータプレーン・サブシステムを制御する第1のソフトウェア制御プレーン・サブシステムを実行することができる。ネットワーク制御パケットは一般に、ネットワークそれ自体の作成および動作に使用される、ネットワーク・デバイスで生成または受信されたパケットを指すことができる。ネットワーク・デバイスの観点からは、ネットワーク制御パケットは常に受信宛先IPアドレスを有し、ネットワーク・デバイス・ルート・プロセッサにおけるCPUによって処理される。一例では、ネットワーク制御パケットは、デバイス上で実行されるデータプレーン・サブシステムおよび/またはVNFを更新および/または構成することができる。ネットワーク制御パケットを使用する例示的なプロトコルは、ARP、BGP、OSPF、およびネットワークを一緒に制御する他のプロトコルを含むが、これらに限定されない。
ブロック506で、第1のデバイスはさらに、第2のデバイス上の第1の仮想マシンのインスタンス化を制御することができる。特定の実施形態では、第1のデバイスのコンポーネントが仮想化技術をサポートする。たとえば、第1のデバイスは、仮想化をサポートするプロセッサを含み、仮想マシンのインスタンス化および管理を可能にするためのハイパーバイザを実行することができる。仮想マシンは、特定の機能の実行のための隔離された環境を提供することができる。
ブロック508で、第1のデバイスは、第2のデバイス上で実行される第1の仮想マシンにおける第1のネットワーク機能の実行を制御することができる。ネットワーク機能は仮想ネットワーク機能を指すことができる。仮想ネットワーク機能は、第2のデバイスのネットワーク能力を向上または増強する仮想マシンにおいて実行される任意のネットワーク機能を含むことができる。VNFの例は、レベル2(L2)、レベル3(1.3)ネットワーキング機能、ファイアウォール、仮想プライベート・ネットワーク(VPN)終端、アクセス制御リスト(ACL)、ディープ・パケット・インスペクション(DPI)機能、ネットワーク分析機能、ネットワーク機械学習機能などを含むことができるが、これらに限定されない。
ブロック510で、第1のデバイスは、第3のデバイス上で実行されるように構成された第2のソフトウェア・データプレーン・サブシステムの転送機能性を制御することができる。いくつかのシナリオでは、第2のデバイスは顧客構内に配置され、CPEデバイスと呼ばれることがある。
ブロック512で、第1のデバイスはさらに、第3のデバイス上の第2の仮想マシンのインスタンス化を制御することができる特定の実施形態では、第1のデバイスのコンポーネントが仮想化技術をサポートする。たとえば、第1のデバイスは、仮想化をサポートするプロセッサを含み、仮想マシンのインスタンス化および管理を可能にするためのハイパーバイザを実行することができる。
ブロック514で、第1のデバイスは、第3のデバイス上で実行される仮想マシンにおける第2のネットワーク機能の実行を制御することができる。
特定の実施形態では、第1、第2および第3デバイスは、まとめて分散CPEまたは分散CPEシステムと呼ばれることがある。制御プレーン・サーバ・コンピュータとも呼ばれる第1のデバイスは、ソフトウェア制御プレーン・サブシステムを含み、ソフトウェア・データプレーン・サブシステムを実行するネットワークにおける様々なデバイスと対話するための統一されたインターフェースおよびネットワーク・オーバーレイを提供することができる。ソフトウェア・データプレーン・サブシステムを実行するデバイスの各々は、仮想化をサポートし、ハイパーバイザを実行して仮想マシンのインスタンス化をすることもできる。デバイスの各々は、仮想マシンにおいてVNFを実行することができる。
分散CPEは、ネットワークの集中化されたモデリングおよび制御を可能にする、高度に統合されながらスケーラブルで柔軟なネットワーク環境を提供すると共に、仮想化を使用してVNFでチェイニングすることによってソフトウェア・データプレーン・サブシステムを備える物理デバイス(またはCPE)の各々においてデータプレーン機能性を置換および増強する能力を提供することができる。
図5に示す特定のステップは、本発明の実施形態による動作のモード間の切替えの特定の方法を提供することは理解されよう。他の系列のステップが代替実施形態で相応に実行されてもよい。たとえば、本発明の代替実施形態では、上述されたステップを他の順序で実行してもよい。さらに、特定の用途に応じて、追加のステップまたはステップに対する変形が加えられまたは除去されてもよい。当業者であれば、プロセスの多くの変形、修正、および代替形態を認識および理解するであろう。
図6は、本発明の一実施形態による、分散ルータの様々なコンポーネントまたはサブシステムを実行するために使用され得るコンピューティング・システムまたはデバイス600の簡略ブロック図である。いくつかの実施形態では、コンピューティング・システム600は、上述された任意の方法を実装するように構成される。たとえば、コンピュータ・システム600のような1つまたは複数のコンピュータ・システムは、コントローラ102などの分散ルータの1つまたは複数のサブシステム、1つまたは複数の制御プレーン・サブシステム104、および1つまたは複数のソフトウェア・データプレーン・サブシステム108を実行するために使用され得る。
コンピュータ・システム600は、以下に限定されないが、パーソナルコンピュータ、ポータブルコンピュータ、ワークステーション、ネットワークコンピュータ、メインフレーム、キオスク、PDA、携帯電話、または他の任意のデータ処理システムを含む様々なタイプのものとすることができる。コンピュータおよびネットワークの性質は絶え間なく変化するため、図6に示されるコンピュータ・システム600の説明は、コンピュータ・システムの好ましい実施形態を例示するための単なる具体例として意図されている。図6に示されるシステムよりも多数または少数のコンポーネントを有する他の多くの構成が可能である。
コンピュータ・システム600は、バス605を介して電気的に結合できるハードウェア要素を備えて示されている。ハードウェア要素は、1つまたは複数のプロセッサ610、1つまたは複数の入力デバイス615、1つまたは複数の出力デバイス620、通信サブシステム630、およびストレージ・サブシステム640を含むことができる。バス・サブシステム605は、コンピュータ・システム600の様々なコンポーネントおよびサブシステムを意図されたように互いに通信させるためのメカニズムである。バス・サブシステム605は単一のバスとして簡略的に示されているが、バス・サブシステムの代替実施形態は複数のバスを利用してもよい。
プロセッサ610は、コンピュータ・システム600の処理リソースを表し、限定としてではなく、1つもしくは複数の汎用プロセッサ、および/または1つもしくは複数の専用プロセッサ(たとえば、デジタル信号処理チップ、および/もしくはグラフィックス・アクセラレーション・プロセッサなど)を含むことができる。プロセッサ610は、1つまたは複数のマルチコア・プロセッサを含むことができる。
入力デバイス615は、コンピュータ・システム600への入力を提供するための1つまたは複数の様々なメカニズム、たとえば、限定としてではなく、マウス、キーボード、タッチパッド、および/またはタブレットなどを含むことができる。出力デバイス620は、コンピュータ・システム600から情報を出力するための1つまたは複数の様々なメカニズム、たとえば、限定としてではなく、表示ユニットおよび/またはプリンタなどを含むことができる。
コンピュータ・システム600はまた、コンピュータ・システム600へ/からの通信を促進する通信サブシステム630を含むことができる。通信サブシステム630は、限定としてではなく、モデム、ネットワークカード(無線または有線)、赤外線通信デバイス、ならびに/または無線通信デバイスおよび/もしくはチップセット(たとえば、Bluetooth(登録商標)デバイス、802.11デバイス、WiFiデバイス、WiMaxデバイス、セルラ通信機構など)を含むことができる。通信サブシステム630は、本明細書に説明されているネットワーク、他のコンピュータ・システム、および/または任意の他のデバイスとデータが交換されることを可能にすることができる。特定の実施形態では、通信サブシステム630は、上記の教示に従ってハードウェア・データプレーンを実装するために使用される転送ハードウェアを含むことができる。
ストレージ・サブシステム640は、1つまたは複数のプロセッサ610によって実行できる情報およびコード(命令)を記憶するための非一時的を提供する。たとえば、ストレージ・サブシステム640は、本発明の実施形態の機能性を提供する基本的プログラミングおよびデータ構成を記憶するように構成され得る。本発明の実施形態によれば、本発明の機能性を実装するソフトウェア・コード命令またはモジュールがストレージ・サブシステム640に記憶され得る。これらのソフトウェア・モジュールはプロセッサ610によって実行され得る。ストレージ・サブシステム640は、本発明に従って使用されるデータを記憶するためのリポジトリを提供することもできる。ストレージ・サブシステム640は、メモリ・サブシステム642およびファイル/ディスク・ストレージ・サブシステム644を備えることができる。
メモリ・サブシステム642は、プログラム実行中の命令およびデータの記憶のためのメイン・ランダム・アクセス・メモリ(RAM)、固定された命令が記憶される読み取り専用メモリ(ROM)、およびフラッシュ・メモリなどを含むことができる。様々なソフトウェア要素、たとえば、オペレーティング・システム646、デバイス・ドライバ、実行可能ライブラリ、および/または1つもしくは複数のアプリケーション・プログラム648などの他のコードが、システム・メモリ642内に配置されてよく、そのようなコードは、本明細書に説明されているように、様々な実施形態によって提供されるコンピュータ・プログラムを含むことができ、ならびに/または他の実施形態によって提供される方法および/または構成システムを実装するように設計することができる。
ファイル・ストレージ・サブシステム644は、プログラムおよびデータ・ファイルのための持続的(不揮発性)ストレージを提供し、ハードディスク・ドライブ、関連したリムーバブル・メディアを伴うフロッピーディスク・ドライブ、コンパクトディスク読み取り専用メモリ(CD−ROM)ドライブ、光学式ドライブ、リムーバブル・メディア・カートリッジ、ローカルおよび/またはネットワーク・アクセス可能ストレージ、ならびに他の類似の記憶媒体を含むことができる。
本明細書で使用される「機械可読媒体」および「コンピュータ可読媒体」という用語は、機械を特定の様式で動作させるデータを提供することに関与する任意の非一時的媒体を指す。コンピュータ・システム600を使用して実装された実施形態において、様々なコンピュータ可読媒体が、命令/コードを実行のためにプロセッサ610に提供することに関与してもよく、および/またはそのような命令/コードを記憶するために使用されてもよい。コンピュータ可読媒体は、不揮発性媒体および揮発性媒体などの多くの形態を取ってよい。
上述された方法、システム、およびデバイスは例である。様々な実施形態が、様々な手順またはコンポーネントを適宜に省略、置換、または追加し得る。たとえば、代替構成において、説明された方法が説明されたのとは異なる順序で実行されてもよく、ならびに/または様々な段階が追加され、省略され、および/もしくは組み合わされてもよい。特定の実施形態に関して説明された特徴は、様々な他の実施形態で組み合わされてもよい。実施形態の異なる態様および要素が同様に組み合わされてもよい。技術は進歩しているので、要素の多くは、開示の範囲をそれらの特定の例に限定しない例である。
実施形態の完全な理解を提供するために、説明で具体的な詳細が与えられる。しかしながら、実施形態はこれらの具体的な詳細なしに実施され得る。たとえば、実施形態を不明瞭にすることを避けるために、周知の回路、プロセス、アルゴリズム、構造、および技法は不必要な詳細なしに示されている。この説明は、単に例示的な実施形態を提供し、本発明の範囲、利用可能性、または構成を限定することを意図していない。むしろ、上記の実施形態の説明は、本発明の実施形態を実装するための実施可能な説明を当業者に提供する。本発明の趣旨および範囲から逸脱することなく、要素の機能および配置に対して様々な変更が行われ得る。
本発明の特定の実施形態が説明されているが、様々な修正形態、変更形態、代替構成、および均等物も本発明の範囲内に包含される。本発明の実施形態は、特定の具体的なデータ処理環境内の動作に限定されず、複数のデータ処理環境内で自由に動作してよい。また、特定の実施形態が特定の一連のトランザクションおよびステップを使用して説明されているが、本発明の範囲が説明された一連のトランザクションおよびステップに限定されないことは当業者には明らかであろう。いくつかのフローチャートは動作を逐次プロセスとして説明しているが、動作の多くは並列または同時に実行することができる。また、動作の順序が並べ替えられてもよい。プロセスは、図に含まれない追加のステップを有してもよい。
さらに、ハードウェアとソフトウェアの特定の組み合わせを使用して特定の実施形態が説明されているが、ハードウェアとソフトウェアの他の組み合わせも本発明の範囲内であることを認識されたい。本発明の特定の実施形態は、ハードウェアのみで、またはソフトウェア(たとえば、コード・プログラム、ファームウェア、ミドルウェア、マイクロコードなど)のみで、またはそれらの組み合わせを使用して実装され得る。本明細書で説明されている様々なプロセスは、任意の組み合わせで同じプロセッサまたは異なるプロセッサ上に実装され得る。したがって、コンポーネントまたはモジュールが特定の動作を実行するように構成されるものとして説明されている場合、そのような構成は、たとえば、動作を行うように電子回路を設計することによって、またはコンピュータ命令もしくはコードを実行することなどにより動作を行うようにプログラム可能な電子回路(マイクロプロセッサなど)をプログラムすることによって、またはそれらの任意の組み合わせによって達成され得る。プロセスは、プロセス間通信のための従来の技法を含むがこれに限定されない様々な技法を使用して通信することが可能であり、異なるプロセス対が異なる技法を使用してもよく、または同じプロセス対が異なる時間に異なる技法を使用してもよい。
したがって、明細書および図面は、限定的な意味ではなく例示的な意味で考慮されるべきである。しかしながら、特許請求の範囲に記載された広い趣旨および範囲から逸脱することなく、追加、削減、削除、ならびに他の修正および変更が行われ得ることは明らかであろう。このように、本発明の特定の実施形態が説明されているが、これらは限定することを意図していない。様々な修正および均等物が添付の特許請求の範囲の範囲内にある。

Claims (21)

  1. 第1の位置に配置された制御プレーン・サーバ・コンピュータであって、
    1つまたは複数のプロセッサ、および
    前記1つまたは複数のプロセッサによって実行可能な命令を記憶するメモリ
    を備え、前記命令は、実行されたとき、前記制御プレーン・サーバ・コンピュータに、
    複数のデバイス上の動作を制御するために1つまたは複数のネットワーク・インターフェースを使用してネットワーク制御パケットを送信する制御プレーン・サブシステムを実行させる、制御プレーン・サーバ・コンピュータと、
    第2の位置に配置された、前記複数のデバイスのうちの第1のデバイスであって、
    1つまたは複数のプロセッサ、および
    前記1つまたは複数のプロセッサによって実行可能な命令を記憶するメモリ
    を備え、前記命令は、実行されたとき、前記第1のデバイスに、
    ネットワーク・データ・パケットを転送するように構成された第1のデータプレーン・サブシステムを実行することであって、前記ネットワーク・データ・パケットの前記転送は、前記制御プレーン・サーバ・コンピュータから受信された前記ネットワーク制御パケットのうちの1つに少なくとも基づく、実行すること、および
    第1のネットワーク機能を実行することができる第1の仮想マシンをインスタンス化することを行わせる、第1のデバイスと、
    第3の位置に配置された、前記複数のデバイスのうちの第2のデバイスであって、
    1つまたは複数のプロセッサ、および
    前記1つまたは複数のプロセッサによって実行可能な命令を記憶するメモリ
    を備え、前記命令は、実行されたとき、前記第2のデバイスに、
    ネットワーク・データ・パケットを転送するように構成された第2のデータプレーン・サブシステムを実行することであって、前記ネットワーク・データ・パケットの前記転送は、前記制御プレーン・サーバ・コンピュータから受信された前記ネットワーク制御パケットのうちの1つに少なくとも基づく、実行すること、および
    第2のネットワーク機能を実行することができる第2の仮想マシンをインスタンス化することを行わせる、第2のデバイスと
    を備える分散顧客構内機器(CPE)。
  2. 前記複数のデバイスは顧客構内機器(CPE)デバイスである、請求項1に記載の分散顧客構内機器。
  3. 前記第1のネットワーク機能は仮想ネットワーク機能(VNF)である、請求項1に記載の分散顧客構内機器。
  4. 前記第1のネットワーク機能は、ネットワーク・ファイアウォール、ネットワーク・レベル2転送、ネットワーク・レベル3転送、仮想プライベート・ネットワーク(VPN)、アクセス制御リスト(ACL)、または構内交換機(PBX)のうちの1つまたは複数である、請求項1に記載の分散顧客構内機器。
  5. 前記第1のデバイスは、
    前記制御プレーン・サーバ・コンピュータの前記制御プレーン・サブシステムから1つまたは複数のネットワーク制御パケットを受信し、
    前記第1のデバイスにおいて第3の仮想マシンをインスタンス化し、
    前記1つまたは複数のネットワーク制御パケットの受信に基づいて、前記第1のデバイスにおいて前記第3の仮想マシンの内部で実行される第3のネットワーク機能をインスタンス化するように構成される、請求項1に記載の分散顧客構内機器。
  6. 前記第1の仮想マシンは、前記制御プレーン・サーバ・コンピュータからの前記ネットワーク制御パケットのうちの1つの受信に少なくとも基づいて、前記第1のデバイスによってインスタンス化される、請求項1に記載の分散顧客構内機器。
  7. 前記第1のネットワーク機能は、前記制御プレーン・サーバ・コンピュータからの前記ネットワーク制御パケットのうちの少なくとも1つのネットワーク制御パケットの受信に少なくとも基づいて構成される、請求項1に記載の分散顧客構内機器。
  8. 前記第1の位置はデータセンタであり、前記第2の位置および前記第3の位置は顧客構内である、請求項1に記載の分散顧客構内機器。
  9. 前記第1のデバイスは、前記第1の仮想マシンをインスタンス化するために、前記データプレーン・サブシステムおよびハイパーバイザを備える、前記メモリに記憶されたホスト・ソフトウェア・スタックを備える、請求項1に記載の分散顧客構内機器。
  10. 前記第1の位置における前記制御プレーン・サーバ・コンピュータと前記第2の位置における前記第1のデバイスとは、ネットワーク・チャネルを使用して接続される、請求項1に記載の分散顧客構内機器。
  11. 前記制御プレーン・サーバ・コンピュータと前記第1のデバイスとの間の距離は、閾値を上回る、請求項1に記載の分散顧客構内機器。
  12. 第1のデバイス上で実行されるように構成された制御プレーン・サブシステムと、
    第2のデバイス上で実行されるように構成された第1のデータプレーン・サブシステムであって、前記第2のデバイスはさらに、第1のネットワーク機能を実行することができる第1の仮想マシンを実行するように構成される、第1のデータプレーン・サブシステムと、
    第3のデバイス上で実行されるように構成された第2のデータプレーン・サブシステムであって、前記第3のデバイスはさらに、第2のネットワーク機能を実行することができる第2の仮想マシンを実行するように構成される、第2のデータプレーン・サブシステムと
    を備え、
    前記制御プレーン・サブシステムは、前記第1のデータプレーン・サブシステムおよび前記第2のデータプレーン・サブシステムの転送機能性を制御し、前記第1のネットワーク機能および前記第2のネットワーク機能を制御するように構成される、分散顧客構内機器。
  13. 前記第1のデバイスおよび前記第2のデバイスは、顧客構内機器(CPE)デバイスである、請求項12に記載の分散顧客構内機器。
  14. 前記第1のネットワーク機能は仮想ネットワーク機能(VNF)である、請求項12に記載の分散顧客構内機器。
  15. 前記第1のネットワーク機能は、ネットワーク・ファイアウォール、ネットワーク・レベル2転送、ネットワーク・レベル3転送、仮想プライベート・ネットワーク(VPN)、アクセス制御リスト(ACL)、または構内交換機(PBX)のうちの1つまたは複数である、請求項12に記載の分散顧客構内機器。
  16. 前記第1のデバイスは、
    前記制御プレーン・サーバ・コンピュータから1つまたは複数のネットワーク制御パケットを受信し、
    前記1つまたは複数のネットワーク制御パケットの受信に基づいて、前記第1のデバイスにおいて第3の仮想マシンをインスタンス化し、
    前記1つまたは複数のネットワーク制御パケットの受信に基づいて、前記第1のデバイスにおいて前記第3の仮想マシンの内部で実行される第3のネットワーク機能をインスタンス化するように構成される、請求項12に記載の分散顧客構内機器。
  17. ネットワーク・パケットをルーティングする方法であって、
    第1のデバイスから、第2のデバイス上で実行されるように構成されたデータプレーン・サブシステムの転送機能性を制御することと、
    前記第1のデバイスから、前記第2のデバイス上の仮想マシンのインスタンス化を制御することと、
    前記第1のデバイスから、前記仮想マシンにおけるネットワーク機能の実行を制御することと
    を含む方法。
  18. 第1のデバイスから、前記転送機能性、前記仮想マシンの前記インスタンス化、および前記ネットワーク機能の前記実行を制御するために制御プレーン・サブシステムを実行することを含む、請求項17に記載の方法。
  19. 前記第1のデバイスから、第3のデバイス上で実行されるように構成された第2のデータプレーン・サブシステムの転送機能性を制御することと、
    前記第1のデバイスから、前記第2のデバイス上の第2の仮想マシンのインスタンス化を制御することと、
    前記第1のデバイスから、前記第2の仮想マシンにおける第2のネットワーク機能の実行を制御することと
    をさらに含む、請求項17に記載の方法。
  20. ネットワーク・データ・パケットを転送するための方法であって、
    第1のデバイスにおいて、前記第1のデバイスについての前記ネットワーク・データ・パケットの転送機能性を変更するための、サーバからのネットワーク制御パケットを受信することと、
    前記第1のデバイス上でホスト・ソフトウェア・スタック内で実行されているデータプレーン・サブシステムにおいて前記第1のデバイスの前記転送機能性を変更することと、
    前記第1のデバイスにおいて、第1のネットワーク・データ・パケットを受信することと、
    前記データプレーン・サブシステムを使用して前記第1のネットワーク・データ・パケットを転送することと、
    前記第1のデバイスにおいて、第2のネットワーク・データ・パケットを受信することと、
    前記第1のデバイスにおいて仮想マシン内で実行されるネットワーク機能を使用して前記第2のネットワーク・データ・パケットを処理することであって、前記ホスト・ソフトウェア・スタックにおけるハイパーバイザが、前記仮想マシンをインスタンス化する、処理することと
    を含む方法。
  21. 前記第1のデバイスは顧客構内機器(CPE)である、請求項17に記載の方法。
JP2019513292A 2016-09-09 2017-09-08 分散顧客構内機器 Active JP7113006B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201662385352P 2016-09-09 2016-09-09
US62/385,352 2016-09-09
US15/338,082 US10257089B2 (en) 2014-10-30 2016-10-28 Distributed customer premises equipment
US15/338,082 2016-10-28
PCT/US2017/050815 WO2018049256A1 (en) 2016-09-09 2017-09-08 Distributed customer premises equipment

Publications (2)

Publication Number Publication Date
JP2019533340A true JP2019533340A (ja) 2019-11-14
JP7113006B2 JP7113006B2 (ja) 2022-08-04

Family

ID=61562677

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019513292A Active JP7113006B2 (ja) 2016-09-09 2017-09-08 分散顧客構内機器

Country Status (5)

Country Link
EP (1) EP3510735B1 (ja)
JP (1) JP7113006B2 (ja)
KR (1) KR102171891B1 (ja)
CN (1) CN109863726A (ja)
WO (1) WO2018049256A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10257089B2 (en) 2014-10-30 2019-04-09 At&T Intellectual Property I, L.P. Distributed customer premises equipment
US11822946B2 (en) * 2018-06-28 2023-11-21 Cable Television Laboratories, Inc. Systems and methods for secure network management of virtual network functions
US11563677B1 (en) * 2018-06-28 2023-01-24 Cable Television Laboratories, Inc. Systems and methods for secure network management of virtual network function
CN113228812B (zh) * 2019-01-03 2024-02-06 上海诺基亚贝尔股份有限公司 用于共享控制平面容量的方法和装置
CN111130953B (zh) * 2019-12-31 2022-04-15 奇安信科技集团股份有限公司 Vnf可用性监测方法、设备及介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015118874A1 (ja) * 2014-02-06 2015-08-13 日本電気株式会社 ネットワークシステム、ネットワーク制御方法および制御装置
WO2016094825A1 (en) * 2014-12-11 2016-06-16 Brocade Communications Systems, Inc. Multilayered distributed router architecture

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101286882B (zh) * 2008-06-11 2011-04-13 华为终端有限公司 管理用户驻地设备的方法、系统和设备
CN114945007A (zh) * 2012-02-22 2022-08-26 华为技术有限公司 用户终端设备的接入方法、装置和系统
US9286444B2 (en) * 2012-02-28 2016-03-15 Verizon Patent And Licensing Inc. Next generation secure gateway
US8687976B1 (en) * 2012-12-16 2014-04-01 Juniper Networks, Inc. Optical access network having emitter-free customer premise equipment and adaptive communication scheduling
US9612854B2 (en) * 2013-12-18 2017-04-04 Telefonaktiebolaget Lm Ericsson (Publ) System and method for virtualizing a remote device
CN103997540B (zh) * 2014-06-10 2017-09-12 深圳市友华通信技术有限公司 网络分布式存储的实现方法
US9820022B2 (en) * 2014-12-11 2017-11-14 Adtran, Inc. Managing network access based on ranging information

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015118874A1 (ja) * 2014-02-06 2015-08-13 日本電気株式会社 ネットワークシステム、ネットワーク制御方法および制御装置
WO2016094825A1 (en) * 2014-12-11 2016-06-16 Brocade Communications Systems, Inc. Multilayered distributed router architecture

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
"Network Functions Virtualisation (NFV); Use Cases", ETSI GS NFV 001 V1.1.1 (2013-10), JPN6021008923, October 2013 (2013-10-01), ISSN: 0004464990 *
HARRISON J. SON: "SDN/NFV-based vCPE Services by AT&T, Verizon and KT", NETMANIAS TECH-BLOG (ONLINE), JPN6020004648, 22 August 2016 (2016-08-22), ISSN: 0004464989 *
高井浩一: "Brocade vCPEソリューションとOpenStack TackerによるVNFマネージメント", SDN JAPAN, JPN6020004646, 15 January 2016 (2016-01-15), ISSN: 0004464988 *

Also Published As

Publication number Publication date
CN109863726A (zh) 2019-06-07
EP3510735B1 (en) 2024-05-01
EP3510735A1 (en) 2019-07-17
WO2018049256A1 (en) 2018-03-15
KR102171891B1 (ko) 2020-10-30
KR20190047002A (ko) 2019-05-07
JP7113006B2 (ja) 2022-08-04

Similar Documents

Publication Publication Date Title
US11388093B2 (en) Distributed customer premises equipment
US10484275B2 (en) Multilayered distributed router architecture
US10437775B2 (en) Remote direct memory access in computing systems
CA3106407C (en) Multi-cloud connectivity using srv6 and bgp
Bakshi Considerations for software defined networking (SDN): Approaches and use cases
JP7113006B2 (ja) 分散顧客構内機器
EP2891282B1 (en) System and method providing distributed virtual routing and switching (dvrs)
US9548890B2 (en) Flexible remote direct memory access resource configuration in a network environment
US20230079209A1 (en) Containerized routing protocol process for virtual private networks
Masutani et al. Requirements and design of flexible NFV network infrastructure node leveraging SDN/OpenFlow
Jeong et al. Self-configuring software-defined overlay bypass for seamless inter-and intra-cloud virtual networking
Bakshi Network considerations for open source based clouds
US11991097B2 (en) Hybrid data plane for a containerized router
US11444836B1 (en) Multiple clusters managed by software-defined network (SDN) controller
CN117255019A (zh) 用于虚拟化计算基础设施的系统、方法及存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190417

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200131

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200206

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20200507

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200706

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20200825

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201225

C60 Trial request (containing other claim documents, opposition documents)

Free format text: JAPANESE INTERMEDIATE CODE: C60

Effective date: 20201225

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20210115

C21 Notice of transfer of a case for reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C21

Effective date: 20210119

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20210312

C211 Notice of termination of reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C211

Effective date: 20210316

C22 Notice of designation (change) of administrative judge

Free format text: JAPANESE INTERMEDIATE CODE: C22

Effective date: 20210624

C22 Notice of designation (change) of administrative judge

Free format text: JAPANESE INTERMEDIATE CODE: C22

Effective date: 20210916

C13 Notice of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: C13

Effective date: 20211014

C28A Non-patent document cited

Free format text: JAPANESE INTERMEDIATE CODE: C2838

Effective date: 20211014

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20211224

C22 Notice of designation (change) of administrative judge

Free format text: JAPANESE INTERMEDIATE CODE: C22

Effective date: 20220412

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20220413

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220414

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20220413

C23 Notice of termination of proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C23

Effective date: 20220531

C03 Trial/appeal decision taken

Free format text: JAPANESE INTERMEDIATE CODE: C03

Effective date: 20220628

C30A Notification sent

Free format text: JAPANESE INTERMEDIATE CODE: C3012

Effective date: 20220628

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220725

R150 Certificate of patent or registration of utility model

Ref document number: 7113006

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150