IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 華為技術有限公司の特許一覧

特許7580467パケット送信方法および装置、ならびに記憶媒体
<>
  • 特許-パケット送信方法および装置、ならびに記憶媒体 図1
  • 特許-パケット送信方法および装置、ならびに記憶媒体 図2
  • 特許-パケット送信方法および装置、ならびに記憶媒体 図3
  • 特許-パケット送信方法および装置、ならびに記憶媒体 図4
  • 特許-パケット送信方法および装置、ならびに記憶媒体 図5
  • 特許-パケット送信方法および装置、ならびに記憶媒体 図6
  • 特許-パケット送信方法および装置、ならびに記憶媒体 図7
  • 特許-パケット送信方法および装置、ならびに記憶媒体 図8
  • 特許-パケット送信方法および装置、ならびに記憶媒体 図9
  • 特許-パケット送信方法および装置、ならびに記憶媒体 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-31
(45)【発行日】2024-11-11
(54)【発明の名称】パケット送信方法および装置、ならびに記憶媒体
(51)【国際特許分類】
   H04L 45/02 20220101AFI20241101BHJP
【FI】
H04L45/02
【請求項の数】 11
(21)【出願番号】P 2022541917
(86)(22)【出願日】2020-10-12
(65)【公表番号】
(43)【公表日】2023-03-17
(86)【国際出願番号】 CN2020120447
(87)【国際公開番号】W WO2021139288
(87)【国際公開日】2021-07-15
【審査請求日】2022-07-26
(31)【優先権主張番号】202010019654.4
(32)【優先日】2020-01-08
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】503433420
【氏名又は名称】華為技術有限公司
【氏名又は名称原語表記】HUAWEI TECHNOLOGIES CO.,LTD.
【住所又は居所原語表記】Huawei Administration Building, Bantian, Longgang District, Shenzhen, Guangdong 518129, P.R. China
(74)【代理人】
【識別番号】100132481
【弁理士】
【氏名又は名称】赤澤 克豪
(74)【代理人】
【識別番号】100115635
【弁理士】
【氏名又は名称】窪田 郁大
(72)【発明者】
【氏名】何 宏▲偉▼
(72)【発明者】
【氏名】房 永▲竜▼
(72)【発明者】
【氏名】于 ▲チー▼
【審査官】羽岡 さやか
(56)【参考文献】
【文献】米国特許出願公開第2016/0006654(US,A1)
【文献】米国特許出願公開第2019/0140940(US,A1)
【文献】特表2008-512971(JP,A)
【文献】国際公開第2012/049925(WO,A1)
【文献】特開2012-054731(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 45/00
(57)【特許請求の範囲】
【請求項1】
パケット送信方法であって、複数のネットワークデバイスが、第1のサイトに配置され、前記第1のサイトに配置された前記ネットワークデバイスと第2のサイトに配置されたネットワークデバイスとの間に、複数のトンネルが確立され、前記第2のサイトは、前記第1のサイトとのデータ伝送を実行するサイトであり、前記方法は、
1のネットワークデバイスによって、前記第1のサイトのユーザ端末から第2のデータパケットを受信するステップであって、前記第2のデータパケットは、宛先アドレスを搬送し、前記第2のデータパケットは、第2のデータフローに属する、ステップと、
前記第1のネットワークデバイスによって、前記宛先アドレスに基づいて前記複数のトンネルから目標トンネルとしてトンネルを選択するステップと、
前記第1のネットワークデバイスによって、前記第2のデータフローのフロー識別子に基づいて、第1のデータフローの前記フロー識別子を決定するステップと、
前記第1のネットワークデバイスによって、前記第1のネットワークデバイスに記憶されているフローテーブルに目標フローエントリを追加するステップであって、現在追加される目標フローエントリ中の前記フロー識別子は、前記第1のデータフローの前記フロー識別子であり、前記現在追加される目標フローエントリ中のアウトバウンドインタフェース識別子は、第1のインタフェースの識別子であり、前記第1のインタフェースは、前記第1のサイトの前記ユーザ端末から前記第2のデータパケットを受信するように構成された、前記第1のネットワークデバイス内のインタフェースである、ステップと、
前記目標トンネルが前記第1のネットワークデバイスと前記第2のサイトの前記ネットワークデバイスとの間に確立されたトンネルである場合、前記第1のネットワークデバイスによって、前記目標トンネルを通して前記第2のデータパケットを送信するステップと、
前記第1のネットワークデバイスによって、前記第2のサイトから第1のデータパケットを受信するステップであって、前記第1のネットワークデバイスは、前記複数のネットワークデバイスのうちの任意の1つである、ステップと、
前記第1のネットワークデバイスによって、前記第1のネットワークデバイスに記憶されている前記フローテーブルの中で、そのフロー識別子が前記第1のデータフローのフロー識別子である前記目標フローエントリを探索するステップであって、前記フローテーブルは、複数のフローエントリを含み、前記複数のフローエントリのそれぞれは、フロー識別子と、対応するアウトバウンドインタフェース識別子とを含み、前記第1のデータフローは、前記第1のデータパケットが属するデータフローであり、前記目標フローエントリは、前記第1のサイトが前記第2のデータフローを前記第2のサイトに送信するときに作成され、前記第2のデータフローのソースアドレスは、前記第1のデータフローの宛先アドレスであり、前記第2のデータフローの宛先アドレスは、前記第1のデータフローのソースアドレスである、ステップと、
前記目標フローエントリが見つかった場合、前記第1のネットワークデバイスによって、前記目標フローエントリ中の前記アウトバウンドインタフェース識別子に対応するインタフェースを通して前記第1のデータパケットを送信するステップと
を含む、方法。
【請求項2】
前記第1のネットワークデバイスによって、前記第1のネットワークデバイスに記憶されているフローテーブルの中で、そのフロー識別子が第1のデータフローのフロー識別子である目標フローエントリを探索する前記ステップの後で、前記方法は、
前記目標フローエントリが見つからず、前記目標フローエントリを探索していないネットワークデバイスが前記複数のネットワークデバイスの中にまだ存在する場合、前記第1のネットワークデバイスによって、前記第1のデータパケットを第2のネットワークデバイスに送信して、前記目標フローエントリを、前記第2のネットワークデバイスに記憶されているフローテーブルの中で探索するように前記第2のネットワークデバイスに指示するステップであって、前記第2のネットワークデバイスは、前記複数のネットワークデバイスのうち、前記目標フローエントリを探索していないネットワークデバイスである、ステップと、
前記目標フローエントリが見つからず、前記複数のネットワークデバイスが全て前記目標フローエントリを探索した場合、前記第1のネットワークデバイスによって、ローカルルートを通して前記第1のデータパケットを送信するステップと
をさらに含む、請求項1に記載の方法。
【請求項3】
前記第1のネットワークデバイスによって、前記目標フローエントリ中のアウトバウンドインタフェース識別子に対応するインタフェースを通して前記第1のデータパケットを送信する前記ステップは、
前記目標フローエントリ中の前記アウトバウンドインタフェース識別子に対応する前記インタフェースが、第1のタイプのインタフェースである場合、前記第1のネットワークデバイスによって、前記目標フローエントリ中の前記アウトバウンドインタフェース識別子に対応する前記インタフェースを通して前記第1のサイトのユーザ端末に前記第1のデータパケットを送信するステップであって、前記第1のタイプのインタフェースは、前記第1のサイトの前記ユーザ端末と通信するためのインタフェースである、ステップ、または
前記目標フローエントリ中の前記アウトバウンドインタフェース識別子に対応する前記インタフェースが、第2のタイプのインタフェースである場合、前記第1のネットワークデバイスによって、前記目標フローエントリ中の前記アウトバウンドインタフェース識別子に対応する前記インタフェースを通して前記第1のデータパケットを第3のネットワークデバイスに送信して、前記目標フローエントリを、前記第3のネットワークデバイスに記憶されているフローテーブルの中で探索するように前記第3のネットワークデバイスに指示するステップであって、前記第2のタイプのインタフェースは、前記複数のネットワークデバイスのうちの別のネットワークデバイスと通信するためのインタフェースであり、前記第3のネットワークデバイスは、前記複数のネットワークデバイスのうち、前記目標フローエントリ中の前記アウトバウンドインタフェース識別子に対応する前記インタフェースを通して前記第1のネットワークデバイスと通信するデバイスである、ステップ
を含む、請求項1に記載の方法。
【請求項4】
前記第1のネットワークデバイスは、ルーティングテーブルを記憶しており、前記ルーティングテーブルは、複数のルーティングエントリを含み、前記複数のルーティングエントリのそれぞれは、サイトプレフィックスおよび対応するサイト識別子を含み、
前記第1のネットワークデバイスによって、前記宛先アドレスに基づいて前記複数のトンネルから目標トンネルとしてトンネルを選択する前記ステップは、
前記第1のネットワークデバイスによって、前記宛先アドレスに基づいて前記ルーティングテーブルから目標ルーティングエントリを決定するステップであって、前記宛先アドレスは、前記目標ルーティングエントリに含まれるサイトプレフィックスと一致する、ステップと、
前記第1のネットワークデバイスによって、前記目標ルーティングエントリに含まれるサイト識別子に基づいて1つまたは複数のトンネルエントリを決定するステップであって、前記1つまたは複数のトンネルエントリは、前記第1のサイトと前記第2のサイトとの間に確立された前記トンネルに対応するトンネルエントリである、ステップと、
前記第1のネットワークデバイスによって、前記1つまたは複数のトンネルエントリから目標トンネルエントリとしてトンネルエントリを選択し、前記目標トンネルエントリに対応するトンネルを前記目標トンネルとして使用するステップと
を含む、請求項1に記載の方法。
【請求項5】
前記第2のデータフローの前記フロー識別子は、ソースポート情報、および宛先ポート情報を含み、
前記第1のネットワークデバイスによって、前記第2のデータフローのフロー識別子に基づいて、前記第1のデータフローの前記フロー識別子を決定する前記ステップは、
前記第1のネットワークデバイスによって、前記第2のデータフローのフロー識別子中の前記ソースポート情報と前記宛先ポート情報を入れ替えることにより、前記第1のデータフローの前記フロー識別子を取得するステップを含む、請求項1に記載の方法。
【請求項6】
前記第1のネットワークデバイスによって、前記第1のネットワークデバイスに記憶されている前記フローテーブルに前記目標フローエントリを追加する前記ステップの後で、前記方法は、
前記目標トンネルが、第4のネットワークデバイスと前記第2のサイトの前記ネットワークデバイスとの間に確立されたトンネルである場合、前記第1のネットワークデバイスによって、前記目標トンネルのトンネル識別子を前記第2のデータパケットに追加して、第3のデータパケットを取得するステップであって、前記第4のネットワークデバイスは、前記複数のネットワークデバイスのうちの、前記第1のネットワークデバイス以外のネットワークデバイスである、ステップと、
前記第1のネットワークデバイスによって、前記第3のデータパケットを前記第4のネットワークデバイスに送信して、前記第4のネットワークデバイスに、前記第2のデータパケットを分離し、前記第2のデータフローの前記フロー識別子に基づいて前記第1のデータフローの前記フロー識別子を決定し、前記第4のネットワークデバイスに記憶されているフローテーブルに前記目標フローエントリを追加し、前記目標トンネルを通して前記第2のデータパケットを送信するように指示するステップであって、現在追加される目標フローエントリに含まれる前記フロー識別子は、前記第1のデータフローの前記フロー識別子であり、前記現在追加される目標フローエントリ中の前記アウトバウンドインタフェース識別子は、第2のインタフェースの識別子であり、前記第2のインタフェースは、前記第3のデータパケットを受信するように構成された、前記第4のネットワークデバイス内のインタフェースである、ステップと
をさらに含む、請求項1に記載の方法。
【請求項7】
前記第1のデータパケットは、前記第1のネットワークデバイスと前記第2のサイトの前記ネットワークデバイスとの間に確立された前記トンネルを通して前記第1のネットワークデバイスによって受信されるデータパケットであるか、または第1のデータパケットは、前記第1のネットワークデバイスによって受信され、第5のネットワークデバイスによって送信されるデータパケットであり、前記第5のネットワークデバイスは、前記複数のネットワークデバイスのうちの前記第1のネットワークデバイス以外のネットワークデバイスである、請求項1から6のいずれか一項に記載の方法。
【請求項8】
前記複数のネットワークデバイスの間にネットワークリンクが確立され、前記複数のネットワークデバイスは、前記ネットワークリンクを通して通信し、前記ネットワークリンクは、物理リンクまたはネットワークトンネルであり、前記ネットワークトンネルは、汎用ルーティングカプセル化(GRE)トンネルを含む、請求項1から7のいずれか一項に記載の方法。
【請求項9】
第1のネットワークデバイスで使用されるパケット送信装置であって、複数のネットワークデバイスが、第1のサイトに配置され、前記第1のサイトに配置された前記ネットワークデバイスと第2のサイトに配置されたネットワークデバイスとの間に、複数のトンネルが確立され、前記第2のサイトは、前記第1のサイトとのデータ伝送を実行するサイトであり、前記第1のネットワークデバイスは、前記複数のネットワークデバイスのうちの任意の1つであり、前記第1のネットワークデバイスは、請求項1から8のいずれか一項に記載の方法を実装するように構成される、装置。
【請求項10】
コンピュータプログラムを記憶するコンピュータ可読記憶媒体であって、前記コンピュータプログラムがプロセッサによって実行されると、請求項1から8のいずれか一項に記載の方法のステップが実装される、コンピュータ可読記憶媒体。
【請求項11】
第1のサイトに配置された複数のネットワークデバイスを備えるパケット送信システムであって、前記複数のネットワークデバイスの間でネットワークリンクが確立され、前記第1のサイトに配置された前記ネットワークデバイスと第2のサイトに配置されたネットワークデバイスとの間に、複数のトンネルが確立され、前記第2のサイトは、前記第1のサイトとのデータ伝送を実行するサイトであり、前記複数のネットワークデバイスのうちの第1のネットワークデバイスは、請求項1から8のいずれか一項に記載の方法を実装するように構成される、パケット送信システム。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は、通信技術の分野に関し、特に、パケット送信方法および装置、ならびに記憶媒体に関する。
【背景技術】
【0002】
本出願は、参照によりその全体が本明細書に組み込まれる、2020年1月8日出願の「PACKET SENDING METHOD AND APPARATUS, AND STORAGE MEDIUM」と題する中国特許出願第202010019654.4号の優先権を主張するものである。
【0003】
ソフトウェア定義広域ネットワーク(Software-Defined WAN、SD-WAN)は、ソフトウェア定義ネットワーキング(software-defined networking、SDN)の重要な実施態様である。SD-WANでは、通常は、2つのサイトのネットワークデバイス間にオーバレイ(Overlay)技術を使用してトンネルが確立され、そのトンネルを通してパケットを送信することがある。さらに、それらのネットワークデバイスは、ディープパケットインスペクション(Deep Packet Inspection、DPI)を介してそのパケットが属するアプリケーションタイプをさらに識別して、そのアプリケーションタイプに基づいてパケットを送信することもある。ただし、通信の信頼性を保証するために、2つのネットワークデバイスは、通常はいくつかの重要なサイトに配置される。さらに、DPIでは、アプリケーションタイプは、同じアプリケーションに関して送信されるパケットと受信されるパケットとが同じネットワークデバイスを通過するときにのみうまく識別されることが可能である。したがって、この場合、2つのネットワークデバイス間のインタワーキングをどのようにして保証するか、および同じアプリケーションに関して送信されるパケットと受信されるパケットとが同じネットワークデバイスを通過することをどのようにして保証するかが、現在解決すべき喫緊の課題となっている。
【発明の概要】
【0004】
本出願は、サイトに複数のネットワークデバイスが配置されたときに、同じアプリケーションに関して送信されるパケットと受信されるパケットとが同じネットワークデバイスを通過することを保証することができないという問題を解決するために、パケット送信方法および装置、ならびに記憶媒体を提供するものである。技術的解決策は、以下の通りである。
【0005】
第1の態様によれば、パケット送信方法が提供される。複数のネットワークデバイスが、第1のサイトに配置される。第1のサイトに配置されたネットワークデバイスと第2のサイトに配置されたネットワークデバイスとの間に、複数のトンネルが確立される。第2のサイトは、第1のサイトとのデータ伝送を実行するサイトである。この場合、第1のネットワークデバイスは、第2のサイトから第1のデータパケットを受信し、第1のネットワークデバイスは、第1のネットワークデバイスに記憶されているフローテーブルの中で、そのフロー識別子が第1のデータフローのフロー識別子である目標フローエントリを探索し、目標フローエントリが見つかった場合、第1のネットワークデバイスは、目標フローエントリ中のアウトバウンドインタフェース識別子に対応するインタフェースを通して第1のデータパケットを送信する。
【0006】
第1のネットワークデバイスは、上記の複数のネットワークデバイスのうちの任意の1つである。フローテーブルは、複数のフローエントリを含み、複数のフローエントリのそれぞれは、フロー識別子と、対応するアウトバウンドインタフェース識別子とを含む。第1のデータフローは、第1のデータパケットが属するデータフローである。目標フローエントリは、第1のサイトが第2のデータフローを第2のサイトに送信するときに作成される。第2のデータフローのソースアドレスは、第1のデータフローの宛先アドレスであり、第2のデータフローの宛先アドレスは、第1のデータフローのソースアドレスである。
【0007】
本出願では、第2のサイトから第1のデータパケットを受信するときに、第1のネットワークデバイスは、フローテーブルの中で、そのフロー識別子が第1のデータフローのフロー識別子である目標フローエントリを探索することがある。第1のデータフローは、第1のデータパケットが属するデータフローである。目標フローエントリは、第1のサイトが第2のデータフローを第2のサイトに送信するときに作成される。第2のデータフローのソースアドレスは、第1のデータフローの宛先アドレスであり、第2のデータフローの宛先アドレスは、第1のデータフローのソースアドレスである。したがって、目標フローエントリは、第2のデータフローが第1のネットワークデバイスを通過するときにのみ、第1のネットワークデバイスのフローテーブルに存在する。このようにしてのみ、第1のネットワークデバイスは、目標フローエントリを見つけることができ、次いで、目標フローエントリ中のアウトバウンドインタフェース識別子に対応するインタフェースを通して第1のデータパケットを送信することができる。本出願では、同じアプリケーションに関して送信されるパケットと受信されるパケットとが同じネットワークデバイスを通過することが保証されることが可能であることが分かる。
【0008】
任意選択で、第1のネットワークデバイスが、第1のネットワークデバイスに記憶されているフローテーブルの中で、そのフロー識別子が第1のデータフローのフロー識別子である目標フローエントリを探索した後で、目標フローエントリが見つからず、目標フローエントリを探索していないネットワークデバイスが上記の複数のネットワークデバイスの中にまだ存在する場合、第1のネットワークデバイスは、第1のデータパケットを第2のネットワークデバイスに送信して、第2のネットワークデバイスに記憶されているフローテーブルの中で、目標フローエントリを探索するように第2のネットワークデバイスに指示する。ここで、第2のネットワークデバイスは、上記の複数のネットワークデバイスのうち、目標フローエントリを探索していないネットワークデバイスである。目標フローエントリが見つからず、上記の複数のネットワークデバイスが全て目標フローエントリを探索した場合、第1のネットワークデバイスは、ローカルルートを通して第1のデータパケットを送信する。
【0009】
一例では、第1のサイトの複数のネットワークデバイスは、2つずつネットワークリンクを通して接続されることがある、すなわち、ネットワークデバイスは、2つずつが互いに通信することがある。この場合、第1のデータパケットは、第1のデータパケットが通過する各ネットワークデバイスのデバイス識別子を搬送することがある。このようにして、目標フローエントリを探索していないネットワークデバイスが第1のサイト内にまだ存在するかどうかを決定するときに、第1のネットワークデバイスは、第1のデータパケット内で搬送されるネットワークデバイスのデバイス識別子に基づいて、第1のサイトの複数のネットワークデバイスの中で目標フローエントリを探索していないネットワークデバイスを決定することがある。
【0010】
第1のサイトの各ネットワークデバイスはローカルルートを記憶しており、ローカルルートは、対応するネットワークデバイスと第1のサイトのユーザ端末との間のルーティング情報を記憶していることに留意されたい。したがって、第1のネットワークデバイスが第1のデータパケットを受信し、第1のサイトの複数のネットワークデバイスが全て目標フローエントリを探索した後で、第1のネットワークデバイスは、ローカルルートに基づいて第1のデータパケットを第1のサイトのユーザ端末に送信することがある。
【0011】
任意選択で、第1のネットワークデバイスが、フローエントリ中のアウトバウンドインタフェース識別子に対応するインタフェースを通して第1のデータパケットを送信するときに、目標フローエントリ中のアウトバウンドインタフェース識別子に対応するインタフェースが、第1のタイプのインタフェースである場合、第1のネットワークデバイスは、目標フローエントリ中のアウトバウンドインタフェース識別子に対応するインタフェースを通して第1のサイトのユーザ端末に第1のデータパケットを送信する。あるいは、目標フローエントリ中のアウトバウンドインタフェース識別子に対応するインタフェースが、第2のタイプのインタフェースである場合、第1のネットワークデバイスは、目標フローエントリ中のアウトバウンドインタフェース識別子に対応するインタフェースを通して第1のデータパケットを第3のネットワークデバイスに送信して、第3のネットワークデバイスに記憶されているフローテーブルの中で、目標フローエントリを探索するように第3のネットワークデバイスに指示する。
【0012】
第1のタイプのインタフェースは、第1のサイトのユーザ端末と通信するためのインタフェースである。第2のタイプのインタフェースは、上記の複数のネットワークデバイスのうちの別のネットワークデバイスと通信するためのインタフェースである。第3のネットワークデバイスは、上記の複数のネットワークデバイスのうち、目標フローエントリ中のアウトバウンドインタフェース識別子に対応するインタフェースを通して第1のネットワークデバイスと通信するデバイスである。
【0013】
任意選択で、第1のネットワークデバイスが第1のデータパケットを第2のサイトから受信する前に、第1のネットワークデバイスは、第1のサイトのユーザ端末から第2のデータパケットを受信し、第1のネットワークデバイスは、宛先アドレスに基づいて上記の複数のトンネルから目標トンネルとしてトンネルを選択し、第1のネットワークデバイスは、第2のデータフローのフロー識別子に基づいて、第1のデータフローのフロー識別子を決定し、第1のネットワークデバイスは、第1のネットワークデバイスに記憶されているフローテーブルに目標フローエントリを追加し、目標トンネルが第1のネットワークデバイスと第2のサイトのネットワークデバイスとの間に確立されたトンネルである場合、第1のネットワークデバイスは、目標トンネルを通して第2のデータパケットを送信する。
【0014】
第2のデータパケットは、宛先アドレスを搬送し、第2のデータパケットは、第2のデータフローに属する。第1のネットワークデバイスによって現在追加される目標フローエントリ中のフロー識別子は、第1のデータフローのフロー識別子である。現在追加される目標フローエントリ中のアウトバウンドインタフェース識別子は、第1のインタフェースの識別子であり、第1のインタフェースは、第1のサイトのユーザ端末から第2のデータパケットを受信するように構成された、第1のネットワークデバイス内のインタフェースである。
【0015】
第2のデータパケットは第2のデータフローに属し、第2のデータフローは、第1のサイトのユーザ端末によって第2のサイトのユーザ端末に送信されるデータフローであるので、第2のデータパケット内で搬送される宛先アドレスは、第2のサイトのユーザ端末の宛先アドレスであることに留意されたい。
【0016】
第1のサイトのユーザ端末が第2のデータパケットを第2のサイトのユーザ端末に送信するときには、この2つのユーザ端末が異なるサイトに属するので、第1のサイトのユーザ端末は、第2のデータパケットを第1のサイトのネットワークデバイスに送信し、そのネットワークデバイスを通して第2のデータパケットを第2のサイトのネットワークデバイスに送信する必要があり、その後、第2のサイトのネットワークデバイスが、第2のサイトのユーザ端末に第2のデータパケットを送信することに留意されたい。
【0017】
一例では、第1のサイトのユーザ端末は、第1のサイトのネットワーキング方式に基づいて、第1のネットワークデバイスとして第1のサイトの複数のネットワークデバイスからネットワークデバイスを選択し、次いで、第2のデータパケットを第1のネットワークデバイスに送信して、第1のネットワークデバイスを通して第2のデータパケットを第2のサイトのネットワークデバイスに送信することがある。
【0018】
任意選択で、第1のネットワークデバイスは、ルーティングテーブルを記憶しており、ルーティングテーブルは、複数のルーティングエントリを含み、複数のルーティングエントリのそれぞれは、サイトプレフィックスおよび対応するサイト識別子を含む。このようにして、第1のネットワークデバイスが宛先アドレスに基づいて上記の複数のトンネルから目標トンネルとしてトンネルを選択するときに、第1のネットワークデバイスは、宛先アドレスに基づいてルーティングテーブルから目標ルーティングエントリを決定する。ここで、宛先アドレスは、目標ルーティングエントリに含まれるサイトプレフィックスと一致する。第1のネットワークデバイスは、目標ルーティングエントリに含まれるサイト識別子に基づいて1つまたは複数のトンネルエントリを決定する。ここで、この1つまたは複数のトンネルエントリは、第1のサイトと第2のサイトとの間に確立されたトンネルに対応するトンネルエントリである。第1のネットワークデバイスは、この1つまたは複数のトンネルエントリから目標トンネルエントリとしてトンネルエントリを選択し、目標トンネルエントリに対応するトンネルを目標トンネルとして使用する。
【0019】
本出願では、サイトプレフィックスは、サイトに対応するネットワークセグメントを指すので、第2のデータパケット内で搬送される宛先アドレスは、ルーティングテーブルの各ルーティングエントリに含まれるサイトプレフィックスと照合されて、ルーティングテーブルから目標ルーティングエントリを決定することがある。
【0020】
上記の説明に基づき、第2のデータパケット内で搬送される宛先アドレスは、第2のサイトのユーザ端末のアドレスであることに留意されたい。したがって、目標ルーティングエントリに含まれるサイトプレフィックスは、第2のサイトのサイトプレフィックスであり、目標ルーティングエントリに含まれるサイト識別子は、第2のサイトの識別子である。
【0021】
本出願では、第1のネットワークデバイスは、1つのトンネルテーブルを記憶することがあり、トンネルテーブルは、複数のサイトに対応するトンネルエントリを記憶するために使用される。もちろん、第1のネットワークデバイスは、代替として、複数のトンネルテーブルを記憶することもあり、複数のトンネルテーブルは、複数のサイトと一対一の対応になっている。複数のサイトとは、第1のサイトとトンネルを確立するサイトを指し、複数のサイトは、第2のサイトを含む。この2つの場合では、第1のネットワークデバイスが1つまたは複数のトンネルエントリを決定する方式が異なる。したがって、以下で、この2つの場合についての説明を提供する。
【0022】
第1の場合では、第1のネットワークデバイスは、1つのトンネルテーブルを記憶する。この場合、第1のネットワークデバイスは、目標ルーティングエントリに含まれるサイト識別子に基づいて、1つまたは複数のトンネル識別子を決定することがある。ここで、1つまたは複数のトンネル識別子は、第1のサイトと第2のサイトとの間に確立されたトンネルの識別子である。次いで、第1のネットワークデバイスは、この1つまたは複数のトンネル識別子に基づいて、トンネルテーブルから1つまたは複数のトンネルエントリを決定することがある。
【0023】
どれくらいの数のトンネルテーブルが第1のネットワークデバイスに記憶されているかに関わらず、各トンネルテーブルは、複数のトンネルエントリを含むことがあり、複数のトンネルエントリのそれぞれが、トンネル識別子と、対応するトンネル属性情報とを含むことがあることに留意されたい。トンネル属性情報は、トンネルカプセル化方式、トンネルのソースアドレスおよび宛先アドレス、トンネルが利用可能であるかどうか、トンネルの帯域幅、ならびにトンネルの遅延などを含むことがある。さらに、いくつかの場合、第1のネットワークデバイスは、サイト識別子とトンネル識別子の間の第1のマッピング関係を記憶することもある。具体的には、第1のマッピング関係は、第1のサイトとトンネルを確立する各サイトの識別子と、各サイトと第1のサイトとの間に確立されたトンネルの識別子とを記憶する。このようにして、第1のネットワークデバイスは、目標ルーティングエントリに含まれるサイト識別子に基づいて、第1のマッピング関係から、1つまたは複数のトンネル識別子を決定することがある。次いで、第1のネットワークデバイスは、トンネルテーブルから、含まれるトンネル識別子がその1つまたは複数のトンネル識別子と同じであるトンネルエントリを決定して、1つまたは複数のトンネルエントリを取得することがある。
【0024】
第2の場合、第1のネットワークデバイスは、複数のトンネルテーブルを記憶する。この場合、第1のネットワークデバイスは、目標ルーティングエントリに含まれるサイト識別子に基づいて、目標トンネルテーブルの識別子を決定することがある。目標トンネルテーブルは、第2のサイトに対応する複数のトンネルテーブル中のトンネルテーブルである。次いで、第1のネットワークデバイスは、目標トンネルテーブルの識別子に基づいて、複数のトンネルテーブルから目標トンネルテーブルを決定し、目標トンネルテーブルに記憶されているトンネルエントリを1つまたは複数のトンネルエントリとして決定することがある。
【0025】
第1のネットワークデバイスは、異なるサイトについては異なるトンネルテーブルを記憶しており、第1のネットワークデバイスは、サイト識別子とトンネルテーブル識別子との間の第2のマッピング関係を記憶することがある。具体的には、第2のマッピング関係は、第1のサイトとトンネルを確立する各サイトの識別子と、各サイトに対応するトンネルテーブルの識別子とを記憶する。このようにして、第1のネットワークデバイスは、目標ルーティングエントリに含まれるサイト識別子に基づいて、第2のマッピング関係から、目標トンネルテーブルの識別子を決定することがある。次いで、目標トンネルテーブルが、目標トンネルテーブルの識別子に基づいて複数のトンネルテーブルから決定されることがあり、さらに、目標トンネルテーブル中のトンネルエントリが、1つまたは複数のトンネルエントリとして決定される。
【0026】
1つまたは複数のトンネルエントリを決定した後で、第1のネットワークデバイスは、トンネル選択ポリシーに従って、目標トンネルエントリとして1つまたは複数のトンネルエントリからトンネルエントリを選択し、さらに、目標トンネルエントリに対応するトンネルを目標トンネルとして決定する、すなわち目標トンネルエントリに含まれるトンネル識別子によって識別されるトンネルを目標トンネルとして使用することがある。
【0027】
任意選択で、第2のデータフローのフロー識別子は、ソースポート情報、および宛先ポート情報を含む。第1のネットワークデバイスが、第2のデータフローのフロー識別子に基づいて第1のデータフローのフロー識別子を決定するときには、第1のネットワークデバイスは、第2のデータフローのフロー識別子中のソースポート情報と宛先ポート情報を入れ替えることにより、第1のデータフローのフロー識別子を取得する。
【0028】
第1のデータフローは、第2のサイトのユーザ端末によって第1のサイトのユーザ端末に送信されるデータフローであり、第2のデータフローは、第1のサイトのユーザ端末によって第2のサイトのユーザ端末に送信されるデータフローである。したがって、第1のデータフローのソースアドレスは、第2のデータフローの宛先アドレスであり、第1のデータフローの宛先アドレスは、第2のデータフローのソースアドレスである。
【0029】
本出願では、第1のネットワークデバイスは、第2のデータパケットに基づいて第2のデータフローのフロー識別子を決定し、さらに、第2のデータフローのフロー識別子に基づいて第1のデータフローのフロー識別子を決定することがある。
【0030】
一例では、第1のネットワークデバイスは、第2のデータパケットのタプル情報を取得することがあり、タプル情報は、ソースポート情報および宛先ポート情報を少なくとも含む。取得されたタプル情報は、第2のデータフローのフロー識別子として使用される。次いで、第1のネットワークデバイスは、第2のデータフローのフロー識別子中のソースポート情報と宛先ポート情報を入れ替えて、第1のデータフローのフロー識別子を取得する。
【0031】
別の例では、第1のネットワークデバイスは、第2のデータパケットのタプル情報を取得し、第2のデータパケットのタプル情報に基づいて、タプル情報とフロー識別子との間の記憶されている対応から第2のデータフローのフロー識別子を取得することがある。次いで、第1のデータフローのフロー識別子が、第2のデータフローのフロー識別子に基づいて、第1のデータフローの識別子と第2のデータフローの識別子との間の記憶されている対応から取得される。
【0032】
第2のデータパケットに基づいて第1のデータフローのフロー識別子を決定した後で、第1のネットワークデバイスは、第1のネットワークデバイスに記憶されているフローテーブルに、目標フローエントリを追加することがある。フローテーブルは、複数のフローエントリを含むことがあり、複数のフローエントリのそれぞれは、フロー識別子と、対応するアウトバウンドインタフェース識別子とを含む。したがって、現在追加される目標フローエントリは、フロー識別子と、対応するアウトバウンドインタフェース識別子とを含む。さらに、現在追加される目標フローエントリ中のフロー識別子は、第1のデータフローのフロー識別子であり、現在追加される目標フローエントリ中のアウトバウンドインタフェース識別子は、第1のインタフェースの識別子であり、第1のインタフェースは、第1のサイトのユーザ端末から第2のデータパケットを受信するように構成された、第1のネットワークデバイス内のインタフェースである。
【0033】
同じデータフローが第1のネットワークデバイスに流入するときには、そのデータフローは、第1のサイトのユーザ端末と通信するためのインタフェースを通って第1のネットワークデバイスに流入することもあるし、または第1のサイトの別のネットワークデバイスと通信するためのインタフェースを通って第1のネットワークデバイスに流入することもあることに留意されたい。したがって、第1のネットワークデバイスによって現在追加される目標フローエントリ中のアウトバウンドインタフェース識別子は、第1のサイトのユーザ端末と通信する第1のネットワークデバイス内のインタフェースであることもあるし、または第1のサイトの別のネットワークデバイスと通信する第1のネットワークデバイス内のインタフェースであることもある。
【0034】
任意選択で、第1のネットワークデバイスが、第1のネットワークデバイスに記憶されているフローテーブルに目標フローエントリを追加した後で、目標トンネルが、第4のネットワークデバイスと第2のサイトのネットワークデバイスとの間に確立されたトンネルである場合、第1のネットワークデバイスは、目標トンネルのトンネル識別子を第2のデータパケットに追加して、第3のデータパケットを取得する。第1のネットワークデバイスは、第3のデータパケットを第4のネットワークデバイスに送信して、第4のネットワークデバイスに、第2のデータパケットを分離し、第2のデータフローのフロー識別子に基づいて第1のデータフローのフロー識別子を決定し、第4のネットワークデバイスに記憶されているフローテーブルに目標フローエントリを追加し、目標トンネルを通して第2のデータパケットを送信するように指示する。
【0035】
第4のネットワークデバイスは、上記の複数のネットワークデバイスのうちの、第1のネットワークデバイス以外のネットワークデバイスであり、第4のネットワークデバイスによって現在追加される目標フローエントリに含まれるフロー識別子は、第1のデータフローのフロー識別子である。現在追加される目標フローエントリ中のアウトバウンドインタフェース識別子は、第2のインタフェースの識別子であり、第2のインタフェースは、第3のデータパケットを受信するように構成された、第4のネットワークデバイス内のインタフェースである。
【0036】
トンネルテーブルは、第1のサイトのネットワークデバイスと第2のサイトのネットワークデバイスとの間に確立された全てのトンネルを含むので、第1のネットワークデバイスによって決定された目標トンネルは、第1のネットワークデバイスと第2のサイトのネットワークデバイスとの間に確立されたトンネル、または第1のサイトの第1のネットワークデバイス以外の別のネットワークデバイスと第2のサイトのネットワークデバイスとの間に確立されたトンネル、すなわち第4のネットワークデバイスと第2のサイトのネットワークデバイスとの間に確立されたトンネルを含むことがあることに留意されたい。
【0037】
いくつかの考えられる場合では、目標トンネルが第4のネットワークデバイスと第2のサイトのネットワークデバイスとの間に確立されたトンネルである場合に、第1のネットワークデバイスは、トンネルインデックスフィールドを第2のデータパケットに追加して、第3のデータパケットを取得することがある。ここで、トンネルインデックスフィールドは、目標トンネルのトンネル識別子を含むことがある。次いで、第1のネットワークデバイスは、第3のデータパケットを第4のネットワークデバイスに送信することがある。
【0038】
上記の説明に基づき、ネットワークリンクが、第1のネットワークデバイスと第4のネットワークデバイスとの間に確立され、第1のネットワークデバイスは、ネットワークリンクを通して第4のネットワークデバイスと通信する。したがって、第1のネットワークデバイスは、目標トンネルのトンネル識別子を第2のデータパケットに追加して第3のデータパケットを取得した後で、第1のネットワークデバイスと第4のネットワークデバイスとの間のネットワークリンクを通して第3のデータパケットを第4のネットワークデバイスに送信することがある。
【0039】
第4のネットワークデバイスが第3のデータパケットを受信した後で、トンネルインデックスフィールドが目標トンネルのトンネル識別子だけでなく、トンネルインデックスフィールドのカプセル化方式、ラベル、バージョン番号、およびプロトコルタイプなども含むので、第4のネットワークデバイスは、カプセル化方式、ラベル、バージョン番号、およびプロトコルタイプなどの情報に基づいて、第3のデータパケットから第2のデータパケットを分離することがある。
【0040】
本出願では、第2のデータパケットを分離した後で、第4のネットワークデバイスは、第2のデータパケットに基づいて第2のデータフローのフロー識別子を決定し、さらに、第2のデータフローのフロー識別子に基づいて第1のデータフローのフロー識別子を決定することがある。
【0041】
一例では、第4のネットワークデバイスは、第2のデータパケットのタプル情報を取得することがあり、タプル情報は、ソースポート情報および宛先ポート情報を少なくとも含む。取得されたタプル情報は、第2のデータフローのフロー識別子として使用される。次いで、第4のネットワークデバイスは、第2のデータフローのフロー識別子中のソースポート情報と宛先ポート情報を入れ替えて、第1のデータフローのフロー識別子を取得する。
【0042】
別の例では、第4のネットワークデバイスは、第2のデータパケットのタプル情報を取得し、第2のデータパケットのタプル情報に基づいて、タプル情報とフロー識別子との間の記憶されている対応から第2のデータフローのフロー識別子を取得することがある。次いで、第1のデータフローのフロー識別子が、第2のデータフローのフロー識別子に基づいて、第1のデータフローの識別子と第2のデータフローの識別子との間の記憶されている対応から取得される。
【0043】
第4のネットワークデバイスは、第4のネットワークデバイスと第1のネットワークデバイスとの間のネットワークリンクを通して第3のデータパケットを受信するので、第4のネットワークデバイスによって現在追加される目標フローエントリ中のアウトバウンドインタフェース識別子は、第1のネットワークデバイスと通信するためのインタフェース、すなわち第2のタイプのインタフェースであることに留意されたい。
【0044】
記憶されているフローテーブルに目標フローエントリを追加した後で、第4のネットワークデバイスは、取得された目標トンネルのトンネル識別子に基づいて、記憶されているトンネルテーブルから目標トンネルエントリを取得し、目標トンネルエントリから目標トンネルのトンネル属性情報を取得し、さらに取得されたトンネル属性情報に基づいて第2のデータパケットにトンネルカプセル化を実行して第4のデータパケットを得、目標トンネルを通して第4のデータパケットを送信することがある。
【0045】
任意選択で、第1のデータパケットは、第1のネットワークデバイスと第2のサイトのネットワークデバイスとの間に確立されたトンネルを通して第1のネットワークデバイスによって受信されるデータパケットである。代替として、第1のデータパケットは、第1のネットワークデバイスによって受信され、第5のネットワークデバイスによって送信されるデータパケットであり、第5のネットワークデバイスは、上記の複数のネットワークデバイスのうちの第1のネットワークデバイス以外のネットワークデバイスである。
【0046】
任意選択で、上記の複数のネットワークデバイスの間にネットワークリンクが確立され、上記の複数のネットワークデバイスは、このネットワークリンクを通して通信する。このネットワークリンクは、物理リンクまたはネットワークトンネルであり、ネットワークトンネルは、汎用ルーティングカプセル化GREトンネルを含む。
【0047】
上記の複数のネットワークデバイスが互いに比較的近いときには、ネットワークリンクは、物理リンクであることがあることに留意されたい。上記の複数のネットワークデバイスが互いから比較的遠い、または物理リンクを通して接続されることが不可能であるときには、ネットワークリンクは、ネットワークトンネルであることがあり、ネットワークトンネルは、汎用ルーティングカプセル化(Generic Routing Encapsulation、GRE)トンネルを含むことがある。もちろん、代替として、ネットワークトンネルは、別のトンネルであってもよい。
【0048】
さらに、第1のサイトの2つのネットワークデバイス間のネットワークリンクは、主として、サイト内のトンネルエントリを同期させ、サイト内でデータパケットを伝送するために使用され、サイト外のネットワークに対して広告される必要はない。したがって、ネットワークリンクを確立するために使用される、第1のサイトのネットワークデバイス上のインタフェース上のネットワークアドレスは、全てプライベートネットワークアドレスに設定されることがあり、異なるサイトでも同じアドレス空間を使用することがある。これにより、SD-WANネットワークによるオペレータのネットワークアドレスリソースの消費を低減することができる。
【0049】
任意選択で、第1のデータフローに含まれるデータパケットが、第1のネットワークデバイスと第2のサイトのネットワークデバイスとの間のトンネルを通して第2のサイトに送信されるときには、第1のネットワークデバイスが第1のネットワークデバイスに記憶されているフローテーブルに目標フローエントリを追加した後で、第1のネットワークデバイスは、ネットワークリンクを通して第1のサイトの別のネットワークデバイスに目標フローエントリを送信することがある。目標フローエントリを受信した後で、この別のネットワークデバイスは、目標フローエントリのアウトバウンドインタフェースを、第2のタイプのインタフェース、すなわち各別のネットワークデバイスが第1のネットワークデバイスと通信するインタフェースに修正し、修正された目標フローエントリをフローテーブルに記憶することがある。このようにして、第1のデータパケットを受信したときに、この別のネットワークデバイスは、記憶されているフローテーブル内で目標フローエントリを見つけ、目標フローエントリに含まれるアウトバウンドインタフェース識別子に対応するインタフェースを通して第1のデータパケットを第1のネットワークデバイスに送信することがある。次いで、第1のネットワークデバイスは、目標フローエントリに基づいて、第1のデータパケットを第1のサイトのユーザ端末に送信することがある。目標フローエントリを第1のサイトの別のネットワークデバイスと同期させることにより、目標フローエントリが見つからないときに第1のデータパケットがネットワークデバイス間でトラバースされ続け、照会され続ける場合を大幅に減少させることができ、それにより第1のデータパケットの送信の効率を改善することができることが分かる。
【0050】
第2の態様によれば、別のパケット送信方法が提供される。複数のネットワークデバイスが、第1のサイトに配置される。この複数のネットワークデバイスの間に、ネットワークリンクが確立される。第1のサイトに配置されたネットワークデバイスと第2のサイトに配置されたネットワークデバイスとの間に、複数のトンネルが確立される。第2のサイトは、第1のサイトとのデータ伝送を実行するサイトである。この方法は、第1のネットワークデバイスが、第1のデータパケットを第2のサイトから受信することを含み、ここで、第1のデータパケットは、第1のネットワークデバイスと第2のネットワークデバイスとの間のネットワークリンクを通して第1のネットワークデバイスによって受信されるデータパケットであり、第1のネットワークデバイスは、上記の複数のネットワークデバイスのうちの任意の1つであり、第2のネットワークデバイスは、上記の複数のネットワークデバイスのうち、第1のネットワークデバイスとネットワークリンクを確立するネットワークデバイスであり、第1のネットワークデバイスは、第1のデータパケットを第1のサイトのユーザ端末に送信する。
【0051】
本出願では、第1のサイトの複数のネットワークデバイス間にネットワークリンクが確立されるので、第1のネットワークデバイスのトンネルテーブルは、第1のネットワークデバイスと第2のサイトのネットワークデバイスとの間のトンネルに対応するトンネルエントリだけでなく、第1のサイトの別のネットワークデバイスと第2のサイトのネットワークデバイスとの間のトンネルに対応するトンネルエントリも含む。したがって、第1のネットワークデバイスが、第1のサイトのユーザ端末から第2のデータパケットを受信し、選択された目標トンネルが、第3のネットワークデバイスと第2のサイトのネットワークデバイスとの間のトンネルであるときには、第1のネットワークデバイスは、第1のネットワークデバイスと第3のネットワークデバイスとの間のネットワークリンクを通して第2のデータパケットを第3のネットワークデバイスに送信することがある。次いで、第3のネットワークデバイスが、目標トンネルを通して第2のデータパケットを第2のサイトに送信する。このようにして、第1のネットワークデバイスと第3のネットワークデバイスとの間のインタワーキングが実施され、第1のサイトと第2のサイトの間の通信が、過剰なトンネルを作成することなく実施されることが可能である。
【0052】
第3の態様によれば、パケット送信装置が提供される。このパケット送信装置は、第1の態様のパケット送信方法における挙動を実施する機能を有する。このパケット送信装置は、少なくとも1つのモジュールを含み、この少なくとも1つのモジュールは、第1の態様で提供されるパケット送信方法を実施するように構成される。
【0053】
第4の態様によれば、別のパケット送信装置が提供される。このパケット送信装置は、第2の態様のパケット送信方法における挙動を実施する機能を有する。このパケット送信装置は、少なくとも1つのモジュールを含み、この少なくとも1つのモジュールは、第2の態様で提供されるパケット送信方法を実施するように構成される。
【0054】
第5の態様によれば、ネットワークデバイスが提供される。このネットワークデバイスは、プロセッサ、およびメモリを含む。メモリは、第1の態様または第2の態様で提供されるパケット送信方法を実行するプログラムを記憶し、第1の態様または第2の態様で提供されるパケット送信方法を実施するために使用されるデータを記憶するように構成される。プロセッサは、メモリに記憶されたプログラムを実行するように構成される。記憶デバイスの動作装置は、通信バスをさらに含むことがあり、通信バスは、プロセッサとメモリの間の接続を確立するように構成される。
【0055】
第6の態様によれば、コンピュータ可読記憶媒体が提供される。このコンピュータ可読記憶媒体は、命令を記憶する。これらの命令がコンピュータ上で実行されると、コンピュータは、第1の態様または第2の態様によるパケット送信方法を実行することができるようになる。
【0056】
第7の態様によれば、命令を含むコンピュータプログラム製品が提供される。このコンピュータプログラム製品がコンピュータ上で実行されると、コンピュータは、第1の態様または第2の態様によるパケット送信方法を実行することができるようになる。
【0057】
第2の態様、第3の態様、第4の態様、第5の態様、第6の態様、および第7の態様で実現される技術的効果は、第1の態様における対応する技術的手段を用いて実現される技術的効果と同様である。本明細書では、詳細について重ねて説明することはしない。
【0058】
本出願で提供される技術的解決策は、少なくとも以下の有利な効果をもたらし得る。
【0059】
本出願では、第2のサイトから第1のデータパケットを受信するときに、第1のネットワークデバイスは、フローテーブルの中で、そのフロー識別子が第1のデータフローのフロー識別子である目標フローエントリを探索することがある。第1のデータフローは、第1のデータパケットが属するデータフローである。目標フローエントリは、第1のサイトが第2のデータフローを第2のサイトに送信するときに作成される。第2のデータフローのソースアドレスは、第1のデータフローの宛先アドレスであり、第2のデータフローの宛先アドレスは、第1のデータフローのソースアドレスである。したがって、目標フローエントリは、第2のデータフローが第1のネットワークデバイスを通過するときにのみ、第1のネットワークデバイスのフローテーブルに存在する。このようにしてのみ、第1のネットワークデバイスは、目標フローエントリを見つけることができ、次いで、目標フローエントリ中のアウトバウンドインタフェース識別子に対応するインタフェースを通して第1のデータパケットを送信することができる。本出願では、同じアプリケーションに関して送信されるパケットと受信されるパケットとが同じネットワークデバイスを通過することが保証されることが可能であることが分かる。
【図面の簡単な説明】
【0060】
図1】本出願の実施形態によるパケット送信方法におけるシステムアーキテクチャの図である。
図2】本出願の実施形態による別のパケット送信方法におけるシステムアーキテクチャの図である。
図3】本出願の実施形態によるネットワークデバイスの構造の概略図である。
図4】本出願の実施形態によるパケット送信方法の流れ図である。
図5】本出願の実施形態によるトンネルインデックスフィールドの概略図である。
図6】本出願の実施形態による別のパケット送信方法の流れ図である。
図7】本出願の実施形態による第1のサイトにおけるネットワークデバイスの配置の概略図である。
図8】本出願の実施形態による別のパケット送信方法の流れ図である。
図9】本出願の実施形態によるパケット送信装置の構造の概略図である。
図10】本出願の実施形態による別のパケット送信装置の構造の概略図である。
【発明を実施するための形態】
【0061】
本出願の目的、技術的解決策、および利点をさらに明白にするために、以下、添付の図面を参照して、本出願の実装についてさらに詳細に説明する。
【0062】
図1は、本出願の実施形態によるパケット送信方法におけるシステムアーキテクチャの図である。図1に示されるように、このシステムは、ネットワークデバイス101、ネットワークデバイス102、ネットワークデバイス103、および制御デバイス104を含む。ネットワークデバイス101およびネットワークデバイス102は、第1のサイトに配置されたネットワークデバイスであり、ネットワークデバイス103は、第2のサイトに配置されたネットワークデバイスである。ネットワークデバイス101、ネットワークデバイス102、およびネットワークデバイス103は、ワイヤレスまたは有線で制御デバイス104に接続されて、通信を行うことがある。
【0063】
電源投入された後、ネットワークデバイスは、制御デバイス104に登録することがある。次いで、異なるサイトに属する2つのネットワークデバイスの間に、制御デバイス104を通してトンネルが確立されることがある。本明細書では、ネットワークデバイス101およびネットワークデバイス103が、説明のための例として用いられる。
【0064】
図1に示されるように、ネットワークデバイス101の第1のインタフェースは、ロングタームエボリューション(Long Term Evolution、LTE)ネットワークにアクセスし、ネットワークデバイス102の第1のインタフェースは、マルチプロトコルラベルスイッチング(Multi-Protocol Label Switching、MPLS)ネットワークにアクセスし、ネットワークデバイス103の第1のインタフェースは、LTEネットワークにアクセスし、ネットワークデバイス103の第2のインタフェースは、MPLSネットワークにアクセスする。ネットワークデバイス101が電源投入される前に、ネットワークデバイス102およびネットワークデバイス103の両方が登録を完了する、すなわちネットワークデバイス102の第1のインタフェースとネットワークデバイス103の第2のインタフェースとの間にトンネル2が確立されるものと仮定される。
【0065】
電源投入された後で、ネットワークデバイス101は、第1のサイトのサイトプレフィックスおよびサイト識別子と、ネットワークデバイス101の第1のインタフェースのトランスポートネットワークポート(Transport Network Port、TNP)情報とを、制御デバイス104に送信することがある。次いで、制御デバイス104は、記憶されているネットワークトポロジ構造に基づいて、ネットワークデバイス101がネットワークデバイス103と通信することができると決定する。こうして、制御デバイス104は、第1のサイトのサイトプレフィックスおよびサイト識別子と、ネットワークデバイス101の第1のインタフェースのTNP情報とを、ネットワークデバイス103に送信し、第2のサイトのサイトプレフィックスおよびサイト識別子と、ネットワークデバイス103の第1のインタフェースのTNP情報とを、ネットワークデバイス101に送信し得る。
【0066】
ネットワークデバイス101は、第2のサイトのサイトプレフィックスおよびサイト識別子を受信した後で、この第2のサイトのサイトプレフィックスおよびサイト識別子を、記憶されているルーティングテーブルにルーティングエントリとして追加することがある。同様に、ネットワークデバイス103は、第1のサイトのサイトプレフィックスおよびサイト識別子を受信した後で、この第1のサイトのサイトプレフィックスおよびサイト識別子を、記憶されているルーティングテーブルにルーティングエントリとして追加することがある。次に、ネットワークデバイス101が、制御デバイス104によって送信されたネットワークデバイス103の第1のインタフェースのTNP情報を受信し、ネットワークデバイス103が、制御デバイス104によって送信されたネットワークデバイス101の第1のインタフェースのTNP情報を受信した後で、2つのインタフェースのTNP情報が一致する可能性があると仮定される。この場合、ネットワークデバイス101の第1のインタフェースとネットワークデバイス103の第1のインタフェースとの間にトンネル1が確立されることがある。次いで、ネットワークデバイス101の第2のインタフェースとネットワークデバイス102の第2のインタフェースとの間に、ネットワークリンクがさらに確立されることがある。このネットワークリンクは、物理リンクまたはネットワークトンネルであることがあり、ネットワークデバイス101は、このネットワークリンクを介してネットワークデバイス102と通信することがある。
【0067】
これに基づき、トンネル1を確立した後で、ネットワークデバイス101は、トンネル1のトンネル識別子およびトンネル属性情報をトンネルテーブルに記憶し、トンネル1のトンネル識別子およびトンネル属性情報を、ネットワークリンクを介してネットワークデバイス102に送信することがある。次いで、ネットワークデバイス101は、ネットワークデバイス102によって送信されたトンネル2のトンネル識別子およびトンネル属性情報を受信し、そのトンネル識別子およびトンネル属性情報をトンネルテーブルに記憶することがある。同様に、ネットワークデバイス102およびネットワークデバイス103のトンネルテーブルも、トンネル1のトンネル識別子およびトンネル属性情報、ならびにトンネル2のトンネル識別子および属性情報を記憶する。
【0068】
TNP情報は、例えばインタフェースのネットワークアドレスおよび暗号化モードなど、別のネットワークデバイスとのトンネルを確立するために使用されるパラメータ情報を含むことがあることに留意されたい。さらに、同じトンネルについて、トンネルの両端のデバイスに記憶されるトンネル属性情報中のソースポート情報およびピアポート情報は、反対である。例えば、トンネル1について、ネットワークデバイス101およびネットワークデバイス102に記憶されたトンネル属性情報中のソースポート情報は、ネットワークデバイス103に記憶されたトンネル属性情報の宛先ポート情報であり、ネットワークデバイス101およびネットワークデバイス102に記憶されたトンネル属性情報中の宛先ポート情報は、ネットワークデバイス103に記憶されたトンネル属性情報中のソースポート情報である。トンネルのソースポート情報は、トンネルのソースネットワークアドレスを含むことがあり、トンネルの宛先ポート情報は、トンネルの宛先ネットワークアドレスを含むことがある。
【0069】
次に、第1のサイトのユーザ端末から第2のサイトのユーザ端末に送信されるデータパケットを受信したときに、ネットワークデバイス101は、トンネルテーブルから目標トンネルとしてトンネル1またはトンネル2を選択し、その目標トンネルを通してデータパケットを送信することがある。目標トンネルがトンネル1であるときには、ネットワークデバイス101は、トンネル1を通して直接データパケットを送信し得る。目標トンネルがトンネル2であるときには、ネットワークデバイス101は、トンネル2のトンネル識別子をデータパケットに追加し、その後にトンネル識別子が追加されたデータパケットをネットワークデバイス102に送信して、ネットワークデバイス102にトンネル2を通してデータパケットを送信するように指示することがある。
【0070】
同様に、第1のサイトのユーザ端末から第2のサイトのユーザ端末に送信されるデータパケットを受信したときに、ネットワークデバイス102は、前述と同様の方法により、トンネルテーブルから目標トンネルとしてトンネル1またはトンネル2を選択し、その目標トンネルを通してデータパケットを送信することがある。第2のサイトのユーザ端末から第1のサイトのユーザ端末に送信されるデータパケットを受信したときに、ネットワークデバイス103は、トンネルテーブルから目標トンネルとしてトンネル1またはトンネル2を選択し、その目標トンネルを通してデータパケットを送信することがある。
【0071】
任意選択で、図1に示されるシステムでは、2つのネットワークデバイスが第1のサイトに配置され、1つのネットワークデバイスが第2のサイトに配置される例が、説明のために使用されている。もちろん、別の考えられる場合では、代替として、1つのネットワークデバイスまたは3つ以上のネットワークデバイスが第1のサイトに配置されることもあるし、代替として、2つ以上のネットワークデバイスが第2のサイトに配置されることもある。さらに、第1のサイトに配置されるネットワークデバイスの数量は、第2のサイトに配置されるネットワークデバイスの数量と同じであってもよいし、異なっていてもよい。
【0072】
例えば、図2に示されるように、図2に示されるシステムアーキテクチャでは、第1のサイトおよび第2のサイトのそれぞれに2つのネットワークデバイスが配置される。具体的には、ネットワークデバイス101およびネットワークデバイス102が第1のサイトに配置され、ネットワークデバイス105およびネットワークデバイス106が第2のサイトに配置される。前述の方法により、ネットワークデバイス101とネットワークデバイス105との間にトンネル1が確立されることがあり、ネットワークデバイス102とネットワークデバイス106との間にトンネル2が確立されることがあり、ネットワークデバイス101とネットワークデバイス102との間にネットワークリンクが確立される。
【0073】
図3は、本出願の実施形態によるネットワークデバイスの構造の概略図である。このネットワークデバイスは、図1または図2に示されるネットワークデバイスであることがある。ネットワークデバイスは、少なくとも1つのプロセッサ301、通信バス302、メモリ303、および少なくとも1つの通信インタフェース304を含む。
【0074】
プロセッサ301は、マイクロプロセッサ(中央処理装置(central processing unit、CPU)などを含む)、ネットワークプロセッサ(NP)、または例えば特定用途向け集積回路(application-specific integrated circuit、ASIC)、プログラマブル論理デバイス(programmable logic device、PLD)、もしくはそれらの組合せなど本出願の解決策を実施するように構成された1つもしくは複数の集積回路であることがある。PLDは、複合プログラマブル論理デバイス(complex programmable logic device、CPLD)、フィールドプログラマブルゲートアレイ(field-programmable gate array、FPGA)、汎用アレイロジック(generic array logic、GAL)、またはそれらの任意の組合せであることがある。
【0075】
通信バス302は、前述の構成要素間で情報を伝送するように構成される。通信バス302は、アドレスバス、データバス、または制御バスなどに分類され得る。表現しやすいように、この図では、バスを表現するのに太い線が一本だけ使用されているが、これは、バスが1本しかない、または1種類のバスしかないことを意味しているわけではない。
【0076】
メモリ303は、読取り専用メモリ(read-only memory、ROM)、ランダムアクセスメモリ(random access memory、RAM)、電気的消去可能プログラマブル読取り専用メモリ(Electrically Erasable Programmable Read-Only Memory、EEPROM)、光ディスク(コンパクトディスク読取り専用メモリ(compact disc read-only memory、CD-ROM)、コンパクトディスク、レーザーディスク、デジタル汎用ディスク、もしくはBlu-rayディスクなどを含む)、磁気ディスク記憶媒体もしくは別の磁気記憶デバイス、またはネットワークからアクセスされることが可能な、予想されるプログラムコードを命令もしくはデータ構造の形態で搬送もしくは記憶するように構成されることが可能な任意のその他の媒体であることがある。ただし、これは、これらに限定されない。メモリ303は、独立して存在し、通信バス302を介してプロセッサ301に接続されることがある。あるいは、メモリ303は、プロセッサ301と一体化されることもある。
【0077】
通信インタフェース304は、トランシーバなど任意の装置を使用して、別のデバイスまたは通信ネットワークと通信するように構成される。通信インタフェース304は、有線通信インタフェースを含み、ワイヤレス通信インタフェースをさらに含むこともある。有線通信インタフェースは、例えば、イーサネットインタフェースであることがある。イーサネットインタフェースは、光学的インタフェース、電気的インタフェース、またはそれらの組合せであることがある。ワイヤレス通信インタフェースは、ワイヤレスローカルエリアネットワーク(Wireless Local Area Network、WLAN)インタフェース、セルラネットワーク通信インタフェース、またはそれらの組合せであることがある。
【0078】
具体的な実装では、実施形態では、プロセッサ301は、例えば図3に示されるCPU0およびCPU1など、1つまたは複数のCPUを含むことがある。
【0079】
具体的な実装では、実施形態では、ネットワークデバイスは、例えば図3に示されるプロセッサ301およびプロセッサ305など、複数のプロセッサを含むことがある。これらのプロセッサのそれぞれは、シングルコアプロセッサであることも、マルチコアプロセッサであることもある。本明細書におけるプロセッサとは、データ(例えばネットワークプログラム命令)を処理するように構成された1つまたは複数のデバイス、回路、および/または処理コアを指すことがある。
【0080】
いくつかの実施形態では、メモリ303は、本出願の解決策を実行するためのプログラムコード310を記憶するように構成され、プロセッサ301は、メモリ303に記憶されたプログラムコード310を実行することがある。具体的には、ネットワークデバイスは、プロセッサ301およびメモリ303中のプログラムコード310を使用して、図4図6、または図8の以下の実施形態で提供されるパケット送信方法を実施することがある。
【0081】
図4は、本出願の実施形態によるパケット送信方法の流れ図である。本出願のこの実施形態では、複数のネットワークデバイスが第1のサイトに配置され、この複数のネットワークデバイスの間にネットワークリンクが確立され、第1のサイトに配置されたネットワークデバイスと第2のサイトに配置されたネットワークデバイスとの間に複数のトンネルが確立され、第2のサイトは、第1のサイトとのデータ伝送を実行するサイトである。図4を参照されたい。この方法は、以下のステップを含む。
【0082】
ステップ401:第1のネットワークデバイスが、第1のサイトのユーザ端末から第2のデータパケットを受信する。ここで、第2のデータパケットは、宛先アドレスを搬送し、第2のデータパケットは、第2のデータフローに属する。
【0083】
第1のネットワークデバイスは、第1のサイトの複数のネットワークデバイスのうちの任意の1つである。第2のデータパケットは第2のデータフローに属し、第2のデータフローは第1のサイトのユーザ端末から第2のサイトのユーザ端末に送信されるデータフローであるので、第2のデータフロー内で搬送される宛先アドレスは、第2のサイトのユーザ端末の宛先アドレスである。
【0084】
第1のサイトのユーザ端末が第2のサイトのユーザ端末に第2のデータパケットを送信するときには、この2つのユーザ端末が異なるサイトに属するので、第1のサイトのユーザ端末は、第2のデータパケットを第1のサイトのネットワークデバイスに送信して、そのネットワークデバイスを通して第2のサイトのネットワークデバイスに第2のデータパケットを送信する必要があり、その後、第2のサイトのネットワークデバイスが、第2のデータパケットを第2のサイトのユーザ端末に送信することに留意されたい。
【0085】
一例では、第1のサイトのユーザ端末は、第1のサイトのネットワーキング方式に基づいて、第1のネットワークデバイスとして第1のサイトの複数のネットワークデバイスからネットワークデバイスを選択し、次いで、第2のデータパケットを第1のネットワークデバイスに送信して、第1のネットワークデバイスを通して第2のデータパケットを第2のサイトのネットワークデバイスに送信することがある。
【0086】
ユーザ端末は、ネットワーキング方式とデバイス識別子との間の対応を記憶していることがあることに留意されたい。ユーザ端末がデータパケットを送信する必要があるときには、ユーザ端末は、そのユーザ端末が位置しているサイトのネットワーキング方式、およびネットワーキング方式とデバイス識別子との間の対応に基づいて、データパケットを送信するネットワークデバイスを決定することがある。例えば、第1のサイトのユーザ端末では、ユーザ端末は、第1のサイトのネットワーキング方式に基づいて、ネットワーキング方式とデバイス識別子との間の記憶されている対応から対応するデバイス識別子を取得し、そのデバイス識別子によって識別されるネットワークデバイスを第1のネットワークデバイスとしてさらに決定することがある。
【0087】
ステップ402:第1のネットワークデバイスが、第2のデータパケット内で搬送される宛先アドレスに基づいて、第1のサイトと第2のサイトとの間に確立された複数のトンネルから目標トンネルとしてトンネルを選択する。
【0088】
本出願のこの実施形態では、第1のネットワークデバイスは、ルーティングテーブルを記憶しており、ルーティングテーブルは、複数のルーティングエントリを含み、複数のルーティングエントリのそれぞれは、サイトプレフィックスおよび対応するサイト識別子を含む。サイトプレフィックスとは、サイトに対応するネットワークセグメントを指し、サイト識別子とは、サイトの識別子を指し、サイトを一意に識別するために使用される。
【0089】
以下では、ステップ(1)から(3)を用いて、第1のネットワークデバイスが目標トンネルを決定する実装プロセスについて説明する。
【0090】
(1)第1のネットワークデバイスが、第2のデータパケット内で搬送される宛先アドレスに基づいてルーティングテーブルから目標ルーティングエントリを決定する。ここで、宛先アドレスは、目標ルーティングエントリに含まれるサイトプレフィックスと一致する。
【0091】
サイトプレフィックスはサイトに対応するネットワークセグメントを指すので、第2のデータパケット内で搬送される宛先アドレスが、ルーティングテーブルの各ルーティングエントリに含まれるサイトプレフィックスと照合されて、ルーティングテーブルから目標ルーティングエントリを決定することがある。
【0092】
上記の説明に基づき、第2のデータパケット内で搬送される宛先アドレスは、第2のサイトのユーザ端末のアドレスであることに留意されたい。したがって、目標ルーティングエントリに含まれるサイトプレフィックスは、第2のサイトのサイトプレフィックスであり、目標ルーティングエントリに含まれるサイト識別子は、第2のサイトの識別子であると決定されることがある。
【0093】
(2)第1のネットワークデバイスが、目標ルーティングエントリに含まれるサイト識別子に基づいて1つまたは複数のトンネルエントリを決定する。ここで、この1つまたは複数のトンネルエントリは、第1のサイトと第2のサイトとの間に確立されたトンネルに対応するトンネルエントリである。
【0094】
第1のネットワークデバイスは、1つのトンネルテーブルを記憶することがあり、トンネルテーブルは、複数のサイトに対応するトンネルエントリを記憶するために使用される。もちろん、第1のネットワークデバイスは、代替として、複数のトンネルテーブルを記憶することもあり、複数のトンネルテーブルは、複数のサイトと一対一の対応になっている。複数のサイトとは、第1のサイトとトンネルを確立するサイトを指し、複数のサイトは、第2のサイトを含む。この2つの場合では、第1のネットワークデバイスが1つまたは複数のトンネルエントリを決定する方法が異なる。したがって、以下で、この2つの場合についての説明を提供する。
【0095】
第1の場合では、第1のネットワークデバイスは、1つのトンネルテーブルを記憶する。この場合、第1のネットワークデバイスは、目標ルーティングエントリに含まれるサイト識別子に基づいて、1つまたは複数のトンネル識別子を決定することがある。ここで、1つまたは複数のトンネル識別子は、第1のサイトと第2のサイトとの間に確立されたトンネルの識別子である。次いで、第1のネットワークデバイスは、この1つまたは複数のトンネル識別子に基づいて、トンネルテーブルから1つまたは複数のトンネルエントリを決定することがある。
【0096】
どれくらいの数のトンネルテーブルが第1のネットワークデバイスに記憶されているかに関わらず、各トンネルテーブルは、複数のトンネルエントリを含むことがあり、複数のトンネルエントリのそれぞれが、トンネル識別子と、対応するトンネル属性情報とを含むことがあることに留意されたい。トンネル属性情報は、トンネルカプセル化方式、トンネルのソースアドレスおよび宛先アドレス、トンネルが利用可能であるかどうか、トンネルの帯域幅、ならびにトンネルの遅延などを含むことがある。さらに、いくつかの実施形態では、第1のネットワークデバイスは、サイト識別子とトンネル識別子の間の第1のマッピング関係を記憶することもある。具体的には、第1のマッピング関係は、第1のサイトとトンネルを確立する各サイトの識別子と、各サイトと第1のサイトとの間に確立されたトンネルの識別子とを記憶する。このようにして、第1のネットワークデバイスは、目標ルーティングエントリに含まれるサイト識別子に基づいて、第1のマッピング関係から、1つまたは複数のトンネル識別子を決定することがある。次いで、第1のネットワークデバイスは、トンネルテーブルから、含まれるトンネル識別子がその1つまたは複数のトンネル識別子と同じであるトンネルエントリを決定して、1つまたは複数のトンネルエントリを取得することがある。
【0097】
第2の場合、第1のネットワークデバイスは、複数のトンネルテーブルを記憶する。この場合、第1のネットワークデバイスは、目標ルーティングエントリに含まれるサイト識別子に基づいて、目標トンネルテーブルの識別子を決定することがある。目標トンネルテーブルは、第2のサイトに対応する複数のトンネルテーブル中のトンネルテーブルである。次いで、第1のネットワークデバイスは、目標トンネルテーブルの識別子に基づいて、複数のトンネルテーブルから目標トンネルテーブルを決定し、目標トンネルテーブルに記憶されているトンネルエントリを1つまたは複数のトンネルエントリとして決定することがある。
【0098】
第1のネットワークデバイスは、異なるサイトについては異なるトンネルテーブルを記憶しており、第1のネットワークデバイスは、サイト識別子とトンネルテーブル識別子との間の第2のマッピング関係を記憶することがある。具体的には、第2のマッピング関係は、第1のサイトとトンネルを確立する各サイトの識別子と、各サイトに対応するトンネルテーブルの識別子とを記憶する。このようにして、第1のネットワークデバイスは、目標ルーティングエントリに含まれるサイト識別子に基づいて、第2のマッピング関係から、目標トンネルテーブルの識別子を決定することがある。次いで、目標トンネルテーブルが、目標トンネルテーブルの識別子に基づいて複数のトンネルテーブルから決定されることがあり、さらに、目標トンネルテーブル中のトンネルエントリが、1つまたは複数のトンネルエントリとして決定される。
【0099】
(3)第1のネットワークデバイスが、1つまたは複数のトンネルエントリから目標トンネルエントリとしてトンネルエントリを選択し、目標トンネルエントリに対応するトンネルを目標トンネルとして決定する。
【0100】
第1のネットワークデバイスは、トンネル選択ポリシーに従って、目標トンネルエントリとして1つまたは複数のトンネルエントリからトンネルエントリを選択し、さらに、目標トンネルエントリに対応するトンネルを目標トンネルとして決定する、すなわち目標トンネルエントリに含まれるトンネル識別子によって識別されるトンネルを目標トンネルとして使用することがある。
【0101】
例えば、第1のネットワークデバイスによって記憶されるトンネル選択ポリシーは、最大の帯域幅を有するトンネルを選択することである。このようにして、第1のネットワークデバイスは、1つまたは複数のトンネルエントリに含まれるトンネル属性情報を取得し、トンネル属性情報からトンネルの帯域幅を取得することがある。次いで、第1のネットワークデバイスは、1つまたは複数のトンネルエントリから、トンネルの帯域幅に基づいて、最大の帯域幅を有するトンネルエントリを選択することがある。
【0102】
任意選択で、各トンネルエントリは、接続識別子をさらに含み、接続識別子は、対応するトンネルが接続されているかどうか、すなわち対応するトンネルが利用可能であるかどうかを示すために使用される。したがって、トンネル選択ポリシーに従って目標トンネルエントリを選択する前に、第1のネットワークデバイスは、代替として、1つまたは複数のトンネルエントリから、その接続識別子が有効であるトンネルエントリをフィルタリングし、フィルタリングされたトンネルエントリから、トンネル選択ポリシーに従ってさらに目標トンネルエントリを選択することもある。
【0103】
ステップ403:目標トンネルが、第3のネットワークデバイスと第2のサイトのネットワークデバイスとの間に確立されたトンネルである場合に、第1のネットワークデバイスが、目標トンネルのトンネル識別子を第2のデータパケットに追加して、第3のデータパケットを取得する。ここで、第3のネットワークデバイスは、第1のサイトの複数のネットワークデバイスのうちの、第1のネットワークデバイス以外のネットワークデバイスである。
【0104】
トンネルテーブルは、第1のサイトのネットワークデバイスと第2のサイトのネットワークデバイスとの間に確立された全てのトンネルを含むので、第1のネットワークデバイスによって決定された目標トンネルは、第1のネットワークデバイスと第2のサイトのネットワークデバイスとの間に確立されたトンネル、または第3のネットワークデバイスと第2のサイトのネットワークデバイスとの間に確立されたトンネルであることがあることに留意されたい。ここで、第3のネットワークデバイスは、第1のサイトの第1のネットワークデバイス以外のネットワークデバイスである。
【0105】
いくつかの実施形態では、目標トンネルが第3のネットワークデバイスと第2のサイトのネットワークデバイスとの間に確立されたトンネルである場合に、第1のネットワークデバイスは、トンネルインデックスフィールドを第2のデータパケットに追加して、第3のデータパケットを取得することがある。
【0106】
例えば、図5に示されるように、トンネルインデックスフィールドは、トンネル識別子を含むことがあり、このトンネル識別子は、目標トンネルのトンネル識別子であることがある。任意選択で、トンネルインデックスフィールドは、カプセル化方式、ラベル、バージョン番号、およびプロトコルタイプなどをさらに含むこともある。カプセル化方式は、トンネル識別子に対応するトンネルタイプである。ラベルは、フラグビットであり、データパケットがユーザ側からトンネル側に送信された、またはトンネル側から受信されたことを示すために使用されることがある。バージョン番号は、使用されるトンネルインデックスフィールドのバージョン番号である。プロトコルタイプは、第2のデータパケットのプロトコルタイプである。
【0107】
ステップ404:第1のネットワークデバイスが、第1のネットワークデバイスと第3のネットワークデバイスとの間のネットワークリンクを通して第3のデータパケットを第3のネットワークデバイスに送信する。
【0108】
上記の説明に基づき、ネットワークリンクが、第1のネットワークデバイスと第3のネットワークデバイスとの間に確立され、第1のネットワークデバイスは、ネットワークリンクを通して第3のネットワークデバイスと通信する。したがって、第1のネットワークデバイスは、目標トンネルのトンネル識別子を第2のデータパケットに追加して第3のデータパケットを取得した後で、第1のネットワークデバイスと第3のネットワークデバイスとの間のネットワークリンクを通して第3のデータパケットを第3のネットワークデバイスに送信することがある。
【0109】
第1のネットワークデバイスが第3のネットワークデバイスに比較的近いときには、ネットワークリンクは、物理リンクであることがあることに留意されたい。第1のネットワークデバイスが第3のネットワークデバイスから比較的遠い、または物理リンクを通して第3のネットワークデバイスに接続されることが不可能であるときには、ネットワークリンクは、ネットワークトンネルであることがあり、ネットワークトンネルは、汎用ルーティングカプセル化(Generic Routing Encapsulation、GRE)トンネルを含むことがある。もちろん、代替として、ネットワークトンネルは、別のトンネルであってもよい。
【0110】
さらに、第1のサイトの2つのネットワークデバイス間のネットワークリンクは、主として、サイト内のトンネルエントリを同期させ、サイト内でデータパケットを伝送するために使用され、サイト外のネットワークに対して広告される必要はない。したがって、ネットワークリンクを確立するために使用される、第1のサイトのネットワークデバイス上のインタフェース上のネットワークアドレスは、全てプライベートネットワークアドレスに設定されることがあり、異なるサイトでも同じアドレス空間を使用することがある。これにより、SD-WANネットワークによるオペレータのネットワークアドレスリソースの消費を低減することができる。
【0111】
ステップ405:第3のネットワークデバイスが、第3のデータパケットを受信し、第3のデータパケットから第2のデータパケットを分離し、第2のデータパケットを目標トンネルを通して送信する。
【0112】
いくつかの実施形態では、トンネルインデックスフィールドは、目標トンネルのトンネル識別子だけでなく、トンネルインデックスフィールドのカプセル化方式、ラベル、バージョン番号、およびプロトコルタイプなども含むので、第2のデータパケットは、カプセル化方式、ラベル、バージョン番号、およびプロトコルタイプなどの情報に基づいて第3のデータパケットから分離されることがある。さらに、目標トンネルのトンネル識別子が、さらに取得されることもある。
【0113】
第3のネットワークデバイスも目標トンネルエントリを記憶しているので、第3のネットワークデバイスは、目標トンネルのトンネル識別子に基づいて目標トンネルエントリから目標トンネルのトンネル属性情報を取得し、取得されたトンネル属性情報に基づいて第2のデータパケットにトンネルカプセル化をさらに実行して第4のデータパケットを得、第4のデータパケットを目標トンネルを通して送信することがある。
【0114】
上記のステップ403から405は、目標トンネルが、第3のネットワークデバイスと第2のサイトのネットワークデバイスとの間のトンネルである場合についてのものである。目標トンネルが、第1のネットワークデバイスと第2のサイトのネットワークデバイスとの間のトンネルであるときには、第1のネットワークデバイスは、第2のデータパケットを目標トンネルを通して直接送信することがある。
【0115】
この場合、第1のネットワークデバイスが目標トンネルを通して第2のデータパケットを送信する実装プロセスは、以下を含むことがある。すなわち、第1のネットワークデバイスは、目標トンネルエントリから目標トンネルのトンネル属性情報を取得し、さらに取得されたトンネル属性情報に基づいて第2のデータパケットにトンネルカプセル化を実行して第4のデータパケットを得、第4のデータパケットを目標トンネルを通して送信することがある。
【0116】
第2のサイトのネットワークデバイスは、第4のデータパケットを受信した後で、第4のデータパケットにトンネルカプセル化解除を実行して、第2のデータパケットを取得することがあることに留意されたい。
【0117】
上記のステップ401から405は、第1のサイトのユーザ端末が第2のサイトのユーザ端末にデータパケットを送信する場合であることに留意されたい。代替として、第2のサイトのユーザ端末が第1のサイトのユーザ端末にデータパケットを送信することもあることを理解されたい。したがって、以下で、ステップ406および407を用いて、第2のサイトのユーザ端末が第1のサイトのユーザ端末にデータパケットを送信する場合について説明する。
【0118】
ステップ406:第1のネットワークデバイスが、第2のサイトから第1のデータパケットを受信する。ここで、第1のデータパケットは、第1のデータフローに属する。
【0119】
第1のデータフローは、第2のサイトのユーザ端末によって第1のサイトのユーザ端末に送信されるデータフローである。したがって、第1のデータフローのソースアドレスは、第2のデータフローの宛先アドレスであり、第1のデータフローの宛先アドレスは、第2のデータフローのソースアドレスである。
【0120】
第2のサイトのネットワークデバイスが第2のサイトのユーザ端末から第1のデータパケットを受信し、第1のデータパケットを第1のサイトのネットワークデバイスに送信する実装プロセスは、ステップ401から405の方式と同様であり、本明細書では詳細を重ねて説明することはしないことに留意されたい。
【0121】
ステップ407:第1のネットワークデバイスが、第1のデータパケットを第1のサイトのユーザ端末に送信する。
【0122】
いくつかの実施形態では、第1のサイトの各ネットワークデバイスが、第1のサイトのユーザ端末と通信することがある。したがって、第1のネットワークデバイスは、第2のサイトから第1のデータパケットを受信した後で、第1のデータパケットを第1のサイトのユーザ端末に直接送信することがある。換言すれば、第1のネットワークデバイスは、ステップ406および407の方式で、第1のサイトのユーザ端末に第1のデータパケットを送信する。
【0123】
いくつかの他の実施形態では、第1のサイトの複数のネットワークデバイスは、仮想ルータ冗長プロトコル(Virtual Router Redundancy Protocol、VRRP)に従ってVRRPグループを形成することがある。VRRPグループは、1次ネットワークデバイスと、1つまたは複数の2次ネットワークデバイスとを含む。1次ネットワークデバイスは、第1のサイトのユーザ端末と対話するように構成され、2次ネットワークデバイスは、1次ネットワークデバイスが故障しているときに1次ネットワークデバイスに取って代わることがある。この場合、第1のネットワークデバイスが1次ネットワークデバイスであるときには、第1のネットワークデバイスは、第1のデータパケットを受信した後で、第1のデータパケットを第1のサイトのユーザ端末に送信することがある。第1のデータパケットは、第1のネットワークデバイスと第2のネットワークデバイスとの間のネットワークリンクを通して第1のネットワークデバイスによって受信されるデータパケットであることがあり、第2のネットワークデバイスは、第1のサイトの複数のネットワークデバイスのうち、第1のネットワークデバイスとネットワークリンクを確立するネットワークデバイスである。もちろん、代替として、第1のデータパケットは、第1のネットワークデバイスと第2のサイトのネットワークデバイスとの間に確立されたトンネルを通して第1のネットワークデバイスによって受信されるデータパケットであることもある。
【0124】
第1のデータパケットを受信した後で、第2のサイトのネットワークデバイスは、第2のサイトと第1のサイトの間のトンネルからトンネルを選択し、選択されたトンネルを通して第1のデータパケットを第1のサイトに送信することがあることに留意されたい。選択されたトンネルが、第2のサイトのネットワークデバイスと第1のネットワークデバイスとの間に確立されたトンネルであるときには、第1のネットワークデバイスは、そのトンネルを通して第1のデータパケットを直接受信することがある。第1のネットワークデバイスが1次ネットワークデバイスであるので、第1のネットワークデバイスは、第1のデータパケットを第1のサイトのユーザ端末に直接送信することがある。選択されたトンネルが、第2のサイトのネットワークデバイスと第2のネットワークデバイスとの間に確立されたトンネルであるときには、第2のネットワークデバイスは、そのトンネルを通して第1のデータパケットを受信することがある。第1のネットワークデバイスが1次ネットワークデバイスであるので、第2のネットワークデバイスは、さらに、ネットワークリンクを通して第1のデータパケットを第1のネットワークデバイスに送信する必要がある。換言すれば、第1のネットワークデバイスは、ネットワークリンクを通して、第2のネットワークデバイスによって送信された第1のデータパケットを受信することがある。次いで、第1のネットワークデバイスは、第1のデータパケットを第1のサイトのユーザ端末に送信することがある。
【0125】
第1のネットワークデバイスは、ローカルルートを記憶し、このローカルルートは、第1のネットワークデバイスと第1のサイトのユーザ端末との間のルーティング情報を記憶することに留意されたい。したがって、第1のネットワークデバイスは、第1のデータパケットを受信した後で、ローカルルートに基づいて第1のデータパケットを第1のサイトのユーザ端末に送信することがある。
【0126】
さらに、第2のネットワークデバイスと第3のネットワークデバイスは、同じネットワークデバイスであることもある。もちろん、代替として、第2のネットワークデバイスと第3のネットワークデバイスは、異なるネットワークデバイスであってもよい。
【0127】
本出願のこの実施形態では、第1のサイトの複数のネットワークデバイス間にネットワークリンクが確立されるので、第1のネットワークデバイスのトンネルテーブルは、第1のネットワークデバイスと第2のサイトのネットワークデバイスとの間のトンネルに対応するトンネルエントリだけでなく、第1のサイトの別のネットワークデバイスと第2のサイトのネットワークデバイスとの間のトンネルに対応するトンネルエントリも含む。したがって、第1のネットワークデバイスが、第1のサイトのユーザ端末から第2のデータパケットを受信し、選択された目標トンネルが、第3のネットワークデバイスと第2のサイトのネットワークデバイスとの間のトンネルであるときには、第1のネットワークデバイスは、第1のネットワークデバイスと第3のネットワークデバイスとの間のネットワークリンクを通して第2のデータパケットを第3のネットワークデバイスに送信することがある。次いで、第3のネットワークデバイスが、目標トンネルを通して第2のデータパケットを第2のサイトに送信する。このようにして、第1のネットワークデバイスと第3のネットワークデバイスとの間のインタワーキングが実施され、第1のサイトと第2のサイトの間の通信が、過剰なトンネルを作成することなく実施されることが可能である。
【0128】
図6は、本出願の実施形態によるパケット送信方法の流れ図である。本出願のこの実施形態では、複数のネットワークデバイスが第1のサイトに配置され、第1のサイトに配置されたこれらのネットワークデバイスと第2のサイトに配置されたネットワークデバイスとの間に複数のトンネルが確立され、第2のサイトは、第1のサイトとのデータ伝送を実行するサイトである。図6を参照されたい。この方法は、以下のステップを含む。
【0129】
ステップ601:第1のネットワークデバイスが、第1のサイトのユーザ端末から第2のデータパケットを受信する。ここで、第2のデータパケットは、宛先アドレスを搬送し、第2のデータパケットは、第2のデータフローに属する。
【0130】
本出願のこの実施形態では、ステップ601の関係する説明については、上記の実施形態のステップ401の関係する説明を参照されたい。本明細書では、詳細について重ねて説明することはしない。
【0131】
ステップ602:第1のネットワークデバイスが、第2のデータパケット内で搬送される宛先アドレスに基づいて、第1のサイトと第2のサイトとの間に確立された複数のトンネルから目標トンネルとしてトンネルを選択する。
【0132】
本出願のこの実施形態では、ステップ602の関係する説明については、上記の実施形態のステップ402の関係する説明を参照されたい。本明細書では、詳細について重ねて説明することはしない。
【0133】
ステップ603:第1のネットワークデバイスが、第2のデータフローのフロー識別子に基づいて第1のデータフローのフロー識別子を決定する。
【0134】
第1のデータフローは、第2のサイトのユーザ端末によって第1のサイトのユーザ端末に送信されるデータフローであり、第2のデータフローは、第1のサイトのユーザ端末によって第2のサイトのユーザ端末に送信されるデータフローである。したがって、第1のデータフローのソースアドレスは、第2のデータフローの宛先アドレスであり、第1のデータフローの宛先アドレスは、第2のデータフローのソースアドレスである。
【0135】
いくつかの実施形態では、第1のネットワークデバイスは、第2のデータパケットに基づいて第2のデータフローのフロー識別子を決定し、さらに、第2のデータフローのフロー識別子に基づいて第1のデータフローのフロー識別子を決定することがある。
【0136】
一例では、第1のネットワークデバイスは、第2のデータパケットのタプル情報を取得することがあり、タプル情報は、ソースポート情報および宛先ポート情報を少なくとも含む。取得されたタプル情報は、第2のデータフローのフロー識別子として使用される。次いで、第1のネットワークデバイスは、第2のデータフローのフロー識別子中のソースポート情報と宛先ポート情報を入れ替えて、第1のデータフローのフロー識別子を取得する。
【0137】
この例では、第2のデータパケットの5タプル情報が、第2のデータフローのフロー識別子として決定されるか、第2のデータパケットの3タプル情報が、第2のデータフローのフロー識別子として決定されるか、または第2のデータパケットの7タプル情報が、第2のデータフローのフロー識別子として決定されることがあることに留意されたい。これは、本出願のこの実施形態では限定されない。第2のデータフローのフロー識別子がソースポート情報と宛先ポート情報とを少なくとも含むなら、第2のデータフローは、一意に識別されることが可能である。
【0138】
例えば、第2のデータフローのフロー識別子は5タプル情報であり、ソースアドレスは192.168.0.1であり、宛先アドレスは192.168.1.1であり、ソースポートはポート1であり、宛先ポートはポート2であり、プロトコル番号はプロトコル番号1である。次いで、第1のネットワークデバイスは、第2のデータフローのフロー識別子中のソースアドレスと宛先アドレスを入れ替え、第2のデータフローのフロー識別子中のソースポートと宛先ポートを入れ替えて、新たな5タプル情報を得、ここで、ソースアドレスは192.168.1.1であり、宛先アドレスは192.168.0.1であり、ソースポートはポート2であり、宛先ポートはポート1であり、プロトコル番号はプロトコル番号1である。この新たな5タプル情報は、第1のデータフローのフロー識別子として使用される。
【0139】
別の例では、第1のネットワークデバイスは、第2のデータパケットのタプル情報を取得し、第2のデータパケットのタプル情報に基づいて、タプル情報とフロー識別子との間の記憶されている対応から第2のデータフローのフロー識別子を取得することがある。次いで、第1のデータフローのフロー識別子が、第2のデータフローのフロー識別子に基づいて、第1のデータフローの識別子と第2のデータフローの識別子との間の記憶されている対応から取得される。
【0140】
例えば、第2のデータパケットの5タプル情報は、ソースアドレスが192.168.0.1であり、宛先アドレスが192.168.1.1であり、ソースポートがポート1であり、宛先ポートがポート2であり、プロトコル番号がプロトコル番号1である、というものである。次いで、第1のネットワークデバイスは、第2のデータパケットの5タプル情報に基づいて、以下の表1に示されるタプル情報とフロー識別子との間の対応から、第2のデータフローのフロー識別子がID2であることを学習することがある。次いで、第2のデータフローのフロー識別子に基づいて、第1のネットワークデバイスは、以下の表2に示される第1のデータフローの識別子と第2のデータフローの識別子との間の対応から、第1のデータフローのフロー識別子がID1であることを取得する。
【0141】
【表1】
【0142】
【表2】
【0143】
ステップ604:第1のネットワークデバイスが、第1のネットワークデバイスに記憶されているフローテーブルに、目標フローエントリを追加する。
【0144】
フローテーブルは、複数のフローエントリを含むことがあり、複数のフローエントリのそれぞれは、フロー識別子と、対応するアウトバウンドインタフェース識別子とを含む。したがって、現在追加される目標フローエントリは、フロー識別子と、対応するアウトバウンドインタフェース識別子とを含む。さらに、現在追加される目標フローエントリ中のフロー識別子は、第1のデータフローのフロー識別子であり、現在追加される目標フローエントリ中のアウトバウンドインタフェース識別子は、第1のインタフェースの識別子であり、第1のインタフェースは、第1のサイトのユーザ端末から第2のデータパケットを受信するように構成された、第1のネットワークデバイス内のインタフェースである。
【0145】
同じデータフローが第1のネットワークデバイスに流入するときには、そのデータフローは、第1のサイトのユーザ端末と通信するためのインタフェースを通って第1のネットワークデバイスに流入することもあるし、第1のサイトの別のネットワークデバイスと通信するためのインタフェースを通って第1のネットワークデバイスに流入することもあることに留意されたい。したがって、第1のネットワークデバイスによって現在追加される目標フローエントリ中のアウトバウンドインタフェース識別子は、第1のサイトのユーザ端末と通信する第1のネットワークデバイス内のインタフェースであることもあるし、第1のサイトの別のネットワークデバイスと通信する第1のネットワークデバイス内のインタフェースであることもある。
【0146】
ステップ605:目標トンネルが、第1のネットワークデバイスと第2のサイトのネットワークデバイスとの間に確立されたトンネルである場合に、第1のネットワークデバイスが、目標トンネルを通して第2のデータパケットを送信する。
【0147】
この場合、第1のネットワークデバイスは、目標トンネルを通して第2のデータパケットを直接送信することがある。第1のネットワークデバイスが目標トンネルを通して第2のデータパケットを送信する実装プロセスは、以下を含むことがある。すなわち、第1のネットワークデバイスは、目標トンネルエントリから目標トンネルのトンネル属性情報を取得し、さらに取得されたトンネル属性情報に基づいて第2のデータパケットにトンネルカプセル化を実行して第4のデータパケットを得、第4のデータパケットを目標トンネルを通して送信することがある。
【0148】
ステップ605は、目標トンネルが、第1のネットワークデバイスと第2のサイトのネットワークデバイスとの間に確立されたトンネルである場合についてのものである。目標トンネルが、第4のネットワークデバイスと第2のサイトのネットワークデバイスとの間のトンネルであるときには、第1のネットワークデバイスは、目標トンネルのトンネル識別子を第2のデータパケットに追加して第3のデータパケットを取得することがある。ここで、第4のネットワークデバイスは、第1のサイトの複数のネットワークデバイスのうちの、第1のネットワークデバイス以外のネットワークデバイスである。第1のネットワークデバイスは、第3のデータパケットを第4のネットワークデバイスに送信する。第4のネットワークデバイスは、第3のデータパケットを受信し、第3のデータパケットから第2のデータパケットを分離する。第4のネットワークデバイスは、第2のデータフローのフロー識別子に基づいて第1のデータフローのフロー識別子を決定し、第4のネットワークデバイスに記憶されているフローテーブルに目標フローエントリを追加し、目標トンネルを通して第2のデータパケットを送信する。第4のネットワークデバイスによって現在追加される目標フローエントリに含まれるフロー識別子は、第1のデータフローのフロー識別子である。現在追加される目標フローエントリ中のアウトバウンドインタフェース識別子は、第2のインタフェースの識別子であり、第2のインタフェースは、第3のデータパケットを受信するように構成された、第4のネットワークデバイス内のインタフェースである。
【0149】
第1のネットワークデバイスが第3のデータパケットを取得して第3のデータパケットを第4のネットワークデバイスに送信し、第4のネットワークデバイスが第3のデータパケットを受信して第2のデータパケットを分離する具体的な実装については、上記の実施形態のステップ403から405の実装を参照されたい。本明細書では、詳細について重ねて説明することはしない。
【0150】
本出願のこの実施形態では、第4のネットワークデバイスが第1のデータフローのフロー識別子を決定し、記憶されているフローテーブルに目標フローエントリを追加する具体的な実装については、上記のステップ603および604の実装を参照されたい。本明細書では、詳細について重ねて説明することはしない。
【0151】
第4のネットワークデバイスは、第4のネットワークデバイスと第1のネットワークデバイスとの間のネットワークリンクを通して第3のデータパケットを受信するので、第4のネットワークデバイスによって現在追加される目標フローエントリ中のアウトバウンドインタフェース識別子は、第1のネットワークデバイスと通信するインタフェース、すなわち第2のタイプのインタフェースであることに留意されたい。
【0152】
上記のステップ601から605は、第1のサイトのユーザ端末が第2のサイトのユーザ端末にデータパケットを送信する場合であることに留意されたい。代替として、第2のサイトのユーザ端末が第1のサイトのユーザ端末にデータパケットを送信することもあることを理解されたい。したがって、以下で、ステップ606から608を用いて、第2のサイトのユーザ端末が第1のサイトのユーザ端末にデータパケットを送信する場合について説明する。
【0153】
ステップ606:第1のネットワークデバイスが、第2のサイトから第1のデータパケットを受信する。ここで、第1のデータパケットは、第1のデータフローに属する。
【0154】
本出願のこの実施形態では、第1のデータパケットは、第1のネットワークデバイスと第2のサイトのネットワークデバイスとの間に確立されたトンネルを通して第1のネットワークデバイスによって受信されるデータパケットである。代替として、第1のデータパケットは、第1のネットワークデバイスによって受信され、第5のネットワークデバイスによって送信されるデータパケットであり、第5のネットワークデバイスは、複数のネットワークデバイスのうちの第1のネットワークデバイス以外のネットワークデバイスである。
【0155】
同じアプリケーションに関して送信されるデータパケットと受信されるデータパケットとが同じネットワークデバイスを通過することを保証するために、第1のサイトのネットワークデバイスがそのネットワークデバイスと第2のサイトとの間のトンネルを通して第1のデータパケットを受信した後で、そのネットワークデバイスは、そのフロー識別子が第1のデータフローのフロー識別子である目標フローエントリを探索する必要がある。目標フローエントリがネットワークデバイス内に存在しない場合、第2のデータフローがそのネットワークデバイスを通過しないことが示されることがある。この場合、そのネットワークデバイスは、第2のデータフローが通過するネットワークデバイスを発見するために、第1のサイトの別のネットワークデバイスに第1のデータパケットを送信する必要がある。したがって、代替として、第1のデータパケットは、第1のネットワークデバイスによって受信され、第5のネットワークデバイスによって送信されるデータパケットであることがある。
【0156】
第5のネットワークデバイスと第4のネットワークデバイスとが同じネットワークデバイスであることもるし、第5のネットワークデバイスが第4のネットワークデバイスとは異なるネットワークデバイスであることもあることに留意されたい。
【0157】
ステップ607:第1のネットワークデバイスが、第1のネットワークデバイスに記憶されているフローテーブルの中で、そのフロー識別子が第1のデータフローのフロー識別子である目標フローエントリを探索する。
【0158】
上記の説明に基づき、フローテーブルは、複数のフローエントリを含み、複数のフローエントリのそれぞれは、フロー識別子と、対応するアウトバウンドインタフェース識別子とを含み、第1のデータフローは、第1のデータパケットが属するデータフローである。したがって、第1のネットワークデバイスは、第1のデータフローのフロー識別子を、フローテーブル内の各フローエントリに含まれるフロー識別子と比較して、そのフロー識別子が第1のデータフローのフロー識別子である目標フローエントリを探索することがある。
【0159】
ステップ608:目標フローエントリが見つかった場合に、第1のネットワークデバイスが、目標フローエントリ内のアウトバウンドインタフェース識別子に対応するインタフェースを通して第1のデータパケットを送信する。
【0160】
いくつかの実施形態では、目標フローエントリを見つけるときに、第1のネットワークデバイスは、目標フローエントリに含まれるアウトバウンドインタフェース識別子を取得し、さらにアウトバウンドインタフェース識別子に対応するインタフェースに基づいて第1のデータパケットを送信することがある。目標フローエントリに含まれるアウトバウンドインタフェース識別子に対応するインタフェースは、第1のサイトのユーザ端末と通信するためのインタフェースであることもあるし、第1のサイトの別のネットワークデバイスと通信するためのインタフェースであることもある。したがって、以下で、2つの場合に第1のデータパケットを送信する方法について、別個に説明する。
【0161】
考えられる場合で、目標フローエントリ中のアウトバウンドインタフェース識別子に対応するインタフェースが、第1のタイプのインタフェースである場合、第1のネットワークデバイスは、目標フローエントリ中のアウトバウンドインタフェース識別子に対応するインタフェースを通して第1のサイトのユーザ端末に第1のデータパケットを送信する。ここで、第1のタイプのインタフェースは、第1のサイトのユーザ端末と通信するためのインタフェースである。
【0162】
別の考えられる場合で、目標フローエントリ中のアウトバウンドインタフェース識別子に対応するインタフェースが、第2のタイプのインタフェースである場合、第1のネットワークデバイスは、目標フローエントリ中のアウトバウンドインタフェース識別子に対応するインタフェースを通して第1のデータパケットを第3のネットワークデバイスに送信して、第3のネットワークデバイスに記憶されているフローテーブルの中で、目標フローエントリを探索するように第3のネットワークデバイスに指示する。第2のタイプのインタフェースは、第1のサイトの複数のネットワークデバイスのうちの別のネットワークデバイスと通信するためのインタフェースであり、第3のネットワークデバイスは、第1のサイトの複数のネットワークデバイスのうち、目標フローエントリ中のアウトバウンドインタフェース識別子に対応するインタフェースを通して第1のネットワークデバイスと通信するデバイスである。
【0163】
第3のネットワークデバイスと第5のネットワークデバイスとは異なるネットワークデバイスであることがあるが、第3のネットワークデバイスと第4のネットワークデバイスとは、同じネットワークデバイスであることもあるし、第3のネットワークデバイスが第4のネットワークデバイスと異なるネットワークデバイスであることもあることに留意されたい。
【0164】
いくつかの他の実施形態では、第1のネットワークデバイスが目標フローエントリを見つけないときには、第1のネットワークデバイスは、目標フローエントリを探索していないネットワークデバイスがまだ第1のサイトの複数のネットワークデバイスの中に存在するかどうかを決定することがある。目標フローエントリを探索していないネットワークデバイスがまだ第1のサイトの複数のネットワークデバイスの中に存在する場合、第1のネットワークデバイスは、第1のデータパケットを第2のネットワークデバイスに送信して、第2のネットワークデバイスに記憶されているフローテーブルの中で、目標フローエントリを探索するように第2のネットワークデバイスに指示する。第2のネットワークデバイスは、第1のサイトの複数のネットワークデバイスのうち、目標フローエントリを探索していないネットワークデバイスである。全ての第1のサイトの複数のネットワークデバイスが目標フローエントリを探索した場合、第1のネットワークデバイスは、ローカルルートを通して第1のデータパケットを送信する。
【0165】
一例では、第1のサイトの複数のネットワークデバイスは、2つずつネットワークリンクを通して接続されることがある、すなわち、ネットワークデバイスは、2つずつが互いに通信することがある。この場合、第1のデータパケットは、第1のデータパケットが通過する各ネットワークデバイスのデバイス識別子を搬送することがある。このようにして、目標フローエントリを探索していないネットワークデバイスが第1のサイト内にまだ存在するかどうかを決定するときに、第1のネットワークデバイスは、第1のデータパケットで搬送されるネットワークデバイスのデバイス識別子に基づいて、第1のサイトの複数のネットワークデバイスの中で目標フローエントリを探索していないネットワークデバイスを決定することがある。
【0166】
任意選択で、この場合、デバイス識別子フィールドが第1のデータパケットに追加されることがあり、デバイス識別子フィールドは、第1のデータパケットが通過する各ネットワークデバイスのデバイス識別子を含むことがある。このようにして、目標フローエントリを探索していないネットワークデバイスが第1のサイトにまだ存在するかどうかを決定するときに、第1のネットワークデバイスは、第1のデータパケット中のデバイス識別子フィールドに含まれるデバイス識別子に基づいて、第1のサイトの複数のネットワークデバイスのうち目標フローエントリを探索していないネットワークデバイスを決定することがある。
【0167】
例えば、図7に示されるように、3つのネットワークデバイス、ネットワークデバイス701、ネットワークデバイス702、およびネットワークデバイス703が、第1のサイトに配置される。さらに、ネットワークデバイス701とネットワークデバイス702の間にネットワークリンクがあり、ネットワークデバイス702とネットワークデバイス703の間にネットワークリンクがあり、ネットワークデバイス701とネットワークデバイス703の間にネットワークリンクがある。ネットワークデバイス701が第1のデータパケットを受信した後で、目標フローエントリがフローテーブル内に見つからない場合、ネットワークデバイス701は、第1のデータパケット内で搬送されるデバイス識別子フィールドを取得し、デバイス識別子フィールドに含まれるネットワークデバイスのデバイス識別子に基づいて、目標フローエントリを探索していない第1のサイト内のネットワークデバイスを決定することがある。ネットワークデバイス702およびネットワークデバイス703はいずれも目標フローエントリを探索しないものと仮定される。この場合、ネットワークデバイス701は、ネットワークデバイス701のデバイス識別子を第1のデータパケット内で搬送されるデバイス識別子フィールドに追加し、その第1のデータパケットを、ネットワークリンクを通してネットワークデバイス702またはネットワークデバイス703に送信することがある。本明細書では、ネットワークデバイス702への送信を例として用いる。ネットワークデバイス702が第1のデータパケットを受信した後で、目標フローエントリがフローテーブル内に見つからない場合、ネットワークデバイス702は、第1のデータパケット内で搬送されるデバイス識別子フィールドを取得し、デバイス識別子フィールドに含まれるネットワークデバイスのデバイス識別子に基づいて、目標フローエントリを探索していない第1のサイト内のネットワークデバイスはネットワークデバイス703であると決定することがある。次いで、ネットワークデバイス702は、ネットワークデバイス702のデバイス識別子を第1のデータパケット内で搬送されるデバイス識別子フィールドに追加し、その第1のデータパケットを、さらにネットワークデバイス703に送信することがある。
【0168】
第1のサイトの各ネットワークデバイスは、ローカルルートを記憶しており、ローカルルートは、対応するネットワークデバイスと第1のサイトのユーザ端末との間のルーティング情報を記憶していることに留意されたい。したがって、第1のネットワークデバイスが第1のデータパケットを受信し、第1のサイトの複数のネットワークデバイスが全て目標フローエントリを探索した後で、第1のネットワークデバイスは、ローカルルートに基づいて、第1のデータパケットを第1のサイトのユーザ端末に送信することがある。
【0169】
さらに、第2のネットワークデバイスと第5のネットワークデバイスとは異なるネットワークデバイスであることがあるが、第2のネットワークデバイスと、第3のネットワークデバイスと、第4のネットワークデバイスとは同じネットワークデバイスであることもあるし、または第2のネットワークデバイスが、第3のネットワークデバイスおよび第4のネットワークデバイスと異なるネットワークデバイスであることもある。
【0170】
任意選択で、第1のデータフローに含まれるデータパケットが、第1のネットワークデバイスと第2のサイトのネットワークデバイスとの間のトンネルを通して第2のサイトに送信されるときには、第1のネットワークデバイスが第1のネットワークデバイスに記憶されているフローテーブルに目標フローエントリを追加した後で、第1のネットワークデバイスは、目標フローエントリをネットワークリンクを通して第1のサイトの別のネットワークデバイスに送信することがある。目標フローエントリを受信した後で、この別のネットワークデバイスは、目標フローエントリのアウトバウンドインタフェースを、第2のタイプのインタフェース、すなわち各別のネットワークデバイスが第1のネットワークデバイスと通信するインタフェースに修正し、修正された目標フローエントリをフローテーブルに記憶することがある。このようにして、第1のデータパケットを受信したときに、この別のネットワークデバイスは、記憶されているフローテーブル内で目標フローエントリを見つけ、目標フローエントリに含まれるアウトバウンドインタフェース識別子に対応するインタフェースを通して第1のデータパケットを第1のネットワークデバイスに送信することがある。次いで、第1のネットワークデバイスは、目標フローエントリに基づいて、第1のデータパケットを第1のサイトのユーザ端末に送信することがある。目標フローエントリを第1のサイトの別のネットワークデバイスと同期させることにより、目標フローエントリが見つからないときに第1のデータパケットがネットワークデバイス間でトラバースされ続け、照会され続ける場合を大幅に減少させることができ、それにより第1のデータパケットの送信の効率を改善することができることが分かる。
【0171】
本出願のこの実施形態では、第2のサイトから第1のデータパケットを受信するときに、第1のネットワークデバイスは、フローテーブルの中で、そのフロー識別子が第1のデータフローのフロー識別子である目標フローエントリを探索することがある。第1のデータフローは、第1のデータパケットが属するデータフローである。目標フローエントリは、第1のサイトが第2のデータフローを第2のサイトに送信するときに作成される。第2のデータフローのソースアドレスは、第1のデータフローの宛先アドレスであり、第2のデータフローの宛先アドレスは、第1のデータフローのソースアドレスである。したがって、目標フローエントリは、第2のデータフローが第1のネットワークデバイスを通過するときにのみ、第1のネットワークデバイスのフローテーブルに存在する。このようにしてのみ、第1のネットワークデバイスは、目標フローエントリを見つけることができ、次いで、目標フローエントリ中のアウトバウンドインタフェース識別子に対応するインタフェースを通して第1のデータパケットを送信することができる。本出願のこの実施形態では、同じアプリケーションに関して送信されるパケットと受信されるパケットとが同じネットワークデバイスを通過することが保証されることが可能であることが分かる。
【0172】
上記の実施形態では、本出願の実施形態で提供されるパケット送信方法について、複数のネットワークデバイスが第1のサイトに配置される例を用いて説明した。以下では、第1のネットワークデバイスおよび第2のネットワークデバイスが第1のサイトに配置される例を用いて、本出願の実施形態で提供されるパケット送信方法について説明する。図8は、本出願の実施形態によるパケット送信方法の流れ図である。本出願のこの実施形態では、第1のネットワークデバイスおよび第2のネットワークデバイスは、それぞれ第3のネットワークデバイスへのトンネルを確立し、第2のサイトは、第1のサイトとのデータ伝送を実行するサイトである。この方法は、以下のステップを含む。
【0173】
ステップ801:第1のネットワークデバイスが、第1のサイトのユーザ端末から第2のデータパケットを受信する。ここで、第2のデータパケットは、宛先アドレスを搬送し、第2のデータパケットは、第2のデータフローに属する。
【0174】
本出願のこの実施形態では、ステップ801の関係する説明については、上記の実施形態のステップ401の関係する説明を参照されたい。本明細書では、詳細について重ねて説明することはしない。
【0175】
ステップ802:第1のネットワークデバイスが、第2のデータパケットで搬送される宛先アドレスに基づいて、第1のサイトと第2のサイトとの間に確立された複数のトンネルから目標トンネルとしてトンネルを選択する。
【0176】
本出願のこの実施形態では、ステップ802の関係する説明については、上記の実施形態のステップ402の関係する説明を参照されたい。本明細書では、詳細について重ねて説明することはしない。
【0177】
ステップ803:第1のネットワークデバイスが、第2のデータフローのフロー識別子に基づいて第1のデータフローのフロー識別子を決定する。
【0178】
本出願のこの実施形態では、ステップ803の関係する説明については、上記の実施形態のステップ603の関係する説明を参照されたい。本明細書では、詳細について重ねて説明することはしない。
【0179】
ステップ804:第1のネットワークデバイスが、第1のネットワークデバイスに記憶されているフローテーブルに目標フローエントリを追加する。
【0180】
本出願のこの実施形態では、ステップ804の関係する説明については、上記の実施形態のステップ604の関係する説明を参照されたい。本明細書では、詳細について重ねて説明することはしない。
【0181】
ステップ805:目標トンネルが、第1のネットワークデバイスと第2のサイトのネットワークデバイスとの間に確立されたトンネルである場合に、第1のネットワークデバイスが、目標トンネルを通して第2のデータパケットを送信する。
【0182】
本出願のこの実施形態では、ステップ805の関係する説明については、上記の実施形態のステップ605の関係する説明を参照されたい。本明細書では、詳細について重ねて説明することはしない。
【0183】
ステップ805は、目標トンネルが、第1のネットワークデバイスと第2のサイトのネットワークデバイスとの間に確立されたトンネルである場合についてのものである。目標トンネルが、第2のネットワークデバイスと第2のサイトのネットワークデバイスとの間のトンネルであるときには、第1のネットワークデバイスは、目標トンネルのトンネル識別子を第2のデータパケットに追加して、第3のデータパケットを取得することがある。第1のネットワークデバイスは、第3のデータパケットを第2のネットワークデバイスに送信して、第2のデータパケットを分離するように第2のネットワークデバイスに指示する。第2のネットワークデバイスは、第2のデータフローのフロー識別子に基づいて第1のデータフローのフロー識別子を決定し、第2のネットワークデバイスに記憶されているフローテーブルに目標フローエントリを追加し、目標トンネルを通して第2のデータパケットを送信する。現在追加される目標フローエントリに含まれるフロー識別子は、第1のデータフローのフロー識別子である。現在追加される目標フローエントリ中のアウトバウンドインタフェース識別子は、第2のインタフェースの識別子であり、第2のインタフェースは、第3のデータパケットを受信するように構成された、第2のネットワークデバイス内のインタフェースである。
【0184】
第1のネットワークデバイスが第3のデータパケットを取得して第3のデータパケットを第2のネットワークデバイスに送信し、第2のネットワークデバイスが第3のデータパケットを受信して第2のデータパケットを分離する具体的な実装については、上記の実施形態のステップ403から405の実装を参照されたい。本明細書では、詳細について重ねて説明することはしない。
【0185】
本出願のこの実施形態では、第2のネットワークデバイスが第1のデータフローのフロー識別子を決定し、記憶されているフローテーブルに目標フローエントリを追加する具体的な実装については、上記の実施形態のステップ603および604の実装を参照されたい。本明細書では、詳細について重ねて説明することはしない。
【0186】
上記のステップ801から805は、第1のサイトのユーザ端末が第2のサイトのユーザ端末にデータパケットを送信する場合であることに留意されたい。代替として、第2のサイトのユーザ端末が第1のサイトのユーザ端末にデータパケットを送信することもあることを理解されたい。したがって、以下で、ステップ806から808を用いて、第2のサイトのユーザ端末が第1のサイトのユーザ端末にデータパケットを送信する場合について説明する。
【0187】
ステップ806:第1のネットワークデバイスが、第2のサイトから第1のデータパケットを受信する。ここで、第1のデータパケットは、第1のデータフローに属する。
【0188】
本出願のこの実施形態では、ステップ806の関係する説明については、上記の実施形態のステップ606の関係する説明を参照されたい。本明細書では、詳細について重ねて説明することはしない。
【0189】
ステップ807:第1のネットワークデバイスが、第1のネットワークデバイスに記憶されているフローテーブルの中で、そのフロー識別子が第1のデータフローのフロー識別子である目標フローエントリを探索する。
【0190】
本出願のこの実施形態では、ステップ807の関係する説明については、上記の実施形態のステップ607の関係する説明を参照されたい。本明細書では、詳細について重ねて説明することはしない。
【0191】
ステップ808:目標フローエントリが見つかった場合に、第1のネットワークデバイスが、目標フローエントリ中のアウトバウンドインタフェース識別子に対応するインタフェースを通して第1のデータパケットを送信する。
【0192】
いくつかの実施形態では、目標フローエントリを見つけるときに、第1のネットワークデバイスは、目標フローエントリに含まれるアウトバウンドインタフェース識別子を取得し、さらにアウトバウンドインタフェース識別子に対応するインタフェースに基づいて第1のデータパケットを送信することがある。目標フローエントリに含まれるアウトバウンドインタフェース識別子に対応するインタフェースは、第1のサイトのユーザ端末と通信するためのインタフェースであることもあるし、または第2のネットワークデバイスと通信するためのインタフェースであることもある。したがって、以下で、2つの場合に第1のデータパケットを送信する方法について、別個に説明する。
【0193】
考えられる場合で、目標フローエントリ中のアウトバウンドインタフェース識別子に対応するインタフェースが、第1のタイプのインタフェースである場合、第1のネットワークデバイスは、目標フローエントリ中のアウトバウンドインタフェース識別子に対応するインタフェースを通して第1のサイトのユーザ端末に第1のデータパケットを送信する。ここで、第1のタイプのインタフェースは、第1のサイトのユーザ端末と通信するためのインタフェースである。
【0194】
別の考えられる場合で、目標フローエントリ中のアウトバウンドインタフェース識別子に対応するインタフェースが、第2のタイプのインタフェースである場合、第1のネットワークデバイスは、目標フローエントリ中のアウトバウンドインタフェース識別子に対応するインタフェースを通して第1のデータパケットを第2のネットワークデバイスに送信して、第2のネットワークデバイスに記憶されているフローテーブルの中で、目標フローエントリを探索するように第2のネットワークデバイスに指示する。ここで、第2のタイプのインタフェースは、第2のネットワークデバイスと通信するためのインタフェースである。
【0195】
いくつかの他の実施形態では、第1のネットワークデバイスが目標フローエントリを見つけず、第1のデータパケットが、第1のネットワークデバイスと第2のサイトのネットワークデバイスとの間に確立されたトンネルを通して受信される場合、第1のネットワークデバイスは、第1のデータパケットを第2のネットワークデバイスに送信して、第2のネットワークデバイスに記憶されているフローテーブルの中で、目標フローエントリを探索するように第2のネットワークデバイスに指示することがある。第2のネットワークデバイスが記憶されているフローテーブルから目標フローエントリを見つけた場合、第2のネットワークデバイスは、目標フローエントリに含まれるアウトバウンドインタフェース識別子に対応するインタフェースに基づいて第1のデータパケットを第1のサイトのユーザ端末に送信することがある。第2のネットワークデバイスが記憶されているフローテーブルから目標フローエントリを見つけなかった場合、第2のネットワークデバイスは、構成されているローカルルートによって示されるインタフェースに基づいて第1のデータパケットを第1のサイトのユーザ端末に送信することがある。
【0196】
第1のネットワークデバイスが目標フローエントリを見つけず、第1のデータパケットが、第1のネットワークデバイスと第2のネットワークデバイスとの間のネットワークリンクを通して受信される場合、第1のネットワークデバイスは、構成されているローカルルートによって示されるインタフェースに基づいて第1のデータパケットを第1のサイトのユーザ端末に送信することがある。
【0197】
第1のネットワークデバイスおよび第2のネットワークデバイスは、それぞれがローカルルートを記憶し、第1のネットワークデバイスに記憶されるローカルルートは、第1のネットワークデバイスと第1のサイトのユーザ端末との間のルーティング情報を記憶し、第2のネットワークデバイスに記憶されるローカルルートは、第2のネットワークデバイスと第1のサイトのユーザ端末との間のルーティング情報を記憶することに留意されたい。したがって、第1のデータパケットを第1のサイトのユーザ端末に送信するときに、第1のネットワークデバイスまたは第2のネットワークデバイスは、第1のネットワークデバイスまたは第2のネットワークデバイスに記憶されているローカルルートに基づいて、第1のデータパケットを第1のサイトのユーザ端末に送信することがある。
【0198】
本出願のこの実施形態では、第2のサイトから第1のデータパケットを受信したときに、第1のネットワークデバイスは、フローテーブルの中で、そのフロー識別子が第1のデータフローのフロー識別子である目標フローエントリを探索することがある。第1のデータフローは、第1のデータパケットが属するデータフローである。目標フローエントリは、第1のサイトが第2のデータフローを第2のサイトに送信するときに作成される。第2のデータフローのソースアドレスは、第1のデータフローの宛先アドレスであり、第2のデータフローの宛先アドレスは、第1のデータフローのソースアドレスである。したがって、目標フローエントリは、第2のデータフローが第1のネットワークデバイスを通過するときにのみ、第1のネットワークデバイスのフローテーブルに存在する。このようにしてのみ、第1のネットワークデバイスは、目標フローエントリを見つけることができ、次いで、目標フローエントリ中のアウトバウンドインタフェース識別子に対応するインタフェースを通して第1のデータパケットを送信することができる。本出願のこの実施形態では、同じアプリケーションに関して送信されるパケットと受信されるパケットとが同じネットワークデバイスを通過することが保証されることが可能であることが分かる。
【0199】
図9は、本出願の実施形態によるパケット送信装置の構造の概略図である。このパケット送信装置は、ソフトウェア、ハードウェア、またはそれらの組合せを用いて、第1のネットワークデバイスの一部または全体として実装され得る。複数のネットワークデバイスが、第1のサイトに配置される。第1のサイトに配置されたこれらのネットワークデバイスと第2のサイトに配置されたネットワークデバイスとの間に、複数のトンネルが確立される。第2のサイトは、第1のサイトとのデータ伝送を実行するサイトである。第1のネットワークデバイスは、第1のサイトの複数のネットワークデバイスのうちの任意の1つである。図9に示されるように、この装置は、第1の受信モジュール901、探索モジュール902、および第1の送信モジュール903を含む。
【0200】
第1の受信モジュール901は、第1のデータパケットを第2のサイトから受信するように構成される。
【0201】
探索モジュール902は、第1のネットワークデバイスに記憶されているフローテーブルの中で、そのフロー識別子が第1のデータフローのフロー識別子である目標フローエントリを探索するように構成される。フローテーブルは、複数のフローエントリを含み、複数のフローエントリのそれぞれは、フロー識別子と、対応するアウトバウンドインタフェース識別子とを含む。第1のデータフローは、第1のデータパケットが属するデータフローであり、目標フローエントリは、第1のサイトが第2のデータフローを第2のサイトに送信するときに作成される。第2のデータフローのソースアドレスは、第1のデータフローの宛先アドレスであり、第2のデータフローの宛先アドレスは、第1のデータフローのソースアドレスである。
【0202】
第1の送信モジュール903は、目標エントリが見つかった場合に、目標フローエントリ中のアウトバウンドインタフェース識別子に対応するインタフェースを通して第1のデータパケットを送信するように構成される。
【0203】
任意選択で、この装置は、
目標フローエントリが見つからず、目標フローエントリを探索していないネットワークデバイスがまだ複数のネットワークデバイスの中に存在する場合に、第1のデータパケットを第2のネットワークデバイスに送信して、第2のネットワークデバイスに記憶されているフローテーブルの中で、目標フローエントリを探索するように第2のネットワークデバイスに指示するように構成された第2の送信モジュールであって、複数のネットワークデバイスのうち、目標フローエントリを探索していないネットワークデバイスである第2の送信モジュールと、
目標エントリが見つからず、全ての複数のネットワークデバイスが目標フローエントリを探索した場合に、ローカルルートを通して第1のデータパケットを送信するように構成された第3の送信モジュールと、
をさらに含む。
【0204】
任意選択で、第1の送信モジュール903は、主に以下のように構成される。
目標フローエントリ中のアウトバウンドインタフェース識別子に対応するインタフェースが第1のタイプのインタフェースである場合に、目標フローエントリ中のアウトバウンドインタフェース識別子に対応するインタフェースを通して第1のサイトのユーザ端末に第1のデータパケットを送信する。ここで、第1のタイプのインタフェースは、第1のサイトのユーザ端末と通信するためのインタフェースである。
または、目標フローエントリ中のアウトバウンドインタフェース識別子に対応するインタフェースが、第2のタイプのインタフェースである場合に、目標フローエントリ中のアウトバウンドインタフェース識別子に対応するインタフェースを通して第1のデータパケットを第3のネットワークデバイスに送信して、第3のネットワークデバイスに記憶されているフローテーブルの中で、目標フローエントリを探索するように第3のネットワークデバイスに指示する。ここで、第2のタイプのインタフェースは、上記の複数のネットワークデバイスのうちの別のネットワークデバイスと通信するためのインタフェースであり、第3のネットワークデバイスは、上記の複数のネットワークデバイスのうち、目標フローエントリ中のアウトバウンドインタフェース識別子に対応するインタフェースを通して第1のネットワークデバイスと通信するデバイスである。
【0205】
任意選択で、この装置は、
第1のサイトのユーザ端末から第2のデータパケットを受信するように構成された第2の受信モジュールであって、第2のデータパケットが、宛先アドレスを搬送し、第2のデータパケットが、第2のデータフローに属する、第2の受信モジュールと、
宛先アドレスに基づいて複数のトンネルから目標トンネルとしてトンネルを選択するように構成された選択モジュールと、
第2のデータフローのフロー識別子に基づいて第1のデータフローのフロー識別子を決定するように構成された決定モジュールと、
第1のネットワークデバイスに記憶されているフローテーブルに目標フローエントリを追加するように構成された第1の追加モジュールであって、現在追加される目標フローエントリ中のフロー識別子が、第1のデータフローのフロー識別子であり、現在追加される目標フローエントリ中のアウトバウンドインタフェース識別子が、第1のインタフェースの識別子であり、第1のインタフェースが、第1のサイトのユーザ端末から第2のデータパケットを受信するように構成された、第1のネットワークデバイス内のインタフェースである、第1の追加モジュールと、
目標トンネルが、第1のネットワークデバイスと第2のサイトのネットワークデバイスとの間に確立されたトンネルである場合に、目標トンネルを通して第2のデータパケットを送信するように構成された第4の送信モジュールと、
をさらに含む。
【0206】
任意選択で、第1のネットワークデバイスは、ルーティングテーブルを記憶し、ルーティングテーブルは、複数のルーティングエントリを含み、複数のルーティングエントリのそれぞれは、サイトプレフィックスと、対応するサイト識別子とを含む。
【0207】
選択モジュールは、主に以下のように構成される。
第2のデータパケットで搬送される宛先アドレスに基づいて、ルーティングテーブルから目標ルーティングエントリを決定する。ここで、第2のデータパケット内で搬送される宛先アドレスは、目標ルーティングエントリに含まれるサイトプレフィックスと一致する。
目標ルーティングエントリに含まれるサイト識別子に基づいて、1つまたは複数のトンネルエントリを決定する。ここで、この1つまたは複数のトンネルエントリは、第1のサイトと第2のサイトとの間に確立されたトンネルに対応するトンネルエントリである。
上記の1つまたは複数のトンネルエントリから、目標トンネルエントリとしてトンネルエントリを選択し、目標トンネルエントリに対応するトンネルを目標トンネルとして使用する。
【0208】
任意選択で、第2のデータフローのフロー識別子は、ソースポート情報、および宛先ポート情報を含む。
【0209】
決定モジュールは、主に、
第2のデータフローのフロー識別子中のソースポート情報と宛先ポート情報を入れ替えることにより、第1のデータフローのフロー識別子を取得する
ように構成される。
【0210】
任意選択で、この装置は、
目標トンネルが、第4のネットワークデバイスと第2のサイトのネットワークデバイスとの間に確立されたトンネルである場合に、目標トンネルのトンネル識別子を第2のデータパケットに追加して第3のデータパケットを取得するように構成された第2の追加モジュールであって、第4のネットワークデバイスが、上記の複数のネットワークデバイスのうちの第1のネットワークデバイス以外のネットワークデバイスである、第2の追加モジュールと、
第3のデータパケットを第4のネットワークデバイスに送信して、第2のデータパケットを分離し、第2のデータフローのフロー識別子に基づいて第1のデータフローのフロー識別子を決定し、第4のネットワークデバイスに記憶されているフローテーブルに目標フローエントリを追加し、目標トンネルを通して第2のデータパケットを送信するように第4のネットワークデバイスに指示するように構成された第5の送信モジュールであって、現在追加される目標フローエントリに含まれるフロー識別子が、第1のデータフローのフロー識別子であり、現在追加される目標フローエントリ中のアウトバウンドインタフェース識別子が、第2のインタフェースの識別子であり、第2のインタフェースが、第3のデータパケットを受信するように構成された、第4のネットワークデバイス内のインタフェースである、第5の送信モジュールと、
をさらに含む。
【0211】
任意選択で、第1のデータパケットは、第1のネットワークデバイスと第2のサイトのネットワークデバイスとの間に確立されたトンネルを通して第1のネットワークデバイスによって受信されるデータパケットである。代替として、第1のデータパケットは、第1のネットワークデバイスによって受信され、第5のネットワークデバイスによって送信されるデータパケットであり、第5のネットワークデバイスは、上記の複数のネットワークデバイスのうちの第1のネットワークデバイス以外のネットワークデバイスである。
【0212】
任意選択で、上記の複数のネットワークデバイスの間にネットワークリンクが確立され、上記の複数のネットワークデバイスは、このネットワークリンクを通して通信する。このネットワークリンクは、物理リンクまたはネットワークトンネルであり、ネットワークトンネルは、GREトンネルを含む。
【0213】
本出願のこの実施形態では、第2のサイトから第1のパケットを受信したときに、第1のネットワークデバイスは、フローテーブルの中で、そのフロー識別子が第1のデータフローのフロー識別子である目標フローエントリを探索することがある。第1のデータフローは、第1のデータパケットが属するデータフローである。目標フローエントリは、第1のサイトが第2のデータフローを第2のサイトに送信するときに作成される。第2のデータフローのソースアドレスは、第1のデータフローの宛先アドレスであり、第2のデータフローの宛先アドレスは、第1のデータフローのソースアドレスである。したがって、目標フローエントリは、第2のデータフローが第1のネットワークデバイスを通過するときにのみ、第1のネットワークデバイスのフローテーブルに存在する。このようにしてのみ、第1のネットワークデバイスは、目標フローエントリを見つけることができ、次いで、目標フローエントリ中のアウトバウンドインタフェース識別子に対応するインタフェースを通して第1のデータパケットを送信することができる。本出願のこの実施形態では、同じアプリケーションに関して送信されるパケットと受信されるパケットとが同じネットワークデバイスを通過することが保証されることが可能であることが分かる。
【0214】
図10は、本出願の実施形態による別のパケット送信装置の構造の概略図である。このパケット送信装置は、ソフトウェア、ハードウェア、またはそれらの組合せを用いて、第1のネットワークデバイスの一部または全体として実装され得る。複数のネットワークデバイスが、第1のサイトに配置され、この複数のネットワークデバイスの間に、ネットワークリンクが確立される。第1のサイトに配置されたこれらのネットワークデバイスと第2のサイトに配置されたネットワークデバイスとの間に、複数のトンネルが確立される。第2のサイトは、第1のサイトとのデータ伝送を実行するサイトである。第1のネットワークデバイスは、上記の複数のネットワークデバイスのうちの任意の1つである。図10に示されるように、この装置は、受信モジュール1001、および送信モジュール1002を含む。
【0215】
受信モジュール1001は、第2のサイトから第1のデータパケットを受信するように構成される。第1のデータパケットは、第1のネットワークデバイスと第2のネットワークデバイスとの間のネットワークリンクを通して第1のネットワークデバイスによって受信されるデータパケットであり、第2のネットワークデバイスは、上記の複数のネットワークデバイスのうちの、第1のネットワークデバイスとネットワークリンクを確立するネットワークデバイスである。
【0216】
送信モジュール1002は、第1のサイトのユーザ端末に第1のデータパケットを送信するように構成される。
【0217】
本出願のこの実施形態では、第1のサイトの複数のネットワークデバイス間にネットワークリンクが確立されるので、第1のネットワークデバイスのトンネルテーブルは、第1のネットワークデバイスと第2のサイトのネットワークデバイスとの間のトンネルに対応するトンネルエントリだけでなく、第1のサイトの別のネットワークデバイスと第2のサイトのネットワークデバイスとの間のトンネルに対応するトンネルエントリも含む。したがって、第1のネットワークデバイスが、第1のサイトのユーザ端末から第2のデータパケットを受信し、選択された目標トンネルが、第3のネットワークデバイスと第2のサイトのネットワークデバイスとの間のトンネルであるときには、第1のネットワークデバイスは、第1のネットワークデバイスと第3のネットワークデバイスとの間のネットワークリンクを通して第2のデータパケットを第3のネットワークデバイスに送信することがある。次いで、第3のネットワークデバイスが、目標トンネルを通して第2のデータパケットを第2のサイトに送信する。このようにして、第1のネットワークデバイスと第3のネットワークデバイスとの間のインタワーキングが実施され、第1のサイトと第2のサイトの間の通信が、過剰なトンネルを作成することなく実施されることが可能である。
【0218】
上記の実施形態で提供されるパケット送信装置がパケットを送信する際、上記の機能モジュールの区分は、単に説明のための例として用いられたものであることに留意されたい。実際の適用では、上記の機能は、要件に従って、異なる機能モジュールに割り振られて実施されることもある。換言すれば、この装置の内部構造は、上述の機能の全てまたは一部を実施するために、異なる機能モジュールに分割されることもある。さらに、上記の実施形態で提供されるパケット送信装置およびパケット送信方法の実施形態は、同じ概念に属する。具体的な実装プロセスについては、方法の実施形態を参照されたい。本明細書では、詳細について重ねて説明することはしない。
【0219】
上記の実施形態の全てまたは一部は、ソフトウェア、ハードウェア、ファームウェア、またはそれらの組合せを用いて実装され得る。実施形態を実装するためにソフトウェアが使用されるときには、実施形態の全てまたは一部が、コンピュータプログラム製品の形態で実装されることもある。コンピュータプログラム製品は、1つまたは複数のコンピュータ命令を含む。コンピュータ命令がコンピュータにロードされて実行されると、本出願の実施形態による手順または機能の全てまたは一部が生成される。コンピュータは、汎用コンピュータ、専用コンピュータ、コンピュータネットワーク、または別のプログラマブル装置であることがある。コンピュータ命令は、コンピュータ可読記憶媒体に記憶されることもあるし、またはコンピュータ可読記憶媒体から別のコンピュータ可読記憶媒体に伝送されることもある。例えば、コンピュータ命令は、ウェブサイト、コンピュータ、サーバ、またはデータセンタから、別のウェブサイト、コンピュータ、サーバ、またはデータセンタに、有線方式(例えば同軸ケーブル、光ファイバ、もしくはデジタル加入者回線(Digital Subscriber Line、DSL))またはワイヤレス方式(例えば赤外線、無線、もしくはマイクロ波)で伝送されることもある。コンピュータ可読記憶媒体は、コンピュータによってアクセス可能な任意の使用可能な媒体、または1つもしくは複数の使用可能な媒体を統合した、サーバもしくはデータセンタなどのデータ記憶デバイスであることがある。使用可能な媒体は、磁気媒体(例えばフロッピーディスク、ハードディスク、もしくは磁気テープ)、光学媒体(例えばデジタル汎用ディスク(Digital Versatile Disc、DVD))、または半導体媒体(例えばソリッドステートディスク(Solid State Disk、SSD))などであることがある。本出願で言及されるコンピュータ可読記憶媒体は、不揮発性記憶媒体であることがあることに留意されたい。換言すれば、コンピュータ可読記憶媒体は、非一時的な記憶媒体であることがある。
【0220】
本出願では、「第1」および「第2」などの用語は、同じ品目、または基本的に同じ機能を有する同様の品目を区別するために使用されている。「第1」と、「第2」と、「n番目」との間に論理的または時間的な順序依存性はなく、数量および実行順序は限定されないことを理解されたい。また、以下の説明では、様々な要素を説明するために第1および第2などの用語が使用されるが、これらの要素は、これらの用語によって限定されないことも理解されたい。これらの用語は、単に1つの要素を別の要素と区別するために使用されているものに過ぎない。例えば、様々な例の範囲を逸脱することなく、第1の画像が第2の画像と呼ばれることもあるし、同様に、第2の画像が第1の画像と呼ばれることもある。第1の画像および第2の画像の両方が画像であることもあり、場合によっては、別個の異なる画像であることもある。
【0221】
本出願における「少なくとも1つの」という用語は、1つまたは複数を意味し、本出願における「複数の」という用語は、2つ以上を意味する。例えば、「複数の第2のパケット」は、2つ以上の第2のパケットを意味する。「システム」と「ネットワーク」という用語は、本明細書では入れ替え可能に使用されることもある。
【0222】
本明細書の様々な例の説明において使用される用語は、単に具体例を説明するためのものであり、限定することを意図したものではないことを理解されたい。様々な例の説明および添付の特許請求の範囲において使用される単数形の「1つ」(「a」および「an」)ならびに「the」という用語は、文脈から明らかにそうでないと特定されない限り、複数形を含むことも意図されている。
【0223】
さらに、本明細書で使用される「および/または」という用語は、関連する記載されている品目のうちの1つまたは複数の品目の、任意の、または全ての可能な組合せを示し、含むことを理解されたい。本明細書における「および/または」という用語は、関連するオブジェクトを説明するための関連を説明するものであり、3通りの関係が存在し得ることを表している。例えば、Aおよび/またはBは、Aのみが存在する、AとBの両方が存在する、およびBのみが存在する、という3通りの場合を表し得る。さらに、本出願における「/」という文字は、通常は、関連するオブジェクト間の「または」の関係を示す。
【0224】
さらに、上記のプロセスの順序番号は、本出願の様々な実施形態における実行順序を意味しているわけではないことを理解されたい。プロセスの実行順序は、プロセスの機能および内部論理に基づいて決定されるものであり、本出願の実施形態の実装プロセスに対するいかなる限定とも解釈されるべきではない。
【0225】
Aに基づいてBを決定するとは、BがAのみに基づいて決定されることを意味しているわけではないことを理解されたい。代替として、Bは、Aおよび/または他の情報に基づいて決定されることもある。
【0226】
さらに、本明細書で使用される「含む(include)」(「含む(includes)」、「含む(including)」、「備える(comprises)」、および/または「備える(comprising)」)という用語は、記載される特徴、完全体、ステップ、動作、要素、および/または構成要素が存在することを特定するものであり、1つまたは複数の他の特徴、完全体、ステップ、動作、要素、構成要素、および/またはそれらの構成要素の存在または追加が排除されるわけではないことを理解されたい。
【0227】
さらに、「場合」という用語は、「とき」(「とき」もしくは「時」)、「決定したのに応答して」、または「検出したのに応答して」の意味として解釈されることもあることを理解されたい。同様に、文脈により、「と決定された場合に」または「(記載される状態または事象が)検出された場合に」という表現は、「と決定されたとき」、「と決定したのに応答して」、「(記載される状態または事象が)検出されたとき」、または「(記載される状態または事象)を検出したのに応答して」の意味として解釈されることもある。
【0228】
本明細書を通じて言及される「1実施形態」、「実施形態」、または「可能な実装」は、それらの実施形態または実装に関係する特定の特徴、構造、または特性が、本出願の少なくとも1つの実施形態に含まれることを意味するものであることを理解されたい。したがって、本明細書を通じて見られる「1実施形態では」、「実施形態では」、または「可能な実装では」は、必ずしも同じ実施形態を指しているわけではない。さらに、これらの特定の特徴、構造、または特性は、1つまたは複数の実施形態で、任意の適当な様式で組み合わされることがある。
【0229】
上記の説明は、単に本出願の実施形態に過ぎず、本出願を限定するためのものではない。本出願の原理を逸脱することなく行われる任意の修正、等価な置換、または改善は、本出願の保護範囲に含まれるものとする。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10