JP6367371B2 - ネットワークパケットカプセル化およびルーティング - Google Patents

ネットワークパケットカプセル化およびルーティング Download PDF

Info

Publication number
JP6367371B2
JP6367371B2 JP2016569031A JP2016569031A JP6367371B2 JP 6367371 B2 JP6367371 B2 JP 6367371B2 JP 2016569031 A JP2016569031 A JP 2016569031A JP 2016569031 A JP2016569031 A JP 2016569031A JP 6367371 B2 JP6367371 B2 JP 6367371B2
Authority
JP
Japan
Prior art keywords
network
packet
source
address
encapsulated
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.)
Active
Application number
JP2016569031A
Other languages
English (en)
Other versions
JP2017517971A (ja
Inventor
パジェット,スティーブン
クラッベ,エドワード
シュルツ,ポール
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
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
Application filed by Google LLC filed Critical Google LLC
Publication of JP2017517971A publication Critical patent/JP2017517971A/ja
Application granted granted Critical
Publication of JP6367371B2 publication Critical patent/JP6367371B2/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
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4633Interconnection of networks using encapsulation techniques, e.g. tunneling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/72Routing based on the source address
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0811Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking connectivity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/16Multipoint routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/2592Translation of Internet protocol [IP] addresses using tunnelling or encapsulation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)

Description

背景
本明細書は、ネットワークパケットカプセル化およびルーティングに関する。
ネットワークにわたるデータの送信者および受信者を識別するために、ネットワーク接続されたデバイス間の通信はしばしば、インターネットプロトコル(IP:internet protocol)アドレスのようなネットワークアドレスを必要とする。IPv4ネットワークのようないくつかのネットワークにおいて、IPアドレスはしばしば重複し得、および/または、ネットワークに接続するデバイスの数のほうが多くなり得る。ウェブサーバが多くの異なる送信元ネットワークにウェブベースのサービスを提供するといったように共通ネットワークサービスを提供するために、IPアドレスにおける潜在的な重複に対応する1つのソリューションはネットワークアドレス変換(NAT:network address translation)システムである。NATシステムは、クライアントのIPアドレスを、サーバデバイスがそれによって通信可能であるグローバルアドレスに変換することによって、送信元ネットワークの背後のクライアントがサーバデバイスと通信することを可能にする。NATデバイスは典型的に、ピアNATデバイスと同期しつつ、大量のアドレス変換状態をサポートするための複雑な内部(internals)を必要とする単一のデバイスである。
概要
本明細書は、ネットワークパケットをカプセル化およびルーティングすることに関する技術を記載する。
一般に、本明細書に記載される主題の1つの革新的な局面は方法において具現化され得、当該方法は、送信元ネットワークから第1のネットワークパケットを、送信元ネットワークの外部であって第2のネットワーク内のエッジデバイスにおいて受信するアクションを含み、第1のネットワークパケットは第1の内部ヘッダを含み、第1の内部ヘッダは、i)第1のネットワークパケットが発信された送信元ネットワークに含まれるユーザデバイスを特定する第1の送信元アドレスと、ii)第1のネットワークパケットがアドレス指定される宛先サーバを特定する第1の宛先アドレスとを含み、上記方法はさらに、複数のルーティング可能ネットワーク識別子から送信元ネットワークについて送信元ネットワーク識別子を選択するアクションを含み、送信元ネットワーク識別子は送信元アドレスとは異なっており、上記方法はさらに、第1のカプセル化パケット内に第1のネットワークパケットをカプセル化するアクションを含み、第1のカプセル化パケットは第1の外部ヘッダを含み、第1の外部ヘッダは、i)送信元ネットワーク識別子を特定する第1の外部送信元アドレスと、ii)第1の宛先アドレスである第1の外部宛先アドレスとを含み、上記方法はさらに、第2のネットワーク内において宛先サーバに第1のカプセル化パケットをルーティングするアクションと、宛先サーバから第2のカプセル化パケットを受信するアクションとを含み、第2のカプセル化パケットは第2の外部ヘッダを含む第2のネットワークパケットを含み、第2の外部ヘッダは、i)第2のカプセル化パケットが発信された宛先サーバを特定する第1の宛先アドレスである第2の外部送信元アドレスと、ii)第2のカプセル化パケットがアドレス指定される送信元ネットワーク識別子を特定する第2の宛先アドレスとを含み、上記方法はさらに、第2のカプセル化パケットから第2のネットワークパケットを抽出するアクションを含み、第2のネットワークパケットは第2の内部ヘッダを含み、第2の内部ヘッダは、i)第1の宛先アドレスである第2の送信元アドレスと、ii)第1の送信元アドレスである第2の宛先アドレスとを含み、上記方法はさらに、送信元ネットワークに第2のネットワークパケットをルーティングするアクションを含む。この局面の他の実施形態は、対応するシステム、装置、および、コンピュータストレージデバイス上でエンコードされる、上記方法のアクションを実行するように構成されるコンピュータプログラムを含む。
これらおよび他の実施形態は各々、随意に以下の特徴の1つ以上を含み得る。第1のカプセル化パケット内に第1のネットワークパケットをカプセル化することは、第1のネットワークパケットをカプセル化するためにIP in IPカプセル化を使用することを含んでもよい。第1のカプセル化パケット内に第1のネットワークパケットをカプセル化することは、第1のネットワークパケットをカプセル化するためにGeneric Routing Encapsulationを使用することを含んでもよい。
第1のカプセル化パケットの第1の外部ヘッダはパケットプロトコルフィールドを含んでもよく、第1のカプセル化パケット内に第1のネットワークパケットをカプセル化することは、第1のカプセル化パケットが第1のネットワークパケットをカプセル化していることを示すパケットプロトコルフィールドについての値を特定することを含んでもよい。
宛先サーバに第1のカプセル化パケットをルーティングすることは、第2のネットワーク内においてネットワークロードバランサに第1のカプセル化パケットを提供することを含んでもよい。
エッジデバイスは、第2のネットワーク内における複数のエッジデバイスのうちの1つであってもよく、上記方法はさらに、エッジデバイスが送信元ネットワークと通信していることを特定する到達可能性インジケータを第2のネットワークに同報通信することを含んでもよい。
エッジデバイスは第2のネットワーク内におけるエッジデバイスを一意に識別するエッジデバイス識別子を有してもよく、送信元ネットワークについて選択される送信元ネットワーク識別子はエッジデバイス識別子とは異なってもよい。
送信元ネットワークは、エッジデバイスと通信する複数の送信元ネットワークのうちの1つであってもよく、送信元ネットワーク識別子は複数の送信元ネットワークの各々について選択されてもよく、複数の送信元ネットワークにおける各送信元ネットワークについての送信元ネットワーク識別子は、エッジデバイスと通信する複数の送信元ネットワークについて選択される各他の送信元ネットワーク識別子とは異なってもよい。
エッジデバイスは、第2のネットワーク内における複数のエッジデバイスのうちの1つであってもよく、上記方法はさらに、エッジデバイスが複数の送信元ネットワークと通信していることを特定する到達可能性インジケータを第2のネットワークに同報通信することを含んでもよい。
本明細書に記載される主題の別の革新的な局面は方法において具現化され得る。上記方法は、データ処理装置によってエッジデバイスから第1のカプセル化パケットを受信するアクションと、第1のカプセル化パケットに含まれるパケットプロトコルフィールドに基づいて、第1のカプセル化パケットが第1のネットワークパケットをカプセル化していることを判定するアクションとを含み、判定に応答して、第1のカプセル化パケットの第1の外部ヘッダに含まれる第1の外部送信元アドレスを識別するアクションを含み、第1の外部送信元アドレスは、第1のネットワークパケットが発信された送信元ネットワークを特定し、上記方法はさらに、ネットワーク接続テーブルに第1の外部送信元アドレスを記録するアクションと、第1のカプセル化パケットから第1のネットワークパケットを抽出するアクションとを含み、第1のネットワークパケットは第1の内部ヘッダを含み、第1の内部ヘッダは、i)第1のネットワークパケットが発信されたユーザデバイスを特定する第1の送信元アドレスと、ii)第1のネットワークパケットがアドレス指定されるデータ処理装置を特定する第1の宛先アドレスとを含み、上記方法はさらに、第1のネットワークパケットを処理するアクションと、第2のネットワークパケットを生成するアクションとを含み、第2のネットワークパケットは第2の内部ヘッダを含み、第2の内部ヘッダは、i)データ処理装置を特定する第1の宛先アドレスである第2の送信元アドレスと、ii)第2のネットワークパケットがアドレス指定される第1の送信元アドレスである第2の宛先アドレスとを含み、上記方法はさらに、ネットワーク接続テーブルから第1の外部送信元アドレスを得るアクションと、第2のカプセル化パケット内に第2のネットワークパケットをカプセル化するアクションとを含み、第2のカプセル化パケットは第2の外部ヘッダを含む第2のネットワークパケットを含み、第2の外部ヘッダは、i)データ処理装置を特定する第1の宛先アドレスである第2の外部送信元アドレスと、ii)第2のカプセル化パケットがアドレス指定される第1の外部送信元アドレスである外部宛先アドレスとを含み、上記方法はさらに、第1の外部送信元アドレスによって特定される送信元ネットワークに第2のカプセル化パケットをルーティングするアクションを含む。この局面の他の実施形態は、対応するシステム、装置、および、コンピュータストレージデバイス上でエンコードされる、上記方法のアクションを実行するように構成されるコンピュータプログラムを含む。
これらおよび他の実施形態は各々、随意に以下の特徴の1つ以上を含み得る。上記方法はさらに、データ処理装置によってネットワークデバイスから第3のネットワークパケットを受信することと、第3のネットワークパケットに含まれるパケットプロトコルフィールドに基づいて、第3のネットワークパケットが別のネットワークパケットをカプセル化していないことを判定することと、第3のネットワークパケットを処理することとを含んでもよい。
データ処理装置およびエッジデバイスは、第1のネットワークパケットが発信された送信元ネットワークとは別個である第2のネットワーク内に存在してもよい。
本明細書に記載される主題の特定の実施形態は、以下の利点の1つ以上を実現するよう実施され得る。送信元ネットワーク上のユーザデバイスは、キャリアグレードNATデバイスのインフラストラクチャコストなしで、ネットワークアドレスにおける競合を回避する態様で、共通ネットワーク上のサーバまたは他のデバイスと通信し得る。さらに、複数のエッジデバイスを使用するフェイルオーバおよび冗長性のサポートにより、ネットワークデバイスが接続性を失う状況において、デバイス間での状態同期の必要性なくトランスペアレントなフェイルオーバを可能にし、ネットワーク通信における中断を防止する。
本明細書に記載される主題の1つ以上の実施形態の詳細は、添付の図面および以下の説明において記載される。当該主題の他の特徴、局面および利点は、当該説明、図面および請求の範囲から明白になるであろう。
ネットワークパケットがカプセル化されルーティングされる例示的な環境のブロック図である。 ネットワークパケットをカプセル化しルーティングするための例示的なプロセスの図である。 ネットワークパケットがカプセル化されルーティングされる例示的なプロセスのフロー図である。 宛先デバイスがネットワークパケットカプセル化を使用して動作する例示的なプロセスのフロー図である。 例示的なデータ処理装置のブロック図である。
さまざまな図における同様の参照番号および指定は同様の要素を示す。
詳細な説明
ネットワークデバイスは、送信元ネットワークからパブリックサーバデバイスへのネットワークパケットのルーティングと、パブリックサーバデバイスから送信元ネットワークデバイスへのネットワークパケットのルーティングとを促進する。たとえば、ユーザデバイスから受信されたネットワークパケットは、カプセル化されサーバデバイスにルーティングされ得、当該サーバデバイスは、カプセル化されたネットワークパケットを処理し、ユーザデバイスに戻るようにルーティングされ得る別のカプセル化されたパケットにより応答する。ルーティングは、ステートフルなネットワークアドレス変換(NAT)デバイスを必要とせずに、グローバルに一意であるインターネットプロトコルアドレスを使用して共通ネットワークにわたって実行され得る。
送信元ネットワーク上のユーザデバイスは、インターネットプロトコル(IP)パケットを送信することにより、共通ネットワークの一部であるパブリックサーバデバイスと通信し得る。IPパケットは一般にヘッダおよびペイロードを含む。ヘッダは、送信元アドレス、宛先アドレス、およびパケットをルーティングおよび送達するための他のメタデータのようなメタデータを特定しており、ペイロードは宛先デバイスについて意図されたデータを含む。送信元ネットワークはしばしばルーティングデバイスを含み、ルーティングデバイスは、当該ルーティングデバイスに接続されたユーザデバイスから送信されたパケットを受信し、また、ルーティングデバイスは、それらの特定された宛先にパケットを転送ルーティングする。ルーティングデバイスはさらに、適切な宛先ユーザデバイスに入力IPパケットをルーティングすることを担い得る。
ルータのようなエッジデバイスは、ウェブサーバのような宛先デバイスを含むとともに送信元ネットワーク上のユーザデバイスから発信されたネットワークパケットを受信する共通ネットワーク内に存在する。各パケットのヘッダは、パケットの送信元としてユーザデバイスを特定する送信元アドレスと、宛先として宛先デバイスを特定する宛先アドレスとを含む。各受信されるパケットの場合、エッジデバイスは、グローバル一意IPアドレスのようなルーティング可能ネットワーク識別子を当該パケットについて選択し、たとえばIP in IPまたはGREカプセル化を用いてパケットをカプセル化する。外部パケットは、パケットの送信元アドレスとしてルーティング可能ネットワーク識別子を特定する外部ヘッダを含んでおり、パケットがアドレス指定される宛先デバイスを特定するために同じ宛先アドレスを使用する。
エッジデバイスは、宛先デバイスにカプセル化パケットをルーティングする。カプセル化パケットは、宛先デバイスに直接的に提供されてもよく、または、宛先デバイスに最終的に到達する前に、ロードバランサおよび/もしくは別のルータのような第2のネットワーク内の1つ以上の他のデバイスに提供されてもよい。
宛先デバイスは、カプセル化パケットを受信し、カプセル化パケットが第1のネットワークパケットをカプセル化していると判定する。当該判定はたとえば、カプセル化パケットのヘッダに含まれるパケットプロトコルフィールドに基づいてなされ得る。当該判定に基づいて、受信されたパケットは別のパケットをカプセル化し、宛先デバイスは、カプセル化パケットの送信元を識別しネットワーク接続テーブルにおける当該送信元のアドレスを記録する。たとえば、カプセル化パケットの外部ヘッダは、パケットの送信元アドレスとしてルーティング可能ネットワーク識別子を特定するので、宛先デバイスは、そのネットワーク接続テーブルにルーティング可能ネットワーク識別子を記録する。
その後、宛先デバイスは、処理のためにカプセル化パケットから第1のネットワークパケットを抽出する。たとえば、カプセル化パケットの外部ヘッダを除去した後、宛先デバイスが標準的なネットワークパケットを処理するように、パケットが発信されたユーザデバイスの送信元アドレスを含む内部パケットが処理され得る。
宛先デバイスは、第1のネットワークパケットに応答すると、ユーザデバイスのアドレスである宛先アドレスと、宛先デバイスのアドレスである送信元アドレスとを含む応答パケットを生成する。その後、宛先デバイスは、ユーザデバイスに対応するルーティング可能ネットワーク識別子を見つけるためにネットワーク接続テーブルをチェックし、第2のカプセル化パケット内に応答パケットをカプセル化し得る。第2のカプセル化パケットは、ルーティング可能ネットワーク識別子である宛先アドレスと、宛先デバイスのアドレスである送信元アドレスとを含む。その後、宛先デバイスは、送信元ネットワークに第2のカプセル化パケットをルーティングする。
エッジデバイスは、宛先デバイスから第2のカプセル化パケットを直接的または間接的に受信する。エッジデバイスは、宛先デバイスに第1のカプセル化パケットを提供するために使用されるエッジデバイスと同じでもよく、または、異なるエッジデバイスでもよい。エッジデバイスは、第2のカプセル化パケットから応答パケットを抽出し、第2のカプセル化パケットの宛先として含まれる識別子によって識別される送信元ネットワークに応答パケットをルーティングする。
図1は、ネットワークパケットがカプセル化されルーティングされる例示的な環境100のブロック図である。ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、インターネットまたはその組合せのようなコンピュータネットワーク102は、1つ以上の送信元ネットワーク104(たとえばプライベートLANまたはWAN)、1つ以上のエッジデバイス106、1つ以上の外部エッジデバイス108、および1つ以上のサーバデバイス110を接続する。当該例示的な環境において、エッジデバイス106およびサーバデバイス110は、コンピュータネットワーク102および送信元ネットワーク104と別個の第2のLANまたはWANのような第2のネットワーク112内で動作する。
送信元ネットワーク104はたとえば、ホームネットワーク、ビジネスネットワークおよびクラウドコンピューティングネットワークを含み、これらのネットワークの各々は、モデムまたはルータのような送信元ネットワークの外部と通信するための少なくとも1つのネットワークデバイスを含む。ホームネットワークはたとえば、ホームルータおよび/またはモデムデバイスに接続されたデスクトップおよびラップトップパーソナルコンピュータ、タブレットコンピュータおよび/またはスマートフォンといったユーザデバイスを含んでもよい。別の例として、ビジネスネットワークは、WANにおいてルータおよび/またはモデムデバイスを介して接続されるパーソナルコンピュータおよびサーバコンピュータのような多くのユーザデバイスを含んでもよい。クラウドコンピューティングネットワークは、たとえばクラウドコンピューティングサーバ、または、1つ以上のクラウドコンピューティングサーバコンピュータ上のバーチャルマシンのインスタンスの形態にあるユーザデバイスを含み得る別のタイプのパーソナルネットワークであり、各クラウドサーバは、ネットワーク通信目的のために、モデムおよび/もしくはルータを含むかまたはモデムおよび/もしくはルータに接続される。
送信元ネットワーク104に含まれるデバイスは、他の送信元ネットワークに接続されたデバイスおよびコンピュータネットワーク102に接続されたデバイスといった他のデバイスと通信する。デバイスとネットワークとの間の通信は、デバイス間でネットワークパケットを送信することにより実行され得る。ネットワークパケットはパケット交換ネットワーク(packet-switched network)による送信のためにフォーマットされたデータである。ネットワークパケットはたとえば、パケットの送信元、宛先、パケットプロトコルおよび他のタイプの情報のようなネットワークパケットに関する情報を特定するヘッダといった制御データを含む。ネットワークパケットはさらに、たとえば受信デバイスによる処理のために意図されたデータといったペイロードデータを含む。例示的なネットワークパケットは、たとえばTCP、UDPおよび/またはICMPパケットプロトコルを用いるIPv4ネットワークパケットを含む。
エッジデバイス106および外部エッジデバイス108は、ネットワーク接続されたデバイスからネットワークパケットを受信し、宛先ネットワークデバイスにパケットをルーティングする。エッジデバイス106および外部エッジデバイス108はたとえば、ネットワークパケットを受信し、ネットワークパケットヘッダに含まれる情報に基づいて当該ネットワークパケットをルーティングするネットワークルータを含む。エッジデバイス106は、第2のネットワーク112内に存在するとともに、たとえば送信元ネットワークルータデバイスから送信されたネットワークパケットを受信し、第2のネットワーク112内のサーバデバイス110にネットワークパケットをルーティングする。外部エッジデバイス108は第2のネットワーク112内に存在しておらず、いくつかの実現例ではさらにサーバデバイス110にネットワークパケットをルーティングし得る。外部エッジデバイス108はさらに、第2のネットワーク112に含まれていない他のデバイスにネットワークパケットをルーティングし得る。
サーバデバイス110は、エッジデバイス106および外部エッジデバイス108によって提供されるネットワークパケットを受信し、処理し、応答するサーバコンピュータを含む。サーバデバイスはたとえば、ウェブサイトをホストするウェブサーバと、クラウドストレージ管理ソリューションを提供するクラウドストレージサーバと、大量のデータを処理するために使用される分散処理システムサーバとを含む。多くの他のタイプのサーバデバイス110が第2のネットワーク112に含まれてもよい。
多くのユーザデバイス、送信元ネットワーク、外部エッジデバイスおよび第2のネットワークが存在してもよく、コンピュータネットワーク102を使用して互いに通信してもよい。IPv4ネットワークのようなコンピュータネットワーク102を使用してデバイス間の通信を可能にするために、ネットワークを使用して通信する各デバイスは、たとえばIPアドレスといった、ネットワーク接続された他のデバイスと通信するために使用されるネットワークアドレスを有する。各ネットワークデバイスのネットワークアドレスは、ネットワーク上のネットワークデバイスの位置を識別する。ネットワークアドレスの数は有限であり、たとえば利用可能なネットワークアドレスより多くのネットワークデバイスが存在する場合のようにネットワークアドレスがネットワークデバイスに一意に割り当てられない状況においては、ネットワークアドレシングにおける競合(conflict)によって、データ損失および通信中断のような問題が引き起こされ得る。本願明細書において記載されるネットワークカプセル化およびルーティング技術は、ネットワークアドレスにおける競合を回避するように設計された態様で、ネットワーク接続されたデバイス間の通信を促進する。
例として、送信元ネットワーク内のユーザデバイスのIPアドレスは、ネットワークルータによって割り当てられ得る。送信元ネットワーク内のデバイスのIPアドレスは送信元ネットワーク内において一意であるが、必ずしもグローバルに一意でない(たとえばインターネットに接続された他のデバイスに対して一意でない)。ユーザデバイスは、送信元ネットワークルータにネットワークパケットを送信し、同様にIPアドレスを有する当該送信元ネットワークルータは、ウェブサイトをホストするウェブサーバのようなネットワークパケットによって特定される宛先サーバデバイスに当該ネットワークパケットを転送する。インターネットにわたってネットワークパケットが採る経路は変化し、当該経路はたとえば、インターネットサービスプロバイダデバイスと、ドメインネームサーバ(DNS:Domain Name Server)と、ロードバランサと、インターネットの「バックボーン」を含む他のネットワークデバイスとを通るルーティングを含み得る。いくつかの実現例において、送信元ネットワークルータは、エッジデバイス106への直接的な接続または所定の経路を有してもよく、これにより、ネットワークパケットがインターネットのバックボーンを横断する必要性が除去される。たとえば、第2のネットワーク112に関連するクラウドコンピューティングネットワークには、第2のネットワーク112のエッジデバイス106に接続するために直接的な接続または所定のルートが与えられ得る。
送信元ネットワークルータから送信されたネットワークパケットはエッジデバイスに到達し、当該エッジデバイスは、第2のネットワーク112に入るとともにサーバデバイス110のうちの1つに宛先を設定されたネットワークトラフィックをルーティングする。受信されたネットワークパケットは、パケットの送信元として送信元ネットワークルータのIPアドレスを識別するとともにパケットについての宛先として宛先サーバIPアドレス(たとえばサーバデバイス110の1つ)を識別するヘッダを含む。たとえばプライベートルータのIPアドレスといった送信元アドレスは一意ではない場合があり、エッジデバイスは、一意に送信元ネットワークを識別するために送信元ネットワーク識別子を選択し、たとえばGREまたはIPIPカプセル化を使用して送信元ネットワーク識別子によりネットワークパケットをマーキングし、その後、宛先サーバデバイスへネットワークパケットを転送する。
宛先サーバデバイスは、マーキングまたはカプセル化されたネットワークパケットを受信し、それをカプセル化されたパケットであると識別し、送信元ネットワーク識別子をネットワーク接続テーブルに記録し、内部ネットワークパケットを抽出し処理する。ユーザデバイスに応答する際、サーバデバイスはたとえば、当該パケットについての宛先としてユーザデバイスのIPアドレスといった内部送信元アドレスを使用してネットワークパケットを作成する。次いで、サーバデバイスは、第2のパケットのヘッダにおける宛先として、たとえば接続テーブルからの送信元ネットワーク識別子を使用して、第2のパケット内にネットワークパケットをカプセル化する。その後、パケットはユーザデバイスへの送達のためにエッジデバイスへ転送される。
エッジデバイスは、宛先サーバからカプセル化されたパケットを受信すると、送信元ネットワーク識別子を外部ヘッダによって特定された宛先として識別し、内部ネットワークパケットから外部ヘッダを除去し、送信元ネットワーク識別子によって識別された送信元ネットワークの送信元ネットワークルータへ内部ネットワークパケットを転送する。その後、送信元ネットワークルータは、処理のためにユーザデバイスにネットワークパケットを送信する。
図2は、ネットワークパケットをカプセル化しルーティングするための例示的なプロセス200の図である。送信元ネットワーク202はルータ204およびユーザデバイス206を含む。当該例示的な送信元ネットワークは1つのルータ204と3つのユーザデバイス206とを含んでいるが、任意数のルータおよびユーザデバイスが送信元ネットワーク202に含まれてもよく、また、ハードウェアまたはソフトウェアで実現されてもよいルータ204は1つ以上のユーザデバイス206に含まれ得る。
送信元ネットワーク202から送信されるイングレスパケット(ingress packet)について、ネットワークパケット210は、送信元ネットワーク202から共通ネットワーク260のエッジにおけるエッジデバイス230に送信される。ネットワークパケット210は、ユーザデバイス206および/または送信元ネットワークルータ204のうちの1つから発信され、ペイロードP1と、送信元アドレスS1および宛先アドレスD1を特定するヘッダ212とを含む。たとえば、S1は送信元ネットワークルータ204のIPアドレスであり得る一方、D1はネットワークパケット210がアドレス指定されるサーバデバイス250のIPアドレスであり得る。
共通ネットワーク260内に存在するエッジデバイス230は、ネットワークパケット210を受信し、送信元ネットワーク202についてたとえば送信元ネットワーク識別子S2を選択する。送信元ネットワーク識別子はたとえば、一意であるとエッジデバイス230が認識している識別子のリストに基づいて選択され得る。送信元ネットワーク識別子は、共通ネットワーク260に対して一意の別のIPアドレスまたは別のタイプの識別子であり得る。いくつかの実現例において、エッジデバイス230はさらに、共通ネットワーク260上のエッジデバイス230を一意に識別するネットワーク識別子を有し得、エッジデバイス230によって選択される任意の送信元ネットワーク識別子もエッジデバイス230のネットワーク識別子とは異なる。したがって、例示的なプロセス200において、識別子S2は送信元ネットワーク202を一意に識別する。
さらに、1つの送信元ネットワーク202と1つのエッジデバイス230だけが例示的なプロセス200に示されているが、複数の送信元ネットワークがエッジデバイス230に接続されてもよく、複数のエッジデバイスが共通ネットワーク260において使用されてもよく、その各々は任意数の他の送信元ネットワークに接続されてもよい。各送信元ネットワーク識別子はたとえば、利用可能性に基づき時間にわたって変化する利用可能な識別子のプールから動的に選択され得る。通信セッションの間、第2のネットワークと通信するために使用される送信元ネットワーク識別子およびエッジデバイスは同じままであり得るが、別の通信セッションの間、同じ送信元ネットワークは同じまたは異なるエッジデバイスに接続し得、その通信セッションについて同じ送信元ネットワーク識別子または異なる送信元ネットワーク識別子が割り当てられ得る。
エッジデバイス230は、ネットワークパケット210を送信元ネットワーク識別子S2によりマーキングする。例示的なプロセス200において、エッジデバイス230は、第1のカプセル化パケット220を形成するためにパケットをカプセル化する。ネットワークパケット210をマーキングするために、Generic Routing Encapsulation(GRE)またはInternet Protocol within Internet Protocol(IPIP)カプセル化のような複数の方法が使用され得る。第1のカプセル化パケット220はIPIPカプセル化の例であり、第1のカプセル化パケット220を作成するために新しいヘッダ222がネットワークパケット210に追加される。新しいヘッダ222は、第1のカプセル化パケット220がサーバデバイス250にまだ宛先設定されているので、同じ宛先アドレスD1を含む。新しいヘッダ222の送信元アドレスS2は、エッジデバイス230によって選択される送信元ネットワーク識別子である。いくつかの実現例において、新しいヘッダ222はさらに、パケットプロトコルを特定する値を含むパケットプロトコルフィールドを含む。この値はさらに、新しいヘッダ222がカプセル化されたパケットのためのものであることを示し得る。
いくつかの実現例では、送信元ネットワーク202からエッジデバイス230への相互接続は、ネットワーク間で到達可能性(reachability)をアドバタイジング(発信)するために標準的なルーティングプロトコルを動作させる。いくつかの実現例において、共通ネットワークのエッジに静的なルートが作成され得る。たとえば、標準的なボーダゲートウェイプロトコル(BGP:border gateway protocol)セッションが送信元ネットワークルータ204とエッジデバイス230との間に確立され得る。その後、エッジデバイス230はたとえば、それを通じて送信元ネットワーク202に到達可能である仮想IPアドレスといった送信元ネットワーク識別子をアドバタイジングまたは同報通信し得る。送信元ネットワークルータ204は、たとえば送信元ネットワーク202にサマリーをアドバタイジングすることによって、送信元ネットワーク202への自身の接続性をアドバタイジングし得る。エッジデバイス230はさらに、他のエッジデバイスを含む共通ネットワーク260上の他のデバイスが、送信元ネットワークが到達され得る送信元ネットワーク識別子およびエッジデバイスを認識するように、送信元ネットワーク202へのルートを受信したことに応答して、送信元ネットワーク202の送信元ネットワーク識別子を共通ネットワーク260の共通バックボーン240内にアドバタイジングするように構成され得る。
いくつかの実現例において、冗長性およびフェイルオーバサポートを導入するための方法も実現され得る。たとえば、送信元ネットワーク202は、エッジデバイス230に到達可能性インジケータ(reachability indicator)を同報通信し得る。当該インジケータは、送信元ネットワークのサマリーであり得るか、または、別のルートであり得る。当該インジケータは、たとえばBGPにおいて実現され得、これにより、ルートをアドバタイジングするための実現例を提供する。到達可能性インジケータの受信時に、エッジデバイス230は、共通ネットワーク260の共通バックボーン240内に送信元ネットワーク202をアドバタイジングする。この状況において、複数のエッジデバイスは同じ送信元ネットワーク識別子をアドバタイジングし得、共通ネットワーク260のデバイスまたは送信元ネットワーク202のデバイスのいずれかの障害の場合に冗長性を提供する。
エッジデバイス230は、サーバデバイス250に第1のカプセル化パケット220をルーティングする。いくつかの実現例では、例示的なプロセス200でのように、第1のカプセル化パケット220は、共通ネットワーク260の共通バックボーン240を構成する1つ以上のデバイスへ転送される。これらのデバイスはたとえば、ロードバランサと、パケット処理エンジンと、ルータとを含み、任意の必要なルックアップ/再カプセル化プロセスを実行し得、最後に、第1のカプセル化パケット220をサーバデバイス250へ転送する。
サーバデバイス250は、第1のカプセル化パケット220の新しいヘッダ222に含まれるパケットプロトコルフィールドに基づいて、第1のカプセル化パケット222が別のパケットをカプセル化していることを判定する。この判定に基づいて、サーバデバイス250は、たとえば送信元ネットワーク識別子S2といった新しいヘッダ222の送信元アドレスをそのネットワーク接続テーブル252に記録する。ネットワーク接続テーブル252は、IPアドレス情報、ネットワーク識別子、ポート、プロトコルなどのような、さまざまなネットワークデバイスとのネットワーク通信を管理するためにサーバデバイスによって使用されるデータを含む。
サーバデバイス250は第1のカプセル化パケット220から第1のネットワークパケット210を抽出する。使用されるカプセル化またはマーキングの他の方法のタイプ(種類)に依存して、第1のネットワークパケットを抽出するために異なる方法が使用されてもよい。たとえばIPIPカプセル化を使用する場合、たとえば新しいヘッダ222のような外部ヘッダは、無視または廃棄され得る。第1のネットワークパケット210を抽出した後、サーバデバイス250は、処理のために受信される標準的なネットワークパケットのように、たとえばその通常のカーネルパイプラインを通じて当該パケットを扱う。
リターン/エグレスパケット(return/egress packet)にて応答する際、サーバデバイス250は、ペイロードP2を含む応答パケット270と、第1のネットワークパケット210が発信されたユーザデバイスおよび/または送信元ネットワークルータのアドレスとして応答パケットの宛先を特定するヘッダ272とを生成する。言いかえれば、第1のネットワークパケットS1の送信元は応答パケット270の宛先である。応答パケット270の送信元D1はサーバデバイス250のアドレスである。
応答パケット270を生成した後、サーバデバイス250はネットワーク接続テーブル252から送信元ネットワーク識別子を得、たとえば第2のカプセル化パケット280に応答パケットをカプセル化することによって、応答パケットを送信元ネットワーク識別子でマーキングする。例示的なプロセス200において、第2のカプセル化パケット280は、宛先として送信元ネットワーク識別子S2を特定するとともに送信元としてサーバデバイス250のアドレスD1を特定する外部ヘッダ282を含む。応答パケット270をカプセル化した後、サーバデバイス250は、たとえば共通バックボーン240およびエッジデバイス230を通じて、または、共通ネットワーク260に含まれる異なるエッジデバイスを通じて、送信元ネットワーク202に第2のカプセル化パケット280をルーティングする。
いくつかの実現例では、さらに、サーバデバイス250は、上で記載されたルーティングおよびカプセル化プロセスを経ていないデバイスと通信することが可能である。たとえば、サーバデバイス250と通信するとともに、たとえば、インターネットを使用して通信する非関連送信元ネットワークといった共通ネットワーク260のエッジデバイスと関連しない送信元ネットワークは、ネットワークパケットを抽出およびカプセル化する必要性なしにサーバデバイスと通信し得る。この状況において、サーバデバイス250は、共通ネットワーク260内に存在しないネットワークデバイスからネットワークパケットを受信し得、ネットワークパケットのパケットプロトコルフィールドに基づいて、ネットワークパケットはカプセル化パケットではないことを判定し得、ネットワークパケットを正常に処理し得る。たとえば、これらのネットワークパケットに対する応答は、カプセル化される必要はなく、または、共通ネットワーク260の共通バックボーン240を通じてルーティングされる必要はない。
エッジデバイス230、または、いくつかの実現例では送信元ネットワーク識別子が、アドバタイジングされた別のエッジデバイスは、サーバデバイス250から送信された第2のカプセル化パケット280を受信する。エッジデバイス230は、たとえば外部ヘッダ282を除去することによって、第2のカプセル化パケット280から応答パケット270を抽出する。その後、エッジデバイス230は、送信元ネットワーク202に応答パケット270をルーティングする。例示的なプロセス200において、送信元ネットワークルータ204は応答パケット270を受信し、たとえば送信元ネットワーク202内の適切なユーザデバイスへパケットを転送することによってパケットを正常に処理し得る。
例示的なプロセス200は単一の送信元ネットワーク、エッジデバイスおよびサーバデバイスを示しているが、上に記載されたルーティングおよびカプセル化技術は、多くの他のネットワーク構成において使用されてもよい。上に示されるように、共通ネットワーク260は多くのエッジデバイスおよびサーバデバイスを含み得る。いくつかの実現例において、エッジデバイスは、たとえば共通バックボーン210を通じてネットワークパケットをルーティングすることなくサーバデバイスと直接的に通信し得る。送信元ネットワークは、いくつかの実現例において、たとえば送信元ネットワークが共通ネットワークに直接的に接続されるクラウドコンピューティングネットワークであることを必要とすることによって、共通ネットワーク260との関連性は、上に記載された方法を使用して共通ネットワークと通信する資格があることを必要とする。
図3は、ネットワークパケットがカプセル化されルーティングされる例示的なプロセス300のフロー図である。例示的なプロセス300はエッジデバイスのようなデータ処理装置によって実現されてもよい。
第1のネットワークパケットは、送信元ネットワークの外部であって第2のネットワーク内のエッジデバイスにて、送信元ネットワークから受信される(302)。第1のネットワークパケットは第1の内部ヘッダを含み、第1の内部ヘッダは、i)第1のネットワークパケットが発信された送信元ネットワークに含まれるユーザデバイスを特定する第1の送信元アドレスと、ii)第1のネットワークパケットがアドレス指定される宛先サーバを特定する第1の宛先アドレスとを含む。たとえば、エッジデバイスは送信元ネットワークからネットワークプロトコルパケットを受信し得、ヘッダはパケットを送信した送信元ネットワーク上のユーザデバイスのIPアドレスを特定する一方、宛先アドレスは第2のネットワーク上に位置する宛先サーバデバイスのIPアドレスを特定する。
複数のルーティング可能ネットワーク識別子から送信元ネットワーク識別子が送信元ネットワークについて選択される(304)。送信元ネットワーク識別子は送信元アドレスとは異なる。いくつかの実現例において、ルーティング可能ネットワーク識別子は、第2のネットワーク内でのみルーティング可能である必要がある。たとえば、エッジデバイスは、第2のネットワーク上において一意であると既知である文字ストリングのセットを有し得、それらの一意の文字ストリングのうちの1つは、送信元ネットワークについての送信元ネットワーク識別子として選択され得る。いくつかの実現例において、エッジデバイスは第2のネットワーク内のエッジデバイスを一意に識別するエッジデバイス識別子を有し、送信元ネットワークについて選択された送信元ネットワーク識別子はエッジデバイス識別子とは異なる。ネットワーク識別子としてIPアドレスを使用する例において、送信元ネットワーク識別子は第2のネットワークに対して一意のIPアドレスであり得る。たとえば、エッジデバイスのIPアドレスと同じではない。
いくつかの実現例において、送信元ネットワークは、エッジデバイスと通信する複数の送信元ネットワークのうちの1つである。送信元ネットワーク識別子は送信元ネットワークの各々について選択され、また、各送信元ネットワーク識別子は、エッジデバイスと通信する送信元ネットワークについて選択される各他の送信元ネットワーク識別子とは異なる。たとえば、10個の異なる送信元ネットワークに接続されるエッジデバイスは、それらの各々に割り当てられた10個の異なるIPアドレスを有し得る。IPアドレスは、第2のネットワーク内における対応する送信元ネットワークを一意に識別し得る。
第1のネットワークパケットは第1のカプセル化パケット内にカプセル化される(306)。第1のカプセル化パケットは第1の外部ヘッダを含み、第1の外部ヘッダは、i)送信元ネットワーク識別子を特定する第1の外部送信元アドレスと、ii)第1の宛先アドレスである第1の外部宛先アドレスとを含む。いくつかの実現例において、IPIPカプセル化は、第1のカプセル化パケット内に第1のネットワークパケットをカプセル化するために使用される。いくつかの実現例において、GREは第1のカプセル化パケット内に第1のネットワークパケットをカプセル化するために使用される。例として、第1のネットワークパケットは、第1のネットワークパケットと同じ宛先アドレスを特定するが送信元として送信元ネットワーク識別子を含む外部ヘッダの先頭に付加され得る。
いくつかの実現例において、第1のカプセル化パケットの第1の外部ヘッダは、パケットプロトコルフィールドを含み、第1のカプセル化パケット内に第1のネットワークパケットをカプセル化することは、第1のカプセル化パケットが第1のネットワークパケットをカプセル化することを示すパケットプロトコルフィールドについての値を特定することを含む。たとえば、所定の文字ストリングは、当該パケットがカプセル化パケットであるということをヘッダを読み出すデバイスに示す外部ヘッダのパケットプロトコルフィールドに配置され得る。
第1のカプセル化パケットは第2のネットワーク内の宛先サーバにルーティングされる(308)。いくつかの実現例では、複数のネットワークデバイスを含み得る第2のネットワークについての共通バックボーンは、エッジデバイスから宛先サーバにパケットをルーティングするために使用され得る。たとえば、第1のカプセル化パケットは第2のネットワーク内のネットワークロードバランサに提供され得る。ネットワークロードバランサは、宛先サーバにどのようにパケットがルーティングされるべきであるかを決定し得る。
第2のネットワークパケットを含む第2のカプセル化パケットが宛先サーバから受信される(310)。第2のネットワークパケットは第2の外部ヘッダを含み、第2の外部ヘッダは、i)第2のカプセル化パケットが発信された宛先サーバを特定する第1の宛先アドレスである第2の外部送信元アドレスと、ii)第2のカプセル化パケットがアドレス指定される送信元ネットワーク識別子を特定する第2の宛先アドレスとを含む。たとえば、エッジデバイスによって受信される第2のカプセル化パケットは、第1のカプセル化パケットがアドレス指定された宛先サーバによって送信された。第2のカプセル化パケットは、第1のカプセル化パケットの外部ヘッダにおける送信元アドレスとして特定された送信元ネットワーク識別子にアドレス指定される。
第2のネットワークパケットは、第2のカプセル化パケットから抽出される(312)。第2のネットワークパケットは第2の内部ヘッダを含み、第2の内部ヘッダは、i)第1の宛先アドレスである第2の送信元アドレスと、ii)第1の送信元アドレスである第2の宛先アドレスとを含む。たとえば、内部パケットは、オリジナルのネットワークパケットが受信されたユーザデバイスにアドレス指定される。
第2のネットワークパケットは送信元ネットワークにルーティングされる(314)。たとえば、エッジデバイスは、送信元ネットワークに含まれるルータに第2のネットワークパケットを転送し、ルータは、第1のネットワークパケットが発信されたパーソナルコンピュータまたは他のユーザデバイスに第2のネットワークパケットを転送する。
図4は、宛先デバイスがネットワークパケットカプセル化を使用して動作する例示的なプロセス400のフロー図である。例示的なプロセス400は、サーバデバイスのようなデータ処理装置によって実現され得る。
第1のカプセル化パケットは、データ処理装置によって、エッジデバイスから受信される(402)。いくつかの実現例において、エッジデバイスとデータ処理装置とは、1つ以上の外部ネットワークとは別個の共通ネットワークの一部である。たとえば、エッジデバイスおよびサーバデバイスの両方は、インターネットおよび/または送信元ネットワークのような外部ネットワークに接続されるLANの一部であり得る。
第1のカプセル化パケットに含まれるパケットプロトコルフィールドに基づいて、プロセス400は、第1のカプセル化パケットが第1のネットワークパケットをカプセル化していることを判定する(404)。いくつかの実現例において、データ処理装置は、パケットプロトコルフィールドを調べる前に、受信されたパケットが別のパケットをカプセル化していることを認識していない場合がある。パケットプロトコルフィールドはたとえば、受信されたパケットがカプセル化パケットであるということを特定する値を含み得る。
第1のカプセル化パケットが第1のネットワークパケットをカプセル化しているという判定に応答して、第1のカプセル化パケットの第1の外部ヘッダに含まれる第1の外部送信元アドレスが識別される(406)。第1の外部送信元アドレスは、第1のネットワークパケットが発信された送信元ネットワークを特定する。
第1の外部送信元アドレスは、ネットワーク接続テーブルに記録される(408)。たとえば、第1のカプセル化パケットを受信したサーバデバイスは、第1の外部送信元アドレスと、パケットが発信された送信元ネットワークとの通信を確立することに関連する任意の他のデータとをその接続テーブルに記録する。
第1のネットワークパケットが第1のカプセル化パケットから抽出される(410)。第1のネットワークパケットは、第1の内部ヘッダを含み、第1の内部ヘッダは、i)第1のネットワークパケットが発信されたユーザデバイスを特定する第1の送信元アドレスと、ii)第1のネットワークパケットがアドレス指定されるデータ処理装置を特定する第1の宛先アドレスとを含む。たとえば、第1の送信元アドレスは、パーソナルコンピュータのIPアドレスおよび/または送信元ネットワークのルータであり得、第1の宛先アドレスは、サーバデバイスのIPアドレスを特定し得る。
第1のネットワークパケットが処理される(412)。サーバデバイスは、第1のパケットを処理するためにその標準的な処理方法を使用し得る。たとえば、パケットに含まれるペイロードがサーバデバイスからコンテンツを要求する場合、サーバデバイスは、たとえばサーバデバイスに接続された1つ以上のストレージデバイス上でおいて、要求されたコンテンツの位置を突きとめ得、当該要求を行ったユーザデバイスへの送信のためにコンテンツを準備し得る。
第2のネットワークパケットが生成される(414)。第2のネットワークパケットは第2の内部ヘッダを含み、第2の内部ヘッダは、i)データ処理装置を特定する第1の宛先アドレスである第2の送信元アドレスと、ii)第2のネットワークパケットがアドレス指定される第1の送信元アドレスである第2の宛先アドレスとを含む。たとえば、第2の送信元アドレスはサーバデバイスのIPアドレスであり得、第2の宛先アドレスはユーザデバイスのIPアドレスであり得る。
第1の外部送信元アドレスがネットワーク接続テーブルから得られる(416)。たとえば、サーバデバイスはたとえば、第1のネットワークパケットが発信された送信元ネットワークの識別子を含む第1のネットワークパケットに応答するために必要なデータをローカルストレージから抽出し得る。
第2のネットワークパケットが第2のカプセル化パケット内にカプセル化される(418)。第2のカプセル化パケットは第2のネットワークパケットと第2の外部ヘッダとを含み、第2の外部ヘッダは、i)データ処理装置を特定する第1の宛先アドレスである第2の外部送信元アドレスと、ii)第2のカプセル化パケットがアドレス指定される第1の外部送信元アドレスである外部宛先アドレスとを含む。たとえば、サーバデバイスは、第2のネットワークパケットについて外部ヘッダを作成するためにIPIPカプセル化を使用し得、外部ヘッダは、その宛先として送信元ネットワーク識別子を特定し、送信元としてIPアドレスサーバデバイスを特定する。
第2のカプセル化パケットは、第1の外部送信元アドレスによって特定される送信元ネットワークにルーティングされる(420)。たとえば、サーバデバイスは、第1のカプセル化パケットが受信されたエッジデバイスに第2のカプセル化パケットを直接的または間接的に転送し得、エッジデバイスは内部パケットを除去し、適切な送信元ネットワークへ内部パケットを転送し得る。いくつかの実現例において、エッジデバイスおよびデータ処理装置は、第1のネットワークパケットが発信された送信元ネットワークと別個の第2のネットワーク内に存在する。
いくつかの実現例では、エッジデバイスは、サーバデバイスを含む第2のネットワーク内の複数のエッジデバイスのうちの1つであり、エッジデバイスが送信元ネットワークと通信していることを特定する到達可能性インジケータが第2のネットワークに同報通信される。たとえば、エッジデバイスは、たとえば第2のネットワークのバックボーンおよび/または第2のネットワークにおける他のエッジデバイスに、エッジデバイスが通信している送信元ネットワークをアドバタイジングし得る。エッジデバイスと送信元ネットワークとの間の通信網のアドバタイジングにより、第2のネットワークを介する通信のルーティングが促進され得るとともに、障害を起こした可能性のあるエッジデバイスについて他のエッジデバイスが引き継ぐこと可能にすることによってエッジデバイス障害保護が提供される。
いくつかの実現例において、データ処理装置はネットワークデバイスから第3のネットワークパケットを受信する。たとえば、ネットワークデバイスは、サーバデバイスおよびエッジデバイスが存在する共通ネットワークの外部であるネットワークルータであり得る。第3のネットワークパケットに含まれるパケットプロトコルフィールドに基づいて、第3のネットワークパケットが別のネットワークパケットをカプセル化していないことが判定され得る。その判定を行うことに応答して、サーバデバイスは、たとえば標準的なネットワークルーティング方法を使用して第3のネットワークパケットを処理し得る。たとえば、この実現例では、サーバデバイスは、カプセル化されたネットワークパケットおよび標準的なネットワークパケットを受信することと、どのタイプのネットワークパケットが受信されるか判定することと、受信されたネットワークパケットのタイプに依存して適切に応答することとが可能である。
図5は、例示的なデータ処理装置500のブロック図である。システム500は、プロセッサ510、メモリ520、ストレージデバイス530および入出力デバイス540を含む。コンポーネント510、520、530および540の各々はたとえば、システムバス550を使用して相互接続され得る。プロセッサ510はシステム500内での実行のための命令を処理することが可能である。1つの実現例において、プロセッサ510はシングルスレッドのプロセッサである。別の実現例において、プロセッサ510はマルチスレッドのプロセッサである。プロセッサ510は、メモリ520内またはストレージデバイス530上に格納される命令を処理することが可能である。
メモリ520はシステム500内に情報を格納する。1つの実現例において、メモリ520はコンピュータ読取可能媒体である。1つの実現例において、メモリ520は揮発性メモリユニットである。別の実現例において、メモリ520は不揮発性メモリユニットである。
ストレージデバイス530はシステム500のためにマスストレージ(mass storage)を提供することが可能である。1つの実現例において、ストレージデバイス530はコンピュータ読取可能媒体である。さまざまな異なる実現例において、ストレージデバイス530はたとえば、ハードディスクデバイス、光ディスクデバイス、または、何らかの他の大容量ストレージデバイスを含み得る。
入出力デバイス540はシステム500に対して入出力動作を提供する。1つの実現例において、入出力デバイス540は、たとえばイーサネット(登録商標)カード、たとえばRS−232ポートのようなシリアル通信デバイス、および/または、たとえば802.11カードのような無線インターフェイスデバイスといった1つ以上のネットワークインターフェイスデバイスを含み得る。別の実現例において、入出力デバイスは、入力データを受信し、かつ、たとえばキーボード、プリンタおよび表示デバイス560といった他の入出力デバイスに出力データを送信するように構成されるドライバデバイスを含み得る。しかしながら、モバイルコンピューティングデバイス、モバイル通信デバイス、セットトップボックステレビジョンクライアントデバイスなどといった他の実現例も使用され得る。
主題の実施形態および本明細書に記載される動作は、デジタル電子回路において、または、本明細書において開示された構造およびそれらの構造等価物を含むコンピュータソフトウェア、ファームウェアまたはハードウェアにおいて、または、それらの1つ以上の組合せにおいて実現され得る。本明細書に記載される主題の実施形態は、1つ以上のコンピュータプログラムとして、すなわち、データ処理装置による実行のために、または、データ処理装置の動作を制御するためにコンピュータストレージ媒体上でエンコードされたコンピュータプログラム命令の1つ以上のモジュールとして実現され得る。
コンピュータストレージ媒体は、コンピュータ読取可能ストレージデバイス、コンピュータ読取可能ストレージ基板、ランダムもしくはシリアルアクセスメモリアレイもしくはデバイス、または、それらの1つ以上の組合せであり得るか、または、それらに含まれ得る。さらに、コンピュータストレージ媒体は伝播された信号でないが、コンピュータストレージ媒体は、人工的に生成された伝播された信号においてエンコードされたコンピュータプログラム命令の送信元または宛先であり得る。コンピュータストレージ媒体は、1つ以上の別個の物理コンポーネントまたは媒体(たとえば複数のCD、ディスクまたは他のストレージデバイス)であり得るか、または、これらに含まれ得る。
本明細書において記載された動作は、1つ以上のコンピュータ読取可能ストレージデバイス上に格納されたデータまたは他の送信元から受信されたデータに対してデータ処理装置によって実行される動作として実現され得る。
「データ処理装置」という用語は、例としてプログラマブルプロセッサ、コンピュータ、システムオンチップ、または前述のもののうちの複数すなわち組合せを含む、データを処理するためのすべての種類の装置、デバイスおよびマシンを包含する。当該装置は、たとえばFPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)といった特定目的論理回路を含み得る。当該装置は、ハードウェアに加えて、たとえばプロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォームランタイム環境、バーチャルマシン、または、それらの1つ以上の組合せを構成するコードといった、当該コンピュータプログラムについて実行環境を作成するコードをさらに含み得る。装置および実行環境は、ウェブサービス、分散コンピューティングおよびグリッドコンピューティングインフラストラクチャといったさまざまな異なるコンピューティングモデルインフラストラクチャを実現可能である。
(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプトまたはコードとしても既知である)コンピュータプログラムは、コンパイル型もしくはインタープリタ型言語、宣言型もしくは手続き型言語を含む任意の形態のプログラミング言語で記述され得、スタンドアロンプログラムとして、または、モジュール、コンポーネント、サブルーチン、オブジェクト、もしくは、コンピューティング環境で使用するのに好適な他のユニットとして任意の形態で展開され得る。コンピュータプログラムは、ファイルシステムにおけるファイルに対応し得るが、対応する必要があるわけではない。プログラムは、当該プログラムに専用である単一のファイルにおいて、または、複数のコーディネーテッドファイル(coordinated files)(たとえばコードの1つ以上のモジュール、サブプログラムまたは部分を格納するファイル)において、他のプログラムまたはデータ(たとえばマークアップ言語ドキュメントに格納される1つ以上のスクリプト)を保持するファイルの部分に格納され得る。コンピュータプログラムは、1つの場所に位置するか、または、複数の場所にわたって分散され通信ネットワークによって相互接続される1つのコンピュータまたは複数のコンピュータ上で実行されるように展開され得る。
本明細書に記載されるプロセスおよび論理フローは、入力データに対して動作し出力を生成することによりアクションを実行するよう1つ以上のプログラマブルプロセッサが1つ以上のコンピュータプログラムを実行することによって実行され得る。プロセスおよび論理フローは、たとえばFPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)といった特殊目的論理回路によって実行され得、装置も当該特殊目的論理回路として実現され得る。
コンピュータプログラムの実行に好適であるプロセッサは、例として汎用マイクロプロセッサおよび特殊目的マイクロプロセッサの両方と任意の種類のデジタルコンピュータのいずれか1つ以上のプロセッサとを含む。一般に、プロセッサは、リードオンリメモリまたはランダムアクセスメモリまたはその両方から命令およびデータを受け取る。コンピュータの必須の要素は、命令に従ってアクションを実行するためのプロセッサと、命令およびデータを格納するための1つ以上のメモリデバイスとである。一般に、コンピュータはさらに、たとえば磁気ディスク、光磁気ディスクまたは光ディスクといった、データを格納するための1つ以上のマスストレージデバイスを含むか、または、当該1つ以上のマスストレージデバイスからデータを受け取るか、当該1つ以上のマスストレージデバイスにデータを転送するか、もしくは、その両方を行うように動作可能に結合される。しかしながら、コンピュータはそのようなデバイスを有する必要がない。さらに、コンピュータはたとえば、携帯電話、携帯情報端末(PDA)、モバイルオーディオまたはビデオプレーヤ、ゲームコンソール、全地球測位システム(GPS)レシーバ、またはポータブルストレージデバイス(たとえばユニバーサルシリアルバス(USB)フラッシュドライブ)といった別のデバイスに埋め込まれ得る。コンピュータプログラム命令およびデータを格納するのに好適であるデバイスは、例として、たとえばEPROM、EEPROMおよびフラッシュメモリ素子といった半導体メモリデバイスと、たとえば内部ハードディスクまたはリムーバブルディスクといった磁気ディスクと、光磁気ディスクと、CD−ROMおよびDVD−ROMディスクとを含むすべての形態の不揮発性メモリ、媒体およびメモリデバイスを含む。プロセッサおよびメモリは、特殊目的論理回路によって補足され得るか、または、特殊目的論理回路に組み込まれ得る。
ユーザとのインタラクションを提供するために、本明細書に記載される主題の実施形態は、たとえばCRT(陰極線管)またはLCD(液晶ディスプレイ)モニタといったユーザに対して情報を表示するための表示デバイスと、たとえばマウス、トラックボールといったユーザがコンピュータに入力を提供可能であるキーボードおよびポインティングデバイスとを有するコンピュータ上で実現され得る。他の種類のデバイスが同様に、ユーザとのインタラクションを提供するために使用され得る。たとえば、ユーザに提供されるフィードバックは、たとえば視覚フィードバック、聴覚フィードバックまたは触覚フィードバックといった任意の形態の感覚フィードバックであり得、また、ユーザからの入力は、音響入力、音声入力、または触覚入力を含む任意の形態で受け取られ得る。さらに、コンピュータは、ユーザが使用するデバイスにドキュメントを送信しユーザが使用するデバイスからドキュメントを受け取ることによって、たとえば、ウェブブラウザから受け取られた要求に応答してユーザのユーザデバイス上のウェブブラウザにウェブページを送信することによって、ユーザとインタラクションし得る。
本明細書に記載される主題の実施形態は、たとえばデータサーバとしてバックエンドコンポーネントを含むコンピューティングシステムにおいて実現され得るか、たとえばアプリケーションサーバといったミドルウェアコンポーネントを含むコンピューティングシステムにおいて実現され得るか、たとえば本明細書に記載される主題の実現例とユーザがインタラクションすることが可能であるグラフィカルユーザーインターフェイスもしくはウェブブラウザを有するユーザコンピュータといったフロントエンドコンポーネントを含むコンピューティングシステムにおいて実現され得るか、または、1つ以上のそのようなバックエンドコンポーネント、ミドルウェアコンポーネントまたはフロントエンドコンポーネントの任意の組合せのコンピューティングシステムにおいて実現され得る。システムのコンポーネントは、たとえば通信ネットワークといったデジタルデータ通信の任意の形態または媒体によって相互接続され得る。通信ネットワークの例は、ローカルエリアネットワーク(「LAN」)と、ワイドエリアネットワーク(「WAN」)と、相互ネットワーク(たとえばインターネット)と、ピアツーピアネットワーク(たとえばアドホックピアツーピアネットワーク)とを含む。
コンピューティングシステムはユーザおよびサーバを含み得る。ユーザとサーバとは一般に互いからリモートであり、典型的には通信ネットワークを通じてインタラクションする。ユーザおよびサーバの関係は、それぞれのコンピュータ上で実行されるとともに互いにユーザサーバ関係を有するコンピュータプログラムによって発生する。いくつかの実施形態において、サーバは、(たとえばユーザデバイスとインタラクションするユーザに対してデータを表示するとともに当該ユーザからユーザ入力を受け取る目的で)ユーザデバイスにデータ(たとえばHTMLページ)を送信する。ユーザデバイスにて生成されたデータ(たとえばユーザインタラクションの結果)は、サーバにおいてユーザデバイスから受け取られ得る。
本明細書は多くの特定の実現例の詳細を含んでいるが、これらは如何なる発明の範囲または請求され得るものの範囲に対する限定としても解釈されるべきでなく、特定の発明の特定の実施形態に特有の特徴の記載として解釈されるべきである。別個の実施形態の文脈で本明細書において記載されるある特徴も、単一の実施形態において組合せで実現され得る。反対に、単一の実施形態の文脈において記載されるさまざまな特徴も、複数の実施形態において別々にまたは任意の好適なサブコンビネーションで実現され得る。さらに、特徴は、ある組合せにおいて作用すると上で記載されているとともにそのように最初は請求されている場合があるが、請求される組合せのうちの1つ以上の特徴はいくつかの場合には当該組合せから削除され得、請求される組合せは、サブコンビネーションまたはサブコンビネーションの変形例に関し得る。
同様に、図において動作は特定の順に示されているが、そのような動作は、望ましい結果を達成するために、示された当該特定の順もしくは連続した順で実行される必要があると理解されるべきでなく、または、すべての示された動作が実行される必要があると理解されるべきでない。ある状況において、マルチタスキングおよび並列処理が有利であり得る。さらに、上に記載された実施形態におけるさまざまなシステムコンポーネントの分離は、すべての実施形態においてそのような分離を必要とすると理解されるべきでなく、記載されたプログラムコンポーネントおよびシステムは一般に、単一のソフトウェアプロダクトに一緒に統合され得るか、または、複数のソフトウェアプロダクトへとパッケージ化され得るということが理解されるべきである。
したがって、主題の特定の実施形態が記載されている。他の実施形態は添付の請求の範囲内にある。いくつかの場合には、請求項において記載されるアクションは、異なる順で実行され得、それでも望ましい結果を達成し得る。さらに、添付の図において示されるプロセスは、望ましい結果を達成するために、示された特定の順または連続する順であることを必ずしも必要としない。ある実現例において、マルチタスキングおよび並列処理が有利であり得る。

Claims (19)

  1. データ処理装置によって実現される方法であって、
    複数の送信元ネットワークの特定の送信元ネットワークから第1のネットワークパケットを、前記特定の送信元ネットワークの外部であって第2のネットワーク内のエッジデバイスにおいて受信することを含み、前記第1のネットワークパケットは第1の内部ヘッダを含み、前記第1の内部ヘッダは、i)前記第1のネットワークパケットが発信された前記特定の送信元ネットワークに含まれるユーザデバイスを特定する第1の送信元アドレスと、ii)前記第1のネットワークパケットがアドレス指定される宛先サーバを特定する第1の宛先アドレスとを含み、前記方法は、
    各々が前記複数の送信元ネットワークの1つを一意に識別する複数のルーティング可能識別子から前記特定の送信元ネットワークについて特定の識別子を選択することを含み、前記特定の識別子は前記第1の送信元アドレスとは異なっており、前記方法はさらに、
    第1のカプセル化パケット内に前記第1のネットワークパケットをカプセル化することを含み、前記第1のカプセル化パケットは第1の外部ヘッダを含み、前記第1の外部ヘッダは、i)前記特定の識別子を特定する第1の外部送信元アドレスと、ii)前記第1の宛先アドレスである第1の外部宛先アドレスとを含み、前記方法はさらに、
    前記第2のネットワーク内において前記宛先サーバに前記第1のカプセル化パケットをルーティングすることと、
    第2のカプセル化パケットを前記宛先サーバから受信することとを含み、前記第2のカプセル化パケットは第2の外部ヘッダを含む第2のネットワークパケットを含み、前記第2の外部ヘッダは、i)前記第2のカプセル化パケットが発信された前記宛先サーバを特定する前記第1の宛先アドレスである第2の外部送信元アドレスと、ii)前記第2のカプセル化パケットがアドレス指定される前記特定の識別子を特定する第2の宛先アドレスとを含み、前記方法はさらに、
    前記第2のカプセル化パケットから前記第2のネットワークパケットを抽出することを含み、前記第2のネットワークパケットは第2の内部ヘッダを含み、前記第2の内部ヘッダは、i)前記第1の宛先アドレスである第2の送信元アドレスと、ii)前記第1の送信元アドレスである第2の宛先アドレスとを含み、前記方法はさらに、
    前記特定の識別子に基づいて、前記特定の送信元ネットワークに前記第2のネットワークパケットをルーティングすることを含む、方法。
  2. 前記第1のカプセル化パケット内に前記第1のネットワークパケットをカプセル化することは、前記第1のネットワークパケットをカプセル化するためにIP in IPカプセル化を使用することを含む、請求項1に記載の方法。
  3. 前記第1のカプセル化パケット内に前記第1のネットワークパケットをカプセル化することは、前記第1のネットワークパケットをカプセル化するためにGeneric Routing Encapsulationを使用することを含む、請求項1または2に記載の方法。
  4. 前記第1のカプセル化パケットの前記第1の外部ヘッダはパケットプロトコルフィールドを含み、第1のカプセル化パケット内に前記第1のネットワークパケットをカプセル化することは、前記第1のカプセル化パケットが前記第1のネットワークパケットをカプセル化していることを示す前記パケットプロトコルフィールドについての値を特定することを含む、請求項1から3のいずれか1項に記載の方法。
  5. 前記宛先サーバに前記第1のカプセル化パケットをルーティングすることは、前記第2のネットワーク内においてネットワークロードバランサに前記第1のカプセル化パケットを提供することを含む、請求項1から4のいずれか1項に記載の方法。
  6. 前記エッジデバイスは前記第2のネットワーク内の複数のエッジデバイスのうちの1つであり、前記方法はさらに、
    前記エッジデバイスが前記特定の送信元ネットワークと通信することを特定する到達可能性インジケータを前記第2のネットワークに同報通信することを含む、請求項1から5のいずれか1項に記載の方法。
  7. 前記エッジデバイスは前記第2のネットワーク内における前記エッジデバイスを一意に識別するエッジデバイス識別子を有し、前記特定の送信元ネットワークについて選択される前記特定の識別子は前記エッジデバイス識別子とは異なる、請求項1から6のいずれか1項に記載の方法。
  8. 前記エッジデバイスは、前記第2のネットワーク内における複数のエッジデバイスの1つであり、前記方法はさらに、
    前記エッジデバイスが前記複数の送信元ネットワークと通信していることを特定する到達可能性インジケータを前記第2のネットワークに同報通信することを含む、請求項に記載の方法。
  9. データ処理装置によって実現される方法であって、
    データ処理装置によってエッジデバイスから第1のカプセル化パケットを受信することと、
    前記第1のカプセル化パケットに含まれるパケットプロトコルフィールドに基づいて、前記第1のカプセル化パケットが第1のネットワークパケットをカプセル化していることを判定することとを含み、前記判定に応答して、
    前記第1のカプセル化パケットの第1の外部ヘッダに含まれる第1の外部送信元アドレスを識別することを含み、前記第1の外部送信元アドレスは、各々が複数の送信元ネットワークの1つを一意に識別する複数のルーティング可能識別子の内の特定の識別子を含み、前記特定の識別子は、前記複数の送信元ネットワークの内の、前記第1のネットワークパケットが発信された特定の送信元ネットワークを特定し、前記方法はさらに、
    ネットワーク接続テーブルに前記第1の外部送信元アドレスを記録することと、
    前記第1のカプセル化パケットから前記第1のネットワークパケットを抽出することとを含み、前記第1のネットワークパケットは第1の内部ヘッダを含み、前記第1の内部ヘッダは、i)前記第1のネットワークパケットが発信されたユーザデバイスを特定する第1の送信元アドレスと、ii)前記第1のネットワークパケットがアドレス指定される前記データ処理装置を特定する第1の宛先アドレスとを含み、前記方法はさらに、
    前記第1のネットワークパケットを処理することと、
    第2のネットワークパケットを生成することとを含み、前記第2のネットワークパケットは第2の内部ヘッダを含み、前記第2の内部ヘッダは、i)前記データ処理装置を特定する前記第1の宛先アドレスである第2の送信元アドレスと、ii)前記第2のネットワークパケットがアドレス指定される前記第1の送信元アドレスである第2の宛先アドレスとを含み、前記方法はさらに、
    前記ネットワーク接続テーブルから前記第1の外部送信元アドレスを得ることと、
    第2のカプセル化パケット内に前記第2のネットワークパケットをカプセル化することとを含み、前記第2のカプセル化パケットは第2の外部ヘッダを含む前記第2のネットワークパケットを含み、前記第2の外部ヘッダは、i)前記データ処理装置を特定する前記第1の宛先アドレスである第2の外部送信元アドレスと、ii)前記第2のカプセル化パケットがアドレス指定される前記第1の外部送信元アドレスである外部宛先アドレスとを含み、前記方法はさらに、
    前記第1の外部送信元アドレスによって特定される前記送信元ネットワークに前記第2のカプセル化パケットをルーティングすることと、を含む、方法。
  10. 前記データ処理装置によってネットワークデバイスから第3のネットワークパケットを受信することと、
    前記第3のネットワークパケットに含まれるパケットプロトコルフィールドに基づいて、前記第3のネットワークパケットが別のネットワークパケットをカプセル化していないことを判定することと、
    前記第3のネットワークパケットを処理することとをさらに含む、請求項に記載の方法。
  11. 前記データ処理装置および前記エッジデバイスは、前記第1のネットワークパケットが発信された特定の送信元ネットワークとは別個である第2のネットワーク内に存在する、請求項または10に記載の方法。
  12. システムであって、
    1つ以上のデータ処理装置と、
    命令を格納するデータストレージデバイスとを含み、前記命令は、前記1つ以上のデータ処理装置によって実行されると、前記データ処理装置に、
    複数の送信元ネットワークの特定の送信元ネットワークから第1のネットワークパケットを、前記特定の送信元ネットワークの外部であって第2のネットワーク内のエッジデバイスにおいて受信することを含む動作を実行させ、前記第1のネットワークパケットは第1の内部ヘッダを含み、前記第1の内部ヘッダは、i)前記第1のネットワークパケットが発信された前記特定の送信元ネットワークに含まれるユーザデバイスを特定する第1の送信元アドレスと、ii)前記第1のネットワークパケットがアドレス指定される宛先サーバを特定する第1の宛先アドレスとを含み、前記命令はさらに、
    各々が前記複数の送信元ネットワークの1つを一意に識別する複数のルーティング可能識別子から前記特定の送信元ネットワークについて特定の識別子を選択することを含む動作を実行させ、前記特定の識別子は前記第1の送信元アドレスとは異なっており、前記命令はさらに、
    第1のカプセル化パケット内に前記第1のネットワークパケットをカプセル化することとを含む動作を実行させ、前記第1のカプセル化パケットは第1の外部ヘッダを含み、前記第1の外部ヘッダは、i)前記特定の識別子を特定する第1の外部送信元アドレスと、ii)前記第1の宛先アドレスである第1の外部宛先アドレスとを含み、前記命令はさらに、
    前記第2のネットワーク内において前記宛先サーバに前記第1のカプセル化パケットをルーティングすることと、
    第2のカプセル化パケットを前記宛先サーバから受信することとを含む動作を実行させ、前記第2のカプセル化パケットは第2の外部ヘッダを含む第2のネットワークパケットを含み、前記第2の外部ヘッダは、i)前記第2のカプセル化パケットが発信された前記宛先サーバを特定する前記第1の宛先アドレスである第2の外部送信元アドレスと、ii)前記第2のカプセル化パケットがアドレス指定される前記特定の識別子を特定する第2の宛先アドレスとを含み、前記命令はさらに、
    前記第2のカプセル化パケットから前記第2のネットワークパケットを抽出することを含む動作を実行させ、前記第2のネットワークパケットは第2の内部ヘッダを含み、前記第2の内部ヘッダは、i)前記第1の宛先アドレスである第2の送信元アドレスと、ii)前記第1の送信元アドレスである第2の宛先アドレスとを含み、前記命令はさらに、
    前記特定の識別子に基づいて、前記特定の送信元ネットワークに前記第2のネットワークパケットをルーティングすることを含む、システム。
  13. 前記第1のカプセル化パケット内に前記第1のネットワークパケットをカプセル化することは、前記第1のネットワークパケットをカプセル化するためにIP in IPカプセル化を使用することを含む、請求項12に記載のシステム。
  14. 前記第1のカプセル化パケット内に前記第1のネットワークパケットをカプセル化することは、前記第1のネットワークパケットをカプセル化するためにGeneric Routing Encapsulationを使用することを含む、請求項12または13に記載のシステム。
  15. 前記第1のカプセル化パケットの前記第1の外部ヘッダはパケットプロトコルフィールドを含み、第1のカプセル化パケット内に前記第1のネットワークパケットをカプセル化することは、前記第1のカプセル化パケットが前記第1のネットワークパケットをカプセル化していることを示す前記パケットプロトコルフィールドについての値を特定することを含む、請求項12から14のいずれか1項に記載のシステム。
  16. 前記宛先サーバに前記第1のカプセル化パケットをルーティングすることは、前記第2のネットワーク内においてネットワークロードバランサに前記第1のカプセル化パケットを提供することを含む、請求項12から15のいずれか1項に記載のシステム。
  17. 前記エッジデバイスは、前記第2のネットワーク内における複数のエッジデバイスのうちの1つであり、前記命令はさらに、
    前記エッジデバイスが前記送信元ネットワークと通信していることを特定する到達可能性インジケータを前記第2のネットワークに同報通信することを含む、請求項12から16のいずれか1項に記載のシステム。
  18. 前記エッジデバイスは前記第2のネットワーク内における前記エッジデバイスを一意に識別するエッジデバイス識別子を有し、前記特定の送信元ネットワークについて選択される前記特定の識別子は前記エッジデバイス識別子とは異なる、請求項12から17のいずれか1項に記載のシステム。
  19. 命令を含むコンピュータ読取可能なプログラムであって、前記命令は、コンピュータによって実行されると、前記コンピュータに、
    複数の送信元ネットワークの特定の送信元ネットワークから第1のネットワークパケットを、前記特定の送信元ネットワークの外部であって第2のネットワーク内のエッジデバイスにおいて受信することを含む動作を実行させ、前記第1のネットワークパケットは第1の内部ヘッダを含み、前記第1の内部ヘッダは、i)前記第1のネットワークパケットが発信された前記特定の送信元ネットワークに含まれるユーザデバイスを特定する第1の送信元アドレスと、ii)前記第1のネットワークパケットがアドレス指定される宛先サーバを特定する第1の宛先アドレスとを含み、前記命令はさらに、
    各々が前記複数の送信元ネットワークの1つを一意に識別する複数のルーティング可能識別子から前記特定の送信元ネットワークについて特定の識別子を選択することを含む動作を実行させ、前記特定の識別子は前記第1の送信元アドレスとは異なっており、前記命令はさらに、
    第1のカプセル化パケット内に前記第1のネットワークパケットをカプセル化することとを含む動作を実行させ、前記第1のカプセル化パケットは第1の外部ヘッダを含み、前記第1の外部ヘッダは、i)前記特定の識別子を特定する第1の外部送信元アドレスと、ii)前記第1の宛先アドレスである第1の外部宛先アドレスとを含み、前記命令はさらに、
    前記第2のネットワーク内において前記宛先サーバに前記第1のカプセル化パケットをルーティングすることと、
    第2のカプセル化パケットを前記宛先サーバから受信することとを含む動作を行わせ、前記第2のカプセル化パケットは第2の外部ヘッダを含む第2のネットワークパケットを含み、前記第2の外部ヘッダは、i)前記第2のカプセル化パケットが発信された前記宛先サーバを特定する前記第1の宛先アドレスである第2の外部送信元アドレスと、ii)前記第2のカプセル化パケットがアドレス指定される前記特定の識別子を特定する第2の宛先アドレスとを含み、
    前記第2のカプセル化パケットから前記第2のネットワークパケットを抽出することを含む動作を実行させ、前記第2のネットワークパケットは第2の内部ヘッダを含み、前記第2の内部ヘッダは、i)前記第1の宛先アドレスである第2の送信元アドレスと、ii)前記第1の送信元アドレスである第2の宛先アドレスとを含み、前記命令はさらに、
    前記特定の識別子に基づいて、前記特定の送信元ネットワークに前記第2のネットワークパケットをルーティングすることを含む動作を実行させる、コンピュータ読取可能なプログラム。
JP2016569031A 2014-05-27 2015-05-22 ネットワークパケットカプセル化およびルーティング Active JP6367371B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/287,431 US9525627B2 (en) 2014-05-27 2014-05-27 Network packet encapsulation and routing
US14/287,431 2014-05-27
PCT/US2015/032232 WO2015183745A1 (en) 2014-05-27 2015-05-22 Network packet encapsulation and routing

Publications (2)

Publication Number Publication Date
JP2017517971A JP2017517971A (ja) 2017-06-29
JP6367371B2 true JP6367371B2 (ja) 2018-08-01

Family

ID=53373612

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016569031A Active JP6367371B2 (ja) 2014-05-27 2015-05-22 ネットワークパケットカプセル化およびルーティング

Country Status (8)

Country Link
US (1) US9525627B2 (ja)
EP (1) EP3149898B1 (ja)
JP (1) JP6367371B2 (ja)
KR (1) KR101764402B1 (ja)
CN (1) CN106464564B (ja)
AU (1) AU2015267341B2 (ja)
DE (1) DE202015009251U1 (ja)
WO (1) WO2015183745A1 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11212877B2 (en) * 2015-07-06 2021-12-28 Icom Incorporated Relaying device, method of relaying communication packet and voice communication system
US9912614B2 (en) * 2015-12-07 2018-03-06 Brocade Communications Systems LLC Interconnection of switches based on hierarchical overlay tunneling
KR101947169B1 (ko) * 2017-06-30 2019-02-12 주식회사 아라드네트웍스 IP 터널링을 이용한IoT 디바이스제어 방법 및장치
CN107249038A (zh) * 2017-07-06 2017-10-13 腾讯科技(深圳)有限公司 业务数据转发方法及系统
US10469367B2 (en) 2017-10-04 2019-11-05 Cisco Technology, Inc. Segment routing network processing of packets including operations signaling and processing of packets in manners providing processing and/or memory efficiencies
CN109728988B (zh) * 2017-10-27 2020-05-12 贵州白山云科技股份有限公司 一种跨内网通信方法及装置
US11019075B2 (en) * 2018-06-26 2021-05-25 Cisco Technology, Inc. Providing processing and network efficiencies in protecting internet protocol version 6 segment routing packets and functions using security segment identifiers
CN109688060B (zh) * 2018-12-29 2021-06-29 杭州迪普科技股份有限公司 链路分组配置方法、装置及路由器
US10771429B1 (en) * 2019-03-27 2020-09-08 Vmware, Inc. Mechanisms for solving an IP fragmentation overlapping issue in L2VPN using multiple IP addresses in GRE headers
US11218512B2 (en) * 2019-04-30 2022-01-04 Palo Alto Networks, Inc. Security policy enforcement and visibility for network architectures that mask external source addresses
WO2020222436A1 (en) * 2019-04-30 2020-11-05 Lg Electronics Inc. Method and apparatus for transmitting packets based on receiving a handover command in wireless communication system
US11128491B2 (en) 2019-08-13 2021-09-21 Cloudflare, Inc. Network layer performance and security provided by a distributed cloud computing network
US11399305B2 (en) * 2020-02-27 2022-07-26 At&T Intellectual Property I, L.P. Network edge cloud adjustment
US11496382B2 (en) * 2020-09-30 2022-11-08 Charter Communications Operating, Llc System and method for recording a routing path within a network packet
JP2022076833A (ja) * 2020-11-10 2022-05-20 富士フイルムビジネスイノベーション株式会社 情報処理装置及び情報処理プログラム
US11616721B2 (en) * 2020-11-24 2023-03-28 International Business Machines Corporation In-packet version tagging utilizing a perimeter NAT

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5940394A (en) 1996-08-08 1999-08-17 At&T Corp Transferring messages in networks made up of subnetworks with different namespaces
US7058973B1 (en) 2000-03-03 2006-06-06 Symantec Corporation Network address translation gateway for local area networks using local IP addresses and non-translatable port addresses
MXPA02010911A (es) * 2000-05-06 2004-09-13 Coreexpress Inc Metodo y sistema para enviar informacion sobre una extranet.
US20030195973A1 (en) * 2002-04-11 2003-10-16 Raymond Savarda Methods, systems, and computer program products for processing a packet with layered headers using a data structure that positionally relates the layered headers
US7209491B2 (en) 2002-06-28 2007-04-24 Nokia Corporation Method and system for transmitting data in a packet based communication network
US7139828B2 (en) 2002-08-30 2006-11-21 Ip Dynamics, Inc. Accessing an entity inside a private network
EP1420559A1 (en) * 2002-11-13 2004-05-19 Thomson Licensing S.A. Method and device for supporting a 6to4 tunneling protocol across a network address translation mechanism
EP1492268B1 (en) * 2003-06-25 2007-07-25 Alcatel Lucent Method and device for Ethernet MAC address translation in ethernet access networks
US8090858B2 (en) 2004-07-23 2012-01-03 Nokia Siemens Networks Oy Systems and methods for encapsulation based session initiation protocol through network address translation
US7656795B2 (en) 2005-04-11 2010-02-02 International Business Machines Corporation Preventing duplicate sources from clients served by a network address port translator
CN100488168C (zh) * 2005-12-13 2009-05-13 华为技术有限公司 一种对应用层报文进行安全封装的方法
JP4764737B2 (ja) * 2006-02-13 2011-09-07 富士通株式会社 ネットワークシステム、端末およびゲートウェイ装置
US8045550B2 (en) 2007-03-01 2011-10-25 Hewlett-Packard Development Company, L.P. Packet tunneling
CN100571214C (zh) * 2007-03-30 2009-12-16 北京交通大学 层次移动IPv6协议的双栈支持扩展方法
JP5225300B2 (ja) * 2010-01-28 2013-07-03 Kddi株式会社 プライベートネットワークを介したモバイルipの経路制御方法、モバイルルータ及びプログラム
US8259571B1 (en) 2010-03-26 2012-09-04 Zscaler, Inc. Handling overlapping IP addresses in multi-tenant architecture
CN108200225B (zh) 2010-06-29 2022-04-12 华为技术有限公司 不对称网络地址封装
CN102075528B (zh) * 2010-12-27 2014-12-10 上海聚欣网络科技有限公司 一种播放多种封装格式的网络多媒体文件的方法与设备
JP5601251B2 (ja) * 2011-03-10 2014-10-08 富士通株式会社 通信方法および通信システム
US8725898B1 (en) * 2011-03-17 2014-05-13 Amazon Technologies, Inc. Scalable port address translations
EP2547047B1 (en) * 2011-07-08 2016-02-17 Alcatel Lucent Centralized system for routing ethernet packets over an internet protocol network
JP5685653B2 (ja) * 2011-08-29 2015-03-18 株式会社日立製作所 Natサブトポロジ管理サーバ
US9838319B2 (en) 2011-09-26 2017-12-05 Wilmerding Communications Llc Encapsulation system featuring an intelligent network component
CN104205896B (zh) * 2012-03-23 2018-12-28 诺基亚技术有限公司 有拓扑不准确的源地址的IPv6数据包的自动隧道传输方法
JP5884658B2 (ja) * 2012-06-22 2016-03-15 富士通株式会社 通信方法、通信装置、および、通信プログラム
US9503344B2 (en) * 2014-07-25 2016-11-22 Telefonaktiebolaget L M Ericsson (Publ) Data path performance measurement using network traffic in a software defined network

Also Published As

Publication number Publication date
EP3149898B1 (en) 2019-10-09
AU2015267341A1 (en) 2016-10-06
JP2017517971A (ja) 2017-06-29
KR20170005129A (ko) 2017-01-11
KR101764402B1 (ko) 2017-08-02
CN106464564B (zh) 2019-10-01
WO2015183745A1 (en) 2015-12-03
US9525627B2 (en) 2016-12-20
DE202015009251U1 (de) 2017-01-18
EP3149898A1 (en) 2017-04-05
AU2015267341B2 (en) 2017-07-20
US20150350069A1 (en) 2015-12-03
CN106464564A (zh) 2017-02-22

Similar Documents

Publication Publication Date Title
JP6367371B2 (ja) ネットワークパケットカプセル化およびルーティング
CN108075956B (zh) 一种数据处理方法和装置
US8259571B1 (en) Handling overlapping IP addresses in multi-tenant architecture
US9350559B2 (en) Service discovery across different networks
WO2017000878A1 (zh) 报文处理
US20160226815A1 (en) System and method for communicating in an ssl vpn
US9231908B2 (en) Ensuring symmetric routing to private network
DK2901637T3 (en) NETWORK DEVICE
US11502955B2 (en) Dynamic internet protocol translation using port-control-protocol communication
JP2007531166A (ja) ピアツーピアネットワークにおいてファイアウォールを介してwebブラウジングを提供するための方法及びシステム
US11843455B2 (en) Systems and methods for monitoring network traffic
WO2017161965A1 (zh) 一种动态域名系统dns重定向方法、装置及系统
WO2017096888A1 (zh) 域名解析系统的实现方法及装置
US9137199B2 (en) Stateful NAT64 function in a distributed architecture
US10498836B2 (en) Network based service discovery via unicast messages
US11743233B2 (en) Scaling IP addresses in overlay networks
US9929951B1 (en) Techniques for using mappings to manage network traffic

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180222

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180227

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180522

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180612

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180704

R150 Certificate of patent or registration of utility model

Ref document number: 6367371

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250