ここで図面を参照すると、図1は、本開示の1つの実施形態による例示的通信ネットワーク10を示す。通信ネットワーク10は、プライベートネットワーク15、例えば、加入者のホームネットワークなどの複数の加入者デバイス25に対する外部ネットワーク30への接続を提供するレジデンシャルゲートウェイ(RG)20を備える。図1では、4つの加入者デバイス(デバイスA〜Dとして表される)が示される。外部ネットワーク30は、例えば、サービスプロバイダネットワーク又はパブリックな広域エリアネットワーク(WAN)、例えば、インターネットなどを含み得る。加入者デバイス25は、パソコン、タブレット、スマートフォン、又は他のユーザ機器(UE)を含み得る。加入者デバイス25は、ローカルエリアネットワーク(LAN)、無線LAN(WLAN)、又は短距離無線インターフェース、例えば、WiFi、BLUETOOTH(登録商標)などを通じて、RG20と通信し得る。
例示的実施形態では、インターネットプロトコル(IP)は、プライベートネットワーク15及び外部ネットワーク30の両方でパケットをルーティングするために使用される。RG20は、レイヤ3ゲートウェイとして構成される。RG20には、ネットワークオペレーターに属するIPアドレスのプールからパブリックIPバージョン4(IPv4)が割り当てられる。このアドレスは、外部ネットワーク30における加入者の「パブリック」アドレスである。RG20は、プライベートIPアドレスをプライベートネットワーク15の加入者デバイス25に割り当て、ネットワークアドレス変換(NAT)をRG20を通過するパケットで実行することにより、NATデバイスとして機能する。RG20により加入者デバイス25に割り当てられるプライベートアドレスは、プライベートネットワーク15の外部ではルーティングが不可能である。
外部ネットワーク30は、IPエッジノード35(又は境界エッジノード若しくは境界ノード)、並びに他の認証機能(AF)の認証、認可及び課金(AAA)サーバ40を含む。IPエッジノード35は、RG20を介して接続される加入者デバイス25からのトラフィックに対するQoS、フィルタリング、ポリシー施行などに責任を負う。AAAサーバ40は、加入者デバイスの認証、サービスの認可、及び課金に責任を負う。
通信ネットワーク10は、ソフトウェア確定ネットワーク(SDN)プロトコル、例えば、OPENFLOWプロトコルなどを実施するステアリングネットワーク50及びネットワークコントローラ55を更に含む。ステアリングネットワーク50及びネットワークコントローラ55は、外部ネットワーク30の一部であってもよく、又は別個のネットワークを備えてもよい。ステアリングネットワーク50は、データトラフィックを転送するための複数のスイッチ60を含む。ネットワークコントローラ55は、ステアリングネットワーク50のスイッチ60を管理し、アプリケーションインターフェースを上位レイヤアプリケーションに提供する。
ステアリングネットワーク50は、SDN原理を活用し、異なるステアリングポリシーに基づき、様々なネットワークサービスと付加価値サービス(例えば、コンテンツフィルタリング、ネットワークベースのファイアウォール、ウイルススキャニングなど)との間のトラフィックフローのステアリングを可能にする。ネットワークサービス及び/又は付加価値サービスのリストは、サービスセットとも呼ばれるが、各加入者と関連し、AAAサーバ40により加入者のプロファイルの一部として記憶される。サービスは、加入者により選択され得、及び/又は、例えば、特定のトラフィックフロー(例えば、ビデオ、スカイプ、ソーシャルネットワークなど)と関連するアプリケーションタイプに基づき、ネットワークオペレーターにより規定され得る。サービスセット内のサービスは、一連のミドルボックスにより実施され得る。サービスセットに基づき、サービス経路は、所与のトラフィックフローに適用されるサービスのオーダーを特定する加入者ごとに規定される。異なるサービス経路が、異なる種類のトラフィックフローに対して規定され得る。また、異なるサービス経路は、アップストリーム方向及びダウンストリーム方向に対して設定され得る。ネットワークコントローラ55は、規定のサービス経路に従い加入者に対してデータトラフィックをステアリングするためのステアリングネットワーク50にスイッチ60を設定する。
NATデバイスとして機能するRG20の存在は、ステアリングネットワーク50の観点から問題を提起する加入者IDについて、ステアリングネットワーク50に対するネットワークコントローラ55は、通常、加入者ID及びIPアドレスを使用する。RG20が単一のパブリックIPアドレス背後のプライベートネットワーク15の加入者デバイス25を隠すので、ネットワークコントローラ55には、プライベートネットワーク15内で加入者デバイス25を区別する方法がない。この計画では、トラフィックフローステアリングは、加入者がプライベートネットワーク15のすべての加入者デバイス25で同一のユーザ経験を受信するように、通常、加入者毎ベースで適用される。
本開示は、RG20又は他のNATデバイスにより隠された加入者の加入者デバイス25を区別するための技術、及び加入者毎ベースではなくデバイス毎ベースでのトラフィックフローステアリングを可能にする技術を説明する。これらの技術を使用して、加入者に加入者デバイス25ごとに異なるユーザ経験を与えるために、異なるサービス経路を、同一の加入者に属する異なる加入者デバイス25に対して規定することができる。
RG20背後に接続された加入者デバイス25を特定するために、RG20は、加入者デバイス25毎に割り当てられたパブリックIPアドレスに外部ポートの範囲を予約する。例えば、加入者デバイス25がRG20と接続すると、RG20は、プライベート又はローカルIPv4アドレスを接続している加入者デバイス25に割り当て、加入者デバイス25に対するパブリックIPv4アドレスに外部ポートのグループ又は範囲を予約する。RG20は、次に加入者デバイス25に対する予約されたグループの外部ポートを、IPエッジノード35又は外部ネットワーク30の他のネットワークノード、例えば、後に使用する見込みのあるネットワークコントローラ55などに伝達することができる。加入者デバイス25がトラフィックを外部ネットワーク30(例えば、ステアリングネットワーク50)に送信すると、トラフィックは、予約された外部ポートのうちの1つを介してRG20により転送される。IPエッジノード35又はRG20のパブリック側の他のネットワークノードは、トラフィックに対して使用される外部ポートに基づき、加入者デバイス25を特定することができる。したがって、加入者デバイス25がプライベートネットワーク15のNATデバイス背後に存在しても、加入者デバイス25の正しい特定が、IPエッジノード35、ネットワークコントローラ55、及び外部ネットワーク30の他のノードで実現できる。
図2は、本開示の1つの実施形態による、トラフィックフローステアリングに対する加入者デバイス25の関心を示す例示的方法を示すフロー図である。RG20に接続された加入者デバイス25が、外部ネットワーク30に登録され、AAAサーバ40又は他の認証機能(AF)により特定可能であると想定される。加入者デバイス25は、国際移動電話加入者識別番号(IMSI)、又は他のデバイスIDにより、特定することができる。AAAサーバ40又はAFは、すべての加入者についての加入者プロファイルを含むデータベースを保持する。加入者プロファイルは、とりわけ、加入者の加入者ID、及び各加入者に属する登録された加入者デバイスのリストを含む。加入者には、外部ネットワーク30とともに自身の加入者デバイス25のすべてを登録する必要がない。各登録された加入者デバイス25について、サービスセット及び/又はサービス経路は、AAAサーバ40又はAFにより設定される。ネットワークサービス及び/又は付加価値サービスは、加入者により選択され得、及び/又は、例えば、特定のトラフィックフロー(例えば、ビデオ、スカイプ、ソーシャルネットワークなど)と関連するアプリケーションタイプに基づき、ネットワークオペレーターにより規定され得る。
ステップAでは、RG20は、自身をIPエッジノード35にアタッチする。アタッチメントを検出すると、IPエッジノード35は、AAAサーバ又はAFによりRG20の認証を開始する。認証手続き中に、IPエッジノード35には、加入者デバイス25のリストが提供される。各加入者デバイス25は、固有の(その加入者に対する)デバイスID、例えば、IMSIなどを有する。IPエッジノード35はまた、AAAサーバ40又は他のAFから、加入者デバイス25、例えば、図1のデバイスA〜Cなどのうちの1つ又は複数に対する規定のサービス経路を受信し、デバイスIDとともにサービス経路をメモリに記憶する。
ステップBでは、RG20の認証が成功すると、IPエッジノード35は、AAAサーバ40に登録された加入者デバイス25に割り当てられた、即ち、加入者のプロファイルに列挙/設定された加入者デバイス25に対する、外部ポートのグループ又は範囲をリクエストするために、関心度(EOI)メッセージをRG20に送信する。例えば、EOIメッセージは、AAAサーバ又はAFに登録されるデバイスIDのリストを含み得る。デバイスのリストは、RG20によりメモリに記憶される。デバイスのリストは、登録された加入者デバイス25のすべて又は一部を含み得る。
ステップCでは、IPエッジノード35は、規定のサービス経路に従ってステアリングネットワーク50のスイッチ60を設定するために、加入者接続(SC)メッセージをネットワークコントローラ55に送信する。このSCメッセージは、IPエッジノードID、加入者ID、加入者のIPアドレス、デフォルトサービスセット及び/又はサービス経路、並びにAAAサーバ40に登録された加入者デバイス25及びそれらの関連するサービスセット及びサービス経路のリストを含む。ステップDでは、ネットワークコントローラ55は、加入者のデフォルトサービスセット及び/又はサービス経路を設定するために、FLOW_MODメッセージのルールをステアリングネットワーク50のスイッチ60に送信する。デフォルトサービスセット及びサービス経路は、AAAサーバ40又はAFに登録されていない、又はIPエッジノード35が関心を示さなかった加入者デバイス25に適用される。デバイス固有のサービス経路は、後ほど設定される。ネットワークコントローラ55からFLOW_MODメッセージを受信すると、スイッチ60は、フローエントリをOpenFlowルールセットに追加する、又はOpenFlowルールセットのフローエントリを修正する。ルールセットのルールは、あるトラフィックフローがどのように方向付けられるべきかを示す。
図3は、本開示の実施形態によるデバイス毎ベースでのトラフィックのステアリング方法を示す。ステップEでは、プライベートネットワーク15の加入者デバイス25が、自身をRG25に接続する。加入者デバイスがアタッチすると、RG20は、加入者デバイス25に対して外部ポートのセットを予約する。この外部ポートのセットにより、加入者デバイス25は、外部ネットワーク30で特定することができる。RG20は次に、デバイスID及び予約された外部ポートのセットを、ローカルIPアドレス及びポートと外部IPアドレス及びポートとの間のマッピングを含むNATテーブルに追加する。デバイスIDは、MACアドレス、IMSIなどであり得る。RG20はまた、IPエッジノード35が加入者デバイス25に関心を示したか、即ち、そのデバイスIDがIPエッジノード35により提供されるデバイスIDのリストの一部であるかを判定する。
ステップFでは、RG20は、ローカルIPv4アドレスを加入者デバイス25に割り当てる。ステップG及びHでは、RG20は、加入者デバイス25のトラフィックに対するサービス経路とともにスイッチ60を設定するためにIPエッジノード35を介して、メッセージをネットワークコントローラ55に送信する。RG20からIPエッジノード35へのメッセージは、加入者デバイス25と関連する予約された外部ポートのセットに属する、加入者ID、デバイスID、並びに外部IPアドレス及びポートを含む。IPエッジノード35からネットワークコントローラ55へのメッセージは、加入者デバイス25と関連する予約された外部ポートのセットに属する、IPエッジノードID、加入者ID、デバイスID、並びに外部IPアドレス及びポートを含む。
IPエッジノード35からのメッセージを受信すると、ネットワークコントローラ55は、受信された外部ポートのセット及びデバイス固有のサービスセット及び/又はサービス経路をデバイスIDと関連付ける。ステップIでは、スイッチ60を設定して、加入者デバイス25に対して設定されるデバイス固有のサービス経路に従って、加入者デバイス25からの又は加入者デバイス25へのトラフィックをステアリングするために、ネットワークコントローラ55は、FLOW_MODメッセージをステアリングネットワーク50のスイッチ60に送信する。例えば、ネットワークコントローラ55は、ルールをスイッチ60に送信する。このルールは、例えば、5個の要素から成る(five−tuple)情報、即ち、送信元及び送信先IPアドレス、プロトコル、並びに送信元及び送信先ポートを含み得る。FLOW_MODメッセージを受信すると、フローエントリは、スイッチ60によりフローコントロールテーブルに追加される。フローエントリは、加入者デバイス25への及び加入者デバイス25からのすべてのトラフィックが、RG20に対して設定されたデフォルトサービスセット及びサービス経路ではなく、加入者デバイス25に対して設定されたデバイス固有のサービスセット及びサービス経路を通過するであろうことを示す。
ステップJでは、トラフィックは、加入者デバイス25からRG20に送信される。RG20でNATを使用して、トラフィックは、ステップKにおいて、IPエッジノード35を介して外部ネットワーク30、更にはステアリングネットワーク50へ転送される。いったんトラフィックを受信すると、スイッチ60は、フローエントリ及び加入者デバイス25に対して設定されたサービス経路に従ってトラフィックをステアリングするためにルールを適用する。ステップLでは、加入者デバイス25からのトラフィックは、フローエントリ並びに特定のサービスセット及びこのデバイスに対して設定されるサービス経路によりステアリングされる。
RG20が、IPエッジノード35が所与のデバイスIDと関連する加入者デバイス25に関心を示さなかったと判定する場合、即ち、加入者デバイス25がIPエッジノード35が関心を示したIPエッジノード35により提供されるデバイスIDのリストの一部ではない場合、加入者デバイス25に対するトラフィックは、加入者に対して(又はRG20に対して)判定されたデフォルトサービスセット及びサービス経路に従ってステアリングされるであろうことに留意すべきである。
図4は、加入者デバイス25が通信ネットワーク10から切断される場合、又は認証がタイムアウトになる場合に実行される手順を示す。ステップM及びNでは、RF20は、加入者デバイス25に対応するフローエントリを削除するために、デバイス切断メッセージをネットワークコントローラ55に送信する。デバイス切断メッセージは、認証タイムアウト又はデバイス切断後にIPエッジノード35を介して送信される。RG20からIPエッジノード35へのメッセージは、デバイスID及びその外部IPアドレスを含む。IPエッジノード35からネットワークコントローラ55へのメッセージは、デバイスID、IPエッジノードID及びその外部IPアドレスを含む。ステップOでは、ネットワークコントローラ55は、フローエントリ並びに加入者デバイス25と関連するサービスセット及び経路を削除するために、FLOW_MODメッセージをステアリングネットワーク50のスイッチ60に送信する。
図3の方法を使用すると、デフォルトサービスセット及びサービス経路を使用する加入者の加入者デバイス25がある一方で、デバイス固有のサービスセット及びサービス経路を使用する加入者デバイス25もあるだろう。例えば、関心が示された加入者デバイス25は、加入者デバイス25に対して特別に設定されたサービスセット及びサービス経路を使用するだろう。関心が示されなかった加入者デバイス25は、この加入者に対するデフォルトサービスセット及びサービス経路、即ち、加入者特定サービス経路を使用するだろう。
図5は、RG20、又は外部ネットワーク30において、プライベートネットワーク15の加入者デバイス25と関連するトラフィックのデバイス固有のトラフィックフローステアリングを可能にするプライベート通信ネットワークの他のNATデバイスにより実施される方法を示す。方法は、任意で、RG20又はプライベートIPアドレスの他のNATデバイスによる、第1のデバイスIDと関連する第1の加入者デバイス25への割り当てで開始する(ブロック105)。他の実施形態では、プライベートアドレスは、RG20以外のネットワークノードにより割り当てられてもよい。RG20又はNATデバイスは、第1の加入者デバイス25に対する外部ポートのセットを予約する(ブロック110)。予約された外部ポートのセットは、RG20又は他のNATデバイスのパブリックIPアドレスと関連付けられる。RG20は、外部ネットワーク30から、1つ又は複数の加入者デバイス25に対するデバイスIDのリストを受信する(ブロック115)。デバイスリストの各加入者デバイス25は、規定のデバイス固有のサービス経路を有する。いくつかの実施形態では、デバイスIDのリストは、RG20が外部ネットワーク30にアタッチすると、RG20により受信される。RG20は、第1の加入者デバイス25と関連する第1のIDがデバイスIDの受信リストに含まれるかを判定する(ブロック120)。第1の加入者デバイス25と関連するデバイスIDがデバイスIDのリストに含まれる場合、RG20は、予約された外部ポートのセットを通過するトラフィックが第1の加入者デバイス25に対して設計されたデバイス固有のサービス経路に従ってステアリングできるように、第1の加入者デバイス25に対する予約された外部ポートのセットを外部ネットワーク30に送信する(ブロック125)。1つの例示的な実施形態では、予約された外部ポートのセットは、第1の加入者デバイス25が外部ネットワーク30に接続すると、デバイス接続メッセージで外部ネットワーク30に送信される。第1の加入者デバイス25と関連するデバイスIDがデバイスIDのリストに含まれない場合、プロセスは終了する(ブロック130)。
図6は、外部ネットワーク30において、プライベートネットワーク15の加入者デバイス25と関連するトラフィックのデバイス固有のトラフィックフローステアリングを可能にする外部ネットワーク30のネットワークノード(例えば、IPエッジノード又はネットワークコントローラ55)により実行される別の方法を示す。方法150は、デバイス固有のサービス経路が規定された加入者の加入者デバイスを特定することにより開始する(ブロック155)。ネットワークノードは次に、プライベートネットワーク15のNATデバイス(例えば、RG20)に、ネットワークノードが関心の対象とする加入者デバイス25のうちの1つ又は複数のデバイスIDのリストを含む関心度メッセージを送信する(ブロック160)。ネットワークノードは、その後、NATデバイスから、関心度メッセージにおいて特定される少なくとも1つの加入者デバイス25に対するNATデバイスのパブリックIPアドレスと関連する予約された外部ポートのセットを受信する(ブロック165)。1つの例示的実施形態では、NATデバイスは、デバイスIDのリストの加入者デバイスが外部ネットワーク30に接続すると、デバイスIDのリストをメモリに記憶し、予約されたポートのセットを外部ネットワーク30のネットワークノードに送信する。
図7は、ネットワークコントローラ55により、プライベートネットワーク15に位置する加入者デバイス25と関連するトラフィックをステアリングするステアリングネットワーク50に対して実施される方法200を示す。ネットワークコントローラ55は、加入者デバイス25が外部ネットワーク30に接続すると、第1の加入者デバイス25に対する予約された外部ポートのセットを受信する(ブロック205)。1つの例示的な実施形態では、予約された外部ポートのセットは、加入者デバイス25が外部ネットワーク30に接続すると、受信される。ネットワークコントローラ55は、加入者デバイス25に対して設定されるデバイス固有のサービス経路を更に受信する(ブロック210)。予約された外部ポートのセット及びデバイス固有のサービス経路は、単一のメッセージ(例えば、デバイス接続メッセージ)で又は別個のメッセージで受信され得る。予約された外部ポートのセット及びデバイス固有のサービス経路を受信すると、ネットワークコントローラ55は、デバイス固有のサービス経路に従って加入者デバイス25と関連するトラフィックをステアリングするステアリングネットワーク50を設定する。
図8は、レジデンシャルゲートウェイ20として構成される例示的なネットワークノード70を示す。ネットワークノードは、通信インターフェース72及び処理回路78を含む。通信インターフェース72は、プライベートネットワークに接続するための第1のインターフェース回路74、及び外部ネットワーク30に接続するための第2のインターフェース回路76を備える。インターフェース回路74、76は、イーサネットインターフェース回路を備え得る。処理回路78は、第1のインターフェース74と第2のインターフェース76との間で接続される。処理回路78は、1つ又は複数のマイクロプロセッサ、ハードウェア、ファームウェア、又はそれらの組み合わせ、並びにプログラム命令及び動作に必要なデータ(例えば、NATテーブル)を記憶するための関連メモリを備える。メモリは、読取り専用メモリ(ROM)及びランダム(random)のような揮発性メモリデバイス及び不揮発性メモリデバイスの両方を備え得、ネットワークアドレス変換を実行するように構成される。処理回路78は、ネットワークアドレス変換を含む、明細書中で説明されるようなRG20の機能を実行するように構成される。
図9は、IPエッジノード35又はネットワークコントローラ55として機能するように構成されるネットワークノード80を示す。ネットワークノード80は、通信インターフェース82及び処理回路86を備える。通信インターフェース82は、ネットワークノードを外部ネットワーク30に接続するためのインターフェース回路84を備える。通信インターフェース82は、例えば、イーサネットインターフェース回路を備え得る。処理回路86は、通信インターフェース82に接続する。処理回路86は、1つ又は複数のマイクロプロセッサ、ハードウェア、ファームウェア、又はそれらの組み合わせ、並びにプログラム命令及び動作に必要なデータを記憶するための関連メモリを備える。メモリは、読取り専用メモリ(ROM)及びランダムアクセスメモリ(RAM)のような揮発性メモリデバイス及び不揮発性メモリデバイスの両方を備え得る。処理回路86は、本明細書中に説明されるようなIPエッジノードの機能を実行するように構成され得る。代替的には、処理回路86は、本明細書中に説明されるようなネットワークコントローラ55の機能を実行するように構成され得る。
とりわけ、先述の説明及び関連する図面に提示された教示の恩恵を有する本開示の変更例及び他の実施形態が、当業者には想起されるだろう。従って、本開示が開示された特定の実施形態に限定されないこと、及び変更例及び他の実施形態が本開示の範囲に含まれることが理解されよう。特定の用語が明細書中で用いられているが、それらは、一般的かつ記述的意味のみにおいて使用されており、限定を目的としていない。