JP7268741B2 - 通信システム、通信方法及び通信プログラム - Google Patents

通信システム、通信方法及び通信プログラム Download PDF

Info

Publication number
JP7268741B2
JP7268741B2 JP2021538546A JP2021538546A JP7268741B2 JP 7268741 B2 JP7268741 B2 JP 7268741B2 JP 2021538546 A JP2021538546 A JP 2021538546A JP 2021538546 A JP2021538546 A JP 2021538546A JP 7268741 B2 JP7268741 B2 JP 7268741B2
Authority
JP
Japan
Prior art keywords
packet
software
entry
address
data
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
JP2021538546A
Other languages
English (en)
Other versions
JPWO2021024327A1 (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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Publication of JPWO2021024327A1 publication Critical patent/JPWO2021024327A1/ja
Application granted granted Critical
Publication of JP7268741B2 publication Critical patent/JP7268741B2/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/2801Broadband local area networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/76Routing in software-defined topologies, e.g. routing between virtual machines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing

Landscapes

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

Description

本発明は、転送装置、通信システム、転送方法及び転送プログラムに関する。
仮想マシン技術の発達に伴い、ソフトウェアを止めることなく別のサーバにデータを移行するソフトウェアの再配置を行うことが可能になった。ソフトウェアの再配置は、移行元のソフトウェアが起動されるサーバのメンテナンスや負荷分散を行う際に行われる。
移行元のソフトウェアが使用していたデータを再配置先のソフトウェアに移行する際、ソフトウェアに向けて送信されたデータフローの転送先を移行先に変更する必要がある。そこで、従来、パケットロスを起こさずに転送経路を変更する方法が提案されている(例えば、非特許文献1参照)。
L. Nobach,I. Rimac,V. Hilt and D. Hausheer,"Statelet-Based Efficient and Seamless NFV State Transfer",in IEEE Transactions on Network and Service Management, vol. 14, no. 4, pp. 964-977, Dec. 2017.
非特許文献1記載の方法は、データ転送用ネットワーク技術として、SDN(Software Defined Network)技術を使用し、ソフトウェアのデータの移行が完了するタイミングでSDNスイッチの転送先を新しいものに変更する。そして、非特許文献1記載の方法では、再配置先のソフトウェアが、パケット処理の順番と、データの更新タイミングとを一致させるよう制御することによって、正しいデータを使用してパケットを処理している。
ここで、SDNでは、集中型制御用装置(SDNコントローラ)によって、パケット転送装置の制御が行なわれる。経路変更を行う場合、SDNコントローラは、変更後の経路を計算し、その結果を基に、パケットの出力先を設定する。そして、SDNコントローラは、経路変更用のメッセージを作成し、スイッチに送信する。
しかしながら、これらの処理は、SDNコントローラに大きな負荷となる。特に、データセンタのようにスイッチやサーバの数が多いネットワークでは、負荷の増大により、メッセージ作成や経路計算に時間がかかり、ネットワーク内の全ての装置に同一タイミングでメッセージを届けることが困難になる。この結果、スイッチの設定タイミングにずれが生じ、ルートフラッピングやパケットドロップが生じる。
本発明は、上記に鑑みてなされたものであって、上位コントローラによる負荷を低減できる転送装置、通信システム、転送方法及び転送プログラムを提供することを目的とする。
上述した課題を解決し、目的を達成するために、本発明の転送装置は、転送用アドレス、出力ポート及びタイマーを含むエントリを有する管理テーブルを記憶する記憶部と、複数のポートを有し、パケットの送受信を行う通信部と、パケットを受信すると、管理テーブルを参照し、パケットの送信元アドレスをキーとするエントリを検索し、検索したエントリのタイマーがセットされていない場合には、該エントリについて、送信元アドレスを送信先とするパケットの出力先ポートをパケットの受信ポートに変更するとともに該エントリのタイマーをセットし、検索したエントリのタイマーがセットされている場合には、該エントリの内容の変更を行わない検索部と、パケットを、管理テーブルのパケットのエントリの出力ポートから転送する転送処理部と、を有することを特徴とする。
また、本発明の通信システムは、データ移行元において第1のソフトウェアを稼働させる第1の物理装置と、データ移行先において第2のソフトウェアを稼働させる第2の物理装置と、パケットを転送する転送装置とを有する通信システムであって、第1のソフトウェアは、第2のソフトウェアとの間で、第1のソフトウェアが使用するデータと転送用アドレスとを同期し、第2のソフトウェアは、指定されたタイミングでデータプレーンネットワークに対し、第1のソフトウェアから引き継いだアドレスを送信元アドレスとして添付したパケットをブロードキャストし、転送装置は、転送用アドレス、出力ポート及びタイマーを含むエントリを有する管理テーブルを記憶する記憶部と、複数のポートを有し、パケットの送受信を行う通信部と、パケットを受信すると、管理テーブルを参照し、パケットの送信元アドレスをキーとするエントリを検索し、検索したエントリのタイマーがセットされていない場合には、該エントリについて、送信元アドレスを送信先とするパケットの出力先ポートをパケットの受信ポートに変更するとともに該エントリのタイマーをセットし、検索したエントリのタイマーがセットされている場合には、該エントリの内容の変更を行わない検索部と、パケットを、管理テーブルのパケットのエントリの出力ポートから転送する転送処理部と、を有することを特徴とする。
また、本発明の転送方法は、転送装置が実行する転送方法であって、転送装置は、転送用アドレス、出力ポート及びタイマーを含むエントリを有する管理テーブルを記憶する記憶部と、複数のポートを有し、パケットの送受信を行う通信部と、を有し、パケットを受信すると、管理テーブルを参照し、パケットの送信元アドレスをキーとするエントリを検索する工程と、検索されたエントリのタイマーがセットされていない場合には、該エントリについて、送信元アドレスを送信先とするパケットの出力先ポートをパケットの受信ポートに変更するとともに該エントリのタイマーをセットする工程と、検索されたエントリのタイマーがセットされている場合には、パケットを、管理テーブルのパケットのエントリの出力ポートから転送する工程と、を含んだことを特徴とする。
また、本発明の転送プログラムは、パケットを受信すると、転送用アドレス、出力ポート及びタイマーを含むエントリを有する管理テーブルを参照し、パケットの送信元アドレスをキーとするエントリを検索するステップと、検索されたエントリのタイマーがセットされていない場合には、該エントリについて、送信元アドレスを送信先とするパケットの出力先ポートをパケットの受信ポートに変更するとともに該エントリのタイマーをセットするステップと、検索されたエントリのタイマーがセットされている場合には、パケットを、管理テーブルのパケットのエントリの出力ポートから転送するステップと、をコンピュータに実行させる。
本発明によれば、上位コントローラによる負荷を低減できる。
図1は、実施の形態に係る通信システムの構成の一例を示す図である。 図2は、図1に示す転送装置の構成の一例を示すブロック図である。 図3は、図2に示す管理テーブルのデータ構成の一例を示す図である。 図4は、VNF間のデータ移行に伴う経路変更に関する処理の流れを説明する図である。 図5は、VNF間のデータ移行に伴う経路変更に関する処理の流れを説明する図である。 図6は、VNF間のデータ移行に伴う経路変更に関する処理の流れを説明する図である。 図7は、VNF間のデータ移行に伴う経路変更に関する処理の流れを説明する図である。 図8は、VNF間のデータ移行に伴う経路変更に関する処理の流れを説明する図である。 図9は、図1に示す通信システムにおけるVNF間のデータ移行に伴う経路変更に関する処理手順を示すシーケンス図である。 図10は、図9に示す経路変更処理の処理手順を示すフローチャートである。 図11は、SDNコントローラの経路計算対象を例示する図である。 図12は、従来のパケットの経路変更を説明する図である。 図13は、実施の形態におけるパケットの経路変更を説明する図である。 図14は、実施の形態におけるパケットの経路変更を説明する図である。 図15は、実施の形態におけるパケットの経路変更を説明する図である。 図16は、プログラムが実行されることにより、転送装置、サーバが実現されるコンピュータの一例を示す図である。
以下に、本願に係る転送装置、通信システム、転送方法及び転送プログラムの実施の形態を図面に基づいて詳細に説明する。また、本発明は、以下に説明する実施の形態により限定されるものではない。
[実施の形態]
まず、実施の形態について説明する。本実施の形態は、それぞれ異なるサーバにおいて起動されたソフトウェアを実装する仮想ネットワーク機能(VNF(Virtual Network Function))間におけるデータ移行方法と、データに関連するトラヒックフローのデータプレーンネットワークの経路変更方法とに関する。本実施の形態は、サーバのメンテナンスやロードバランシングのために、VNFを別のサーバ上で稼働したい場合におけるデータ移行方法と経路変更の方法とに関する。なお、VNFは、NAPT(Network Address Port Translation)、IDS(Intrusion Detection System)、ルータなど、パケット処理を行うソフトウェアであり、動作環境が存在する任意のサーバ上で稼働が可能である。
[通信システムの構成]
図1は、実施の形態に係る通信システムの構成の一例を示す図である。図1に示すように、実施の形態に係る通信システム1では、SDNコントローラ20と、転送装置10と、サーバ2A(第1の物理装置)及びサーバ2B(第2の物理装置)とを有する。なお、転送装置10及びサーバ2A,2Bの台数は、一例であり、図1の台数に限らない。
SDNコントローラ20は、転送装置10の上位に設けられた集中型制御装置である。SDNコントローラ20は、経路変更を行う場合、変更後の経路を計算し、計算結果を基にパケットの出力先を設定する。
サーバ2Aは、VNF3A(第1のソフトウェア)を稼働させる物理装置である。サーバ2Bは、VNF3B(第2のソフトウェア)を稼働させる物理装置である。図1の例では、VNF3Aは、データの移行元のVNFであり、VNF3Bは、データの移行先のVNFである。VNF3Aは、SDNコントローラ20によって経路変更が指示された場合、VNF3Bとの間で、VNF3Aが使用するデータと転送用アドレスとを同期し、データ移行を行う。移行先のVNF3Bは、指定されたタイミングで、データプレーンネットワークに対し、VNF3Aから引き継いだアドレスを送信元アドレスとして添付したパケットをブロードキャストする。
転送装置10は、パケットを受信し、受信したパケットを送信先のアドレスに転送する。転送装置10は、例えば、SDNスイッチである。転送装置10は、経路変更時には、経路変更対象のMACアドレスに対応する出力ポートを、変更先の出力ポートに変更することによって、データプレーンネットワークの経路変更を行う。
転送装置10は、移行先のVNF3Bによるブロードキャストを受信してMACアドレスを学習することによって、変更先の出力ポートを、移行先のVNF3Bが起動されたサーバ2Bに対応する出力ポートに変更する。その後、転送装置10は、移行元のVNF3Aによるパケットを受信すると、このパケットのMACアドレスを学習せず、そのままパケットを転送することによって、ルートフラッピングやパケットドロップの発生を防止する。
移行先のサーバ2BにおいてVNF3Bを稼働させるためには、以下の処理を行う。まず、サーバ2B上で移行先のVNF3Bを起動させる。そして、移行元のVNF3Aは、使用していたパケット処理用データを、移行先のVNF3Bに移行する。なお、以降の説明において、パケット処理用データを、ステートとする。ステートは、例えば、NAPTのフロー割り当てアドレス、IDSのフローの振る舞い情報が該当する。続いて、転送装置10は、フローが移行先のVNF3Bを通るよう、データプレーンネットワークの経路を設定する。
[転送装置の構成]
図2は、図1に示す転送装置10の構成の一例を示すブロック図である。図2に示すように、転送装置10は、通信部11、記憶部12及び制御部13を有する。
通信部11は、ネットワーク等を介して接続された他の装置との間で、各種情報を送受信する通信インタフェースである。通信部11は、LAN(Local Area Network)やインターネットなどの電気通信回線を介した他の装置と制御部13(後述)との間の通信を行う。通信部11は、複数のポートを有し、パケットの送受信を行う。各ポートは、電気信号を伝送するケーブルによって、通信先の装置と接続されている。
記憶部12は、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子によって実現され、転送装置10を動作させる処理プログラムや、処理プログラムの実行中に使用されるデータなどが記憶される。記憶部12は、管理テーブル121を記憶する。管理テーブル121は、パケット転送を管理するための情報を含む。
図3は、図2に示す管理テーブル121のデータ構成の一例を示す図である。図3に示すように、管理テーブル121は、転送用アドレス(アドレス)、出力ポートの番号及びガードタイマーを含むエントリを有する。ガードタイマー(タイマー)は、転送装置10が、移行先のVNF3Bによるブロードキャストを受信し、MACアドレスを学習してポート変更を行った際に、タイマー値がセットされる。ガードタイマー欄には、タイマーが未セットである場合には「off(=0)」が登録されており、タイマーがセットされた場合には、そのタイマー値が登録される。
例えば、1行目のエントリには、アドレス「aa:bb:cc:dd:ee:ff」、出力ポート「1」、ガードタイマー「off (=0)」が登録されている。2行目のエントリには、アドレス「bb:cc:dd:ee:ff:aa」、出力ポート「2」、ガードタイマー「500ms」が登録されている。2行目のエントリについては、ガードタイマーのタイマー値がセットされているため、このエントリに対応するVNFは、転送装置10によって、ブロードキャスト受信によるMACアドレスの学習及びポート変更が行なわれている。
制御部13は、転送装置10全体を制御する。制御部13は、例えば、CPU(Central Processing Unit)等の電子回路や、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)等の集積回路である。また、制御部13は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、内部メモリを用いて各処理を実行する。また、制御部13は、各種のプログラムが動作することにより各種の処理部として機能する。制御部13は、転送処理部131及びアドレス検索部132(検索部)を有する。
転送処理部131は、パケットを、該パケットの送信先アドレスに対応する出力ポートから転送する。
アドレス検索部132は、パケットを受信すると、管理テーブル121を参照し、受信したパケットの送信元アドレスをキーとするエントリを検索する。アドレス検索部132は、検索したエントリのガードタイマーがセットされていない場合には、該エントリについて、送信元アドレスを送信先とするパケットの出力先ポートをパケットの受信ポートに変更するとともに該エントリのガードタイマーをセットする。これは、移行先のVNF3Bによるブロードキャストを受信した場合であり、この場合、アドレス検索部132は、MACアドレスを学習してポート変更を行い、タイマー値をセットする。
一方、アドレス検索部132は、検索したエントリのガードタイマーがセットされている場合には、該エントリの内容の変更を行なわず、このパケットを、このパケットのエントリに登録される出力ポートから転送する。これは、例えば、経路変更前に移行元のVNF3Aから転送されたパケットを受信した場合であり、この場合、アドレス検索部132は、MACアドレスを学習せずに、パケットを転送する。
[処理の流れ]
続いて、VNF3A,3B間のデータ移行に伴う経路変更に関する処理の流れについて説明する。図4~図8は、VNF3A,3B間のデータ移行に伴う経路変更に関する処理の流れを説明する図である。図4~図8では、SDNコントローラ20の記載を省略している。
まず、図4を参照して、経路変更処理について想定する状況を具体的に説明する。図4に示すように、サーバ2Aで動作しているVNF3Aが、VNF3Aのステートデータを、サーバ2Bで稼働するVNF3Bに移行する(矢印Y1参照)。ステートの移行完了後、転送装置10は、データパケットの転送先をサーバ2Aからサーバ2Bに変更する(矢印Y2参照)。なお、サーバ2A,2B上で稼働するVNF3A,3BのMADアドレスは、いずれも同じ「MAX XX」を設定している。
続いて、図5~図8を参照して、経路変更処理の流れを説明する。図5に示すように、サーバ2Aは、サーバ2Bとの間でステート同期を行い(図5の(1)参照)、未送信ステートデータ量が閾値を下回った場合には、もうすぐデータ送信を完了することを、サーバ2Bに通知する。
この通知を受けると、サーバ2Bは、データパケットの転送先をサーバ2BのVNF3Bに変更するように転送装置10を動作させるために、自装置のMACアドレスを、ヘッダの送信元(source address)欄に添付した転送先変更パケットをサブネット内にブロードキャストする(図5の(2)参照)。
そして、図6に示すように、転送装置10は、ブロードキャストパケットを受信すると、ブロードキャストパケットの送信元アドレスをチェックする。転送装置10は、管理テーブル121を参照し、ブロードキャストパケットの送信元アドレスをキーとするエントリを検索する。そして、転送装置10は、検索したエントリ内のガードタイマーの値をチェックする。
この場合、ガードタイマー値が0であり、ガードタイマーがかかっていないため、転送装置10は、MACラーニング処理を行う。転送装置10は、MACラーニング処理として、検索したエントリについて、このエントリのアドレス宛ての出力ポートをサーバ2Aに対応するポート1から、サーバ2Bに対応するポート2に変更する(図6の矢印Y3及び図6の(3)参照)。そして、転送装置10は、ガードタイマー欄に、予め指定されたガードタイム(500ms)をセットする(図6の(3)参照)。転送装置10は、このパケットを他のポートからブロードキャストする。
また、図7を参照して、経路変更前にパケットがサーバ2Aに到着し、VNF3Aで処理された後、転送装置10の方向に再びパケットが転送された場合について説明する(図7の矢印Y4参照)。この場合、転送装置10は、パケットの送信元アドレスをチェックし、管理テーブル121を参照し、受信パケットパケットの送信元アドレスをキーとするエントリを検索する。この場合には、ガードタイマーに値(450ms)がセットされているため(図7の(4)参照)、転送装置10は、MACラーニングを行わずにパケットを送信先に転送する。
続いて、図8を参照して、サーバ2Aで稼働するVNF3Aが、サーバ2Bから送られた、自装置に設定されたMACアドレスと同じアドレスをヘッダに記録しているパケットを受信した場合について説明する。
この場合、VNF3Aは、VNF3AからVNF3Bへと送られていた、データの送信を停止し、VNF3Bに、最終データの送信であってステートの送信を完了することを示す完了通知を通知する(図8の(5)参照)。VNF3Bは、サーバ2Aで稼働するVNF3Aから完了通知が送信されると、データを記録し、サーバ2Aで稼働するVNF3Aが行っていた処理を引き継ぎ、データ移行処理を終了する。
[データ移行に伴う経路変更処理の処理手順]
図9は、図1に示す通信システム1におけるVNF3A,3B間のデータ移行に伴う経路変更に関する処理手順を示すシーケンス図である。
図9に示すように、サーバ2Bは、データ移行先となるVNF3Bを起動させる(ステップS1)。そして、VNF3AとVNF3Bと間で、VNF3Aが使用するデータと転送用アドレスとを同期し、VNF3AからVNF3Bへのデータ移行が行なわれる(ステップS2)。サーバ2Aは、未送信ステートデータ量が閾値未満であるか否かを判定する(ステップS3)。未送信ステートデータ量が閾値未満でない場合(ステップS3:No)、ステップS2に進み、VNF3AとVNF3Bと間のデータ移行が継続される。
一方、サーバ2Aは、未送信ステートデータ量が閾値未満である場合(ステップS3:Yes)、もうすぐデータ送信を完了することを示す完了予定通知をサーバ2Bに送信する(ステップS4)。
続いて、サーバ2Bは、データパケットの転送先をサーバ2BのVNF3Bに変更するように転送装置10を動作させるために、VNF3Aから引き継いだMACアドレスを、送信元アドレスとしてヘッダに添付した転送先変更パケットをデータプレーンネットワークに対し、ブロードキャストする(ステップS5)。転送装置10は、パケットを受信すると、データプレーンネットワーク内の経路変更処理を行う(ステップS6)。
サーバ2Aは、VNF3Aに設定されたアドレスと同じMACアドレスがヘッダに添付されたパケットを受信したか否かを判定する(ステップS7)。サーバ2Aは、VNF3Aに設定されたアドレスと同じMACアドレスがヘッダに添付されたパケットを受信していない場合(ステップS7:No)、ステップS10の判定処理を行う。
サーバ2Aは、VNF3Aに設定されたアドレスと同じMACアドレスがヘッダに添付されたパケットを受信した場合(ステップS7:Yes)、VNF3Bへのデータの送信を停止し、サーバ2Bにデータの送信が完了したことを示す完了通知を通知する(ステップS8)。
[経路変更処理の処理手順]
次に、経路変更処理(ステップS9)について説明する。図10は、図9に示す経路変更処理の処理手順を示すフローチャートである。
図10に示すように、転送装置10では、アドレス検索部132が、受信したパケットの送信元アドレスを確認する(ステップS21)。アドレス検索部132は、管理テーブル121を参照し、受信したパケットの送信元アドレスをキーとするエントリを検索する(ステップS22)。アドレス検索部132は、検索したエントリのガードタイマーがセットされているか否かを判定する(ステップS23)。
アドレス検索部132は、検索したエントリのガードタイマーがセットされていない場合には(ステップS23:No)、該エントリについて、送信元アドレスを送信先とするパケットの出力先ポートをパケットの受信ポートに変更するMACラーニングを行う(ステップS24)。そして、アドレス検索部132は、該エントリのガードタイマーをセットする(ステップS25)。転送処理部131は、到着したパケットをブロードキャストする(ステップS26)。
一方、検索したエントリのガードタイマーがセットされている場合には(ステップS23:Yes)、アドレス検索部132においてMACラーニングは実行されず、転送処理部131からパケットが送信先に転送される(ステップS27)。
そして、転送装置10は、パケットを受信した場合には(ステップS28:Yes)、ステップS21に戻り、このパケットに対するエントリ検索処理を行う。一方、転送装置10は、パケットを受信しない場合には(ステップS28:No)、処理を終了する。
[実施の形態の効果]
図11は、SDNコントローラの経路計算対象を例示する図である。従来、経路変更を行う場合、SDNコントローラは、変更後の経路を計算し、その結果を基に、パケットの出力先を設定し、経路変更用のメッセージを作成してスイッチに送信する。ここで、メッセージの数は、経路変更部分とフロールールが必要であるスイッチ及び仮想スイッチの数とを乗じた数となる。さらに、SDNコントローラは、スイッチやサーバの数が多いネットワークでは、場合によっては、数万のノード数の最短経路問題(ダイクストラ)を計算する必要がある。この結果、SDNコントローラ20の負荷は、膨大なものとなる(図11参照)。
図12は、従来のパケットの経路変更を説明する図である。従来、図12に示すように、転送装置10Pは、移行先のVNF3Bから送信されたブロードキャストパケットPbに対してMACラーニングを行い、このMACアドレスの出力先ポートを、VNF3Aに対応するポート1からVNF3Bに対応するポート2に変更して、経路変更を行っていた。
このため、移行元のVNF3Aが送信したパケットPaが、経路変更後に転送装置10Pに到着すると、このパケットに対して再度MACラーニングを行って、MACアドレスの出力先のポートを、VNF3Bに対応するポート2から、VNF3Aに対応するポート1に変更してしまっていた。このように、従来では、経路情報が短時間に頻繁に変更されるルートフラッピングが発生していた。この結果、従来では、正しい送信先であるVNF3Bに、データバケットが転送されないという問題があった。
図13~図15は、実施の形態におけるパケットの経路変更を説明する図である。これに対し、本実施の形態では、転送装置10は、移行先のVNF3BによるブロードキャストパケットPbを受信してMACラーニングを行った後は、一定時間、このMACアドレスに対するMACラーニングを停止する(図13の(1)参照)。
この結果、実施の形態に係る転送装置10によれば、ルートフラッピングの発生を低減することができる。そして、転送装置10では、出力先ポートが移行先のVNF3Bに変更済みであるため(図14の(2)参照)、経路変更後のデータパケットPcも、移行元のVNF3Aに転送されることなく、移行先のVNF3Bに適切に転送され、パケットドロップの発生も低減可能である。そして、転送装置10は、移行先のVNF3BによるブロードパケットPbを受信して経路変更を行うため、SDNコントローラ20が、転送装置10に経路変更用のメッセージを送信する必要もない。
そして、移行元のVNF3Aは、第2のソフトウェアにデータを送信する間に、VNF3Aに設定されたMACアドレスと同じMACアドレスがヘッダに添付されたパケットを受信した場合、ステート送信を終了し、VNF3A,3B間でステートの内容を一致させる。そして、VNF3Aは、移行先のVNF3Bに、ステートの送信完了を示す送信完了通知を送信する。これによって、サーバ2Bで稼働するVNF3Bは、サーバ2Aで稼働するVNF3Aが行っていた処理を適切に引き継ぐことができる。
このように、本実施の形態によれば、ルートフラッピングやパケットドロップの発生を低減する。さらに、本実施の形態では、、経路の変更を行うときに、SDNコントローラ20は、転送装置10宛に経路変更用のメッセージを送信しなくともよい。したがって、本実施の形態によれば、SDNコントローラ20において経路変更用のメッセージ送信処理が省略できるため、SDNコントローラ20の負荷を軽減することができる。
[実施形態のシステム構成について]
図1に示した転送装置10、サーバ2A,2Bの各構成要素は機能概念的なものであり、必ずしも物理的に図示のように構成されていることを要しない。すなわち、転送装置10、サーバ2A,2Bの機能の分散および統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散または統合して構成することができる。
また、転送装置10、サーバ2A,2Bにおいておこなわれる各処理は、全部または任意の一部が、CPUおよびCPUにより解析実行されるプログラムにて実現されてもよい。また、転送装置10、サーバ2A,2Bにおいておこなわれる各処理は、ワイヤードロジックによるハードウェアとして実現されてもよい。
また、実施の形態において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的に行うこともできる。もしくは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上述および図示の処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて適宜変更することができる。
[プログラム]
図16は、プログラムが実行されることにより、転送装置10、サーバ2A,2Bが実現されるコンピュータの一例を示す図である。コンピュータ1000は、例えば、メモリ1010、CPU1020を有する。また、コンピュータ1000は、ハードディスクドライブインタフェース1030、ディスクドライブインタフェース1040、シリアルポートインタフェース1050、ビデオアダプタ1060、ネットワークインタフェース1070を有する。これらの各部は、バス1080によって接続される。
メモリ1010は、ROM1011およびRAM1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、ハードディスクドライブ1090に接続される。ディスクドライブインタフェース1040は、ディスクドライブ1100に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ1100に挿入される。シリアルポートインタフェース1050は、例えばマウス1110、キーボード1120に接続される。ビデオアダプタ1060は、例えばディスプレイ1130に接続される。
ハードディスクドライブ1090は、例えば、OS(Operating System)1091、アプリケーションプログラム1092、プログラムモジュール1093、プログラムデータ1094を記憶する。すなわち、転送装置10、サーバ2A,2Bの各処理を規定するプログラムは、コンピュータ1000により実行可能なコードが記述されたプログラムモジュール1093として実装される。プログラムモジュール1093は、例えばハードディスクドライブ1090に記憶される。例えば、転送装置10、サーバ2A,2Bにおける機能構成と同様の処理を実行するためのプログラムモジュール1093が、ハードディスクドライブ1090に記憶される。なお、ハードディスクドライブ1090は、SSD(Solid State Drive)により代替されてもよい。
また、上述した実施の形態の処理で用いられる設定データは、プログラムデータ1094として、例えばメモリ1010やハードディスクドライブ1090に記憶される。そして、CPU1020が、メモリ1010やハードディスクドライブ1090に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出して実行する。
なお、プログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1090に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ1100等を介してCPU1020によって読み出されてもよい。あるいは、プログラムモジュール1093およびプログラムデータ1094は、ネットワーク(LAN(Local Area Network)、WAN(Wide Area Network)等)を介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール1093およびプログラムデータ1094は、他のコンピュータから、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
以上、本発明者によってなされた発明を適用した実施の形態について説明したが、本実施の形態による本発明の開示の一部をなす記述および図面により本発明は限定されることはない。すなわち、本実施の形態に基づいて当業者等によりなされる他の実施の形態、実施例および運用技術等はすべて本発明の範疇に含まれる。
1 通信システム
2A,2B サーバ
3A,3B VNF(Virtual Network Function)
10 転送装置
11 通信部
12 記憶部
13 制御部
121 管理テーブル
131 転送処理部
132 アドレス検索部

Claims (3)

  1. データ移行元において第1のソフトウェアを稼働させる第1の物理装置と、データ移行先において第2のソフトウェアを稼働させる第2の物理装置と、パケットを転送する転送装置とを有する通信システムであって、
    前記第1のソフトウェアは、前記第2のソフトウェアとの間で、前記第1のソフトウェアが使用するデータと転送用アドレスとを同期し、
    前記第2のソフトウェアは、指定されたタイミングでデータプレーンネットワークに対し、前記第1のソフトウェアから引き継いだアドレスを送信元アドレスとして添付したパケットをブロードキャストし、
    前記転送装置は、
    転送用アドレス、出力ポート及びタイマーを含むエントリを有する管理テーブルを記憶する記憶部と、
    複数のポートを有し、パケットの送受信を行う通信部と、
    パケットを受信すると、前記管理テーブルを参照し、前記パケットの送信元アドレスをキーとするエントリを検索し、検索したエントリのタイマーがセットされていない場合には、該エントリについて、前記送信元アドレスを送信先とするパケットの出力先ポートを前記パケットの受信ポートに変更するとともに該エントリのタイマーをセットし、検索したエントリのタイマーがセットされている場合には、該エントリの内容の変更を行わない検索部と、
    前記パケットを、前記管理テーブルの前記パケットのエントリの出力ポートから転送する転送処理部と、
    を有し、
    前記第1のソフトウェアは、前記第2のソフトウェアにデータを送信する間に、前記第1のソフトウェアに設定されたアドレスと同じアドレスがヘッダに添付されたパケットを受信した場合、前記第2のソフトウェアへのデータの送信を停止し、前記第2の物理装置にデータの送信が完了したことを通知することを特徴とする通信システム。
  2. データ移行元において第1のソフトウェアを稼働させる第1の物理装置と、データ移行先において第2のソフトウェアを稼働させる第2の物理装置と、パケットを転送する転送装置とを有する通信システムが実行する通信方法であって、
    前記第1のソフトウェアは、前記第2のソフトウェアとの間で、前記第1のソフトウェアが使用するデータと転送用アドレスとを同期し、
    前記第2のソフトウェアは、指定されたタイミングでデータプレーンネットワークに対し、前記第1のソフトウェアから引き継いだアドレスを送信元アドレスとして添付したパケットをブロードキャストし、
    前記転送装置は、
    転送用アドレス、出力ポート及びタイマーを含むエントリを有する管理テーブルを記憶する記憶部と、
    複数のポートを有し、パケットの送受信を行う通信部と、
    を有し、
    前記転送装置が、パケットを受信すると、前記管理テーブルを参照し、前記パケットの送信元アドレスをキーとするエントリを検索する工程と、
    前記転送装置が、検索されたエントリのタイマーがセットされていない場合には、該エントリについて、前記送信元アドレスを送信先とするパケットの出力先ポートを前記パケットの受信ポートに変更するとともに該エントリのタイマーをセットする工程と、
    前記転送装置が、検索されたエントリのタイマーがセットされている場合には、前記パケットを、前記管理テーブルの前記パケットのエントリの出力ポートから転送する工程と、
    を含み、
    前記第1のソフトウェアは、前記第2のソフトウェアにデータを送信する間に、前記第1のソフトウェアに設定されたアドレスと同じアドレスがヘッダに添付されたパケットを受信した場合、前記第2のソフトウェアへのデータの送信を停止し、前記第2の物理装置にデータの送信が完了したことを通知することを特徴とする通信方法。
  3. 方法をコンピュータに実行させる通信プログラムであって、
    データ移行元における第1の物理装置としてのコンピュータに、
    第1のソフトウェアを稼働させて、データ移行先における第2の物理装置において稼働される第2のソフトウェアとの間で、前記第1のソフトウェアが使用するデータと転送用アドレスとを同期するステップを
    実行させ、
    前記第2の物理装置に、
    前記第2のソフトウェアを稼働させて、指定されたタイミングでデータプレーンネットワークに対し、前記第1のソフトウェアから引き継いだアドレスを送信元アドレスとして添付したパケットをブロードキャストするステップ
    を実行させ、
    複数のポートを有する転送装置としてのコンピュータに、
    パケットを受信すると、転送用アドレス、出力ポート及びタイマーを含むエントリを有する管理テーブルを参照し、前記パケットの送信元アドレスをキーとするエントリを検索するステップと、
    検索されたエントリのタイマーがセットされていない場合には、該エントリについて、前記送信元アドレスを送信先とするパケットの出力先ポートを前記パケットの受信ポートに変更するとともに該エントリのタイマーをセットするステップと、
    検索されたエントリのタイマーがセットされている場合には、前記パケットを、前記管理テーブルの前記パケットのエントリの出力ポートから転送するステップと、
    を実行させる通信プログラム。
JP2021538546A 2019-08-02 2019-08-02 通信システム、通信方法及び通信プログラム Active JP7268741B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2019/030596 WO2021024327A1 (ja) 2019-08-02 2019-08-02 転送装置、通信システム、転送方法及び転送プログラム

Publications (2)

Publication Number Publication Date
JPWO2021024327A1 JPWO2021024327A1 (ja) 2021-02-11
JP7268741B2 true JP7268741B2 (ja) 2023-05-08

Family

ID=74502852

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021538546A Active JP7268741B2 (ja) 2019-08-02 2019-08-02 通信システム、通信方法及び通信プログラム

Country Status (3)

Country Link
US (1) US20220278931A1 (ja)
JP (1) JP7268741B2 (ja)
WO (1) WO2021024327A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2022176022A1 (ja) * 2021-02-16 2022-08-25

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017073033A1 (ja) 2015-10-30 2017-05-04 日本電気株式会社 フロー処理装置、通信システム及びフロー処理方法
JP2019028869A (ja) 2017-08-02 2019-02-21 日本電信電話株式会社 パケット処理機能移行システム、サーバ、パケット処理機能移行方法、及びプログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017073033A1 (ja) 2015-10-30 2017-05-04 日本電気株式会社 フロー処理装置、通信システム及びフロー処理方法
JP2019028869A (ja) 2017-08-02 2019-02-21 日本電信電話株式会社 パケット処理機能移行システム、サーバ、パケット処理機能移行方法、及びプログラム

Also Published As

Publication number Publication date
WO2021024327A1 (ja) 2021-02-11
JPWO2021024327A1 (ja) 2021-02-11
US20220278931A1 (en) 2022-09-01

Similar Documents

Publication Publication Date Title
US20210266221A1 (en) Data center resource tracking
JP5521620B2 (ja) 中継装置、仮想マシンシステム及び中継方法
US20200213224A1 (en) Multi-tenant isolation using programmable switch
US10855584B2 (en) Client-equipment-peering virtual route controller
CN103544043A (zh) 管理多个虚拟机的分级系统、方法和计算机程序
US20150009828A1 (en) Network System, Switch and Method of Network Configuration
US11368525B2 (en) Relaying network management tasks using a multi-service receptor network
CN105162704A (zh) Overlay网络中组播复制的方法及装置
US7860027B2 (en) Extending an IP everywhere network over a plurality of flooding domains
CN114500169A (zh) 建立vxlan隧道的方法、报文转发的方法及装置
CN111641567B (zh) 基于集中式控制器的动态网络带宽分配与管理
CN113839862A (zh) Mclag邻居之间同步arp信息的方法、系统、终端及存储介质
JP7268741B2 (ja) 通信システム、通信方法及び通信プログラム
Zhang et al. Fast network flow resumption for live virtual machine migration on sdn
EP3197106B1 (en) Switch processing method, controller, switch, and switch processing system
EP3531622A1 (en) Method of handling packet flow in software-defined network, computer program product, and software-defined network
US11336695B2 (en) Conversation-based policy distribution
CN114448801A (zh) 实时通道组创建的方法、网络拓扑、设备及存储介质
WO2020031946A1 (ja) 通知装置および通知方法
US11368406B2 (en) Methods and apparatus for path computation in a telecommunications network
CN115118654B (zh) 虚拟网络下的数据转发方法、系统、装置及程序产品
JP6496860B2 (ja) 監視システム、監視方法および監視プログラム
JP6317833B1 (ja) 監視システム、監視方法、情報処理装置および監視プログラム
WO2023231836A1 (zh) 一种文件同步方法、装置、设备及存储介质
Althobyani et al. Implementing an SDN based learning switch to measure and evaluate UDP traffic

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211119

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221011

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221205

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: 20230322

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230404

R150 Certificate of patent or registration of utility model

Ref document number: 7268741

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150