JP6801409B2 - 経路探索システム、経路探索方法及び経路探索プログラム - Google Patents

経路探索システム、経路探索方法及び経路探索プログラム Download PDF

Info

Publication number
JP6801409B2
JP6801409B2 JP2016234821A JP2016234821A JP6801409B2 JP 6801409 B2 JP6801409 B2 JP 6801409B2 JP 2016234821 A JP2016234821 A JP 2016234821A JP 2016234821 A JP2016234821 A JP 2016234821A JP 6801409 B2 JP6801409 B2 JP 6801409B2
Authority
JP
Japan
Prior art keywords
route
information processing
processing device
information
source port
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
JP2016234821A
Other languages
English (en)
Other versions
JP2018093358A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2016234821A priority Critical patent/JP6801409B2/ja
Priority to US15/824,510 priority patent/US10326681B2/en
Publication of JP2018093358A publication Critical patent/JP2018093358A/ja
Application granted granted Critical
Publication of JP6801409B2 publication Critical patent/JP6801409B2/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
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • H04L43/103Active monitoring, e.g. heartbeat, ping or trace-route with adaptive polling, i.e. dynamically adapting the polling rate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/26Route discovery packet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/38Flow based routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/64Routing or path finding of packets in data switching networks using an overlay routing layer
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Description

本発明は、ネットワークにおける経路の探索技術に関する。
データセンタのネットワークは、サーバ間の通信の増加に対応するため、サーバ間において同時に利用可能な複数の経路が存在するようにネットワークが構成されることがある。例えば或る文献は、複数のネットワークに接続可能な通信装置によるマルチパス通信の技術を開示する。
また、クラウドサービスを遅延なく提供できるようにするため、VXLAN(Virtual eXtensible Local Area Network)の技術に基づくオーバーレイネットワークが構築され、各テナントのサーバがトンネル接続されて仮想ネットワークが構築されることもある。VXLANの技術に基づくオーバーレイネットワークにおいては、カプセル化されたパケットの外部ヘッダに設定された情報に基づきパケットの転送経路が変わる。
或る文献は、VXLANの技術に基づくオーバーレイネットワークにおける各経路の状態を確認する技術を開示する。具体的には、指定されたターゲットホストのリストに対して、パケットの外部ヘッダにおけるソースポート番号を変えつつ複数のパケットを送信し、送信に対する応答によってパケットの到達性が判定される。
外部ヘッダに設定される値は内部ヘッダに含まれる情報のハッシュ計算によって算出されるが、ハッシュ計算のアルゴリズム及びスイッチによる転送のアルゴリズムは実装に依存しており、必ずしも事前に明らかになっているわけではない。そのため、通信異常が発生した場合、上記技術によってはパケットの転送経路を特定することができず、パケットの転送経路を制御することができない。また、上記技術を利用する場合には各経路の状態を確認するために送信するプローブパケットの数が増加し、プローブパケット以外の通常のパケットの転送に影響を与える。
特開2009−296084号公報
Aijay Adams、外2名、"NetNORAD: Troubleshooting networks via end-to-end probing"、[online]、Facebook, Inc、[平成28年12月1日検索]、インターネット<URL:https://code.facebook.com/posts/1534350660228025/netnorad-troubleshooting-networks-via-end-to-end-probing/> Changhoon Kim、Parag Bhide、Ed Doe、Hugh Holbrook、Anoop Ghanwani、Dan Daly、Mukesh Hira、Bruce Davie、"In-band Network Telemetry (INT)"、2016年6月、[online]、[平成28年11月22日検索]、インターネット<URL:http://p4.org/wp-content/uploads/fixed/INT/INT-current-spec.pdf> Petr Lapukhov、"Move Fast, Unbreak Things! Network debugging at scale"、[online]、NANOG 66 国際会議、[平成28年12月1日検索]、インターネット<URL:https://www.nanog.org/sites/default/files/Lapukhov_Move_Fast_Unbreak.pdf>
本発明の目的は、1つの側面では、パケットのヘッダに設定される情報に基づきパケットの転送経路が制御されるネットワークにおいて、経路状態の確認のために送信するプローブパケットの数を減らすための技術を提供することである。
一態様に係る経路探索システムは、パケットのヘッダに設定される送信元ポート情報に基づきパケットが送信される経路が制御されるネットワークに接続された第1情報処理装置と、ネットワークに接続された第2情報処理装置と、第1情報処理装置と第2情報処理装置とを管理する管理装置とを有する。そして、第1情報処理装置は、第1情報処理装置と第2情報処理装置との間の経路の探索についての要求を管理装置から受信した場合、送信元ポート情報が異なる複数のパケットを第2情報処理装置に送信する第1送信部と、複数のパケットに対する応答パケットに含まれる経路情報と送信元ポート情報とに基づき、パケットに設定される送信元ポート情報を経路毎に特定する特定部と、各経路について、特定された送信元ポート情報が設定されたプローブパケットを第2情報処理装置に送信する第2送信部とを有する。
1つの側面では、パケットのヘッダに設定される情報に基づきパケットの転送経路が制御されるネットワークにおいて、経路状態の確認のために送信するプローブパケットの数を減らすことができるようになる。
図1は、本実施の形態の概要を説明するための図である。 図2は、本実施の形態の概要を説明するための図である。 図3は、本実施の形態のシステム概要を示す図である。 図4は、サーバのブロック図である。 図5は、プログラマブルNICの機能ブロック図である。 図6は、スイッチの機能ブロック図である。 図7は、プローブパケットのフォーマットの一例を示す図である。 図8は、プローブヘッダ及びテレメトリデータのフォーマットの一例を示す図である。 図9は、プローブパケットではないパケットのフォーマットの一例を示す図である。 図10は、第1の実施の形態のコントローラが実行する処理の処理フローを示す図である。 図11は、第1の実施の形態のサーバが実行する処理の処理フローを示す図である。 図12は、第1の実施の形態のカプセル制御データ格納部に格納されるデータの一例を示す図である。 図13は、VTEPデータ格納部に格納されるデータの一例を示す図である。 図14は、プローブ送信処理の処理フローを示す図である。 図15は、経路データ格納部に格納されるデータの一例を示す図である。 図16は、探索結果格納部に格納されるデータの一例を示す図である。 図17は、ソースポート選択処理の処理フローを示す図である。 図18は、サーバが実行する処理の処理フローを示す図である。 図19は、運用中に各経路の状態を監視する処理の処理フローを示す図である。 図20は、経路変更データ格納部に格納されるデータの一例を示す図である。 図21は、運用中に各経路の状態を監視する処理の処理フローを示す図である。 図22は、経路変更について説明するための図である。 図23は、スイッチが実行する処理の処理フローを示す図である。 図24は、第2の実施の形態のコントローラが実行する処理の処理フローを示す図である。 図25は、第2の実施の形態のサーバが実行する処理の処理フローを示す図である。 図26は、第2の実施の形態のカプセル制御データ格納部に格納されるデータの一例を示す図である。 図27は、第2の実施の形態のソースポート選択処理の処理フローを示す図である。 図28は、第2の実施の形態のサーバが実行する処理の処理フローを示す図である。 図29は、第2の実施の形態のカプセル制御データ格納部に格納されるデータの一例を示す図である。 図30は、第2の実施の形態のサーバが実行する処理の処理フローを示す図である。 図31は、往路及び復路の設定について説明するための図である。
[実施の形態1]
図1乃至図4を用いて、本実施の形態の概要を説明する。
本実施の形態においては、異なるソースポート情報を有する複数のプローブパケットがサーバ間で転送され、プローブパケットが転送された経路がプローブパケットに記録される。より具体的には、プローブパケットを中継するスイッチにより、プローブパケットに対してそのスイッチの識別子(以下、スイッチID(Identifier)と呼ぶ)が付加される。図1の例においては、経路r01上を転送されたプローブパケットにはスイッチAのスイッチIDと、スイッチCのスイッチIDと、スイッチBのスイッチIDとが付加される。経路r02上を転送されたプローブパケットにはスイッチAのスイッチIDと、スイッチDのスイッチIDと、スイッチBのスイッチIDとが付加される。また、サーバXは、受信したプローブパケットの送信元アドレスと宛先アドレスとが交換された応答パケットを、サーバUに対して返信する。応答パケットにも、経路上のスイッチのスイッチIDが付加される。なお、第1の実施の形態においては、往路と復路とは必ずしも同じではない。
そして、サーバUは、返信に付加されている経路情報を解析する処理を各応答パケットについて実行して、ソースポート情報と経路との対応関係を特定する。例えば、ソースポート情報が「0x0001」である場合には経路r01であり、ソースポート情報が「0x0002」である場合には経路r02であり、・・・というように、ソースポート情報と経路との対応関係が特定される。
その後、サーバUは、各経路について、特定されたソースポート情報がヘッダに設定されたプローブパケットを生成し、生成したプローブパケットを送信する。このように、各経路について少なくとも1つのプローブパケットを送信すれば経路の状態を確認できる。すなわち、ソースポート情報を変えつつ(例えば、ソースポート番号を0から所定値まで順に変えつつ)プローブパケットを送信する処理を行わないので、プローブパケットの数を減らすことができる。
或る経路について通信異常が発生した場合(例えば、プローブパケットに対する応答が無い場合)、対応関係に従って、その経路で送信されるパケットのソースポート情報が変更される。図2の例では、経路r01について送信したプローブパケットに基づき通信異常が検出されたので、サーバXに対して送信するパケットのヘッダにはソースポート情報として「0x0001」ではなく「0x0002」が設定されるようになる。なお、経路についての通信異常とは、例えば、ケーブルの接続不良、光モジュールの半死及びメモリにおける特定の位置の故障による間欠障害等である。
また、或る通信フローについて通信異常が発生した場合、サーバUは、そのフローについては対応関係に従って別のソースポート情報を設定することで、そのフローのパケットが別の経路を通るようにする。なお、通信フローについての通信異常とは、例えば、アプリケーションから送出されたパケットの廃棄後の再送によって生じる遅延等である。
以下では、本実施の形態の具体的な内容を説明する。図3に、本実施の形態のシステム概要を示す。本実施の形態のシステムは、例えばデータセンタにおいて構築される。サーバ11乃至18は物理サーバであり、物理スイッチであるリーフスイッチ101乃至104に接続される。具体的には、サーバ11及びサーバ12はリーフスイッチ101に接続される。サーバ13及びサーバ14はリーフスイッチ102に接続される。サーバ15及びサーバ16はリーフスイッチ103に接続される。サーバ17及びサーバ18はリーフスイッチ104に接続される。リーフスイッチ101乃至104の各々は、物理スイッチであるスパインスイッチ201乃至204に接続される。リーフスイッチ101乃至104並びにスパインスイッチ201乃至204の各々は、例えば物理サーバであるコントローラ30に接続される。
リーフスイッチ101は複数のポート及び管理ポート1010を有する。リーフスイッチ102は複数のポート及び管理ポート1020を有する。リーフスイッチ103は複数のポート及び管理ポート1030を有する。リーフスイッチ104は複数のポート及び管理ポート1040を有する。スパインスイッチ201は複数のポート及び管理ポート2010を有する。スパインスイッチ202は複数のポート及び管理ポート2020を有する。スパインスイッチ203は複数のポート及び管理ポート2030を有する。スパインスイッチ204は複数のポート及び管理ポート2040を有する。
コントローラ30は、CPU(Central Processing Unit)301と、例えば主記憶装置であるメモリ302と、管理ポート303とを有する。コントローラ30はその他のハードウエアコンポーネントを有するが、本実施の形態の説明には直接関係しないので説明を省略する。コントローラ30が本実施の形態の処理を実行するためのプログラムは、メモリ302にロードされてCPU301により実行される。管理ポート303は、スパインスイッチ201乃至204及びリーフスイッチ101乃至104の各々の管理ポートと、例えばネットワークケーブルを介して接続され、管理用のデータが送受信される。
サーバ11乃至18上においては、各テナントのアプリケーション等が実行される。各テナントのアプリケーションから出力されたデータは、リーフスイッチ101乃至104及びスパインスイッチ201乃至204上に構築されたオーバーレイネットワークを介して、同じテナントのアプリケーションプログラムに転送される。本実施の形態のオーバーレイネットワークは、例えばVXLANにより実現される。本実施の形態におけるオーバーレイネットワークは、サーバ間において同時に利用可能な複数の経路が存在するネットワーク(すなわち、マルチパス構成のネットワーク)である。
図4に、サーバ11のブロック図を示す。サーバ11は、ハードウエア1100と、ハードウエア1100上で実現されるハイパバイザ1110と、ハイパバイザ1110上で実現される仮想マシン1121及び1122とを含む。ハードウエア1100は、CPU1101と、例えば主記憶装置であるメモリ1102と、NIC(Network Interface Card)1103と、プログラマブルNIC1104とを有する。仮想マシン1121及び1122は、テナントのアプリケーションを実行する。
プログラマブルNIC1104は、補助記憶装置1105と、CPU1106と、例えば主記憶装置であるメモリ1107とを有する。ハイパバイザ1110用のプログラム並びに仮想マシン1121及び1122用のプログラムが、メモリ1102にロードされてCPU1101に実行されることで、ハイパバイザ1110並びに仮想マシン1121及び1122が実現される。なお、図4の例では仮想マシンの数は2であるが、数に限定はない。また、サーバ12乃至18のブロック構成はサーバ11のブロック構成と同じであるとする。
図5に、プログラマブルNIC1104の機能ブロック図を示す。プログラマブルNIC1104は、経路データ格納部1150と、カプセル制御データ格納部1151と、VTEP(Virtual Tunnel End Point)データ格納部1152と、探索結果格納部1153と、経路変更データ格納部1154と、プローブ制御部1155と、カプセル制御部1156と、VTEP処理部1157と、変更部1158とを含む。プローブ制御部1155は、第1制御部11551と、第2制御部11552とを含む。本実施の形態の処理を実行するためのプログラムは、例えば補助記憶装置1105に格納されており、メモリ1107にロードされてCPU1106に実行され、図5における第1制御部11551、第2制御部11552、カプセル制御部1156、VTEP処理部1157及び変更部1158が実現される。図5における経路データ格納部1150、カプセル制御データ格納部1151、VTEPデータ格納部1152、探索結果格納部1153及び経路変更データ格納部1154は、メモリ1107或いは補助記憶装置1105に設けられる。
第1制御部11551は、ソースポート情報が異なる複数のプローブパケットを宛先サーバに送信する処理を実行する。第2制御部11552は、カプセル制御部1156による処理の結果に従って、プローブパケットを定期的に宛先サーバに送信する処理を実行する。カプセル制御部1156は、VTEP処理部1157によるカプセル化及びデカプセル化を管理する処理を実行する。VTEP処理部1157は、パケットのカプセル化及びデカプセル化を実行する。変更部1158は、通信異常の発生時に経路を変更する処理を実行する。
図6に、リーフスイッチ101のブロック図を示す。リーフスイッチ101は、管理ポート10101と、受信ポート10102乃至10104と、管理ポート10111と、出力キューを有する送信ポート10112乃至10114と、スイッチングモジュール10120と、CPU10130と、例えば主記憶装置であるメモリ10140とを有する。スイッチングモジュール10120は、受信部10121と、プローブパケット処理部10122と、中継制御部10123と、FDB(Forwarding DataBase)10124と、送信部10125とを有する。なお、図6においては受信ポートの数及び送信ポートの数は3であるが、数に限定は無い。また、リーフスイッチ102乃至104及びスパインスイッチ201乃至204のブロック図は、リーフスイッチ101のブロック図と同じである。
受信部10121は、受信ポート10102乃至10104のいずれかから受け取ったパケットを中継制御部10123に渡す。中継制御部10123は、受信部10121から受け取ったパケットがプローブパケットであるか判定し、受信部10121から受け取ったパケットがプローブパケットである場合にはプローブパケット処理部10122に自スイッチのスイッチIDを付加させる。そして、中継制御部10123は、FDB10124に格納されているデータに基づきパケットの出力先の送信ポートを決定し、パケットの出力先の送信ポートの情報とパケットとを送信部10125に渡す。送信部10125は、パケットの出力先の送信ポートの情報に従って、パケットを送信ポート10112乃至10114のいずれかに出力する。
図7に、本実施の形態のプローブパケットのフォーマットの一例を示す。本実施の形態のプローブパケットは、外部イーサネット(登録商標)ヘッダと、外部IP(Internet Protocol)ヘッダと、外部UDP(User Datagram Protocol)ヘッダと、第1のVXLAN GPE(Generic Protocol Extension)ヘッダと、第2のVXLAN GPEヘッダと、プローブヘッダ及びテレメトリデータとを含む。「INT」は、非特許文献2に開示されたInband Network Telemetryを意味する。(L)が付されたフィールドに格納されるデータは(H)が付されたフィールドに格納されるデータの後続である。太線で囲まれたフィールドに、ソースポート情報が格納され、VTEP処理部1157によってソースポート情報が書き換えられる。
図8に、図7におけるプローブヘッダ及びテレメトリデータのフォーマットの一例を示す。「Probe Maker」フィールドは、プローブパケットの識別フィールドである。例えば、VXLAN GPEヘッダにおける「Next Protocol」フィールドが「INT」であるUDPパケットにおいて「Probe Maker」フィールドが「0xDEADBEAF」である場合、パケットはプローブパケットであると判定される。但し、外部ヘッダに付加されたVLAN(Virtual Local Area Network)タグによって識別を行ってもよい。「Telemetry Request Vector」は、テレメトリによって要求される情報の種別を表し、本実施の形態においてはデバイスID(すなわちスイッチID)を要求するためのビットがオンにセットされる。
図9に、プローブパケットではないパケット(すなわち通常のパケット)のフォーマットの一例を示す。パケットは、外部イーサネットヘッダと、外部IPヘッダと、外部UDPヘッダと、VXLANヘッダと、内部イーサネットフレーム(すなわち、元のフレーム)とを含む。通常のパケットも、ソースポート情報がVTEP処理部1157によって書き換えられる。内部イーサネットフレームのヘッダは、アプリケーションによって使用されるため変更されない。
通常のVXLANにおいては、内部イーサネットフレームヘッダに含まれる情報に対してハッシュ計算を行った結果が外部UDPヘッダのソースポート情報フィールドに設定され、そのソースポート情報によってパケットの転送経路が決まる。しかし、本実施の形態においては、解析より特定した対応関係に従って、外部UDPヘッダのソースポート情報フィールドに値が設定される。
次に、図10乃至図23を用いて、第1の実施の形態のシステムにおいて実行される処理について説明する。まず、図10を用いて、第1の実施の形態のコントローラ30が実行する処理を説明する。
まず、コントローラ30は、VTEP処理部1157を追加したことを示す通知をサーバ11乃至18のうちいずれかのサーバから受信したか判定する(図10:ステップS1)。VTEP処理部1157がサーバに追加されることによって、そのサーバ上の仮想マシンが実行するアプリケーションによる通信が開始するため、経路の設定が必要になる。本通知は、追加されたVTEP処理部1157の識別子を含む。
VTEP処理部1157を追加したことを示す通知をいずれのサーバからも受信していない場合(ステップS1:Noルート)、コントローラ30は、経路変更の通知を受信したか判定する(ステップS3)。経路変更の通知については後で説明する。
経路変更の通知を受信していない場合(ステップS3:Noルート)、処理はステップS1に戻る。一方、経路変更の通知を受信した場合(ステップS3:Yesルート)、コントローラ30は、経路変更の通知に含まれるデータを保存する(ステップS5)。そして処理はステップS1に戻る。なお、経路変更の通知に含まれるデータは各サーバにおいて生成されるデータであるが、コントローラ30がネットワーク全体を管理できるようにするため、コントローラ30においても管理される。但し、コントローラ30が管理するデータは、本実施の形態の処理には直接関係しない。
一方、VTEP処理部1157を追加したことを示す通知をいずれかのサーバから受信した場合(ステップS1:Yesルート)、コントローラ30は、VTEP処理部1157が追加されたサーバに、経路探索要求を送信する(ステップS7)。経路探索要求は、追加されたVTEP処理部1157の識別子を含む。
コントローラ30は、経路探索要求の送信先のサーバから経路探索の完了通知を受信したか判定する(ステップS9)。経路探索の完了通知を受信していない場合(ステップS9:Noルート)、処理はステップS9に戻る。
一方、経路探索の完了通知を受信した場合(ステップS9:Yesルート)、コントローラ30は、以下の処理を実行する。具体的には、コントローラ30は、経路探索の完了通知に含まれる探索結果およびカプセル制御データを保存する(ステップS11)。なお、探索結果およびカプセル制御データは各サーバにおいて生成されるデータであるが、コントローラ30がネットワーク全体を管理できるようにするため、コントローラ30においても管理される。但し、コントローラ30が管理する探索結果およびカプセル制御データは、本実施の形態の処理には直接関係しない。
コントローラ30は、探索結果およびカプセル制御データを含む追加経路データを生成し、VTEP処理部1157が追加されたサーバと通信を行う可能性が有るサーバに対して追加経路データを送信する(ステップS13)。データセンタにおいては同じテナントの仮想マシン間での通信が行われるので、ステップS13においては、同じテナントの仮想マシンを実行するサーバに対して追加経路データが送信される。
コントローラ30は、追加経路データの送信先のサーバから経路設定の完了通知を受信したか判定する(ステップS15)。経路設定の完了通知には、カプセル制御データ格納部1151のエントリが含まれるので、コントローラ30はそのエントリを保存する。
経路設定の完了通知を受信していない場合(ステップS15:Noルート)、処理はステップS15に戻る。
一方、経路設定の完了通知を受信した場合(ステップS15:Yesルート)、コントローラ30は、終了指示(例えばシャットダウンの指示)を受け付けたか判定する(ステップS17)。終了指示を受け付けていない場合(ステップS17:Noルート)、処理はステップS1に戻る。一方、終了指示を受け付けた場合(ステップS17:Yesルート)、処理は終了する。
次に、図11乃至図22を用いて、サーバ11が実行する処理を説明する。なお、ここではサーバ11が実行する処理を例として説明するが、サーバ12乃至18が実行する処理もサーバ11が実行する処理と同様である。
まず、カプセル制御部1156は、経路探索要求をコントローラ30から受信したか判定する(図11:ステップS21)。経路探索要求をコントローラ30から受信した場合(ステップS21:Yesルート)、カプセル制御部1156は、宛先サーバのVTEP処理部1157(以下、宛先VTEPと呼ぶ)の識別子等をカプセル制御データ格納部1151に格納する(ステップS31)。なお、宛先VTEPが複数である場合には複数の識別子がカプセル制御データ格納部1151に格納される。
図12に、第1の実施の形態におけるカプセル制御データ格納部1151に格納されるカプセル制御データの一例を示す。図12の例では、パケットの内部ヘッダに含まれる送信元MACアドレスと、パケットの内部ヘッダに含まれる宛先MACアドレスと、宛先VTEPの識別子と、パケットの外部ヘッダに設定されるソースポート情報とが格納される。但し、ステップS31の処理時点においては、ソースポート情報は格納されない。
また、サーバ11乃至18は図13に示すようなVTEPデータをVTEPデータ格納部1152において管理する。経路探索要求は宛先VTEPの識別子を含むので、ステップS31においては、宛先VTEPに対応するMACアドレスがVTEPデータに基づき特定され、カプセル制御データ格納部1151に格納される。さらに、送信元MACアドレスもカプセル制御データ格納部1151に格納される。
カプセル制御部1156は、未処理の宛先VTEPをカプセル制御データ格納部1151から1つ特定する(ステップS33)。
そして、プローブ制御部1155における第1制御部11551は、プローブ送信処理を実行する(ステップS35)。プローブ送信処理については、図14乃至図16を用いて説明する。
まず、第1制御部11551は、ソースポート情報Sに1を設定する(図14:ステップS51)。
第1制御部11551は、プローブパケットの外部ヘッダにおけるソースポート情報にSを設定し、設定後のプローブパケットを宛先VTEPを含むサーバに送信する(ステップS53)。なお、プローブパケットのカプセル化はVTEP処理部1157によって行われる。
第1制御部11551は、ステップS53において送信したプローブパケットに対する応答を受信したか判定する(ステップS55)。応答を受信していない場合(ステップS55:Noルート)、処理はステップS55に戻る。
一方、応答を受信した場合(ステップS55:Yesルート)、第1制御部11551は、受信した応答に含まれるスイッチIDを経路データ格納部1150に格納する(ステップS57)。
図15に、経路データ格納部1150に格納される経路データの一例を示す。図15の例では、往路及び復路について、ソースポート情報と、そのソースポート情報を設定した場合の経路上のスイッチのスイッチIDとが格納される。例えば、サーバ11がソースポート情報「0x0001」を設定してプローブパケットを送信した場合、スパインスイッチ201を通る経路上をプローブパケットが転送される。なお、どのリーフスイッチを通るかは明らかであるので、リーフスイッチのスイッチIDは図15では省略されている。プローブパケットを受信したサーバは、プローブパケットの送信元MACアドレスと宛先MACアドレスとを入れ替えたパケットを返信するので、復路についてのソースポート情報は往路についてのソースポート情報「0x0001」と同じである。従って、往路はスパインスイッチ202を通る経路である。
第1制御部11551は、ソースポート情報Sが所定値(例えば64000)であるか判定する(ステップS59)。ソースポート情報Sが所定値ではない場合(ステップS59:Noルート)、第1制御部11551は、ソースポート情報Sを1インクリメントする(ステップS61)。そして処理はステップS53に戻る。
一方、ソースポート情報Sが所定値である場合(ステップS59:Yesルート)、第1制御部11551は、カプセル制御部1156に以下の処理を実行させる。具体的には、カプセル制御部1156は、経路データ格納部1150に格納されているデータに対して解析を実行し、各経路について1のソースポートを特定する(ステップS63)。そして、カプセル制御部1156は、ステップS63の解析結果を探索結果格納部1153に格納する(ステップS65)。そして処理は呼び出し元に戻る。
図16に、探索結果格納部1153に格納されるデータの一例を示す。図16の例では、或る宛先VTEPについて、往路が通るスパインスイッチのスイッチID及びソースポート情報と、復路が通るスパインスイッチのスイッチID及びソースポート情報とが格納される。
図11の説明に戻り、カプセル制御部1156は、ソースポート選択処理を実行する(ステップS37)。ソースポート選択処理については、図17を用いて説明する。
まず、カプセル制御部1156は、探索結果格納部1153に格納されているソースポート情報が格納されているソースポートの中から、1つのソースポートをランダムに特定する(図17:ステップS71)。
カプセル制御部1156は、ステップS71において特定されたソースポートのソースポート情報を、カプセル制御データ格納部1151に追加する(ステップS73)。ステップS31においてはソースポート情報が格納されていなかったので、ステップS31において追加されたエントリにソースポート情報が追加される。そして処理は呼び出し元に戻る。
図11の説明に戻り、カプセル制御部1156は、未処理の宛先VTEPが有るか判定する(ステップS39)。未処理の宛先VTEPが有る場合(ステップS39:Yesルート)、処理はステップS33に戻る。一方、未処理の宛先VTEPが無い場合(ステップS39:Noルート)、カプセル制御部1156は、以下の処理を実行する。具体的には、カプセル制御部1156は、探索結果とカプセル制御データとを含む、経路探索の完了通知を、コントローラ30に送信する(ステップS41)。そしてステップS21の処理に戻る。
一方、経路探索要求をコントローラ30から受信していない場合(ステップS21:Noルート)、カプセル制御部1156は、追加経路データをコントローラ30から受信した(すなわち、自サーバが宛先サーバである)か判定する(ステップS23)。
追加経路データをコントローラ30から受信した場合(ステップS23:Yesルート)、処理は端子Aを介して図18のステップS43に移行する。
図18の説明に移行し、カプセル制御部1156は、探索結果格納部1153にソースポート情報が格納されているソースポートの中から、1つのソースポートをランダムに特定する(図18:ステップS43)。
カプセル制御部1156は、受信した追加経路データに含まれるデータと、ステップS43において特定したソースポートのソースポート情報とに基づきエントリを生成し、生成したエントリをカプセル制御データ格納部1151に追加する(ステップS45)。上で述べたように、追加経路データには通信相手のサーバのカプセル制御データが含まれるので、そのカプセル制御データにおける宛先MACアドレスと送信元MACアドレスとを入れ替える。また、追加されたVTEP処理部1157の識別子を宛先VTEPとして設定する。さらに、ステップS43において特定したソースポートのソースポート情報を設定する。
カプセル制御部1156は、ステップS45において追加したエントリを含む、経路設定の完了通知をコントローラ30に送信する(ステップS47)。処理は端子Bを介して図11のステップS21に戻る。
図11の説明に戻り、追加経路データをコントローラ30から受信していない場合(ステップS23:Noルート)、カプセル制御部1156は、プローブパケットを受信したか判定する(ステップS25)。
プローブパケットを受信していない場合(ステップS25:Noルート)、処理はステップS21に戻る。一方、プローブパケットを受信した場合(ステップS25:Yesルート)、第1制御部11551は、受信したプローブパケットの送信元と宛先とが交換されたパケットを、プローブパケットの送信元に対して送信する(ステップS27)。
カプセル制御部1156は、終了指示を受け付けたか判定する(ステップS29)。終了指示を受け付けていない場合(ステップS29:Noルート)、処理はステップS21に戻る。一方、終了指示を受け付けた場合(ステップS29:Yesルート)、処理は終了する。
以上のような処理を実行すれば、経路とソースポート情報との対応関係を示すデータを生成することができるようになる。
図19乃至図23を用いて、通信異常を検知する処理を説明する。まず、サーバ11の変更部1158は、経路探索の完了通知を送信したか判定する(図19:ステップS101)。経路探索の完了通知を送信していない場合(ステップS101:Noルート)、処理はステップS101に戻る。
一方、経路探索の完了通知を送信した場合(ステップS101:Yesルート)、変更部1158は、プローブ制御部1155の第2制御部11552に以下の処理を実行させる。具体的には、第2制御部11552は、各経路について、探索結果格納部1153に格納されている探索結果に従ってプローブパケットを生成し、生成したプローブパケットを宛先サーバに送信する(ステップS103)。本実施の形態においては、各経路について1のソースポートが特定されるので、各経路から1のプローブパケットが宛先サーバに送信される。なお、宛先サーバが複数である場合には、第2制御部11552は、宛先サーバの各々についての探索結果を用いて、各宛先サーバについて処理を実行する。なお、プローブパケットのカプセル化はVTEP処理部1157によって行われる。
変更部1158は、通信異常を検知したか判定する(ステップS105)。例えば或る経路について送信したプローブパケットに対する応答を受信しない場合に、その経路に通信異常が発生したと判定される。
通信異常を検知していない場合(ステップS105:Noルート)、変更部1158は、ステップS103においてプローブパケットを送信してから所定時間が経過したか判定する(ステップS107)。
所定時間が経過していない場合(ステップS107:Noルート)、処理はステップS107に戻る。一方、所定時間が経過した場合(ステップS107:Yesルート)、処理はステップS103に戻る。
一方、通信異常を検知した場合(ステップS105:Yesルート)、変更部1158は、探索結果格納部1153から、通信異常が検知された経路に対応するソースポート情報とは異なるソースポート情報を1つ特定する(ステップS108)。
変更部1158は、変更前のソースポート情報と、ステップS108において特定されたソースポート情報と、宛先VTEPの識別子とを含むエントリを経路変更データ格納部1154に追加する(ステップS109)。
図20に、経路変更データ格納部1154に格納されるデータの一例を示す。図20の例では、宛先VTEPの識別子と、変更前のソースポート情報と、変更後のソースポート情報とが格納される。
また、変更部1158は、ステップS109において追加されたエントリを含む、経路変更の通知をコントローラ30に送信する(ステップS111)。
変更部1158は、終了指示を受け付けたか判定する(ステップS113)。終了指示を受け付けていない場合(ステップS113:Noルート)、処理はステップS101に戻る。一方、終了指示を受け付けた場合(ステップS113:Yesルート)、処理は終了する。
以上のような処理を実行すれば、経路の状態の確認のために送信するプローブパケットの数を減らすことができるようになる。また、サーバ間の通信において通信経路の異常が発生した場合、経路を一括して変更することができるようになる。
また、変更部1158は、運用中に以下の処理も実行する。まず、変更部1158は、経路探索の完了通知を送信したか判定する(図21:ステップS121)。
経路探索の完了通知を送信していない場合(ステップS121:Noルート)、処理はステップS121に戻る。
一方、経路探索の完了通知を送信した場合(ステップS121:Yesルート)、変更部1158は、仮想マシンが実行するアプリケーションから経路変更要求を受け取ったか判定する(ステップS123)。例えばアプリケーションが遅延を検出した場合、経路変更要求を変更部1158に対して出力する。
アプリケーションからの経路変更要求を受け取っていない場合(ステップS123:Noルート)、処理はステップS123に戻る。一方、アプリケーションからの経路変更要求を受け取った場合(ステップS123:Yesルート)、変更部1158は、以下の処理を実行する。具体的には、変更部1158は、カプセル制御データ格納部1151に格納され且つ変更を要求された通信フローについてのエントリに含まれるソースポート情報を、探索結果格納部1153から特定した別のソースポート情報に変更する(ステップS125)。
変更部1158は、変更後のエントリを含む、経路変更の通知をコントローラ30に送信する(ステップS127)。
変更部1158は、終了指示を受け付けたか判定する(ステップS129)。終了指示を受け付けていない場合(ステップS129:Noルート)、処理はステップS121に戻る。一方、終了指示を受け付けた場合(ステップS129:Yesルート)、処理は終了する。
以上のような処理を実行すれば、或る通信フローについて通信異常が発生した場合にはその通信フローのみについて経路を変更することができるようになる。例えば図22に示すように、アプリケーションu2とアプリケーションx1との通信が経路r03を使用して行われている時に通信異常が検知されたとする。この場合、別の経路である経路r04を使用して通信が行われるようにカプセル制御データが更新される。この時、別の通信フローについては経路は変更されない。
次に、図23を用いて、リーフスイッチ101が実行する処理を説明する。なお、ここではリーフスイッチ101の処理を例として説明するが、リーフスイッチ102乃至104及びスパインスイッチ201乃至204が実行する処理はリーフスイッチ101が実行する処理と同様である。
まず、リーフスイッチ101における受信部10121は、パケットを受信したか判定する(図23:ステップS81)。パケットを受信していない場合(ステップS81:Noルート)、処理はステップS81に戻る。
一方、パケットを受信した場合(ステップS81:Yesルート)、受信部10121は、受信したパケットを中継制御部10123に渡す。そして、中継制御部10123は、受信したパケットに含まれる情報に基づき、受信したパケットがプローブパケットであるか判定する(ステップS83)。
受信したパケットがプローブパケットではない場合(ステップS83:Noルート)、処理はステップS87に移行する。一方、受信したパケットがプローブパケットである場合(ステップS83:Yesルート)、中継制御部10123は、プローブパケット処理部10122に以下の処理を実行させる。具体的には、プローブパケット処理部10122は、受信したプローブパケットに自スイッチのスイッチIDを付加する(ステップS85)。
中継制御部10123は、FDB10124を参照して、受信したパケットの出力先のポートを特定する(ステップS87)。FDB10124を用いて出力先のポートを特定する処理はよく知られているので、ここでは説明を省略する。中継制御部10123は、受信したパケットと出力先のポートの情報とを送信部10125に渡す。
送信部10125は、受信したパケットを出力先のポートの情報が示す送信ポートに出力し、送信ポートは受信したパケットを送信する(ステップS89)。
スイッチングモジュール10120は、終了指示を受け付けたか判定する(ステップS91)。終了指示を受け付けていない場合(ステップS91:Noルート)、処理はステップS81に戻る。一方、終了指示を受け付けた場合(ステップS91:Yesルート)、処理は終了する。
以上のような処理を実行すれば、プローブパケットには転送経路上の各スイッチのスイッチIDが付加されるので、プローブパケットを解析すれば転送経路を特定できるようになる。
[実施の形態2]
第1の実施の形態の方法によって設定される往路と復路とは必ずしも同じにはならない。しかし、往路と復路とが同じであることが好ましい場合もある。そこで、第2の実施の形態においては、往路と復路とが同じになるようにサーバ11乃至18及びコントローラ30を動作させる。
図24乃至図31を用いて、第2の実施の形態のシステムにおいて実行される処理について説明する。まず、図24を用いて、第2の実施の形態のコントローラ30が実行する処理を説明する。
まず、コントローラ30は、VTEP処理部1157を追加したことを示す通知をサーバ11乃至18のうちいずれかのサーバから受信したか判定する(図24:ステップS131)。VTEP処理部1157がサーバに追加されることによって、そのサーバ上の仮想マシンが実行するアプリケーションによる通信が開始するため、経路の設定が必要になる。本通知は、追加されたVTEP処理部1157の識別子を含む。
VTEP処理部1157を追加したことを示す通知をいずれのサーバからも受信していない場合(ステップS131:Noルート)、コントローラ30は、経路変更の通知を受信したか判定する(ステップS133)。
経路変更の通知を受信していない場合(ステップS133:Noルート)、処理はステップS131に戻る。一方、経路変更の通知を受信した場合(ステップS133:Yesルート)、コントローラ30は、経路変更の通知に含まれるデータを保存する(ステップS135)。
コントローラ30は、受信した経路変更の通知を、経路変更を行ったサーバと通信を行う可能性が有るサーバに対して送信する(ステップS137)。
コントローラ30は、経路変更の完了通知を受信したか判定する(ステップS139)。経路変更の完了通知を受信していない場合(ステップS139:Noルート)、処理はステップS139に戻る。一方、経路変更の完了通知を受信した場合(ステップS139:Yesルート)、処理はステップS131に戻る。なお、経路変更の通知に含まれるデータ及び経路変更の完了通知に含まれるデータは各サーバにおいて生成されるデータであるが、コントローラ30がネットワーク全体を管理できるようにするため、コントローラ30においても管理される。但し、コントローラ30が管理するデータは、本実施の形態の処理には直接関係しない。
一方、VTEP処理部1157を追加したことを示す通知をいずれかのサーバから受信した場合(ステップS131:Yesルート)、コントローラ30は、VTEP処理部1157が追加されたサーバに、経路探索要求を送信する(ステップS141)。経路探索要求は、追加されたVTEP処理部1157の識別子を含む。
コントローラ30は、経路探索要求の送信先のサーバから経路探索の完了通知を受信したか判定する(ステップS143)。経路探索の完了通知を受信していない場合(ステップS143:Noルート)、処理はステップS143に戻る。
一方、経路探索の完了通知を受信した場合(ステップS143:Yesルート)、コントローラ30は、以下の処理を実行する。具体的には、コントローラ30は、経路探索の完了通知に含まれる探索結果およびカプセル制御データを保存する(ステップS145)。なお、探索結果およびカプセル制御データは各サーバにおいて生成されるデータであるが、コントローラ30がネットワーク全体を管理できるようにするため、コントローラ30においても管理される。但し、コントローラ30が管理する探索結果およびカプセル制御データは、本実施の形態の処理には直接関係しない。
コントローラ30は、探索結果およびカプセル制御データを含む追加経路データを生成し、VTEP処理部1157が追加されたサーバと通信を行う可能性が有るサーバに対して追加経路データを送信する(ステップS147)。データセンタにおいては同じテナントの仮想マシン間での通信が行われるので、ステップS147においては、同じテナントの仮想マシンを実行するサーバに対して追加経路データが送信される。
コントローラ30は、追加経路データの送信先のサーバから経路設定の完了通知を受信したか判定する(ステップS149)。経路設定の完了通知には、カプセル制御データ格納部1151のエントリが含まれるので、コントローラ30はそのエントリを保存する。
経路設定の完了通知を受信していない場合(ステップS149:Noルート)、処理はステップS149に戻る。
一方、経路設定の完了通知を受信した場合(ステップS149:Yesルート)、コントローラ30は、終了指示(例えばシャットダウンの指示)を受け付けたか判定する(ステップS151)。終了指示を受け付けていない場合(ステップS151:Noルート)、処理はステップS131に戻る。一方、終了指示を受け付けた場合(ステップS151:Yesルート)、処理は終了する。
次に、図25乃至図31を用いて、サーバ11が実行する処理を説明する。なお、ここではサーバ11が実行する処理を例として説明するが、サーバ12乃至18が実行する処理もサーバ11が実行する処理と同様である。
まず、カプセル制御部1156は、経路探索要求をコントローラ30から受信したか判定する(図25:ステップS161)。経路探索要求をコントローラ30から受信した場合(ステップS161:Yesルート)、カプセル制御部1156は、宛先サーバのVTEP処理部1157(以下、宛先VTEPと呼ぶ)の識別子等をカプセル制御データ格納部1151に格納する(ステップS173)。なお、宛先VTEPが複数である場合には複数の識別子がカプセル制御データ格納部1151に格納される。
図26に、第2の実施の形態におけるカプセル制御データ格納部1151に格納されるカプセル制御データの一例を示す。図26の例では、パケットの内部ヘッダに含まれる送信元MACアドレスと、パケットの内部ヘッダに含まれる宛先MACアドレスと、宛先VTEPの識別子と、往路のパケットの外部ヘッダに設定されるソースポート情報と、復路のパケットの外部ヘッダに設定されるソースポート情報とが格納される。但し、ステップS173の処理時点においては、ソースポート情報は格納されない。
カプセル制御部1156は、未処理の宛先VTEPをカプセル制御データ格納部1151から1つ特定する(ステップS175)。
そして、プローブ制御部1155における第1制御部11551は、プローブ送信処理を実行する(ステップS177)。第2の実施の形態におけるプローブ送信処理は第1の実施の形態のプローブ送信処理と同じであるので、説明を省略する。
カプセル制御部1156は、ソースポート選択処理を実行する(ステップS179)。ソースポート選択処理については、図27を用いて説明する。
まず、カプセル制御部1156は、探索結果格納部1153に格納されているソースポート情報が格納されているソースポートの中から、往路と復路とが同じになるように、往路のソースポートと復路のソースポートとを特定する(図27:ステップS211)。例えば図16に示すデータが探索結果格納部1153に格納されている場合、往路のソースポート情報が「0x0001」であり且つ復路のソースポート情報が「0x0004」であれば、往路と復路とが一致する。
カプセル制御部1156は、ステップS211において特定された、往路のソースポートのソースポート情報と復路のソースポートのソースポート情報とを、カプセル制御データ格納部1151に追加する(ステップS213)。ステップS173においてはソースポート情報が格納されていなかったので、ステップS173において追加されたエントリに往路のソースポート情報と復路のソースポート情報とが追加される。そして処理は呼び出し元に戻る。
図25の説明に戻り、カプセル制御部1156は、未処理の宛先VTEPが有るか判定する(ステップS181)。未処理の宛先VTEPが有る場合(ステップS181:Yesルート)、処理はステップS175に戻る。一方、未処理の宛先VTEPが無い場合(ステップS181:Noルート)、カプセル制御部1156は、以下の処理を実行する。具体的には、カプセル制御部1156は、探索結果とカプセル制御データとを含む、経路探索の完了通知を、コントローラ30に送信する(ステップS183)。そしてステップS161の処理に戻る。
一方、経路探索要求をコントローラ30から受信していない場合(ステップS161:Noルート)、カプセル制御部1156は、追加経路データをコントローラ30から受信した(すなわち、自サーバが宛先サーバである)か判定する(ステップS163)。
追加経路データをコントローラ30から受信した場合(ステップS163:Yesルート)、処理は端子Cを介して図28のステップS191に移行する。
図28の説明に移行し、カプセル制御部1156は、追加経路データに含まれるデータに基づき、カプセル制御データ格納部1151にエントリを追加する(図28:ステップS191)。例えば追加経路データに含まれるカプセル制御データが図26に示したデータである場合、ステップS191においては図29に示すエントリが追加される。図29においては、宛先MACアドレスと送信元MACアドレスとが交換され、宛先VTEPには追加されたVTEP処理部1157の識別子が設定され、追加経路データに含まれる往路の外部ヘッダのソースポート情報と復路の外部ヘッダのソースポート情報とが交換されている。
カプセル制御部1156は、ステップS191において追加したエントリを含む、経路設定の完了通知をコントローラ30に送信する(ステップS193)。処理は端子Eを介して図25のステップS161に戻る。
図25の説明に戻り、追加経路データをコントローラ30から受信していない場合(ステップS163:Noルート)、カプセル制御部1156は、経路変更の通知をコントローラ30から受信したか判定する(ステップS165)。経路変更の通知をコントローラ30から受信した場合(ステップS165:Yesルート)、処理は端子Dを介して図30のステップS201に移行する。
図30の説明に移行し、カプセル制御部1156は、経路変更の通知に含まれるデータに従って、カプセル制御データ格納部1151内の該当エントリを更新する(図30:ステップS201)。通信相手のサーバによって経路が変更されたので、その通信相手との通信において往路と復路とが同じになるように、カプセル制御データ格納部1151内の該当エントリが更新される。
カプセル制御部1156は、ステップS201において更新されたエントリを含む、経路変更の完了通知をコントローラ30に送信する(ステップS203)。そして処理は端子Eを介して図25のステップS161に戻る。
図25の説明に戻り、経路変更の通知をコントローラ30から受信していない場合(ステップS165:Noルート)、カプセル制御部1156は、プローブパケットを受信したか判定する(ステップS167)。
プローブパケットを受信していない場合(ステップS167:Noルート)、処理はステップS161に戻る。一方、プローブパケットを受信した場合(ステップS167:Yesルート)、第1制御部11551は、受信したプローブパケットの送信元と宛先とが交換されたパケットを、プローブパケットの送信元に対して送信する(ステップS169)。
カプセル制御部1156は、終了指示を受け付けたか判定する(ステップS171)。終了指示を受け付けていない場合(ステップS171:Noルート)、処理はステップS161に戻る。一方、終了指示を受け付けた場合(ステップS171:Yesルート)、処理は終了する。
以上のような処理を実行すれば、例えば図31に示すように、往路と復路とが同じになるように経路を設定することができるようになる。図31の例では、アプリケーションu1とアプリケーションx2とが行う通信において、往路と復路とが一致している。この場合において、往路のソースポート情報と復路のソースポート情報とは必ずしも一致しない。
以上本発明の一実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、上で説明したサーバ11乃至18、リーフスイッチ101乃至104、スパインスイッチ201乃至204及びコントローラ30のブロック構成は実際のプログラムモジュール構成に一致しない場合もある。
また、上で説明した各テーブルの構成は一例であって、上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ処理の順番を入れ替えることも可能である。さらに、並列に実行させるようにしても良い。
また、第1及び第2の実施の形態においては経路の設定をサーバが実行するが、コントローラ30が経路の設定を実行してもよい。
以上述べた本発明の実施の形態をまとめると、以下のようになる。
本実施の形態の第1の態様に係る経路探索システムは、(A)パケットのヘッダに設定される送信元ポート情報に基づきパケットが送信される経路が制御されるネットワークに接続された第1情報処理装置(例えばサーバ11)と、(B)ネットワークに接続された第2情報処理装置(例えばサーバ18)と、(C)第1情報処理装置と第2情報処理装置とを管理する管理装置(例えばコントローラ30)とを有する。そして、第1情報処理装置は、(a1)第1情報処理装置と第2情報処理装置との間の経路の探索についての要求を管理装置から受信した場合、送信元ポート情報が異なる複数のパケットを第2情報処理装置に送信する第1送信部(例えば第1制御部11551)と、(a2)複数のパケットに対する応答パケットに含まれる経路情報と送信元ポート情報とに基づき、パケットに設定される送信元ポート情報を経路毎に特定する特定部(例えばカプセル制御部1156)と、(a3)各経路について、特定された送信元ポート情報が設定されたプローブパケットを第2情報処理装置に送信する第2送信部(例えば第2制御部11552)とを有する。
送信元ポート情報を順に設定してプローブパケットを設定するのではなく、各経路についてプローブパケットを送信するので、無駄にプローブパケットを送信することがなくなり、プローブパケットの数を減らすことができるようになる。これにより、プローブパケット以外のパケット(例えば、通常のパケット)の転送に与える影響を小さくすることができるようになる。
また、本経路探索システムは、(D)複数のスイッチをさらに有してもよい。そして、経路情報は、複数のスイッチのうち経路上のスイッチの識別子を含んでもよい。そして、経路上のスイッチの各々は、当該スイッチの識別情報を、受信したパケットに付加してもよい。スイッチの識別子によって経路の異同を決定できるようになる。
また、第2情報処理装置は、(b1)受信した複数のパケットの各々について、当該パケットに含まれる送信元アドレスと宛先アドレスとが交換された応答パケットを生成し、生成した当該応答パケットを第1情報処理装置に送信してもよい。或る送信元ポート情報が設定されたパケットの経路(すなわち往路)及びその応答パケットの経路(すなわち復路)を特定することができるようになる。
また、第1情報処理装置は、(a4)第1経路について送信したプローブパケットに基づき第1経路の異常を検知した場合、第1経路で第2情報処理装置に送信されるパケットに設定される送信元ポート情報を、第1経路とは異なる第2経路について特定された送信元ポート情報に変更する第1変更部(例えば変更部1158)をさらに有してもよい。経路異常に関係する送信元ポート情報を一括して変更することができるようになる。
また、第1情報処理装置は、(a5)第1情報処理装置における第1アプリケーションと第2情報処理装置における第2アプリケーションとの間のある経路で行われている通信の異常を検知した場合、第1アプリケーションが第2アプリケーションに送信するパケットに設定される送信元ポート情報を、上記ある経路とは異なる他の経路について特定された送信元ポート情報に変更する第2変更部(例えば変更部1158)をさらに有してもよい。特定の通信フローのみについて送信元ポート情報を変更することができるようになる。
また、特定部は、(a21)要求に対する応答を管理装置に送信してもよい。そして、管理装置は、(c1)要求に対する応答を受信した場合、第2情報処理装置と第1情報処理装置との間の経路の設定についての第2の要求を第2情報処理装置に送信してもよい。そして、第2情報処理装置は、(b2)第2の要求を受信した場合、第1情報処理装置に送信するパケットに設定される送信元ポート情報として、第2情報処理装置と第1情報処理装置との間の経路のうちいずれかの経路に対応する送信元ポート情報を設定してもよい。第1情報処理装置から第2情報処理装置までの経路だけでなく、第2情報処理装置から第1情報処理装置までの経路についての設定を行うことができるようになる。
また、特定部は、(a21)要求に対する応答であって第2情報処理装置との通信で使用される第3経路についての情報を含む当該応答を管理装置に送信してもよい。そして、管理装置は、(c2)要求に対する応答を受信した場合、第2情報処理装置と第1情報処理装置との間の経路の設定についての第2の要求であって第3経路についての情報を含む第2の要求を第2情報処理装置に送信してもよい。そして、第2情報処理装置は、(b3)第2の要求を受信した場合、第1情報処理装置に送信するパケットに設定される送信元ポート情報として、第3経路に対応する送信元ポート情報を設定してもよい。第1情報処理装置から第2情報処理装置までの経路と第2情報処理装置から第1情報処理装置までの経路とを同一にすることができるようになる。
本実施の形態の第2の態様に係る経路探索方法は、(E)他の情報処理装置との間の経路の探索についての要求を、情報処理装置と他の情報処理装置とを管理する管理装置から受信した場合、送信元ポート情報が異なる複数のパケットを他の情報処理装置に送信し、(F)複数のパケットに対する応答パケットに含まれる経路情報と送信元ポート情報とに基づき、パケットに設定される送信元ポート情報を経路毎に特定し、(G)各経路について、特定された送信元ポート情報が設定されたプローブパケットを他の情報処理装置に送信する処理を含む。
本実施の形態の第3の態様に係る経路探索方法は、(H)パケットのヘッダに設定される送信元ポート情報に基づきパケットが送信される経路が制御されるネットワークに接続された第1情報処理装置と、ネットワークに接続された第2情報処理装置との間の経路の探索についての第1の要求を第1情報処理装置に送信し、(I)送信した第1の要求に対する応答を受信した場合、第2情報処理装置と第1情報処理装置との間の経路の設定についての第2の要求を第2情報処理装置に送信する処理を含む。
なお、上記方法による処理を1又は複数のコンピュータに実行させるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、CD−ROM、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。尚、中間的な処理結果はメインメモリ等の記憶装置に一時保管される。
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
パケットのヘッダに設定される送信元ポート情報に基づき前記パケットが送信される経路が制御されるネットワークに接続された第1情報処理装置と、
前記ネットワークに接続された第2情報処理装置と、
前記第1情報処理装置と前記第2情報処理装置とを管理する管理装置と、
を有し、
前記第1情報処理装置は、
前記第1情報処理装置と前記第2情報処理装置との間の経路の探索についての要求を前記管理装置から受信した場合、送信元ポート情報が異なる複数のパケットを前記第2情報処理装置に送信する第1送信部と、
前記複数のパケットに対する応答パケットに含まれる経路情報と送信元ポート情報とに基づき、パケットに設定される送信元ポート情報を経路毎に特定する特定部と、
各経路について、特定された送信元ポート情報が設定されたプローブパケットを前記第2情報処理装置に送信する第2送信部と、
を有する経路探索システム。
(付記2)
複数のスイッチ
をさらに有し、
前記経路情報は、前記複数のスイッチのうち経路上のスイッチの識別子を含み、
前記経路上のスイッチの各々は、当該スイッチの識別情報を、受信したパケットに付加する、
付記1記載の経路探索システム。
(付記3)
前記第2情報処理装置は、
受信した前記複数のパケットの各々について、当該パケットに含まれる送信元アドレスと宛先アドレスとが交換された前記応答パケットを生成し、生成した当該応答パケットを前記第1情報処理装置に送信する、
付記1又は2記載の経路探索システム。
(付記4)
前記第1情報処理装置は、
第1経路について送信したプローブパケットに基づき前記第1経路の異常を検知した場合、前記第1経路で第2情報処理装置に送信されるパケットに設定される送信元ポート情報を、前記第1経路とは異なる第2経路について特定された送信元ポート情報に変更する第1変更部
をさらに有する付記1乃至3のいずれか1つ記載の経路探索システム。
(付記5)
前記第1情報処理装置は、
前記第1情報処理装置における第1アプリケーションと前記第2情報処理装置における第2アプリケーションとの間のある経路で行われている通信の異常を検知した場合、前記第1アプリケーションが前記第2アプリケーションに送信するパケットに設定される送信元ポート情報を、前記ある経路とは異なる他の経路について特定された送信元ポート情報に変更する第2変更部
をさらに有する付記1乃至4のいずれか1つ記載の経路探索システム。
(付記6)
前記特定部は、
前記要求に対する応答を前記管理装置に送信し、
前記管理装置は、
前記要求に対する応答を受信した場合、前記第2情報処理装置と前記第1情報処理装置との間の経路の設定についての第2の要求を前記第2情報処理装置に送信し、
前記第2情報処理装置は、
前記第2の要求を受信した場合、前記第1情報処理装置に送信するパケットに設定される送信元ポート情報として、前記第2情報処理装置と前記第1情報処理装置との間の経路のうちいずれかの経路に対応する送信元ポート情報を設定する、
付記1乃至5のいずれか1つ記載の経路探索システム。
(付記7)
前記特定部は、
前記要求に対する応答であって前記第2情報処理装置との通信で使用される第3経路についての情報を含む当該応答を前記管理装置に送信し、
前記管理装置は、
前記要求に対する応答を受信した場合、前記第2情報処理装置と前記第1情報処理装置との間の経路の設定についての第2の要求であって前記第3経路についての情報を含む前記第2の要求を前記第2情報処理装置に送信し、
前記第2情報処理装置は、
前記第2の要求を受信した場合、前記第1情報処理装置に送信するパケットに設定される送信元ポート情報として、前記第3経路に対応する送信元ポート情報を設定する、
付記1乃至5のいずれか1つ記載の経路探索システム。
(付記8)
情報処理装置が、
他の情報処理装置との間の経路の探索についての要求を、前記情報処理装置と前記他の情報処理装置とを管理する管理装置から受信した場合、送信元ポート情報が異なる複数のパケットを前記他の情報処理装置に送信し、
前記複数のパケットに対する応答パケットに含まれる経路情報と送信元ポート情報とに基づき、パケットに設定される送信元ポート情報を経路毎に特定し、
各経路について、特定された送信元ポート情報が設定されたプローブパケットを前記他の情報処理装置に送信する、
処理を実行する経路探索方法。
(付記9)
情報処理装置に、
他の情報処理装置との間の経路の探索についての要求を、前記情報処理装置と前記他の情報処理装置とを管理する管理装置から受信した場合、送信元ポート情報が異なる複数のパケットを前記他の情報処理装置に送信し、
前記複数のパケットに対する応答パケットに含まれる経路情報と送信元ポート情報とに基づき、パケットに設定される送信元ポート情報を経路毎に特定し、
各経路について、特定された送信元ポート情報が設定されたプローブパケットを前記他の情報処理装置に送信する、
処理を実行させる経路探索プログラム。
(付記10)
管理装置に、
パケットのヘッダに設定される送信元ポート情報に基づき前記パケットが送信される経路が制御されるネットワークに接続された第1情報処理装置と、前記ネットワークに接続された第2情報処理装置との間の経路の探索についての第1の要求を前記第1情報処理装置に送信し、
送信した前記第1の要求に対する応答を受信した場合、前記第2情報処理装置と前記第1情報処理装置との間の経路の設定についての第2の要求を前記第2情報処理装置に送信する、
処理を実行させる経路探索プログラム。
(付記11)
管理装置が、
パケットのヘッダに設定される送信元ポート情報に基づき前記パケットが送信される経路が制御されるネットワークに接続された第1情報処理装置と、前記ネットワークに接続された第2情報処理装置との間の経路の探索についての第1の要求を前記第1情報処理装置に送信し、
送信した前記第1の要求に対する応答を受信した場合、前記第2情報処理装置と前記第1情報処理装置との間の経路の設定についての第2の要求を前記第2情報処理装置に送信する、
処理を実行する経路探索方法。
11,12,13,14,15,16,17,18 サーバ
101,102,103,104 リーフスイッチ
201,202,203,204 スパインスイッチ
1010,1020,1030,1040,2010,2020,2030,2040 管理ポート
30 コントローラ 301 CPU
302 メモリ 303 管理ポート
1100 ハードウエア 1101 CPU
1102 メモリ 1103 NIC
1104 プログラマブルNIC 1105 補助記憶装置
1106 CPU 1107 メモリ
1110 ハイパバイザ 1121,1122 仮想マシン
1150 経路データ格納部 1151 カプセル制御データ格納部
1152 VTEPデータ格納部 1153 探索結果格納部
1154 経路変更データ格納部 1155 プローブ制御部
11551 第1制御部 11552 第2制御部
1156 カプセル制御部 1157 VTEP処理部
1158 変更部
10101,10111 管理ポート
10102,10103,10104 受信ポート
10112,10113,10114 送信ポート
10120 スイッチングモジュール 10121 受信部
10122 プローブパケット処理部 10123 中継制御部
10124 FDB 10125 送信部
10130 CPU 10140 メモリ

Claims (10)

  1. パケットのヘッダに設定される送信元ポート情報に基づき前記パケットが送信される経路が制御されるネットワークに接続された第1情報処理装置と、
    前記ネットワークに接続された第2情報処理装置と、
    前記第1情報処理装置と前記第2情報処理装置とを管理する管理装置と、
    を有し、
    前記第1情報処理装置は、
    前記第1情報処理装置と前記第2情報処理装置との間の経路の探索についての要求を前記管理装置から受信した場合、送信元ポート情報が異なる複数のパケットを前記第2情報処理装置に送信する第1送信部と、
    前記複数のパケットに対する応答パケットに含まれる経路情報と送信元ポート情報とに基づき、パケットに設定される送信元ポート情報を経路毎に特定する特定部と、
    各経路について、特定された送信元ポート情報が設定されたプローブパケットを前記第2情報処理装置に送信する第2送信部と、
    を有する経路探索システム。
  2. 複数のスイッチ
    をさらに有し、
    前記経路情報は、前記複数のスイッチのうち経路上のスイッチの識別子を含み、
    前記経路上のスイッチの各々は、当該スイッチの識別情報を、受信したパケットに付加する、
    請求項1記載の経路探索システム。
  3. 前記第2情報処理装置は、
    受信した前記複数のパケットの各々について、当該パケットに含まれる送信元アドレスと宛先アドレスとが交換された前記応答パケットを生成し、生成した当該応答パケットを前記第1情報処理装置に送信する、
    請求項1又は2記載の経路探索システム。
  4. 前記第1情報処理装置は、
    第1経路について送信したプローブパケットに基づき前記第1経路の異常を検知した場合、前記第1経路で第2情報処理装置に送信されるパケットに設定される送信元ポート情報を、前記第1経路とは異なる第2経路について特定された送信元ポート情報に変更する第1変更部
    をさらに有する請求項1乃至3のいずれか1つ記載の経路探索システム。
  5. 前記第1情報処理装置は、
    前記第1情報処理装置における第1アプリケーションと前記第2情報処理装置における第2アプリケーションとの間のある経路で行われている通信の異常を検知した場合、前記第1アプリケーションが前記第2アプリケーションに送信するパケットに設定される送信元ポート情報を、前記ある経路とは異なる他の経路について特定された送信元ポート情報に変更する第2変更部
    をさらに有する請求項1乃至4のいずれか1つ記載の経路探索システム。
  6. 前記特定部は、
    前記要求に対する応答を前記管理装置に送信し、
    前記管理装置は、
    前記要求に対する応答を受信した場合、前記第2情報処理装置と前記第1情報処理装置との間の経路の設定についての第2の要求を前記第2情報処理装置に送信し、
    前記第2情報処理装置は、
    前記第2の要求を受信した場合、前記第1情報処理装置に送信するパケットに設定される送信元ポート情報として、前記第2情報処理装置と前記第1情報処理装置との間の経路のうちいずれかの経路に対応する送信元ポート情報を設定する、
    請求項1乃至5のいずれか1つ記載の経路探索システム。
  7. 前記特定部は、
    前記要求に対する応答であって前記第2情報処理装置との通信で使用される第3経路についての情報を含む当該応答を前記管理装置に送信し、
    前記管理装置は、
    前記要求に対する応答を受信した場合、前記第2情報処理装置と前記第1情報処理装置との間の経路の設定についての第2の要求であって前記第3経路についての情報を含む前記第2の要求を前記第2情報処理装置に送信し、
    前記第2情報処理装置は、
    前記第2の要求を受信した場合、前記第1情報処理装置に送信するパケットに設定される送信元ポート情報として、前記第3経路に対応する送信元ポート情報を設定する、
    請求項1乃至5のいずれか1つ記載の経路探索システム。
  8. 情報処理装置が、
    他の情報処理装置との間の経路の探索についての要求を、前記情報処理装置と前記他の情報処理装置とを管理する管理装置から受信した場合、送信元ポート情報が異なる複数のパケットを前記他の情報処理装置に送信し、
    前記複数のパケットに対する応答パケットに含まれる経路情報と送信元ポート情報とに基づき、パケットに設定される送信元ポート情報を経路毎に特定し、
    各経路について、特定された送信元ポート情報が設定されたプローブパケットを前記他の情報処理装置に送信する、
    処理を実行する経路探索方法。
  9. 情報処理装置に、
    他の情報処理装置との間の経路の探索についての要求を、前記情報処理装置と前記他の情報処理装置とを管理する管理装置から受信した場合、送信元ポート情報が異なる複数のパケットを前記他の情報処理装置に送信し、
    前記複数のパケットに対する応答パケットに含まれる経路情報と送信元ポート情報とに基づき、パケットに設定される送信元ポート情報を経路毎に特定し、
    各経路について、特定された送信元ポート情報が設定されたプローブパケットを前記他の情報処理装置に送信する、
    処理を実行させる経路探索プログラム。
  10. 管理装置に、
    パケットのヘッダに設定される送信元ポート情報に基づき前記パケットが送信される経路が制御されるネットワークに接続された第1情報処理装置と、前記ネットワークに接続された第2情報処理装置との間の経路の探索についての第1の要求を前記第1情報処理装置に送信し、
    送信した前記第1の要求に対する応答を受信した場合、前記第2情報処理装置と前記第1情報処理装置との間の経路の設定についての第2の要求を前記第2情報処理装置に送信する、
    処理を実行させる経路探索プログラム。
JP2016234821A 2016-12-02 2016-12-02 経路探索システム、経路探索方法及び経路探索プログラム Active JP6801409B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016234821A JP6801409B2 (ja) 2016-12-02 2016-12-02 経路探索システム、経路探索方法及び経路探索プログラム
US15/824,510 US10326681B2 (en) 2016-12-02 2017-11-28 System and method to analyze route information in a network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016234821A JP6801409B2 (ja) 2016-12-02 2016-12-02 経路探索システム、経路探索方法及び経路探索プログラム

Publications (2)

Publication Number Publication Date
JP2018093358A JP2018093358A (ja) 2018-06-14
JP6801409B2 true JP6801409B2 (ja) 2020-12-16

Family

ID=62243620

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016234821A Active JP6801409B2 (ja) 2016-12-02 2016-12-02 経路探索システム、経路探索方法及び経路探索プログラム

Country Status (2)

Country Link
US (1) US10326681B2 (ja)
JP (1) JP6801409B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6784160B2 (ja) * 2016-12-08 2020-11-11 富士通株式会社 並列処理装置及びノード間通信プログラム
US10924352B2 (en) * 2018-01-17 2021-02-16 Nicira, Inc. Data center network topology discovery
CN109347741B (zh) * 2018-08-01 2021-02-26 北京邮电大学 基于带内网络遥测技术的全网路径最优化遍历方法及装置
US10911355B2 (en) * 2018-12-06 2021-02-02 Cisco Technology, Inc. Multi-site telemetry tracking for fabric traffic using in-band telemetry
EP4014439A1 (en) * 2019-09-13 2022-06-22 Huawei Technologies Co., Ltd. Adaptive in-band network telemetry for full network coverage

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5097620B2 (ja) 2008-06-03 2012-12-12 株式会社日立製作所 マルチパス通信システム
US9729433B2 (en) * 2013-05-01 2017-08-08 Commscope Technologies Llc Enhanced route tracing
CN106559325B (zh) * 2015-09-25 2020-06-09 华为技术有限公司 路径检测方法和装置
US10320681B2 (en) * 2016-04-12 2019-06-11 Nicira, Inc. Virtual tunnel endpoints for congestion-aware load balancing
US20180278514A1 (en) * 2017-03-27 2018-09-27 Juniper Networks, Inc. Traceroute for multi-path routing

Also Published As

Publication number Publication date
US10326681B2 (en) 2019-06-18
US20180159770A1 (en) 2018-06-07
JP2018093358A (ja) 2018-06-14

Similar Documents

Publication Publication Date Title
JP6801409B2 (ja) 経路探索システム、経路探索方法及び経路探索プログラム
US20180324274A1 (en) Information system, control apparatus, method of providing virtual network, and program
JP5994851B2 (ja) 転送装置の制御装置、転送装置の制御方法、通信システムおよびプログラム
US8971342B2 (en) Switch and flow table controlling method
RU2562438C2 (ru) Сетевая система и способ управления сетью
WO2011155510A1 (ja) 通信システム、制御装置、パケットキャプチャ方法およびプログラム
WO2011083786A1 (ja) 通信制御システム、及び通信制御方法
US9143447B2 (en) Closed loop formation preventing system and closed loop formation preventing method
US20160226817A1 (en) Apparatus and method for creating block-type structure using sketch-based user interaction
JP6665444B2 (ja) 情報処理装置、情報処理装置の制御プログラム、制御方法及び情報処理システム
JP6868958B2 (ja) パケット送信プログラム、情報処理装置、および、障害検出方法
CN108259261B (zh) 路径探测方法和装置
JP5720340B2 (ja) 制御サーバ、通信システム、制御方法およびプログラム
JP5991385B2 (ja) 制御情報管理装置、制御情報提示方法及びプログラム
US10333817B2 (en) Non-transitory computer-readable storage medium, communication device, and determination method
JP2008072521A (ja) 通信装置、通信方法及び通信プログラム
JP6063826B2 (ja) 経路確認装置、経路確認システム、経路確認方法、及びプログラム
WO2014119602A1 (ja) 制御装置、スイッチ、通信システム、スイッチの制御方法及びプログラム
JP2016178530A (ja) 通信システム、通信端末、通信方法、プログラム
WO2014175335A1 (ja) 制御装置、計算機システム、通信制御方法及びプログラム
CN111404827A (zh) 一种数据包处理方法、装置及电子设备和存储介质
JP2017022579A (ja) 通信システム、通信ノード、および通信システムにおける代替処理方法
KR20180091274A (ko) 식별자 기반 네트워크의 식별자 생성 장치 및 방법
JP2017046211A (ja) 通信装置、制御方法およびプログラム
JP2015216588A (ja) アクセス制御装置、アクセス制御方法、及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190807

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200625

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200804

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200918

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201109

R150 Certificate of patent or registration of utility model

Ref document number: 6801409

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150