(58)【調査した分野】(Int.Cl.,DB名)
受信された前記パケットを前記サービスセットに関連付けるステップは、受信された前記パケットに適用されるべきサービスの順序付きリストを割り当てることを含む、請求項1の方法。
受信された前記パケットを前記サービスセットに関連付けるステップは、加入者に関連付けられるアドレスに従って、デフォルトのサービスを受信された前記パケットに割り当てることを含む、請求項1の方法。
前記加入者に関連付けられる前記アドレスは、判定された前記方向に従って、受信された前記パケットの送信元アドレス又は宛て先アドレスから選択される、請求項6の方法。
受信された前記パケットに既に適用されたサービスを除去するために、判定された方向及び前記パケットの位置に従って、関連付けられた前記サービスセットを修正するステップをさらに含む、請求項1の方法。
転送する前記ステップは、割り当てられた前記新たな宛て先アドレスに関連付けられるポートを選択することと、選択された前記ポート上で前記パケットを送信することと、を含む、請求項13の方法。
前記プロセッサは、判定された前記方向及び受信された前記パケットの第1のヘッダフィールドに従って、受信された前記パケットを前記サービスセットに関連付ける、請求項18のスイッチ。
前記プロセッサは、加入者に関連付けられたアドレスに従って、デフォルトのサービスセットを受信された前記パケットに割り当てるように構成される、請求項15のスイッチ。
前記プロセッサは、受信された前記パケットの第2のヘッダフィールドに従って、前記デフォルトのサービスセットを修正するように構成される、請求項20のスイッチ。
前記プロセッサは、前記第1のポートに従って、関連付けられた前記サービスセット上の受信された前記パケットの前記位置を判定するように構成される、請求項15のスイッチ。
【背景技術】
【0002】
モバイル及び固定のネットワーク事業者は、彼らのネットワークを横断するネットワークトラフィックを検査し及び改変するために、多様なタイプのミドルボックス又はインラインサービスを使用する。本文書においてサービスとして言及されることになるそれらミドルボックスは、エンドユーザにとっては透過的であり、透過的キャッシング(transparent caching)、ウィルススキャン、及びディープパケットインスペクションといった機能性を提供する。これらサービスは、通常はパッケージ化され、(物理的又は仮想的のいずれかの)専用の製品として販売され、しばしば高価である。
【0003】
事業者は、トラフィック需要における急激な増加に直面しており、彼らのネットワークを収益化する新たな手法を検討している。サービス製品の高コストに起因して、事業者は、それらサービスのキャパシティをその成長に一致させることを回避しようと望む。事業者は、むしろ、全てのトラフィックにあらゆるサービスを通過させる代わりに、トラフィックを特定のサービスのセットへと選択的に方向付ける能力を有するであろう。この能力は、近年のトラフィックの激増の源であるビデオトラフィックを、事業者がディープトラフィックインスペクションといった高価なサービスから離して誘導することを可能とし、よって、新たなサービス製品に投資する必要性が低減される。
【0004】
特定のクラスのトラフィックを予め定義されるサービスのセットを通過するように誘導する能力は、事業者のための収益の新たなストリームを可能にするためにも使用されることができる。事業者は、ウィルススキャン又はコンテンツフィルタリングといったサービスを、そうしたサービスに支払いをすることを選択する顧客にオファーし得る。
【0005】
サービスチェーン又はパスは、順序付きのサービスのセットである。トラフィックの誘導(traffic steering)は、トラフィックを分類し、様々なクラスのトラフィックを特定のサービスチェーンを通過するように方向付けるアクションである。大まかな3つのクラスの解決策が、今日、何らかの形態のトラフィックの誘導及びサービスの連鎖化(chaining)を実装するために使用されている。
【0006】
第1のアプローチは、拡張可能なルータ又はゲートウェイの一部としてサービスを統合することである。事業者は、追加のサービスカードをそのルータ又はゲートウェイに追加することにより、新たなサービスを追加することができる。
【0007】
第2のアプローチは、各サービスがそのチェーン内の次のサービスにトラフィックを送信するように構成される、1つ以上の静的サービスチェーンを構成することである。ポリシーベースルーティング(PBR)を使用するルータは、着信(incoming)トラフィックを分類し、分類結果に基づいて各チェーンの先頭にあるサービスにそれを転送する。
【0008】
第3のアプローチは、PBRを使用するルータを使用し、各サービスがトラフィックの処理後ルータにトラフィックを返すように構成されることである。ルータは、各サービスホップの後でトラフィックを分類し、分類結果に基づいて適当なサービスにそれを転送する。
【0009】
3つのクラスの解決策全てが、欠点を有する。第1のアプローチは、既存のサードパーティサービス製品の統合をサポートしない。この解決策は、プロプライエタリであり、サービスベンダーは、ルータ又はゲートウェイによりサポートされるソフトウェア及びハードウェア構成にそれらのアプリケーションを移植しなければならない。この解決策は、サービスの数として拡張性の問題を潜在的に抱えており、合計の帯域幅がルータのキャパシティにより制限される。
【0010】
第2のアプローチは、一元的な方法でのポリシーの定義をサポートせず、代わりに各サービスがトラフィックを分類し適当な次のサービスに誘導するように構成されることを必要とする。このアプローチは、大量のサービス固有の構成を必要とし、エラーを起こしやすい可能性がある。また、第2のアプローチは、加入者一人毎のトラフィックの誘導をサポートせず、構成され得る様々なサービスチェーンを制限するため、柔軟性にも欠ける。これらの制限を避けて通ることは、トラフィックを分類し誘導するための各サービスにおける追加的な構成、及びネットワークに接続する加入者として動的にこれらの構成をプッシュするための自動化された方法を必要とするであろう。
【0011】
第3のアプローチも、全てのサービスを経てトラフィックにルータを通過させるため、拡張性の問題を抱える。N−1個のサービスを有するチェーンをサポートするために、ルータは、N倍の着信トラフィックライン速度をハンドリングすることが可能でなければならない。
【0012】
したがって、上述した問題を未然に防ぎ、又は軽減するシステム及び方法を提供することが望ましいであろう。
【発明を実施するための形態】
【0029】
本発明は、サービスのセットを通じてトラフィックを誘導するためのシステム及び方法を対象とする。
【0030】
参照が添付図面に従って付番された、以下の特定の要素に対してなされ得る。以下の議論は、本発明の範囲を限定するものとしてではなく、本来例示的であるものとして取られるべきである。本発明の範囲は、特許請求の範囲において定義され、当業者が理解するように、同等の機能的要素を有する要素を置換することによって修正されることができ、以下に述べる実装の詳細によって限定されるものと考えられるべきではない。
【0031】
本開示のいくつかの実施形態は、OpenFlowプロトコルを使用するものとして議論されるであろうが、他の種類のソフトウェア定義型ネットワーキング(SDN:Software Defined Networking)を用いて実装されてもよい。OpenFlowは、ネットワークを介してネットワークスイッチ又はルータの転送プレーンにアクセスできるようにする、通信プロトコルである。OpenFlow1.1は、複数のテーブル及びテーブル間で情報を交換するためのメタデータフィールドをサポートする。本開示は、これらの特徴を利用して、複数ステップでの分類をフラット化する場合に起こる組合せ積(cross-products)を回避することによって、ルールの数を減少させる。
【0032】
サービスネットワークにおいて、事業者は、トラフィッククラスを特定するサービスポリシー、及び各クラスが横断すべきサービスのチェーンを定義することができる。これらのポリシーは、コントローラによってサービスネットワーク内のスイッチ上にプログラムされたルールに変換される。これらのルールは、ポリシーにより特定されたものとして、順序付きのサービスのチェーンを通じてネットワークトラフィックを誘導する。
【0033】
本発明の実施形態は、修正なしで既存の及びサードパーティのサービスの統合をサポートするため、柔軟性を提供する。サービスインスタンスは、事業者によって任意の方法でその位置が特定され(located)、及び連鎖化されることができ、各サービスインスタンスは、複数のサービスチェーンの一部であり得る。加入者及びトラフィックの種類の粒度においてトラフィックを誘導する能力もまた、提供される。
【0034】
ここで議論されるアプローチは、3つの異なる方法で拡張性を提供する。第1に、それは、ルールの組合せ積を回避し、替わりにメタデータと組み合わされる複数のテーブルを用いてテーブル間の情報を通信することによって、スイッチ内に格納されることを要するルールの数を減少させる。第2に、依然として集中制御を維持しつつも、単一の集中型ルータ又はロードバランサを使用する替わりに、スイッチのネットワークに負荷を分散させる。第3に、分類及びヘッダ書き換えといったコストのかかる転送動作が、サービスネットワークの境界(perimeter)にプッシュされ、これは様々な意味で有益であり得る。これらの動作は、サービス間のスイッチホップの数に関わらず、サービス間で一度だけしか実行される必要がない。さらに、ネットワークにおいてトラフィックが複数のスイッチ上に分散され、合計のスループットに対する要求は、ネットワークの境界においてより少ないことが多い。商品(commodity)サーバ上で動作する仮想製品の使用と組み合わされる本発明は、仮想マシンモニタ(virtual machine monitor)上で動作するソフトウェアスイッチの上に全てのコストのかかる動作をプッシュすることを可能とする。
【0035】
転送プレーンは、所与のサービスポリシーのセットをサポートするために必要とされるルールの総数を減少させるために、複数のテーブルを使用するように設計され得る。
【0036】
メタデータフィールド内のサービスパスの符号化は、多数のサービスチェーンをサポートし、サービス毎に複数のインスタンスをサポートするように設計され得る。符号化は、柔軟であることができ、各サービスが独立して拡大縮小されることを可能にする。
【0037】
サービス間のスイッチホップの数に関わらず、分類及びヘッダ書き換えといったコストの掛かる動作がサービス間で一度だけしか行われる必要がないように、ネットワークの組織化が提供され得る。
【0038】
ここに記載されるトラフィック誘導メカニズムは、ネットワークの構成及びそれを横断するトラフィックの種類に関して、以下を前提とする。1)あらゆるサービスは、2つのポートを使用するスイッチに接続される。ルータ及びブリッジと同様に、インラインサービスは定義によってトラフィックにより横断されるので、これは当然の要件である。サービスは、アップストリーム及びダウンストリームトラフィックのはっきりとした概念(notion)を有する必要があり、2つのポートの使用を必要とする。2)サービスネットワークは、各端で単一のゲートウェイにより境界される(bounded)。単一のルータがアクセスネットワークをサービスネットワークに接続し、単一のルータがサービスネットワークをインターネットに接続する。3)全てのサービスがイーサネットレイヤでアドレス可能である。いくつかのサービスはブリッジのように振る舞い、この前提に違反するかもしれない。4)サービスネットワークを通過する全てのトラフィックが加入者トラフィックである。5)IPSec(Internet Protocol Security)ゲートウェイ及びCDN(Content Delivery Network)サーバといった、通信エンドポイントである終端サービスが、ゲートウェイノードの1つに接続される別個のサブネット上に位置される。
【0039】
ここで
図1を参照して、例としてのサービスネットワーク100は、ネットワークの境界における境界スイッチPS1 102、PS2 104及びPS3 106、並びにネットワークの内部における内部スイッチSW1 108を含む。境界スイッチ102、104、106は、OpenFlowスイッチで実装されることができ、一方、内部スイッチ108は、OpenFlowスイッチ又は単純なイーサネットスイッチのいずれかで実装されることができる。(サービスノードS1 109、S2 110、S3 112、S4 114といった)サービス及び(R1 116、R2 118といった)ルータは全てサービスネットワーク100の境界に接続されている。誘導ネットワーク全体が単一のレイヤ2ドメインである。サービスの複数のインスタンスが存在することができ、各サービスインスタンスは、(潜在的に異なるスイッチ上にあり、)サービスネットワーク100に接続される、各トラフィック方向のための2つの通信インタフェースを有する。2つより多くのインタフェースを有するサービスもまた、提案されるトラフィック誘導メカニズムによりサポートされる。
【0040】
境界スイッチ102、104、106は、2種類の入力/出力ポート:ノードポート及びトランジットポートを有することができる。サービス及びルータは、ノードポートに接続される。トランジットポートは、他の境界スイッチ又は内部スイッチに接続する。例示的なサービスネットワーク100では、各境界スイッチ102、104、106は、少なくとも1つのアップストリーム対向ノードポート、少なくとも1つのダウンストリーム対向ノードポート及び少なくとも1つのトランジットポートを有する。各サービスノードS1 109、S2 110、S3 112及びS4 114は、境界スイッチに接続される。境界スイッチ102、104、106は、内部スイッチ108を介して接続される。
【0041】
108のような内部スイッチは、専らトランジットポートで構成され、単純にそれらの宛て先MAC(Media Access Control)アドレスに基づいてトラフィックを転送する。したがって、これらのスイッチは、単純なイーサネットスイッチで実装され得る。必要に応じて、内部サービスネットワーク100においてOpenFlowスイッチを使用してマルチパスサポートといった特徴を有効にすることに利点がある可能性がある。
【0042】
(ルータR1 116及びR2 118といった)ゲートウェイノードから入ってくるもの、又はサービスから戻ってくるもののいずれかの着信トラフィックは、常に、境界スイッチを介しノードポートを通過してサービスネットワーク100に入る。ノードポートを通過して到着するパケットは、それらの割り当てられたサービスパスにおいて、(サービス又はゲートウェイであり得る)次のノードに向けて処理され誘導される。トランジットポートに到着するパケットは、それらの宛て先MACアドレスを用いて単に転送される。
【0043】
ルータ116は、サービスネットワーク100をユーザ機器120及び122に接続することができる。ルータ118は、サービスネットワーク100を内部ネットワーク124及び/又はインターネット126に接続することができる。
【0044】
高いレベルにおいて、トラフィック誘導は、2つのステップ処理で記述されることができる。第1のステップは、着信パケットを分類し、予め定義されたポリシーに基づいて着信パケットをサービスパスに割り当てる。第2のステップは、その割り当てられたサービスパスに沿った現在の位置に基づいて“次の”サービスにパケットを転送する。この2つのステップのトラフィック誘導処理は、パケットがノードポートに到着するときに任意の2つのノード(サービス又はルータ)間のスイッチの数に関わらず、2つのノード間で1度だけしか実行される必要がない。
【0045】
ここで述べるトラフィック誘導処理は、加入者ベースのポリシー、アプリケーションベースのポリシー、及びフローベースのポリシーの3種類のサービスポリシーをサポートする。これらのポリシーは、事業者により特定されることができ、集中型コントローラ(
図1に示さず)により関連するスイッチにプッシュされ得る。
【0046】
加入者ベースのポリシーは、加入者毎に定義されているポリシーである。これらのポリシーは、加入者のIPアドレス及び特定の加入者のトラフィック各々が横断すべきサービスのセットを特定する。
【0047】
アプリケーションは、YouTube(登録商標)等のエンドユーザインターネットアプリケーション、HTTP(Hypertext Transfer Protocol)等のトラフィックの種類、又は両者の組み合わせを表す。これらの種類のポリシーは、IPアドレスブロック及び/又はUDP(User Datagram Protocol)/TCP(Transmission Control Protocol)ポートのいずれかの観点で定義される。それらは、アプリケーションごとに特定され、全ての加入者に適用する。アプリケーションベースのポリシーは、加入者ベースのポリシーにおいて指定されたサービスのセットからサービスを追加又は除去することにより、加入者ベースのポリシーを精細化する。
【0048】
フローベースのポリシーは、単一のフロー又はIP5タプル(即ち、送信元IPアドレス、宛て先IPアドレス、プロトコル、送信元ポート、宛て先ポート)に特有のポリシーである。それらは、特定のフローについて加入者及びアプリケーションポリシーを動的に覆すために使用される。これらのポリシーから派生する転送ルールは、コントローラにより動的にプッシュされ、フローの中間でさえ、異なるサービスのセットに向けてフローを効果的に再誘導し得る。
【0049】
さらに、サービスを順序付けするポリシーがサポートされることができる。サービスを順序付けするポリシーは、上述した3つの種類のサービスポリシーとは異なる。それらは、トラフィックとサービスとのマッピングを指定しないが、代わりに、各トラフィックの方向(アップストリーム及びダウンストリーム)に対するサービス間の相対的な順序付けを指定する。コントローラは、これらの相対的な順序付けを全体的な順序付けに変形することができ、この順序付けを用いてサービスポリシーにおいて指定されるサービスのセットを順序付けされたサービスチェーンに変換することができる。
【0050】
本発明の実施形態の誘導メカニズムを実装するデータパスが、テーブル探索の数に関与する。転送の決定は、パケットが受信された入口ポートと同様に、パケットのレイヤ2−レイヤ4コンテンツに基づいてなされることができる。一実施形態では、テーブルのような単一のTCAM(Ternary Content Addressable Memory)が、ポリシーベースのルーティングでのように、必要とされる機能を特定するのに用いられ得る。しかしながら、これは、同一テーブル内の加入者、アプリケーション及びポートの組合せ積を伴うであろうから、拡張可能な解決策ではないであろう。パケット方向及び複数のテーブルを用いて、これを複数のステップに分離することが可能であり、それにより各テーブルの線形的な拡張(scaling)という結果がもたらされる。テーブルにわたって機能を分離するための複数の方法がある。それが拡張性の問題を導入しないならば、いくつかのテーブルが結合されてもよい。
【0051】
1つのテーブルからの中間結果は、メタデータを用いて他のテーブルに通信されることができる。メタデータは、後続の探索キーの一部として用いられ、又はさらに修正されることができる。メタデータの1つの重要な部分は、トラフィックの方向である。サービスネットワークを横断する全てのパケットは、アップストリーム又はダウンストリームのいずれかに伝播していると考えられる。誘導ネットワークにおける各ノードポートは、アップストリーム又はダウンストリームのいずれかに対向している。
図1に戻って参照すると、ダウンストリーム対向ポート及びアップストリーム対向ポートの両方を有する境界スイッチ102、104、106の例が示されている。ダウンストリーム対向ポートに到着する全てのパケットは、アップストリームに伝播し、その逆もまた同様である。トランジットポートに到着するパケットは、いずれの方向にも伝播し得る。それらの方向は宛て先MACアドレスに基づいて知られ、宛て先MACアドレスはアップストリーム対向又はダウンストリーム対向サービス及び/又はルータポートのいずれかに相当するであろう。
【0052】
メタデータの別の部分は、適用されるインラインサービスのセットである。このメタデータは、1ビットが可能性のある各サービスに対応する、ビットベクターとして符号化されることができる。より洗練された符号化は、複数のサービスインスタンス上のロードバランシングのような、より高度な特徴を有効にするために用いられることができる。データパスにおいて、このメタデータは、セットされその後修正されることができ、適用されるべき次のサービスを選択するのに最終的に用いられ得る。
【0053】
図2は、本発明の実施形態に係るデータパス機能のハイレベルなフローチャートである。
図2は、マルチテーブル探索アプローチを使用して、境界スイッチにより受信されるパケットを処理及び分類するための例としての方法論を示す。パケットに関連付けられるサービスセット及び方向の情報は、セットされ、各テーブル探索の結果に基づいて修正されることができる。
【0054】
パケットはスイッチにより受信され、調べられるべき最初のテーブルは、方向テーブル202である。それは、テーブル探索のためのキーとしてパケットが受信された入口ポートを使用し、2つの目的を果たす。第1に、パケットがノードポート又はトランジットポートに到着したかを判定することである。第2に、パケットがノードポートに到着した場合、パケットがどの方向に向かっているかを判定することである。パケットがダウンストリーム対向ポートに到着した場合、それはアップストリームに伝播するものと判定される。パケットがアップストリーム対向ポートに到着した場合、それはダウンストリームに伝播するものと判定される。方向ビットは、ステップ204でそれに応じてセットされる。パケットがトランジットポートに到着した場合、それは、方向テーブルに“不一致(miss)”となり、処理は、MACテーブル206に進むであろう。
【0055】
MACテーブル206についての探索キーは、パケットの宛て先MACアドレスである。このテーブルのコンテンツに基づき、パケットは、別のトランジット若しくはノードポートのいずれかに直接転送208され、又は破棄210される。
【0056】
方向テーブル202において一致、即ち“ヒット”があった場合、調べられるべき次のテーブルは、マイクロフローテーブル212である。このテーブル探索のためのキーは、パケットの5タプル(送信元及び宛て先IPアドレス、IPプロトコルフィールド、並びにTCP/UDP送信元及び宛て先ポート)と共に方向ビットである。マイクロフローテーブル212は、特定のTCP/UDPフローの選択的な動的誘導のために用いられる完全に一致するエントリを含む。マイクロフローテーブル212にヒットがある場合、サービスセットは、ステップ214でそれに応じてセットされる。
【0057】
マイクロフローテーブル212に完全な一致がない場合、調べられるべき次のテーブルは、加入者テーブル216である。加入者テーブル216は、現在の方向に対する加入者のデフォルトのサービスセットを取得するために使用される。このテーブルに対するキーは、加入者のIPアドレスと共に方向ビットである。加入者のIPアドレスは、パケットの方向に依存して、送信元又は宛て先IPアドレスフィールドのいずれか1つから生じる。例えば、パケットの方向が“アップストリーム”である場合、加入者のIPアドレスは、パケットの送信元IPアドレスであると判定される。このテーブルは、最長プレフィックス一致(LPM:longest-prefix match)探索テーブルであり得る。加入者テーブル216で“不一致”であれば、デフォルトのアクションは、ステップ218でパケットを破棄することである。加入者テーブル216に一致がある場合、サービスセットのメタデータが、220において加入者のデフォルトのサービスにセットされる。
【0058】
加入者テーブル216に続くのはアプリケーションテーブル222である。このコンテキストでは、“アプリケーション”は、遠隔通信エンドポイントをIPアドレス並びに/又はプロトコル及び/若しくはポート番号により識別されるものとして言及する。それは、任意の静的レイヤ3−レイヤ4のアプリケーションポリシーに従って、加入者のデフォルトのサービスセットを修正するために使用される。加入者テーブル216について述べられるのと同様に、アプリケーションIPアドレスは、パケットの方向に依存して、パケットの送信元又は宛て先IPアドレスであり得る。ワイルドカード、プレフィックス、及び範囲がこのテーブル探索において許容され得る。この情報に基づいて、特定のサービスが、ステップ224でサービスセットから除外され、又は追加され得る。アプリケーションテーブル222において不一致である場合、パケットは破棄されず、サービスセットは修正されない。
【0059】
パス状態テーブル226が、アプリケーションテーブル222又はマイクロフローテーブル212の後に続く。パステーブル226の目的は、サービスセット内のどのサービスが既にパケットに適用されたか、ひいてはサービスパス上のパケットの位置、を判定することである。パケットは同一の境界スイッチを複数回横断する可能性があるため、これは重要であり、パケットは毎回異なった扱いを受けるべきである。パケットが受信された入口ポートは、この情報を提供するには十分である。パス状態テーブル226に達する場合、パケットがサービス又はルータに直接接続されるノードポートに到着したことを意味する。入口ポートは、どのサービスがちょうど適用されたか、及び、もしあれば方向についての情報を提供する。サービスセットの各方向(互いに正反対であるかもしれず、又はそうでないかもしれない)において、サービスの全体的な順序付けが存在する。方向及び前のサービスに基づいて、サービスセットフィールドは、前のサービス及びそれに先行する全ての他のサービスを除外するために228で修正される。
【0060】
ノードポートパスに沿った最後のテーブルは、次の宛て先テーブル230である。それは、キーとして方向ビット及びサービスセットフィールドを使用する。次の宛て先テーブル230は、任意のビットマスク及びルール優先順位を有する、TCAMのようなテーブルであり得る。方向ビットに基づいて、その方向における全体的なサービス順序付けに従って、サービスセット内のビットをスキャンすることができる。それが発見する最初の又は最も優先順位が高いサービスが次の宛て先となるであろう。サービスセットが空の場合、方向ビットに依存して、次の宛て先はアップストリーム又はダウンストリームいずれかのルータとなるであろう。次の宛て先は、現在のスイッチ又は別のスイッチに接続され得る。宛て先が異なるスイッチに接続される場合、宛て先MACアドレスは、そのサービス又はルータに対応する値にセットされ、パケットは、適当なトランジットポートに送出232される。宛て先が直接接続される場合、MACアドレスは、必要に応じて更新され、パケットは、対応するノードポートに送出232される。
【0061】
表1は、各々に導入されるルールの種類を特定する、上述したテーブルの概要である。
【0063】
MACアドレスは、必要に応じて標準のイーサネットLANにわたって、遠隔の境界スイッチ上の特定のノードポートにパケットを方向付ける手段として論じられた。インラインサービスボックスと同様、イーサネットコア(存在する場合)と相互運用し、効果的に使用するために、MACアドレスを扱うのに特別な注意を払うべきである。
【0064】
その転送タスクに使用する必要があるであろう全てのMACアドレスを知るために、メカニズムがイーサネットコアネットワークに提供され得る。これを達成する1つの方法は、誘導ネットワークコントローラが、イーサネットコアに接続される境界スイッチのトランジットポートから、全てのサービス及びこれらのトランジットポートを通して到達されるべきルータポートのMACアドレスに対応する送信元MACアドレスと共に、特別に作られたイーサネットフレームを定期的に送信させることである。イーサネットスイッチと境界スイッチとの間に複数のリンクを有し、各リンクが異なるサービスに向かうトラフィックを運ぶことが可能である。
【0065】
トランジットポートに送信される他のパケット(即ち、ユーザトラフィック)は、コアイーサネットスイッチのブリッジテーブルを混乱させるべきではない。これは、イーサネットコアに接続される各トランジットポートが、ユーザトラフィックに対し異なる送信元MACアドレスを使用するべきであるということを意味する。これは、宛て先として使用されない一意のMACアドレスであり得る。又は、それが、そのトランジットポートに対応するサービスのうち1つのMACアドレスであり得る。これは、事実上標準のイーサネットコアがあると仮定する。境界スイッチは、また、互いに直接接続されてもよい。イーサネットコアがない場合、トランジットポートにわたる送信元MACアドレスは重要とならないであろう。
【0066】
サービスそれ自体がMACアドレスについて特別な要求を有するかもしれない。例えば、サービスインタフェースは、MACアドレスで構成されることができ、サービスは、それに向かうパケットが正確な宛て先MACアドレスを有することを期待できる。この場合、送信元及び宛て先MACアドレスは、これに適応するためにセットされなければならない。他方、サービスは、イーサネットレイヤにおいて透過的であることができる。この場合、サービスは、単に1つのポートから他のポートにトラフィックを通過させるかもしれず、あるいは、サービスは一種のMACラーニングを採用するかもしれない。サービスがMACラーニングを実行する場合、誘導ネットワークは、アップストリームパケットを1つの送信元MACアドレスと共に、ダウンストリームパケットを別の送信元MACアドレスと共に送信することにより、それに適応しなければならない。宛て先MACアドレスは、望ましくは反対方向において送信元であるであろう。
【0067】
図2に記載されたデータパスは、簡単化の目的のため、加入者データトラフィックに着目されていた。同様に、様々な種類の制御トラフィックを扱う必要があるかもしれない。最低でも、アドレス解決プロトコル(ARP:Address Resolution Protocol)がルータポートにおいて、及び恐らく同様にサービスポートにおいてもサポートされるべきである。これらの制御プロトコルをサポートするために、第1のテーブルが、イーサタイプ、IPプロトコルといった様々なレイヤ2−レイヤ4フィールドにおける一致、及びコントローラに対しパケットを捕捉する能力を許容するために強化されることができる。
【0068】
代替的なシナリオでは、2人の加入者が互いに通信することができる。この場合、特にセキュリティ関連のサービスが存在する場合、各加入者のトラフィックの全ての関連サービスを適用することが依然として必要である。ダウンストリームルータは、この状況で誘導するネットワークを迂回するべきではない。これが起こる場合、トラフィックは、2つのエンドポイント間で2回、1度はアップストリーム、1度はダウンストリームに誘導ネットワークを横断するであろう。アップストリーム方向で、ある加入者のサービスが適用されるであろう。ダウンストリーム方向で、他の加入者のサービスが適用されるであろう。これは、ここで述べるメカニズムにおいて説明される。アップストリームルータは、トラフィックを誘導ネットワークに戻すことを期待され得る。
【0069】
いくつかのサービスノードが、同一のパケットを2回見る必要はないかもしれない。さらに、(例えば、サービスがルーティングを実行する場合、)サービスの両側で加入者IPアドレスを見ることに関連する問題がある恐れがある。アプリケーションテーブルにおけるルールは、加入者間のトラフィックについてサービスを1方向に迂回させるために、実装されることができる。
【0070】
OpenFlow1.1プロトコル転送モデルを使用する
図2の例示的なデータバスの実装は、当業者により容易に理解されるであろう。メタデータの項目(方向及びサービスセット)は、OpenFlowの64ビットのメタデータフィールド内に符号化される。これは、方向について1ビットを必要とし、最大で63の異なるサービスを許容するサービスセットを符号化するために63ビットまで残す。OpenFlow1.1は、次の等式に基づき、任意のマスクを使用してメタデータフィールド上の一致をサポートし、メタデータフィールドの更新をサポートする:meta=(meta&〜mask)|(value&mask)。この値(value)及びマスク(mask)は、任意の64ビットの数であり得る。
【0071】
表2は、上述した例としてのOpenFlow1.1スイッチテーブルアクションの概要である。
【0073】
図2のフローチャートの加入者テーブルは、パケットの方向に基づいて加入者のIPアドレスを抽出したことに留意すべきである。表2のOpenFlow実装例では、送信元IPアドレス及び宛て先IPアドレスの両方が、方向ビットを有するメタデータフィールドと共に、照合フィールドとして代わりに含まれる。このテーブルに導入されるルールは、メタデータフィールド内の方向ビットに対応して、ワイルドカードとして送信元又は宛て先IPアドレスのいずれか、及び全てのマスクされた他のメタデータビットを有するであろう。
【0074】
加入者テーブル内に記載されている同一のコンセプトが、アプリケーションテーブルにも同様に適用される。OpenFlow1.1は、ポートの範囲又はマスクをサポートしないため、誘導メカニズムの現在の実装は、送信元及び/又は宛て先ポートについては完全一致に限定される。
【0075】
本開示の実施形態をさらに示すために、
図1のトポロジーに基づく例について説明する。
図3は、境界スイッチPS2 104のデータパスについてのテーブル全体を導き出すために、
図1のトポロジーと組み合わせて使用される構成情報を含む構成データ300の例を示す。構成データ300は、加入者情報、サービス情報、ルータ情報、アプリケーション情報及び全体的なサービス順序付けを含む。テーブルの大部分が、構成が変わる場合にのみ変化するという意味で、ほとんど固定である。
【0076】
図4a−4fは、
図3の構成情報に従って、
図1のトポロジー内の境界スイッチ104に投入され格納されるであろうテーブルエントリの例を示す。この例で明確に示されていない1つのテーブルは、マイクロフローテーブルである。これは、マイクロフロー情報が、静的な構成からではなくむしろ動的なフロー分析から得られるものだからである。特定のマイクロフローが再誘導されるべきであると、動的ポリシー(即ち、レイヤ5−レイヤ7の情報に基づく)が決定づける場合、対応するマイクロフロールールを関連するスイッチに導入するであろう。例では、メタデータフィールドが各テーブルについてどのように照合され又は更新されるかが提示されるであろう。これらの例は、方向を表す最も重要なビットを有する5ビットのメタデータフィールド(1方向ビット、4サービスビット)に基づく。
【0077】
図4aは、方向テーブル410の例を示す。方向テーブル410は列412を含み、列412は各々入口ポート412a及び関連付けられたアクション412bを含む。パケットの方向(アップストリーム又はダウンストリーム)は、パケットが到着する入口ポートにより判定される。例えば、入口ポート1で受信されるパケットについて、方向メタデータは、列412’に示されるように“ダウンストリーム”にセットされる。この実施形態では、値1がアップストリーム方向を表し、値0がダウンストリーム方向を表す。2番目のルールでは、列412”において、メタデータフィールドは以下のように更新されるであろう。
【0079】
図4bは、MACテーブル420の例を示す。MACテーブル420は、列422を含み、列422は各々宛て先MACアドレス422a及び関連付けられたアクション422bを含む。MACテーブル420についてのアクションは、対応する宛て先MACアドレスに基づいて、送信元MACアドレス(smac)をセットすること、及びパケットを送信するポートを選択することである。
【0080】
図4cは、加入者テーブル430の例である。加入者テーブル430は、列432を含み、列432は各々方向432a、IPアドレス432b、及びアクション432cを含む。加入者テーブルについてのアクションは、方向ビットは修正されないままで、加入者のIPアドレスに対し適切なサービスセットに基づいて、メタデータフィールド内のサービスビットをセットする。1番目のルールについて、S1及びS3についてのサービスビットは、以下のようにセットされる。
【0082】
図4dは、アプリケーションテーブル440の例である。アプリケーションテーブル440は、列442を含み、列442は各々方向442a、IPアドレス442b、プロトコル442c、ポート442d、及び関連付けられたアクション442eを含む。アプリケーションテーブルについてのアクションは、このテーブルで一致がある場合、サービスビットを更新又は修正することである。サービスビットのサブセットは、セットされているか又はクリアされているかのいずれかである。方向ビットは修正されない。1番目のルールについて、S2についてのビットはセットされ、S3についてのビットはクリアされる。追加又は除去されているサービスに対応するビットは、マスクフィールド内でセットされる。値フィールドは、これらのサービスについて新たな状態(存在する又はしない)を含む。
【0084】
図4eは、パス状態テーブル450の例である。パス状態テーブル450は、列452を含み、列452は各々入口ポート452a及び関連付けられたアクション452bを含む。パス状態テーブルについてのアクションは、割り当てられたサービスセット内の前のサービス及びそれに先行する全てのサービスに対応するビットをクリアすることである。3番目のルールについて、メタデータフィールドは、以下のように更新されるであろう。
【0086】
図4fは、次の宛て先テーブル460である。次の宛て先テーブル460は、列462を含み、列462は各々方向462a、サービスセット462b及び関連付けられたアクション462cを含む。いずれの前のサービスに対応するビットもパス状態テーブルにおいてクリアされており、次の宛て先テーブルにおける探索では、チェーン内の次のサービスを判定するために最上位の残りのビットを見つける。例として、最初の3つのルールについてのメタデータフィールドにおける一致は、次のようになるであろう(Xにセットされたビットは、マッチングの間マスクされている)。
【0088】
上記例に対するいくつかの可能性のある拡張についてここで論じる。単一の物理サービスミドルボックスが、必要とされるスループットを供給するのに不十分である場合、そのサービスの複数のインスタンスが、誘導ネットワークに接続されることができ、別個のロードバランサの必要性なしで誘導ネットワークがそれらの間でトラフィックを分散させることができる。これは、説明した転送プレーンのメカニズムを修正することなく行われ得る。
【0089】
加入者テーブル430及びマイクロフローテーブル(図示せず)は、サービスセットのメタデータをコントローラ指定の値にセットする能力を有し得る。アプリケーションテーブル440及びパス状態テーブル450は、サービスセットのメタデータ中の選択コントローラ指定のビットを修正する能力を有し得る。次の宛て先テーブル460は、サービスセットのメタデータ内の選択コントローラ指定のビットをマスクし、照合する能力を有し得る。したがって、コントローラは、これらのビットのフォーマットをいじることができる。簡単な場合では、説明したように、1ビットが(それが適用されるべきか否かを示す)サービスを表し、各サービスのインスタンスが1つだけ存在する。この符号化は、選択サービスがメタデータに含まれるインスタンス識別子を追加的に有することができるように拡張されることができる。nビットがそのような識別子に割り当てられる場合、2
nまでのサービスインスタンスが表され得る。利用可能な固定数のビットで、これはサービスの最大数とサービスごとのインスタンスの数との間のトレードオフである。各サービスは、インスタンス識別子のために異なるビット数を使用することができる。
【0090】
例示的な符号化スキームでは、メタデータフィールドは64ビット幅である。1ビットは、アップストリーム又はダウンストリームトラフィックを示す方向ビットである。3ビットは未使用である。サービスチェーンは、13の異なるサービスのセットからなる。サービスのうち2つは、8ビット(1適用ビット、7ビットはインスタンス識別子として使用される)を使用して表され、サービス毎に128個までのインスタンスを許容する。残りの11個のサービスは、4ビット(1適用ビット、3インスタンス識別子ビット)を使用して表され、サービス毎に8個までのインスタンスを許容する。
【0091】
インスタンス識別子は、加入者テーブル430内のデフォルトのサービスセットと共にセットされることができる。一度セットされると、インスタンス識別子ビットは、後続のアプリケーションテーブル440によって修正されない。アプリケーションテーブル440は、サービスが適用されるべきかを示すフラグビットを修正するだけである。これは、サービスが加入者のデフォルトのサービスセットの一部でない場合でも、加入者の粒度においてロードバランシングを可能にする。多数の加入者を仮定すると、このロードバランシングの粒度は十分であろうことが期待される。
【0092】
ここで述べたようなサービスパスの符号化は、2つの潜在的な制限に対処するために拡大され得る。第1に、サービスの順序付けは、各方向(アップストリーム対ダウンストリーム)に課され得る。所与の方向について、以下の順序付けの制約A→B及びB→Cが定義されている場合、順序付けの制約C→Aは却下されるであろう。第2に、サポートされるサービスの総数は、サービスパス内で符号化され得るサービスの最大数に制限され得る。
【0093】
これらの2つの制限は、パスグループの選択肢を導入することにより緩和され得る。方向ビットは、各方向における複数グループのサービスパスをサポートするために、追加ビットで強化され得る。例えば、7個の追加ビットを使用することにより、各方向において128個までのパスグループを定義することができるようになる。異なるセットのサービス及び順序付けの制約は、各パスグループについて定義され得る。所与のサービスのインスタンスを表すのに使用されるビット数は、さらなる柔軟性を提供するパスグループ間で変えることもできる。
【0094】
以前に指定された順序付けの制約に起因して許容されないサービスパスを定義するために、第1の制限に対処する新たなパスグループが、それ自身の順序付け制約のセットで定義され得る。パスグループの使用は、サービスパスの一部であり得るサービスの最大数を変更しないが、サービスのプールのサイズを増加させるであろう。当該サービスのプールからサービスが1つ以上のサービスパスの一部であるように選択される。パスグループを使用することにより、状態テーブル及び宛て先テーブルのサイズを増加させることができる。これらのテーブルの両方が、定義されるパスグループの数を直線的に増大させるであろう。
【0095】
ここで説明された誘導メカニズムは、加入者毎に2つのルールを使用し、潜在的に大きな加入者ポリシールールテーブルをもたらす結果となる。IPアドレスが、加入者の予め定義されたサービスセットに基づいて加入者に割り当てられた場合、このテーブルのサイズは低減され得る。このアプローチを用いると、加入者毎のルールは、サービスセット毎のルールにより置き換えられ、ルールの数を大いに低減する。この種のソリューションは、多くの加入者が動的IPアドレスを割り当てられるネットワークにおいて、潜在的に展開可能であるかもしれない。
【0096】
ルータは、そのルーティングテーブルを使用してネクストホップを判定し、それに応じて宛て先MACアドレスをセットするであろう。サービスネットワークは、サービスに向かってパケットを誘導するためにMACアドレスを書き換え、それにより宛て先ゲートウェイノードが上書きされ、したがって透過的なレイヤ2セグメントとして扱われることができない。各端において単一のルータの場合、既知のトラフィック方向が宛て先ルータを識別するのに十分であるからこれは問題ではない。複数のルータの場合、適切なルータにトラフィックを方向付けるために何らかのメカニズムが必要とされる。
【0097】
誘導ネットワークは、本質的にはルータとして扱われ得る。接続されたルータは、その後、誘導ネットワークにトラフィックを方向付けるルートを有するであろう。そして誘導ネットワークは、そこからトラフィックを方向付けることができる。加入者トラフィックについて、既存の誘導メカニズムは、単一のアップストリーム及び単一のダウンストリームルータより多くを許容するために用いられ得る。これは、複数のサービスインスタンスのコンセプトと同様であるとみなすことができる。ルータ識別子(サービスインスタンス識別子と同様)は、(ダウンストリームトラフィックについての)加入者テーブル430、(アップストリームトラフィックについての)アプリケーションテーブル440において、又は(アップストリーム及びダウンストリームトラフィックについての)マイクロフローテーブルにおいてさえも、セットされることができる。これは、メタデータ符号化の問題であり、いくつかの数のビットがこれに割り当てられ得る。各ルータは、依然として加入者トラフィックのためのアップストリーム又はダウンストリームルータであると考えられる。あるいは、ルーティング情報を含む別のテーブルが追加され得る。
【0098】
ここに記載される例としての実施形態について、誘導ネットワークにより転送される全てのトラフィックは、加入者トラフィックであると仮定されている。非加入者トラフィックについて、我々は誘導ネットワークを単純なルータとして扱うことができる。加入者テーブル430において見つからないパケットを破棄する替わりに、従来の宛て先IPベースの転送を行う通常のルートテーブルにそれらは送信されてもよい。ルート探索に基づき、同一のメカニズムが、ローカルノードポートに出力されるため、又はレイヤ2コアネットワークをわたって遠隔のノードポートにそれを送信するために使用され得る。非加入者トラフィックは、いかなるインラインサービスも横断しないであろう。
【0099】
スイッチポートは物理ポートであると仮定されているが、VLANタグ及びサービス上の仮想インタフェースを使用して、仮想ポートを同様にサポートすることもできる。仮想ポートは、必要とされる物理ポートの数を低減するために使用されることができる。
【0100】
ここに記載した誘導メカニズムは、複数のテーブル、及び複数テーブルを通じてパケットを処理するときに情報を交換するのに使用されることができるメタデータフィールドをサポートするプロトコルを用いて実装され得る。誘導メカニズムは、各スイッチに格納されるルールの総数を低減するため、及び高価なTCAM技術に頼ることを可能な限り回避するためにこれらの2つの特徴を活用する。誘導メカニズムは、加入者テーブル及びマイクロフローテーブルといった大きなテーブルを有する可能性があるが、これらは、RAM内に効果的に実装され得る最長プレフィックス一致及び完全一致テーブルである。単一のテーブルのみサポートする代替的な実装で、入力ポート、加入者及びアプリケーションポリシーの全ての有効な組み合わせが、個々のルールとして符号化されなければならない。このルールの組合せ積は、非常に大きなテーブルをもたらす結果となるであろう。また、これらのルールはワイルドカード及びマスクを含むことから、このテーブルは拡張性及び/又はパフォーマンスの問題を抱えることとなるであろう。
【0101】
代替的なアプローチは、当業者によって容易に理解されるように、トラフィックを誘導するために実装され得る。1つのアプローチは、サービスチェーン又は訪れるべきサービスのセットを識別する追加情報を各パケットにタグ付けすることである。この追加情報は、サービスパス全体を識別するフラットラベル又は、訪れるべきサービスを各ラベルが識別するラベルのスタック、のいずれかであり得る。
【0102】
フラットラベルアプローチでは、パケットが着信ポートとラベルの値に基づいて誘導される。パケットは、最初にサービスネットワークに入るときに一度分類される。仮想ローカルエリアネットワーク(VLAN)タグは、フラットラベルとして使用することができるが、このアプローチは問題となる恐れがある。多くのサービスは、レイヤ2ヘッダを削除(strip)してVLANタグを廃棄し、その後再分類を推し進める。VLANタグは、12ビット幅であり、サービスパスの数を4096に制限する。一旦方向を考慮し、複数のサービスインスタンスをサポートする必要を考慮すると、この数は、制限になる可能性がある。
【0103】
スタックラベルアプローチでは、訪れるべき順序付きサービスのセットが、ラベルのスタックとして記述される。スタックの一番上のラベルは、訪れるべき次のサービスを識別し、各サービスの後、このラベルはスタックから取り出される。一旦そのスタックが空になると、パケットはネットワークを出る。このアプローチは、MPLS(Multiprotocol Label Switching)ラベルを使用して実装され得る。レイヤ2ヘッダを削除する(stripping away)サービスの問題に加えて、多くのサービスは、MPLSヘッダを有するパケットをハンドリングすることができない恐れがある。
【0104】
別の代替的な実施形態では、パケットは、境界スイッチで一度だけそれを行う代わりに、サービス間のすべてのスイッチホップで再分類されることができる。このアプローチは、宛て先MACアドレスの書き換えを必要としないが、全てのスイッチホップでの再分類を必要とし、内部ネットワーク内の単純な転送メカニズムを使用することを妨げ、この場合合計の帯域幅の要件は境界においてよりも高い。このアプローチは、また、同一のサービスパス内で複数回横断されるリンクのための(例えば、トンネルを使用するような)別個のラベリングメカニズムの使用を必要とする。
【0105】
図5は、本発明の方法を示すフローチャートである。パケットがネットワーク内の境界スイッチにより受信されると、方法がステップ500において開始される。パケットはステップ510で分類され、分類動作に従ってサービスチェーンが受信されたパケットに割り当てられる。割り当てられたサービスチェーン上の受信されたパケットの位置は、520において判定される。サービスチェーン上の位置は、パケットが受信されたポートに従って判定されることができる。受信されたパケットの方向も、パケットが受信されたポートに基づいて必要に応じて判断されることができる。530で、受信されたパケットの判定された位置に従って、パケットは割り当てられたサービスチェーン上の次のサービスへ転送される。次のサービスは、判定されたサービスチェーン上の位置に加えて判定された方向に従い、必要に応じて判定され得る。ステップ530は、実行されるべき次のサービスに従って、新たな宛て先アドレスを受信されたパケットに割り当てることを含み得る。パケットは、次のサービスに関連付けられたポートを選択することにより、次のサービスに転送されることができる。
【0106】
図6は、本発明の別の実施形態を示すフローチャートである。ステップ600においてパケットを受信することにより処理が開始する。パケットが伝播する方向が610で判定される。受信されたパケットが伝播する方向はアップストリーム又はダウンストリームであることができ、パケットが受信された入口ポートに従って判定され得る。
【0107】
620で、受信されたパケットがサービスセットに関連付けられる。パケットをサービスセットに関連付けることは、パケットの少なくとも1つのヘッダフィールドに従って、パケットに適用されるべきサービスの順序付きリストを割り当てることを含み得る。少なくとも1つのヘッダフィールドは、送信元アドレス、宛て先アドレス、送信元ポート、宛て先ポート又はプロトコルを含む群から選択され得る。サービスセットも、判定されたパケットが向かう方向に従って割り当てられ得る。割り当てられたサービスの順序付きリストは、メタデータとして受信されたパケットに添付され得る。
【0108】
デフォルトのサービスセットは、加入者に関連付けられたアドレスに従って、パケットに関連付けられ得る。加入者アドレスは、判定された方向に従って、受信されたパケットの送信元アドレス又は宛て先アドレスとして識別され得る。デフォルトのサービスセットは、受信されたパケットの少なくとも1つのヘッダフィールドに従って、必要に応じて修正されることができる。
【0109】
ステップ630で、関連付けられたサービスセット上のパケットの位置が判定される。サービスセット上のパケットの位置は、パケットが受信された入口ポートに従って判定され得る。最後に適用されたサービス及び前に適用された全てのサービスの両方が、サービスセット内のパケットの現在位置及びパケットが向かっている方向に基づいて判定され得る。関連付けられたサービスセット上のパケットに適用される次のサービスがステップ640で選択される。次のサービスは、判定されたパケットの方向及び位置に従って選択される。関連付けられたサービスセットは、パケットに既に適用されたサービスを除去するために、判定されたパケットの方向及び位置に従って必要に応じて修正されることができる。
【0110】
ステップ650で、選択された次のサービスに従って、新たな宛て先がパケットに割り当てられる。パケットに新たな宛て先を割り当てることは、パケットに関連付けられた宛て先アドレスを書き換えることを含み得る。必要に応じて、660で、パケットは新たな宛て先に転送される。パケットを転送するステップは、新たな宛て先に関連付けられるポートを選択すること、及び選択された次のサービスに当該ポートを通じてパケットを送信することを含み得る。
【0111】
図7は、本発明の実施形態に係るスイッチ700のブロック図である。スイッチ700は、サービスネットワーク内の境界スイッチであり、ここで述べられた機能性を実装することができる。スイッチ700は、パケットを送信及び受信するための複数の入力/出力ポートを含む。複数のポートは、第1のポート702及び第2のポート704を含む。第1のポート702及び第2のポート704は、単一の物理通信インターフェースとして実装されてもよい。プロセッサ706は、入力ポート702、出力ポート及びメモリ又はデータリポジトリ708に動作可能に接続される。メモリ708は、スイッチ700の内部又は外部にあることができ、プロセッサ706によりアクセス可能である。
【0112】
プロセッサ706は、第1のポート702で受信されたパケットをサービスセットと関連付けるように構成される。プロセッサ706は、受信されたパケットの関連付けられたサービスセット上の位置を検出し、検出された位置に従って、関連付けられたサービスセット上の次のサービスを判定する。プロセッサ706は、判定された次のサービスにパケットを送信するための第2のポート704を選択することができる。第2のポート704は、次のサービスと関連付けられることができ、複数のポートから選択される。
【0113】
複数のポートは、ダウンストリームに伝播するパケットをサービスノードに送信し、サービスノードからアップストリームに伝播するパケットを受信するために指定された少なくとも1つのポートを含み得る。少なくとも1つの他のポートは、アップストリームに伝播するパケットを同一のサービスノードに送信し、同一のサービスノードからダウンストリームに伝播するパケットを受信するために指定されることができる。
【0114】
プロセッサ706は、パケットが受信された第1のポート702に従って、受信されたパケットが向かっている方向(アップストリーム又はダウンストリーム)を判定することができる。プロセッサ706は、判定されたパケットの方向及びヘッダフィールドに基づいて、受信されたパケットをサービスセットに関連付けることができる。
【0115】
サービスセットに関連付けられたパケットの一部として、プロセッサ706は、加入者に関連付けられたアドレスに従って、デフォルトのサービスセットをパケットに割り当てることができる。加入者は、パケットが向かっている方向に依存して、パケットの送信元アドレス又は宛て先アドレスのいずれかにより識別され得る。プロセッサ706は、さらに、パケットの少なくとも1つの他のヘッダフィールドに従って、デフォルトのサービスセットを修正することができる。
【0116】
プロセッサ706は、パケットが受信された第1のポート702に基づいて、関連付けられたサービスセット上の受信されたパケットの位置を判定することができる。プロセッサ706は、判定された次のサービスに従って、受信されたパケットに新たな宛て先を割り当てることができる。
【0117】
スイッチ700は、また、アップストリーム又はダウンストリーム方向と関係しないパケットを受信するためのトランジットポートを必要に応じて含み得る。プロセッサ706は、専ら宛て先アドレスに従ってトランジットポートで受信されたパケットを転送する。スイッチ700は1つ又は数個のトランジットポートを含み得る。トランジットポートで受信されたパケットは、複数のポート(第1のポート702及び第2のポート704を含む)又はトランジットポートを介して、それらの宛て先に転送され得る。
【0118】
本発明の実施形態は、機械可読媒体(コンピュータ可読媒体、プロセッサ可読媒体又はその中に具体化されたコンピュータ可読プログラムコードを有するコンピュータ使用可能媒体とも呼ばれる)内に格納されるソフトウェア製品として表され得る。機械可読媒体は、ディスケット、CD−ROM(compact disk read only memory)、DVD−ROM(digital versatile disc read only memory)、(揮発性又は不揮発性)メモリ装置又は類似の記憶メカニズムを含む、磁気、光学又は電気記憶媒体を含む任意の適切な有形媒体であり得る。機械可読媒体は、実行されたときに本発明の実施形態に係る方法におけるステップをプロセッサに実行させる、命令、コードシーケンス、構成情報又は他のデータの様々な集合を含み得る。当業者は、記載された発明を実装するのに必要な他の命令及び動作もまた、機械可読媒体上に格納され得ることを理解するであろう。機械可読媒体から実行されるソフトウェアは、記載されたタスクを実行するための回路とインタフェースし得る。
【0119】
上述した本発明の実施形態は、例としてのみであることが意図される。変更、修正及び変形は、専ら添付の特許請求の範囲によって定義される本発明の範囲から逸脱することなく当業者によって特定の実施形態にもたらされ得る。