JP6868958B2 - パケット送信プログラム、情報処理装置、および、障害検出方法 - Google Patents

パケット送信プログラム、情報処理装置、および、障害検出方法 Download PDF

Info

Publication number
JP6868958B2
JP6868958B2 JP2015254601A JP2015254601A JP6868958B2 JP 6868958 B2 JP6868958 B2 JP 6868958B2 JP 2015254601 A JP2015254601 A JP 2015254601A JP 2015254601 A JP2015254601 A JP 2015254601A JP 6868958 B2 JP6868958 B2 JP 6868958B2
Authority
JP
Japan
Prior art keywords
packet
information
detection
value
unit
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
JP2015254601A
Other languages
English (en)
Other versions
JP2017118438A (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 JP2015254601A priority Critical patent/JP6868958B2/ja
Priority to US15/385,134 priority patent/US10313182B2/en
Publication of JP2017118438A publication Critical patent/JP2017118438A/ja
Application granted granted Critical
Publication of JP6868958B2 publication Critical patent/JP6868958B2/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
    • 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
    • H04L41/0677Localisation of faults
    • 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
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • H04L41/0668Management of faults, events, alarms or notifications using network fault recovery by dynamic selection of recovery network elements, e.g. replacement by the most appropriate element after failure
    • 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
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies
    • H04L41/122Discovery or management of network topologies of virtualised topologies, e.g. software-defined networks [SDN] or network function virtualisation [NFV]
    • 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/40Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using virtualisation of network functions or resources, e.g. SDN or NFV entities
    • 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

Landscapes

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

Description

本発明は、通信経路の障害の検出に関する。
パケットのカプセル化により、仮想ネットワークを既存の物理ネットワーク上に配備するための技術として、VXLAN(Virtual Extensible Local Area Network)が使用されることがある(例えば、非特許文献1等)。
図1は、カプセル化を用いた通信の例を説明する図である。図1のケースC1は、ノード2aとノード2bとの間の通信がTEP(tunnel end point)5を介して行われる場合の例を示している。TEP5aは、ノード2aが動作している装置と同じ装置中かノード2aが動作している装置の近傍に配置される。一方、TEP5bは、ノード2bが動作している装置と同じ装置中かノード2bが動作している装置の近傍に配置される。さらに、ノード2aからノード2bに至る経路中で、TEP5aとTEP5bの間にはネットワーク15が位置しているとする。この状態で、ノード2aがパケットP1をノード2bに向けて送信したとする。パケットP1の宛先アドレスはノード2bのアドレスであり、パケットP1の送信元アドレスはノード2aのアドレスである。パケットP1は、ノード2aからTEP5aに転送される。
TEP5aは、予め、ノード2b宛のパケットをTEP5bに転送することを記憶している。TEP5aは、パケットP1を受信すると、TEP5bにパケットを転送するための外部ヘッダ(Outer Header)をパケットP1に付加することにより、パケットP2に変換する。図1の例では、外部ヘッダの宛先アドレスはTEP5bのアドレスであり、送信元アドレスはTEP5aのアドレスである。パケットP2は、TEP5b宛のパケットとしてネットワーク15を介して転送される。
TEP5bは、パケットP2を受信すると、外部ヘッダを除去することにより、パケットP2をパケットP1に変換する。TEP5bは、パケットP1をノード2bに転送するので、ノード2aから送信されたパケットがノード2bに到達する。
ところで、冗長経路の確保や通信速度の確保のために、装置間の通信に複数の経路が使用されることがある。ケースC1では、ネットワーク15中の経路は図示していないが、カプセル化を伴う通信で使用される経路も複数の経路によって冗長化されていても良い。ケースC2は、カプセル化を伴う通信で使用される経路が冗長化されている場合の例を説明している。ケースC2において、TEP5aはサーバ25a中に備えられており、TEP5bはサーバ25b中に含まれているとする。また、サーバ25aにはノード2aとして動作する仮想マシンが収容され、サーバ25bにはノード2bとして動作する仮想マシンが収容されているとする。ケースC2に示すようにサーバ25aとサーバ25bの通信経路として、スイッチ20a、スイッチ20c、スイッチ20dを介する経路R1と、スイッチ20a、スイッチ20b、スイッチ20dを介する経路R2が用いられているとする。この場合、TEP5aからTEP5bに至る経路に経路R1と経路R2のいずれを使用するかは、カプセル化されたパケットの外部ヘッダの中の値を用いて決定される。例えば、経路の決定には、外部ヘッダ中のMACアドレス、VLAN ID、IP(Internet Protocol)アドレス、ポート番号などが使用される。これらの情報の設定方法について、図2を参照しながら説明する。
図2は、カプセル化されたパケットの例を説明する図である。以下、図1に図示したパケットP1のように、外部ヘッダが付加される前のパケットのヘッダを「内部ヘッダ」と記載する。すなわち、カプセル化前のパケットは、内部ヘッダとペイロードを含む。図2はVXLANが用いられるシステムでカプセル化されたパケットの例である。図2のパケットのうち、Etherヘッダ、IPヘッダ、UDP(User Datagram Protocol)ヘッダ、VXLANヘッダは、外部ヘッダに含まれている。Etherヘッダには、宛先MAC(Media Access Control)アドレス(DA)、送信元MACアドレス(SA)、VLAN IDが含まれる。IPヘッダには、宛先IPアドレス(DstIP)、送信元IPアドレス(SrcIP)、プロトコル情報が含まれる。なお、プロトコル情報は、トランスポート層のプロトコルの種類であり、図2の例では、UDPを表わす値に設定されている。UDPヘッダには、宛先ポート番号(DstPort)と送信元ポート番号(SrcPort)が含まれる。なお、図2は一例であり、トランスポートレイヤのプロトコルとしてTCP(Transmission Control Protocol)が使用されても良い。
ここで、TEP5aは、内部ヘッダで指定されている最終宛先にパケットを送信するためにTEP5bにパケットを送信するので、EtherヘッダとIPヘッダの宛先のアドレスはTEP5bに割り当てられたアドレスに設定される。宛先ポートは、宛先のTEP5bでノード2b宛てのパケットの処理に使用されるポート番号に設定される。一方、送信元ポート番号は、内部ヘッダの情報のハッシュ値に設定される。
スイッチ20での経路の決定には、外部ヘッダの送信元ポート番号が使用されるので、図2に示すように、送信元ポート番号をパケットの内部ヘッダに応じて変更することにより、パケットの転送経路が複数ある場合の負荷分散が行われる。
関連する技術として、ユーザ網からプロバイダ網へ転送されるパケットのフロー情報を登録し、プロバイダ網からユーザ網へ転送されるパケットの情報を用いて登録された各フローの疎通状態を監視するエッジルータが提案されている(例えば、特許文献1等)。
特開2006−86889号公報
"Virtual eXtensible Local Area Network (VXLAN): A Framework for Overlaying Virtualized Layer 2 Networks over Layer 3 Networks"、[online]、2014年8月、M. Mahalingam et. al.、[平成27年11月11日検索]、インターネット、<https://tools.ietf.org/html/rfc7348>
通信装置からその装置の通信先の装置に至る経路での障害の検出を行うために検出パケットを送信することがあるが、検出パケットとデータパケットでは、ポート番号が異なる。このため、カプセル化が行われる通信経路が冗長化されていると、検出パケットの転送に使用される経路とデータパケットの転送に使用される経路が異なることがある。この場合、検出パケットを用いても、データパケットの通信に使用される経路での障害の有無を正しく判定することは困難である。なお、背景技術ではVXLANを用いるシステムを例として説明したが、VXLANが用いられない場合でも、カプセル化を伴う通信システムでは同様の問題がある。また、関連する技術として記載した技術を用いても、同様の問題が発生する。
本発明は、1つの側面では、通信経路の障害を検出しやすくすることを目的とする。
ある1つの態様にかかるパケット送信プログラムは、情報処理装置で実行される。情報処理装置は、送信対象のパケットについて、宛先装置に至る経路の選択に使用される情報として第1の値を前記パケットに含まれる情報から算出する。情報処理装置は、前記パケットが前記宛先装置との間の通信経路の障害の検出に用いる検出パケットである場合、前記第1の値に対する演算であって、前記第1の値と、前記演算が行われるたびに変更される変数の値との前記演算により、第2の値を求める。さらに、情報処理装置は前記第2の値を前記経路の選択に使用される送信元ポート番号の情報に設定した外部ヘッダを、前記検出パケットに付加する。情報処理装置は、前記パケットが前記検出パケットではない場合前記第1の値を前記経路の選択に使用される送信元ポート番号の情報に設定した外部ヘッダを、前記パケットに付加する。情報処理装置は、前記外部ヘッダを付加したパケットを宛先装置に向けて送信する。
通信経路の障害を検出しやすくなる。
カプセル化を用いた通信の例を説明する図である。 カプセル化されたパケットの例を説明する図である。 実施形態にかかる通信方法の例を説明する図である。 通信装置の構成の例を説明する図である。 照合情報の例を説明する図である。 通信装置の処理の例を説明するフローチャートである。 カプセル化されたパケットの例を説明する図である。 ハードウェア構成の例を説明する図である。 TEPの構成の例を説明する図である。 記憶部が保持する情報の例を説明する図である。 第2の実施形態にかかる通信方法の例を説明する図である。 第2の通信装置の処理の例を説明するフローチャートである。 第2の通信装置の処理の例を説明するフローチャートである。 複製回数とカバー率の対応の例を説明する図である。 通信システムの例を説明する図である。 TEPの構成の例を説明する図である。 転送装置の構成の例を説明する図である。 管理装置の構成の例を説明する図である。 トポロジ情報の例を説明する図である。 アドレス情報の例を説明する図である。 ヘッダ情報記録部が保持する情報の例を説明する図である。 制御パケット中の情報の例を説明する図である。 管理装置の処理の例を説明するフローチャートである。 記録部が保持する情報の例を説明する図である。
図3は、実施形態にかかる通信方法の例を説明する図である。図3の例では、通信装置30a中の仮想マシンα(VMα)から通信装置30b中の仮想マシンβ(VMβ)までの通信経路として、経路R11と経路R12が使用されているとする。経路R11は、スイッチ20a、スイッチ20c、スイッチ20dを経由する。経路R12は、スイッチ20a、スイッチ20b、スイッチ20dを経由する。また、通信装置30aはTEP40aを含んでおり、通信装置30bはTEP40bを含んでいる。
通信装置30a中の仮想マシンαは、仮想マシンβとの間の経路での障害を検出するための検出パケットP11を生成したとする。図3の例では、検出パケットとして、ICMP(Internet Control Message Protocol)のEchoメッセージが使用されるものとする。すなわち、仮想マシンαで生成される検出パケットP11は、ICMP Echo Requestメッセージである。仮想マシンαで生成された検出パケットP11は、TEP40aに出力される。TEP40aは、検出パケットP11の内部ヘッダのハッシュ値を外部ヘッダの送信元ポート番号に設定することにより、パケットP12を生成する。図3の例では、パケットP12の送信元ポート番号の値はSPaであるとする。
次に、TEP40aは、カプセル化の処理対象となったパケットP11が障害の検出に使用される検出パケットであるかを判定する。なお、TEP40aは、予め、検出パケットの条件を記憶しているものとする。そこで、TEP40aは、記憶している情報を用いて、パケットP11が検出パケットであると判定する。すると、TEP40aは、内部ヘッダのハッシュ値(SPa)と、検出パケットを送信するたびに変更される変数との演算を行う。ここでは、演算に使用された変数の値はXであり、演算により、SPbという値が得られたとする。TEP40aは、カプセル化に使用した外部ヘッダの送信元ポート番号を、SPaからSPbに変更することにより、パケットP13を生成する。TEP40aは、生成したパケットP13をTEP40bに向けて送信する。さらに、TEP40aは、検出パケットの送信に伴い、変数の値を変更する。ここでは、変数の値はXからYに変更されたとする。
パケットP13がスイッチ20aに到達すると、パケットP13の外部ヘッダの情報を用いて経路振分が行われる。ここでは、パケットP13は、経路R11を介して送信されたとする。
次に、仮想マシンαは、検出パケットP14を生成したとする。検出パケットP14は検出パケットP11と同じ情報を有するパケットである。仮想マシンαは、検出パケットP14をTEP40aに出力する。すると、TEP40aでは、検出パケットP14の内部ヘッダを用いて外部ヘッダを生成する。ここで、検出パケットP14と検出パケットP11は同じ区間についてのICMP Echo Requestメッセージであるので、検出パケットP14への外部ヘッダの付加により、パケットP12が得られる。このため、外部ヘッダの送信元ポート番号はSPaに設定されている。
次に、TEP40aは、カプセル化の処理対象となったパケットP14が障害の検出に使用される検出パケットであると判定したとする。すると、TEP40aは、内部ヘッダのハッシュ値(SPa)と、変数との演算を行う。ここでは、演算に使用された変数の値はYに設定されていて、SPaとYの演算により、SPcという値が得られたとする。TEP40aは、カプセル化に使用した外部ヘッダの送信元ポート番号を、SPaからSPcに変更することにより、パケットP15を生成する。TEP40aは、パケットP15をTEP40bに向けて送信する。さらに、TEP40aは、検出パケットの送信に伴い、変数の値を変更する。
パケットP15がスイッチ20aに到達すると、パケットP15の外部ヘッダの情報を用いて経路振分が行われる。パケットP15はパケットP13とは送信元ポート番号が異なるので、パケットP13とは異なる経路で宛先に転送され得る。ここでは、パケットP15は、経路R12を介して送信されたとする。
パケットP13が通信装置30bに到達すると、TEP40bは、パケットP13の外部ヘッダを除去して、仮想マシンβに出力する。仮想マシンβに出力されるパケットは検出パケットP11の状態に戻っているので、仮想マシンβは、通信装置30a中の仮想マシンαに応答パケットを送信する。さらに、パケットP15が通信装置30bに到達した場合も同様の処理が行われるので、パケットP15に対する応答パケットも仮想マシンαに向けて送信される。なお、応答パケットについても、TEP40bで外部ヘッダの付加が行われ、通信装置30aに向けて転送される。
TEP40aは、応答パケットを受信すると、外部ヘッダを除去してから仮想マシンαに出力する。仮想マシンαは、2つの検出パケット(P11、P14)を送信したのに対して、2つの応答パケットを受信しているので、仮想マシンαと仮想マシンβの間の通信経路に障害が発生していないと判定する。
なお、理解しやすくするために、検出パケットに検出パケットの情報から計算された送信元ポート番号を用いた外部ヘッダが付加された後に、送信元ポート番号が変更される場合を例としたが、外部ヘッダが付加されるタイミングは任意である。すなわち、後述するように、検出パケットから計算された送信元ポート番号の候補値と変数との演算結果の計算後に、外部ヘッダの生成と検出パケットへの付加が行われてもよい。
このように、検出パケットの送信の際には、検出パケットごとに異なる値となる変数を用いて、検出パケットの外部ヘッダに含まれる送信元ポート番号が変更される。このため、通信経路が冗長化されていても、各検出パケットが異なる経路を介して送信される可能性があり、通信経路中の障害を検出しやすくなる。
<第1の実施形態>
図4は、通信装置30の構成の例を説明する図である。通信装置30は、仮想マシン10(10a、10c、10e)、仮想スイッチ31、ネットワークインタフェース32を有する。仮想スイッチ31には、TEP40(40a、40c、40e)が含まれている。また、ネットワークインタフェース32は、送信部33と受信部34を有する。送信部33は、パケットをネットワーク中の他の装置に送信する。受信部34は、ネットワーク中の他の装置からパケットを受信する。通信装置30は、サーバなどを含む任意の情報処理装置として実現される。なお、図4は、通信装置30の一例であり、通信装置30中で動作する仮想マシン10の数は任意に変更され得る。さらに、仮想スイッチ31で実現されるTEP40の数も実装に応じて任意に変更され得る。
各仮想マシン10は、仮想スイッチ31中のTEP40のいずれかを介して通信する。以下の説明では、仮想マシン10aはTEP40aを介して通信しているとする。同様に、仮想マシン10cはTEP40cを介して通信し、仮想マシン10eはTEP40eを介して通信するものとする。
TEP40は、パケット照合部41、ハッシュ計算部42、外部ヘッダ付加部43、外部ヘッダ照合部45、外部ヘッダ除去部46を有する。パケット照合部41は、予め、検出パケットの検出条件を記憶している。パケット照合部41は、仮想マシン10からパケットが入力されると、入力されたパケットが検出パケットであるかを判定する。検出パケットであるかを判定するための情報の例については、図5を参照しながら説明する。検出パケットが入力された場合、パケット照合部41は、検出パケットが入力されたことをハッシュ計算部42に通知する。ハッシュ計算部42は、検出パケットが入力されたことが通知されると、仮想マシン10から入力されたパケットの内部ヘッダのハッシュ値と、検出パケットごとに異なる値に設定される変数を用いた演算を行う。ハッシュ計算部42は、演算により得られた値を外部ヘッダ付加部43に出力する。外部ヘッダ付加部43は、仮想マシン10から入力されたパケットに、外部ヘッダを付加する。ここで、外部ヘッダ付加部43は、カプセル化の対象となるパケットの内部ヘッダと、ハッシュ計算部42から入力された値を用いて、外部ヘッダを生成する。ハッシュ計算部42から入力された値は、外部ヘッダ中の送信元ポート番号として使用される。
外部ヘッダ照合部45は、受信部34を介して受信したパケットの外部ヘッダの宛先IPアドレスが、その外部ヘッダ照合部45を含むTEP40に割り当てられたIPアドレスであるかを判定する。そのTEP40に割り当てられたIPアドレス宛のパケットが入力された場合、外部ヘッダ照合部45は、得られたパケットを外部ヘッダ除去部46に出力する。外部ヘッダ除去部46は、入力されたパケットの外部ヘッダを除去して、仮想マシン10に出力する。
図5は、照合情報の例を説明する図である。照合情報は、パケット照合部41が検出パケットを検出するために使用する情報であり、予め、パケット照合部41に記憶されているか、パケット照合部41によって、適宜、メモリ102(図8)から読み出される。図5に示す例では、照合情報には、イーサネットヘッダ、IPヘッダ、ICMPヘッダの情報が含まれている。イーサネットヘッダ中の宛先MACアドレス(DA)、送信元MACアドレス(SA)、VLAN ID、Etherタイプの値が照合情報の指定に使用される。また、IPヘッダ中の情報のうち、プロトコル種別、送信元IPアドレス、宛先IPアドレスが照合情報の指定に使用される。ICMPヘッダ中の情報では、タイプとコードの値が照合情報の指定に使用される。なお、「*」は、ワイルドカードを表し、「*」に設定されている欄の値は、いずれの値であっても照合情報に合致していると判断される。
図5の例では、パケットの宛先と送信元に関わらず、Etherタイプ=0x0800、IPヘッダ中のプロトコル種別=1、ICMPヘッダ中のタイプ=8を満たすパケットが、検出パケットとして検出される。ここで、Etherタイプ=0x0800はIPv4が使用されることを意味し、IPヘッダ中のプロトコル種別=1はICMPが使用されることを意味する。さらに、ICMPヘッダ中のタイプ=8は、Echo Requestメッセージを指す。従って、図5の照合情報を使用するパケット照合部41は、任意の装置間で送受信されるEcho Requestメッセージを検出パケットとして検出する。
図6は、通信装置30の処理の例を説明するフローチャートである。以下、通信装置30で行われる検出パケットの送信処理の例を説明する。以下の説明では、仮想マシン10aが通信先の仮想マシン10b(図示せず)との通信経路上の障害の有無を判定するために生成した検出パケットが、TEP40aを介して送信される場合を例として説明する。さらに、図6の説明では、ハッシュ計算部42は、検出パケットごとに異なる値となる変数を生成するためのカウンタを内蔵しているとする。なお、図6は処理の一例であり、例えば、ステップS2とステップS3の処理が並行して行われても良く、また、ステップS4とS5が並行して行われても良い。
仮想マシン10aが仮想マシン10bを宛先として、ICMP Echo Requestメッセージを生成したとする。仮想マシン10aは、生成したパケットを、TEP40aに出力する。すると、TEP40aでは、パケット照合部41、ハッシュ計算部42、外部ヘッダ付加部43に対して、仮想マシン10aで生成されたパケットが入力される(ステップS1)。
ハッシュ計算部42は、入力されたパケットのパケットヘッダの値からハッシュ値を計算する(ステップS2)。なお、ステップS2でのハッシュ値の計算に使用されているヘッダは、仮想マシン10aから入力されたパケットのヘッダであるので、内部ヘッダに相当する。
パケット照合部41は、仮想マシン10aから入力されたパケットのヘッダの情報と照合情報を比較することにより、パケットが照合情報に指定された指定形式に合致するかを判定する(ステップS3)。パケットが照合情報に指定された指定形式に合致する場合、パケット照合部41は、入力されたパケットが検出パケットであると判定する(ステップS3でYes)。すると、パケット照合部41は、検出パケットを検出したことをハッシュ計算部42に通知する。ハッシュ計算部42は、パケット照合部41からの通知を受けて、検出パケットごとに異なる値となる変数を生成するカウンタから、カウンタ値を取得する。ハッシュ計算部42は、ステップS2で計算したハッシュ値にカウンタ値を加算して、新たなハッシュ値とする(ステップS4)。ハッシュ計算部42は、新たなハッシュ値を外部ヘッダ付加部43に出力する。さらに、ハッシュ計算部42は、カウンタ値を更新する(ステップS5)。
外部ヘッダ付加部43は、仮想マシン10aから入力されたパケットの外部ヘッダの送信元ポート番号に、ハッシュ計算部42から入力された値を設定する。外部ヘッダの情報のうち、送信元ポート番号以外の情報は、仮想マシン10aから外部ヘッダ付加部43に入力されたパケットに基づいて生成される。外部ヘッダ付加部43は、生成した外部ヘッダをパケットに付加して、外部ヘッダの付加後のパケットを、送信部33を介して送信する(ステップS6)。
一方、パケットが照合情報に指定された指定形式に合致しない場合、パケット照合部41は、入力されたパケットが検出パケットではないと判定する。すると、ハッシュ計算部42は、パケット照合部41での判定結果に基づいて、ステップS2で計算したハッシュ値を外部ヘッダ付加部43に出力する(ステップS3でNo)。その後、ステップS6の処理が行われる。このとき、外部ヘッダ付加部43では、ハッシュ計算部42から入力された値を送信元ポート番号に設定した外部ヘッダを生成する。従って、検出パケットではないパケットに付加される外部ヘッダ中の送信元ポート番号は、仮想マシン10aからTEP40aに入力されたパケットのヘッダから計算された値である。
図7は、カプセル化されたパケットの例を説明する図である。図7は、ハッシュ計算部42と外部ヘッダ付加部43での処理を図解している。図7に示すパケットは、Etherヘッダ、IPヘッダ、UDPヘッダ、VXLANヘッダ、内部ヘッダ、ペイロードを含む。Etherヘッダ、IPヘッダ、UDPヘッダ、VXLANヘッダが外部ヘッダに含まれている。なお、各ヘッダに含まれている情報要素の種類は、図2を参照しながら述べた通りである。
ステップS11は、ハッシュ計算部42が内部ヘッダのハッシュ値を生成する様子を表わしており、図6のステップS2の処理に相当する。ここで、図6のステップS3を参照しながら説明したように、処理対象のパケットが検出パケットであると判定されると、外部ヘッダ付加部43は、カウンタ値をハッシュ計算結果に加算する(ステップS12)。なお、ステップS12の処理は、図6のステップS4に相当する。図7の例では、ハッシュ計算部42が保持するカウンタでは、ハッシュ計算部42がカウンタ値を読み出すと共に自動加算処理が行われる。その後、ハッシュ計算部42は、ハッシュ値とカウンタ値の和を外部ヘッダ付加部43に出力し、外部ヘッダ付加部43は、ハッシュ計算部42から入力された値を外部ヘッダの送信元ポート番号に設定する(ステップS13)。
図8は、通信装置30のハードウェア構成の例を説明する図である。通信装置30は、プロセッサ101、メモリ102、バス105、ネットワークインタフェース32を備える。通信装置30は、さらに、入力装置103、出力装置104の1つ以上を有していても良い。プロセッサ101は、Central Processing Unit(CPU)を含む任意の処理回路であり、メモリ102に記憶されたプログラムを実行することができる。プロセッサ101は、仮想マシン10やTEP40を実現する。メモリ102には、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ等の半導体メモリが含まれ、処理に用いられるプログラム及びデータを格納する。メモリ102は、仮想マシン10での記憶領域やTEPでのデータの記憶に使用されることにより、仮想マシン10やTEPの一部を実現する。バス105は、プロセッサ101、メモリ102、入力装置103、出力装置104、ネットワークインタフェース32を、相互にデータの出力や入力が可能になるように接続する。ネットワークインタフェース32は、送信部33および受信部34として動作する。入力装置103は、キーボードやマウスなど、情報の入力に使用される任意の装置であり、出力装置104は、ディスプレイを含む表示デバイスなど、データの出力に使用される任意の装置である。
このように、第1の実施形態では、検出パケットの外部ヘッダに含まれる送信元ポート番号は内部ヘッダのハッシュ値と検出パケットごとに異なる値となるカウンタ値の和となる。このため、検出パケットの送信元の装置は、通信先に至る通信経路が冗長化されている場合に、通信先に宛てて複数の検出パケットを送信することにより、各検出パケットが異なる経路を介して送信される可能性を高くできる。例えば、仮想マシン10aが仮想マシン10bとの間の経路の状況を調べるために2つの検出パケットを送ったときに、1回目に送信した検出パケットと2回目に送信した検出パケットが異なる経路に振り分けられる可能性もある。この場合、仮想マシン10は、1回目に送信した検出パケットに対する応答パケットを受信しても、2回目に送信した検出パケットの経路中の障害により検出パケットが宛先に到達しなければ、2回目に送信した検出パケットの応答パケットを受信しない。検出パケットの送信元の仮想マシン10は、検出パケットの送信から所定期間内に応答パケットを受信しない場合は、経路中に障害があると判定する。この結果、第1の実施形態にかかる装置が用いられたシステムでは、冗長化された通信経路での障害の発生を検出しやすくなる。
<第2の実施形態>
図9は、第2の実施形態で用いられる通信装置30に含まれているTEP50の構成の例を説明する図である。TEP50は、記憶部51、複製回数決定部52、パケット複製部53、計数部54を備え、さらに、パケット照合部41、ハッシュ計算部42、外部ヘッダ付加部43、外部ヘッダ照合部45、外部ヘッダ除去部46を備える。なお、第2の実施形態では、仮想マシン10から出力されたパケットは、パケット照合部41とパケット複製部53に入力される。パケット複製部53では、複製回数決定部52で決定された複製回数分だけ、検出パケットが複製される。さらに、記憶部51は、複製される検出パケットのヘッダと、個々の検出パケットの複製回数から求めた応答パケットの受信予測数を記憶している。記憶部51が保持する情報の詳細については図10を参照しながら説明する。パケット照合部41、ハッシュ計算部42、外部ヘッダ付加部43、外部ヘッダ照合部45、外部ヘッダ除去部46で行われる処理は、第1の実施形態と同様である。計数部54では、検出パケットに対して通信先から送信されてきた応答パケットの数を計数する。このとき、計数部54は、適宜、記憶部51中に記憶されている情報を使用する。
なお、TEP50のうち、複製回数決定部52、パケット複製部53、計数部54、パケット照合部41、ハッシュ計算部42、外部ヘッダ付加部43、外部ヘッダ照合部45、外部ヘッダ除去部46は、プロセッサ101によって実現される。記憶部51は、メモリ102によって実現される。
図10は、記憶部51が保持する情報の例を説明する図である。記憶部51が記憶する情報は、検出パケットを一意に特定するエントリ番号に、そのエントリ番号で識別される検出パケットの検出に使用された照合情報と、受信予測数を対応付けたものである。受信予測数は、検出パケットの送信元から検出パケットの宛先に至る経路において障害が発生していない場合に、通信装置30が受信すると見込まれる応答パケットの数である。従って、受信予測数Rは式(1)から計算される。
R=N−M ・・・(1)
ここで、Nは、検出パケットの複製回数であり、Mは検出パケットに対する応答パケットを受信した回数である。従って、検出パケットの送信時には、R=N(複製回数)に設定される。
例えば、パケット照合部41において、IP1のアドレスが割り当てられた送信元からIP2の通信先に宛てたICMP Echo Requestメッセージが検出パケットとして検出されたとする。すると、パケット照合部41から検出パケットのヘッダの情報が入力されることにより、エントリNo.1の照合情報が記録される。ここでは、エントリNo.1の検出パケットのイーサネットヘッダでは、DA=MA1、SA=MA2、VLAN ID=VID1、Etherタイプ=0x0800が設定されているとする。さらに、複製回数決定部52から記憶部51に検出パケットの複製回数が20であることが通知されたとする。すると、エントリNo.1の検出パケットに対する応答パケットを受信していないため、エントリNo.1の受信予測数として、R=N−M=20−0=20が記憶部51に記録される。他の検出パケットについても同様に記憶部51への登録処理が行われる。
図11は、第2の実施形態にかかる通信方法の例を説明する図である。以下、通信装置30a中で動作している仮想マシン10aが、通信装置30b中で動作している仮想マシン10bとの間の通信経路に障害が発生しているかを確認する場合を例として第2の実施形態で行われる処理の例を説明する。また、仮想マシン10aと仮想マシン10bの間の通信経路は、スイッチ20a、スイッチ20b、スイッチ20dを経由する経路と、スイッチ20a、スイッチ20c、スイッチ20dを経由する経路の2つが設定されているとする。さらに、第2の実施形態でも、パケット照合部41は、図6に示す照合情報を使用しているとする。なお、以下の説明では、動作を行っている装置を区別し易くするために、符号の後に動作を行っているTEP50の符号の末尾と同じアルファベットを記載することがある。例えば、複製回数決定部52aは、TEP50aに含まれている複製回数決定部52である。
まず、仮想マシン10aは、仮想マシン10b宛のICMP Echo Requestメッセージを生成したとする。仮想マシン10aは、生成したパケットを、TEP50aに出力する(矢印A1)。
パケット照合部41aは、仮想マシン10から入力されたパケットを照合情報(図6)と比較することにより検出パケットであるかを判定する。パケット照合部41aで行われる判定処理は第1の実施形態と同様である。パケット照合部41aは、検出パケットが入力されたと判定すると、判定結果をハッシュ計算部42aと複製回数決定部52aに通知し、さらに、検出パケットのヘッダの情報を記憶部51aに出力する。ここでは、以下の情報がパケット照合部41aから記憶部51aに出力されたとする。
送信元MACアドレス :MA4
宛先MACアドレス :MA3
VLAN ID :VID2
Etherタイプ :0x0800
プロトコル :ICMP
送信元IPアドレス :IP3
宛先IPアドレス :IP4
ICMPヘッダのタイプ:8(Echo Request)
コード :0
すると、記憶部51aは、パケット照合部41aから通知された照合情報をエントリ番号に対応付けて記憶する。この例では、図10のNo.2のエントリの照合情報が記憶部51aに記録される。
一方、複製回数決定部52aは、パケット照合部41aから通知された検出パケットについての複製回数を決定する。ここで、複製回数決定部52aは、検出パケットの複製回数を2回にすることを決定したとする。複製回数決定部52aは、決定した複製回数を検出パケットのヘッダ情報と対応付けて記憶部51aに出力する。すると、記憶部51aは、通知された複製回数を、通知されたヘッダ情報に対応する受信予測数として記録する。このため、記憶部51aには、図10のNo.2のエントリの情報が格納される。
パケット複製部53aは、複製回数決定部52aが決定した数だけ、仮想マシン10aを入力されたパケットを複製して、ハッシュ計算部42aと外部ヘッダ付加部43aに出力する。ここでは、検出パケットは2つに複製されるので、1つ目の検出パケットをパケットP31、複製された2つ目の検出パケットをパケットP32と記載する。ハッシュ計算部42aおよび外部ヘッダ付加部43aでは、パケットP31とパケットP32は、別個のパケットとして扱われる。このため、第1の実施形態で説明した手順と同様の処理により、パケットP31の外部ヘッダに使用される送信元ポート番号と、パケットP32の外部ヘッダに使用される送信元ポート番号は、互いに異なる値になる。
外部ヘッダ付加部43aは、パケットP31に外部ヘッダを付したパケットを、送信部33aを介して送信したとする。外部ヘッダが付されたパケットP31は、矢印A2に示すように、スイッチ20a、スイッチ20b、スイッチ20dを経由する経路で通信装置30bに到達したとする。
一方、パケットP32に外部ヘッダを付したパケットも、送信部33aを介して送信されたとする。外部ヘッダが付されたパケットP32は、矢印A3に示すように、スイッチ20a、スイッチ20c、スイッチ20dを経由する経路で通信装置30bに到達したとする。
通信装置30bの外部ヘッダ照合部45bは、受信部34bを介して、外部ヘッダが付されたパケットP31を受信したとする。外部ヘッダ照合部45bは、入力されたパケットの外部ヘッダのIPアドレスが、TEP50bに割り当てられたIPアドレスであるかを判定する。ここでは、外部ヘッダのIPアドレスはTEP50bのIPアドレスに設定されているので、外部ヘッダ照合部45bは、パケットを外部ヘッダ除去部46bに出力する。外部ヘッダ除去部46bは、外部ヘッダを除去して得られたパケットP31を計数部54bに出力する。計数部54bは、入力されたパケットのICMPヘッダのタイプが応答パケットであることを示す値(0)であるかを判定する。パケットP31のICMPヘッダのタイプは8であり、応答パケットではない。このため、計数部54bは、パケットを仮想マシン10bに出力する。すると、仮想マシン10bは、パケットP31に応答する応答パケットを生成する。ここで、応答パケットには、以下の情報が含まれる。
送信元MACアドレス :MA3
宛先MACアドレス :MA4
VLAN ID :VID2
Etherタイプ :0x0800
プロトコル :ICMP
送信元IPアドレス :IP4
宛先IPアドレス :IP3
ICMPヘッダのタイプ:0(Echo Reply)
コード :0
仮想マシン10bは、生成した応答パケットを仮想マシン10aに向けて送信する(矢印A4)。
さらに、矢印A3に示す経路により、外部ヘッダが付されたパケットP32がTEP50bに到達したとする。この場合も、外部ヘッダが付されたパケットP31が到達した場合と同様に処理されるので、パケットP32は仮想マシン10bに出力される。すると、仮想マシン10bは、パケットP32に対する応答パケットを生成し、仮想マシン10aに向けて送信する(矢印A5)。なお、パケットP32に対する応答パケットもパケットP31に対する応答パケットと同じ情報を含む。
矢印A4の処理により、パケットP31に対する応答パケットがTEP50b中のパケット照合部41bに入力される。パケット照合部41bでは、応答パケットを検出パケットとは判定しないので、応答パケットが検出パケットではないことを、ハッシュ計算部42bと複製回数決定部52bに通知する。複製回数決定部52bは、パケット照合部41bからの通知により、入力されたパケットが検出パケットではないことをパケット複製部53bに通知する。すると、パケット複製部53bは、仮想マシン10bから入力された応答パケットを複製せずに、ハッシュ計算部42bと外部ヘッダ付加部43bに出力する。
一方、ハッシュ計算部42bは、応答パケットのヘッダから計算したハッシュ値を、外部ヘッダ付加部43bに出力する。すると、外部ヘッダ付加部43bは、パケット複製部53bから出力された応答パケットに、ハッシュ計算部42bから通知された値を送信元ポート番号に設定した外部ヘッダを付加する。外部ヘッダ付加部43bは、外部ヘッダを付加した後の応答パケットを、送信部33bを介して送信する。すると、外部ヘッダ付加後の応答パケットは、矢印A6で示す経路を介してTEP50aに向けて転送される。
矢印A5の処理により、パケットP32に対する応答パケットがパケット照合部41bに入力された場合も、パケットP31に対する応答パケットと同様に処理される。このため、パケットP32に対する応答パケットについても、外部ヘッダの付加後に、矢印A6で示す経路を介してTEP50aに向けて転送される。
パケットP31に対する応答パケットが通信装置30aに到達したとする。通信装置30aの外部ヘッダ照合部45aは、受信部34aを介して、外部ヘッダが付された応答パケットを受信したとする。外部ヘッダ照合部45aは、入力されたパケットの外部ヘッダのIPアドレスがTEP50aに割り当てられたIPアドレスであるため、入力されたパケットを外部ヘッダ除去部46aに出力する。外部ヘッダ除去部46aは、外部ヘッダを除去して得られた応答パケットを計数部54aに出力する。計数部54aは、入力されたパケットのICMPヘッダのタイプが応答パケットであることを示す値(0)であるため、入力されたパケットを記憶部51a中に格納されている情報と比較する。この処理により、計数部54aは、応答パケット中のヘッダの情報が過去にTEP50aから送信したいずれの検出パケットの応答であるかを判定する。すなわち、計数部54aは、応答パケットの送信元アドレスが検出パケットの宛先アドレスに一致し、かつ、応答パケットの宛先アドレスが検出パケットの送信元アドレスに一致する検出パケットのエントリを検索する。ここで、計数部54aに入力された応答パケットは、仮想マシン10bで生成された応答パケットであるため、以下の情報を含む。
送信元MACアドレス :MA3
宛先MACアドレス :MA4
VLAN ID :VID2
Etherタイプ :0x0800
プロトコル :ICMP
送信元IPアドレス :IP4
宛先IPアドレス :IP3
ICMPヘッダのタイプ:0(Echo Reply)
コード :0
従って、計数部54aは、入力されたパケットは、図10のNo.2のエントリの検出パケットに対する応答であると判定する。計数部54aは、No.2のエントリの受信予測数を2から1に変更する。さらに、計数部54aは、応答パケットを破棄する。
その後、パケットP32に対する応答パケットが通信装置30aに到達したとする。すると、パケットP32に対する応答パケットについても、パケットP31に対する応答パケットと同様に、記憶部51中の情報との間の比較が行われる。このため、この場合も、計数部54aは、図10のNo.2のエントリの検出パケットに対する応答を受信したと判定して、No.2のエントリの受信予測数を1から0に変更する。
計数部54aは、受信予測数が0になると、複製した検出パケットの各々に対する応答パケットが得られたと判定する。複製した検出パケットの各々に対する応答パケットが得られた場合、複製した検出パケットの転送に使用されたいずれの転送経路にも障害が無いことが確認されたことになる。すると、計数部54aは、入力された応答パケットを仮想マシン10aに出力する。
仮想マシン10aは、計数部54aから入力された応答パケットを用いて、仮想マシン10aから仮想マシン10bへの間の経路での障害が発生していないと判定する。なお、仮想マシン10aは、応答パケットが入力されると、仮想マシン10aと仮想マシン10bの間の経路が通信可能であることを示す情報を、通信装置30aが備える出力装置104に出力しても良い。すると、仮想マシン10aを用いた処理を行っているオペレータは、仮想マシン10aと仮想マシン10bの間の経路が通信可能であることを認識できる。
一方、検出パケットの1つ以上が宛先の仮想マシン10bに届かなかった場合には、検出パケットの複製回数よりも少ない数の応答パケットしか仮想マシン10aに送られてこない。従って、計数部54aが計算する受信予測数は0にならず、仮想マシン10aには応答パケットが出力されない。この場合、仮想マシン10aは、検出パケットを送信してから応答パケットを待ち合わせる所定期間内に応答パケットを受信しないので、経路中に障害があると判定する。
なお、図11を参照した説明では、応答パケットは矢印A6に示す経路を通る場合を例として説明したが、応答パケットはスイッチ20d、スイッチ20c、スイッチ20aを介して通信装置30aに送信されても良い。さらに、ネットワーク中のスイッチ20の数や検出パケットの複製回数は一例であり、これらの値は実装に応じて変更され得る。
図12は、第2の通信装置の処理の例を説明するフローチャートである。なお、図12の例では、複製回数が予め決定されており、複製回数決定部52は、適宜、メモリ102から複製回数を読み出すものとする。
仮想マシン10で生成された送信パケットがTEP50中のパケット照合部41とパケット複製部53に入力される(ステップS21)。パケット照合部41は、入力されたパケットのヘッダの情報と照合情報を比較することにより、パケットが照合情報に指定された指定形式に合致するかを判定する(ステップS22)。パケットが照合情報に指定された指定形式に合致する場合、入力されたパケットが検出パケットであるので、複製回数決定部52は、予め指定された複製回数を取得する(ステップS22でYes、ステップS23)。さらに、パケットの形式情報と複製回数が記憶部51に登録される(ステップS24)。ステップS24において、パケットの形式情報として、パケットのヘッダ中の情報が使用されるとする。
その後、ループ端L1とL2で挟まれた処理が、処理対象の検出パケットの複製回数と同じ回数だけ行われる。以下、ループ端L1とL2で挟まれた処理を、説明の都合上、「複製ループ」と記載することがある。パケット複製部53は、送出された検出パケットの総数が複製回数と等しいかを判定する(ループ端L1)。送出された検出パケットの総数が複製回数に満たない場合、パケット複製部53は、検出パケットを複製する(ステップS25)。さらに、ハッシュ計算部42は、複製された検出パケットのヘッダから計算したハッシュ値と、カウンタ値から、新たなハッシュ値を計算する。外部ヘッダ付加部43は、ハッシュ計算部42で計算された新たなハッシュ値を送信元ポート番号に指定した外部ヘッダをパケットに付加して送信する(ステップS26)。ハッシュ計算部42は、カウンタ値を更新する(ステップS27)。ステップS27の処理後、ループ端L1以降の処理が繰り返される。パケット複製部53は、送出した検出パケットの総数が複製回数と同じになると、処理が終了する。
一方、パケットが照合情報に指定された指定形式に合致しない場合、入力されたパケットは検出パケットではない(ステップS22でNo)。そこで、外部ヘッダ付加部43は、ハッシュ計算部42で計算されたハッシュ値を送信元ポート番号に指定した外部ヘッダをパケットに付加して送信する(ステップS28)。なお、ステップS28で付加される外部ヘッダの送信元ポート番号は、処理対象となっているパケットのヘッダのハッシュ値である。
図13は、第2の通信装置の処理の例を説明するフローチャートである。外部ヘッダ照合部45は、ネットワークインタフェース32を介して受信パケットを取得する(ステップS41)。外部ヘッダ照合部45は、取得したパケットの外部ヘッダを用いてパケットが受信対象であるかの照合を行い、受信対象であると判定したパケットの外部ヘッダを除去する(ステップS42)。計数部54は、外部ヘッダを除去した後のパケットのヘッダを用いて、入力されたパケットが記憶部51に登録された条件のパケットの応答パケットであるかを判定する(ステップS43)。記憶部51に登録された条件のパケットの応答パケットであると判定すると、計数部54は、受信パケットの条件に対応付けられた受信予測数を1つデクリメントする(ステップS44)。計数部54は、受信予測数が0になったかを判定する(ステップS45)。受信予測数が0ではない場合、計数部54は、入力されたパケットを廃棄して処理を終了する(ステップS45でNo、ステップS46)。
一方、受信予測数が0になった場合、計数部54は、入力されたパケットを仮想マシン10に出力し、処理を終了する(ステップS45でYes、ステップS47)。また、記憶部51に登録された条件のパケットの応答パケットではないと判定した場合も、計数部54は、入力されたパケットを仮想マシン10に出力し、処理を終了する(ステップS43でNo、ステップS47)。
このように、第2の実施形態では、検出パケットが複製された上で、複製された各検出パケットの外部ヘッダに含まれる送信元ポート番号は内部ヘッダのハッシュ値と検出パケットごとに異なる値となるカウンタ値の和となる。このため、送信元の装置から通信先との間の経路の中の障害を検出するための1つの検出パケットを送信することにより、通信先に至る複数の経路について、障害の発生を検出できる可能性がある。従って、第2の実施形態にかかる装置が用いられたシステムでは、通信経路が冗長化されていても、検出パケットの送信元の仮想マシン10が障害の発生を検出しやすくなる。
<第3の実施形態>
第1、第2の実施形態でも複数の経路での障害の発生を検出できる可能性は高められるが、複製された検出パケット同士が同じ経路をたどって送信される可能性もある。そこで、第3の実施形態では、仮想マシン10間の通信に使用されている経路の数に応じて、所定の確率で全ての経路の状況を判定することができるパケットの複製回数を、複製回数に設定する場合の例を説明する。第3の実施形態は、第2の実施形態で複製回数決定部52が行う処理を変形したものである。
なお、仮想マシン10間の通信に使用されている経路の数は、スイッチ20や通信装置30の間での経路情報の交換により通信装置30が求めても良く、また、ネットワーク中の全通信経路の情報を保持している管理装置から通信装置30が取得しても良い。仮想マシン10間の通信に使用されている経路の数の取得方法は、任意の既知の方法である。
仮想マシン10aと仮想マシン10bの間での通信の際に使用可能な経路数がmであるとする。ここで、検出パケットをn個に複製すると、障害の有無を確認できる経路の数をkとする。すると、全ての経路が選択される確率が等しいとすると、k種類の経路での障害の有無を確認できる可能性は式(2)で表わされる。
Figure 0006868958
そこで全ての経路での障害の有無を確認できる可能性は式(3)で表わされる。
Figure 0006868958
式(3)を用いると、全ての経路での障害を検出できる確率(カバー率)と、複製される検出パケットの数の関係を求めることができる。
図14は、複製回数とカバー率の対応の例を説明する図である。図14は、4種類の経路がある場合について、式(3)を用いて全ての経路での障害を検出できる確率と、検出パケットの複製回数の関係を計算した結果の例である。図14の例では、検出パケットの複製回数が4回の場合、4つの検出パケットが用いられるが、全ての経路での障害を検出できる確率は9%である。同様に、検出パケットの複製回数が10回の場合、全ての経路での障害を検出できる確率は78%である。検出パケットの複製回数が15回の場合、全ての経路での障害を検出できる確率は95%である。検出パケットの複製回数が20回の場合、全ての経路での障害を検出できる確率は99%である。
図14のような複製回数とカバー率の関係を表わすテーブルを、複数の経路数について、複製回数決定部52に記憶させることができる。複製回数決定部52は、複製しようとする検出パケットの通信経路の数を取得すると、取得した値に対応付けられたテーブルを参照することによって、所定のカバー率が得られる複製回数を、検出パケットの複製回数として決定する。なお、複製回数が決定された後に行われる処理は、第2の実施形態と同様である。
このように、第3の実施形態では、検出パケットの複製回数を、障害の有無を確認する対象の経路の数に応じて決定する。このため、送信元の装置から通信先との間の経路の中の障害を検出するための1つの検出パケットを送信することにより、通信先に至る全ての経路について、複製回数に対応付けられたカバー率の割合で、全経路での障害の発生の有無を判定できる。従って、第3の実施形態にかかる装置が用いられたシステムでは、通信経路が冗長化されていても、検出パケットの送信元の仮想マシン10が障害の発生を検出しやすくなる。
<第4の実施形態>
第4の実施形態では、管理装置80が通信装置30や転送装置70と通信することにより、各装置を経由した検出パケットの送信元と宛先を特定し、通信経路での障害の有無を判定するシステムの例を説明する。
図15は、通信システムの例を説明する図である。通信システムには、通信を行う通信装置30(30a、30b)と、通信装置30間での通信に使用されるパケットを転送する転送装置70(70a〜70d)、管理装置80が含まれる。以下、通信装置30aと通信装置30bの間には、転送装置70a、転送装置70b、転送装置70dを経由する経路R21と、転送装置70a、転送装置70c、転送装置70dを経由する経路R22があるものとする。また、管理装置80は、通信システム中の各通信装置30および各転送装置70と、制御パケットを送受信するための制御ネットワークを介して接続されているとする。図15では、制御ネットワークの接続を点線で示している。第4の実施形態で使用される通信装置30には、TEP60が含まれている。
図16は、TEP60の構成の例を説明する図である。TEP60は、ヘッダ情報記録部61と管理装置インタフェース62を備える。さらに、TEP60は、パケット照合部41、ハッシュ計算部42、外部ヘッダ付加部43、外部ヘッダ照合部45、外部ヘッダ除去部46、記憶部51、複製回数決定部52、パケット複製部53、計数部54を備える。第4の実施形態においても、ハッシュ計算部42、外部ヘッダ付加部43、外部ヘッダ照合部45、外部ヘッダ除去部46、記憶部51、複製回数決定部52、パケット複製部53、計数部54で行われる処理は、第2または第3の実施形態と同様である。
ヘッダ情報記録部61は、検出パケットによって障害が検出される対象の区間の始点と終点を特定するための情報を記録する。第4の実施形態では、パケット照合部41は、検出パケットを検出すると、検出パケットのヘッダの情報を、記憶部51とヘッダ情報記録部61とに出力する。このため、例えば、ヘッダ情報記録部61には、TEP60から送信される検出パケットの宛先アドレスと送信元アドレスなどが記録されうる。さらに、受信パケットについては、計数部54において外部ヘッダの除去後のパケットが検出パケットであると判定されると、検出パケットのヘッダ情報とその検出パケットに付加されていた外部ヘッダ中の送信元ポート番号とがヘッダ情報記録部61に記録される。なお、第4の実施形態において、外部ヘッダ除去部46は、外部ヘッダの除去後のパケットを、そのパケットに付加されていた外部ヘッダの情報と対応付けて、計数部54に出力するものとする。
管理装置インタフェース62は、ヘッダ情報記録部61の情報を、適宜、管理装置80に送信する。このとき、TEP60が含まれている通信装置30を管理装置80が一意に特定するための情報も、ヘッダ情報記録部61の情報と共に送信される。さらに、管理装置インタフェース62は、管理装置80から照合情報を受信すると、パケット照合部41に照合情報を出力する。パケット照合部41は、管理装置インタフェース62から入力された照合情報を記憶する。なお、管理装置インタフェース62は、ネットワークインタフェース32によって実現される。ヘッダ情報記録部61は、メモリ102によって実現される。
図17は、転送装置70の構成の例を説明する図である。転送装置70は、受信ポート71(71a〜71c)、スイッチ回路72、パケット照合部73、記録部74、管理装置インタフェース75、送信ポート76(76a〜76c)を備える。受信ポート71は、他の転送装置70や通信装置30などからパケットを受信する。スイッチ回路72は、スイッチング処理を行うための回路である。パケット照合部73は、スイッチ回路72でスイッチングされているパケットをスヌーピングすることにより、転送対象となっているパケットのヘッダ情報を取得する。さらに、パケット照合部73は、取得したヘッダ情報を用いて検出パケットの通過をモニタし、得られた結果を記録部74に記録する。例えば、記録部74には、パケット照合部73において検出パケットであると判定されたパケットの外部ヘッダと内部ヘッダの情報が記録される。管理装置インタフェース75は、記録部74に記録されている情報を、適宜、管理装置80に送信する。送信ポート76は、他の転送装置70や通信装置30などにパケットを転送する。
なお、転送装置70は、プロセッサ101、メモリ102、ネットワークインタフェースを備えており、また、図8のようなハードウェアを備えていてもよい。受信ポート71、管理装置インタフェース75、送信ポート76は、ネットワークインタフェースにより実現される。パケット照合部73はプロセッサ101により実現される。さらに、記録部74は、メモリ102によって実現される。
図18は、管理装置80の構成の例を説明する図である。管理装置80は、インタフェース81、記憶部85、処理部90を備える。記憶部85は、トポロジ情報86とアドレス情報87を格納し、記録部88として動作する。処理部90は、設定部91、取得部92、経路候補決定部93、判定部94を有する。インタフェース81は、通信装置30や転送装置70との間で制御パケットを送受信する。管理装置80も図8に示すハードウェアを備えることができる。インタフェース81はネットワークインタフェースにより実現される。処理部90はプロセッサ101により実現され、記憶部85はメモリ102によって実現される。
設定部91は、通信装置30や転送装置70への設定に使用される情報の設定要求や記録の消去の要求などを生成する。取得部92は、定期的に、通信装置30や転送装置70から、検出パケットの通過状況を表す情報を取得する。経路候補決定部93は、通信装置30から取得した検出パケットの送信元と宛先の情報と、トポロジ情報86やアドレス情報87を用いて、検出パケットの送信元と宛先の間の通信に使用されうる通信経路を、経路候補として決定する。経路候補決定部93の処理の詳細については後述する。判定部94は、通信装置30や転送装置70から取得した情報を用いて、経路候補の各々について、その経路候補に含まれる全ての装置で検出パケットの通過が確認できたかを判定する。経路候補に含まれる全ての装置70で検出パケットの通過が確認できた場合、判定部94は、その経路候補に障害が発生していないと判定する。
トポロジ情報86は、通信システム内の通信経路を特定するための接続関係を表す情報である。アドレス情報87は、各通信装置30で動作している仮想マシン等のアドレスを特定する情報である。トポロジ情報86の例は図19、アドレス情報87の例は図20を参照しながら説明する。記録部88には、管理装置80が通信装置30や転送装置70から取得した情報から検出パケットの通過状況が記録される。記録部88で保持される情報の例については後述する。
なお、図18は管理装置80の一例であり、管理装置80は、図8に示すように入力装置103や出力装置104をさらに備えていても良い。管理装置80が出力装置104としてディスプレイを備える場合、判定部94での判定の結果は、ディスプレイに表示され得る。このため、管理装置80を操作しているオペレータは、特定の通信装置間での経路のうちの1つ以上に障害が発生しているかを、判定部94からの出力結果を元に判定することができる。また、オペレータは、ディスプレイに表示された障害の発生状況を用いることにより、ネットワーク中での障害の発生箇所の予測や障害からの復旧のための処理を行うこともできる。一方、管理装置80に入力装置103が含まれている場合、オペレータは、管理装置80にTEP60や転送装置70で使用する照合情報を入力することもできる。すると、管理装置80中の設定部91は、入力装置103から入力された情報を用いて、ネットワーク中のTEP60や転送装置70に、新たな照合情報を設定することができる。
図19は、トポロジ情報86の例を説明する図である。ケースC11は、図15に示すシステムでの各装置間の接続例の詳細を説明する図である。システム中の各装置に対して、管理装置80は、各装置を一意に特定するためのノードIDを割り当てている。ケースC11では、通信装置30aのノードIDはN1、通信装置30bのノードIDはN6であるとする。さらに、ノードIDは、転送装置70aではN2、転送装置70bではN4、転送装置70cではN5、転送装置70dではN3であるとする。図19でも、制御パケットの送受信用の接続は点線で記載されており、データパケットや検出パケットは、太線で示す接続により送受信される。さらに、以下の説明では、通信装置30aにおいて、仮想マシン10a(VMa)と仮想マシン10c(VMc)が動作しているとする。さらに、通信装置30bにおいて、仮想マシン10b(VMb)と仮想マシン10d(VMd)が動作しているとする。
管理装置80は、各装置のどのポートがどの装置に接続されているかも、トポロジ情報86として保持している。ケースC11でのトポロジ情報86は、図19のテーブルT1に示すとおりである。すなわち、通信装置30a(N1)のポートPo1は転送装置70a(N2)のポートPo1に接続されている。転送装置70a(N2)のポートPo2は転送装置70b(N4)のポートPo1に接続され、転送装置70a(N2)のポートPo3は転送装置70c(N5)のポートPo1に接続されている。また、転送装置70d(N3)では、ポートPo1は通信装置30b(N6)のポートPo1に接続され、ポートPo2は転送装置70b(N4)のポートPo2に接続され、ポートPo3は転送装置70c(N5)のポートPo2に接続されている。
図20は、アドレス情報87の例を説明する図である。アドレス情報87は、通信システム内の通信装置30の各々で動作している仮想マシンについて、割り当てられているアドレスと、その仮想マシンが動作している通信装置30のノードIDを対応付けている。図19に示すケースC11のシステムでは、図20に示すアドレス情報87が使用されるとする。すなわち、通信装置30aにおいて、仮想マシン10a(VMa)と仮想マシン10c(VMc)が動作しており、通信装置30aのノードIDはN1である。このため、仮想マシン10aと仮想マシン10cには、N1のノードIDが対応付けられている。さらに、仮想マシン10aにはIPaというアドレスが割り当てられており、仮想マシン10cにはIPcというアドレスが割り当てられているとする。
一方、通信装置30bにおいて、仮想マシン10b(VMb)と仮想マシン10d(VMd)が動作しており、通信装置30bのノードIDはN6である。このため、仮想マシン10bと仮想マシン10dには、N6のノードIDが対応付けられている。さらに、仮想マシン10bにはIPbというアドレスが割り当てられており、仮想マシン10dにはIPdというアドレスが割り当てられているとする。
図19のケースC11に示す通信システムにおいて、仮想マシン10a(VMa)から仮想マシン10b(VMb)に向けて、複数の検出パケットが送信されたとする。なお、複数の検出パケットは、第1の実施形態のように、個別に生成された複数の検出パケットでも良く、また、第2および第3の実施形態で説明したように、TEPにおいて複製された検出パケットであっても良い。検出パケット自体のヘッダには、以下の情報が含まれていたとする。
送信元MACアドレス :MA2
宛先MACアドレス :MA1
VLAN ID :VID1
Etherタイプ :0x0800
プロトコル :ICMP
送信元IPアドレス :IPa
宛先IPアドレス :IPb
ICMPヘッダのタイプ:8(Echo Request)
コード :0
通信装置30aから検出パケットがTEP60aに出力されると、パケット照合部41aは、照合情報(図6)を用いて検出パケットが入力されたことを検出する。パケット照合部41での検出パケットの検出に伴い、記憶部51とヘッダ情報記録部61に、検出パケットのヘッダの情報が出力される。
図21は、ヘッダ情報記録部61が保持する情報の例を説明する図である。検出パケットの送信元の通信装置30aに含まれているヘッダ情報記録部61aは、パケット照合部41aから入力されたヘッダ情報を、検出パケットの情報として記憶する。一方、検出パケットを検出したことがパケット照合部41aからハッシュ計算部42aに通知されることにより、検出パケットのヘッダのハッシュ値とカウンタ値を用いて計算された値が送信元ポート番号として求められる。ハッシュ計算部42aで求められた値は、送信元ポート番号として、外部ヘッダ付加部43aとヘッダ情報記録部61aに出力される。このため、ヘッダ情報記録部61aには、照合情報に合わせて設定された送信元ポート番号も記録される。ここで、仮想マシン10aから仮想マシン10bに至る区間での障害の発生を検出するための検出パケットが送信され、外部ヘッダの送信元ポート番号の値がAと計算されたとする。すると、図21中のエントリNo.1の情報が記録される。なお、外部ヘッダの設定や、外部ヘッダが付加されたパケットの転送処理は第1〜第3の実施形態と同様である。
検出パケットが通信装置30aから転送装置70aに転送されたとする。転送装置70aの受信ポート71は、検出パケットが入力されると、スイッチ回路72でのスイッチング処理により出力先となる送信ポート76から検出パケットを出力する。さらにこのとき、パケット照合部73は、スイッチ回路72でのスイッチング処理の対象となっているパケットをスヌーピングすることにより、転送対象のパケットの外部ヘッダと内部ヘッダの情報を取得して、パケットの種類を特定する。パケット照合部73は、パケットの内部ヘッダを用いて検出パケットを特定する。なお、パケット照合部73が検出パケットを特定する方法は、通信装置30中のパケット照合部41などと同様である。パケット照合部73は、カプセル化された検出パケットが転送対象であると判定すると、外部ヘッダと内部ヘッダの両方の情報を記録部74に記録する。このため、各転送装置70では、外部ヘッダに使用されている外部ヘッダ中の送信元ポート番号と、検出パケット自体のヘッダが記録部74に記録される。
転送装置70aからパケットを受信した他の転送装置70においても同様の処理が行われる。従って、検出パケットをカプセル化したパケットを受信した転送装置70には、記録部74において、その検出パケットの外部ヘッダと内部ヘッダの情報が格納される。
さらに、検出パケットを受信した通信装置30bにおいて、受信パケットからの外部ヘッダの除去などの処理は、第1〜第3の実施形態と同様に行われる。外部ヘッダ除去部46は、外部ヘッダの除去後のパケットを計数部54に出力する。計数部54は、入力されたパケットが検出パケットである場合、検出パケットのヘッダ情報と、外部ヘッダ中の送信元ポート番号をヘッダ情報記録部61に出力する。ヘッダ情報記録部61は、計数部54から取得したヘッダ情報と、外部ヘッダ中の送信元ポート番号も、到達した検出パケットの情報として記録する。そのため、検出パケットが到達した通信装置30においても、検出パケットの情報がヘッダ情報記録部61に記録される。
なお、通信装置30では、ヘッダ情報記録部61に記録されている情報と重複するヘッダの情報は、重複して登録しないものとする。同様に、転送装置70においても、記録部74に既に登録されているヘッダ情報は、重複してスイッチ回路72に登録されないものとする。ただし、照合情報(内部ヘッダの情報)が一致しても、外部ヘッダの送信元ポート番号が異なる場合は、異なる情報として、ヘッダ情報記録部61や記録部74に登録される。例えば、TEP60aにおいて、仮想マシン10aから仮想マシン10bに送信した検出パケットについて、外部ヘッダ中の送信元ポートアドレス=Bがハッシュ計算部42aで計算されたとする。この場合、図21のエントリNo.2の情報が追加される。
管理装置80の取得部92は、定期的に、通信装置30に対して発行情報を要求する。さらに、転送装置70に対しては、取得部92は、通過情報を要求する。ここで、発行情報は、その通信装置30が送信した検出パケットの情報であるが、その通信装置30で動作している仮想マシン宛の検出パケットを通過させた場合には、通過させた検出パケットの内部ヘッダの情報と外部ヘッダ中の送信元ポート番号も含む。通過情報は、転送装置70を通過した検出パケットの情報である。取得部92は、発行情報や通過情報の要求を、インタフェース81を介して送信する。
各通信装置30では、TEP60中の管理装置インタフェース62を介して発行情報の要求を取得する。管理装置インタフェース62は、発行情報の要求の要求を取得すると、ヘッダ情報記録部61中の情報を管理装置80に送信する。一方、転送装置70では、管理装置インタフェース75を介して、通過情報の要求を取得する。管理装置インタフェース75は、通過情報が要求されると、記録部74の情報を管理装置80に送信する。
図22は、制御パケット中の情報の例を説明する図である。パケットP21は、発行情報を通知する制御パケット中のペイロードの例を示す。発行情報は、その情報を送信する通信装置30を識別するノードIDに対応付けて送信される。なお、発行情報は、ヘッダ情報記録部61に記録された情報である。一方、パケットP22は、通過情報を通知する制御パケット中のペイロードの例を示す。通過情報は、その情報を送信する転送装置70を識別するノードIDに対応付けて送信される。なお、通過情報は、記録部74に記録された外部ヘッダと内部ヘッダの情報である。
例えば、通信装置30aが仮想マシン10aから仮想マシン10bに宛てた検出パケットが送信された場合に、TEP60aに対して発行情報の要求が管理装置80から出されたとする。すると、管理装置インタフェース62は、発行情報として、ノードID(N1)と共に、ヘッダ情報記録部61中に記憶された全ての情報を、発行情報として管理装置80に送信する。なお、複数の区間についての検出パケットが仮想マシン10で生成された場合、ヘッダ情報記録部61には、各区間での障害検出用の検出パケットの情報が記録されているので、発行情報には複数の区間の情報が含められる。例えば、仮想マシン10aから仮想マシン10bに至る区間と仮想マシン10dに至る区間についての障害の検出に使用する検出パケットが並行して仮想マシン10aで生成されると、それらの情報が1つの発行情報に含められる。
一方、管理装置80から通信装置30b中の管理装置インタフェース62bに発行情報が要求されたとする。ここで、通信装置30b中の仮想マシン10で検出パケットが生成されていないが、TEP60bは、仮想マシン10aから仮想マシン10bに宛てた検出パケットを通過させているとする。この場合、ヘッダ情報記録部61bには、仮想マシン10aから仮想マシン10bに宛てた検出パケットの内部ヘッダの情報と、その検出パケットに付加されていた外部ヘッダの送信元ポート番号が含まれている。
図23は、管理装置80の処理の例を説明するフローチャートである。以下、図23を参照しながら第4の実施形態で行われる判定処理の例を説明する。なお、図23は一例である。例えば、ステップS62とS63の順序が変更されるなど、実装に応じて処理の手順が変更されても良い。
経路候補決定部93は、トポロジ情報86を参照し、通信装置30と転送装置70の接続関係を取得する(ステップS61)。設定部91は、通信装置30と転送装置70にコマンドを送ることにより、各装置で使用される照合情報の設定を行う(ステップS62)。設定部91は、通信装置30と転送装置70にコマンドを送ることにより、通信装置30中のヘッダ情報記録部61に記録されている発行情報や、転送装置70中の記録部74に記録されている通過情報を消去する(ステップS63)。
発行情報や通過情報が消去された後も、通信装置30中の仮想マシン10から通信先に向けた検出パケットの送信等は行われる。このため、ステップS63の処理が行われた後も、図21、図22を参照しながら説明したように、発行情報や通過情報が更新される。そこで、ステップS63の処理を行ってから予め定められた時間が経過後、取得部92は、通信装置30や転送装置70にコマンドを送ることにより、発行情報と通過情報を取得する(ステップS64)。
次に、ループ端L11とL12で挟まれた処理が、通信装置30から通知された検出パケットの送信に関する記録のエントリの各々について行われる。以下、ループ端L11とL12で挟まれた処理を、説明の都合上、「経路数決定ループ」と記載する。経路候補決定部93は、通信装置30から通知された発行情報中で、検出パケットの送信に関する記録のエントリの各々について、送信元から宛先までの経路の数を決定したかを判定する(ループ端L11)。全ての検出パケットの送信に関するエントリについて、経路数が決定されていない場合、経路候補決定部93は、処理対象のエントリRを選択し、エントリRについて、以後の処理に使う変数D、M、Nの値を設定する(ステップS65)。すなわち、変数Nを、処理対象のエントリの情報(R)を通知した通信装置30のノードIDに設定する。変数Dを、処理対象のエントリの情報(R)で送信されている検出パケットでの宛先アドレスに設定する。変数Mを、アドレス情報87において変数Dのアドレスに対応付けられているノードIDに設定する。
例えば、図21のエントリNo.1の情報が処理対象になったとする。この場合、以下の情報が経路候補決定部93に読み込まれる。
通知元のノードID :N1(通信装置30a)
宛先IPアドレス(内部ヘッダ):IPb
送信元ポート番号(外部ヘッダ):A
この場合、経路候補決定部93は、変数Nを、N1に設定する。ここで、処理対象となるエントリは発行情報中で検出パケットの送信に関する情報を格納したエントリである。従って、変数Nの設定は、検出パケットの送信元の仮想マシンが動作している装置を特定する処理に相当する。次に、経路候補決定部93は、変数DをIPbに設定する。さらに、経路候補決定部93は、アドレス情報87(図20)を用いて、IPbのアドレスに対応付けられている装置のノードIDがN6であることを特定すると共に、変数MをN6に設定する。ここで、アドレス情報87は、各仮想マシン10のアドレスと、その仮想マシン10が動作している通信装置30とを対応付けている。このため、変数Mの設定処理は、処理対象となっている検出パケットの宛先となっている仮想マシンが動作している通信装置30を特定する処理に相当する。換言すると、変数Nと変数Mを設定することにより、検出パケットの送信元を収容している物理的な通信装置30のノードIDと、検出パケットの宛先を収容している物理的な通信装置30のノードIDを特定していることになる。
変数の設定が終わると、経路候補決定部93は、変数NのノードIDが割り当てられた通信装置30から、変数MのノードIDが割り当てられた通信装置30に至る経路の候補を求め、得られた候補の数をCとする(ステップS66)。例えば、図21のエントリNo.1の情報が処理対象である場合、ノードN1(通信装置30a)からノードN6(通信装置30b)に至る経路の数が、トポロジ情報86を用いて特定される。この例では、図15に示すとおり、経路R21と経路R22があるので、経路候補数Cは2である。
経路候補数が決まると、ループ端L21とL22で挟まれた処理が、経路候補の各々について行われる。以下、ループ端L21とL22で挟まれた処理を、説明の都合上、「判定ループ」と記載する。判定部94は、経路候補の各々について、送信元から宛先までの判定ループの処理を行ったかを判定する(ループ端L21)。経路候補の各々について、送信元から宛先までの判定ループの処理を行っていない場合、判定部94は、処理対象の経路Pについて、経路Pに含まれる各装置の各々から、処理対象のエントリRに対応する情報が得られているかを判定する。ここで、処理対象のエントリRに対応する情報とは、処理対象のエントリで通知された外部ヘッダの送信元ポート番号と検出パケットの内部ヘッダが対応付けられた情報である。経路Pに含まれる通信装置30と転送装置70の全てから、処理対象のエントリRに対応する情報が得られている場合、その経路では障害が発生しているかの判定処理の対象としてカバーされていると判定する(ステップS67)。なお、ステップS67の処理でカバーされたことが確認された経路では、経路中の全ての装置を検出パケットが通過しているので、障害は発生していない。ステップS67の処理後、ループ端L21以降の処理が繰り返される。判定ループの処理が終わると、ループ端L11以降の処理が繰り返される。
その後、予め定められた記録取得の間隔が経過したか、外部から記録消去のコマンドを受信すると、設定部91は、ステップS63の処理を行う(ステップS68でYes)。その後、ステップS64以降の処理が行われる。一方、予め定められた記録取得の間隔が経過しておらず、外部から記録消去のコマンドも受信していない場合、ステップS64以降の処理が行われる(ステップS68でNo)。
図24は、記録部88が保持する情報の例を説明する図である。以下、図24を参照しながら、判定ループでの処理の例を説明する。記録部88は、取得部92の処理によって取得された発行情報や通過情報を、ノードID別に記録する。図24では分かりやすくするために、仮想マシン10aから仮想マシン10bに送信された検出パケットに関する情報のみを図示しているが、実際には、複数の検出パケットに関する情報が並列的に記録部88に記録され得る。
時刻t1の段は、図23のステップS63により、管理装置80から各装置に対して発行情報や通過情報の消去が要求された直後の記録部88の状態を示す。管理装置80中の91は、各装置に対して発行情報や通過情報の消去を要求すると共に、記録部88に記録されている情報も初期化するので、管理装置80に過去に通知された情報が消去されている。
時刻t2において、取得部92が、通信装置30から発行情報を取得すると共に、転送装置70から通過情報を取得したとする。すると、取得部92は、取得した情報を、その情報を通知してきた装置に割り当てられたノードIDごとに分類して記録部88に記録する。時刻t2では、ノードID=N1、N2、N3、N4、N6が割り当てられた各装置から、送信元ポート番号=Aを含む外部ヘッダを仮想マシン10aから仮想マシン10bに送信された検出パケットに付加したパケットの情報が得られたとする。図24では、仮想マシン10aから仮想マシン10bに送信された検出パケットの情報のみを抽出して記載しているので、見やすくするために、外部ヘッダの送信元ポートの値を含む四角形を、各装置から得られた情報として図示する。
時刻t2の情報が得られた後で、判定ループにおいて、判定部94は、経路R21と経路R22の各々について、検出パケットの通過が確認できているかを判定する。時刻t2では、通信装置30a(N1)、転送装置70a(N2)、転送装置70d(N3)、転送装置70b(N4)、通信装置30b(N6)の各々で、送信元ポート番号=Aの検出パケットが確認されている。従って、判定部94は、時刻t2の時点では、経路R21を介して検出パケットが送信されていると判定する。一方、経路R22については、時刻t2では、検出パケットが送信されていることが確認されていない。
時刻t3において、取得部92が、通信装置30から発行情報を取得すると共に、転送装置70から通過情報を取得したとする。すると、時刻t2での処理と同様に記録部88への記録が行われる。図24に示すように、時刻t3では、ノードID=N1、N2、N3、N5、N6が割り当てられた各装置から、送信元ポート番号=Bを含む外部ヘッダを仮想マシン10aから仮想マシン10bに送信された検出パケットに付加したパケットの情報が得られたとする。
時刻t3の情報が得られた後で、判定ループにおいて、判定部94は、経路R21と経路R22の各々について、検出パケットの通過が確認できているかを判定する。経路R21については、時刻t2に得られた情報により、検出パケットの通過が確認できている。時刻t3で新たに得られた情報では、通信装置30a(N1)、転送装置70a(N2)、転送装置70d(N3)、転送装置70c(N5)、通信装置30b(N6)の各々で、送信元ポート番号=Bの検出パケットが確認されている。従って、判定部94は、時刻t3の時点では、経路R22を介して検出パケットが送信されていると判定する。このため、判定部94は、経路R21と経路R22の両方について、検出パケットが問題なく通過したと判定する。
なお、図18を参照しながら説明したように、管理装置80が出力装置104を保持している場合は、判定部94での判定結果を出力装置104に出力することができる。例えば、図24に示すような障害を検出する対象となっている各経路での検出パケットの通過状況の経時変化と、経路ごとの障害の有無が、ディスプレイ上に表示されても良い。すると、オペレータは、検出結果を用いて、迂回路の設定やネットワークのメンテナンスを行うことができる。
以上説明したように、第4の実施形態では、管理装置80が通信装置30間の通信に使用される全ての経路を特定した上で、各経路を通過したパケットのヘッダの情報を用いて経路ごとに検出パケットの通過が可能であるかを判定できる。従って、複数の経路が設定されているシステムにおいても、確実に全ての経路での障害の有無を判定することができる。
<その他>
なお、実施形態は上記に限られるものではなく、様々に変形可能である。以下にその例をいくつか述べる。
検出パケットごとに異なる値となる変数がカウンタによって生成される場合を例として説明したが、これは一例に過ぎない。例えば、検出パケットごとに異なる値となる変数は、2つおきや3つおきの値など、等差数列上の値になっていても良い。また、乱数表などの所定のテーブルをハッシュ計算部42が用いることにより、変数を生成しても良い。さらに、以上の説明では、検出パケットごとに異なる値となる変数が内部ヘッダのハッシュ値に加算される場合を例として説明したが、検出パケットごとに異なる値となる変数とハッシュ値の間の演算は実装に応じて任意に変更され得る。例えば、加減乗除の1つ以上が演算として用いられても良い。
以上の説明では、通信装置において、TEPが仮想スイッチ31に含まれている場合を例として説明したが、通信装置が物理スイッチを含んでいる場合、TEPはその物理スイッチに含まれていても良い。その場合、仮想マシン10の代わりに、物理スイッチに接続された物理的な通信装置が仮想マシン10と同様に、検出パケットの送受信を行ってもよい。
検出パケットごとに異なる値となる変数との演算の結果、内部ヘッダのハッシュ値と同じ値が得られる場合もありうる。ただし、1つの検出パケットについての演算結果が、内部ヘッダのハッシュ値と一致しても、演算に使用される変数は検出パケットごとに異なるので、他の検出パケットでは、内部ヘッダのハッシュ値とは異なる値が演算結果として得られる確率が高い。
さらに、検出パケットが送受信される通信装置30間での通信に使用される経路の数に応じて、各検出パケットの複製回数が決定されてもよい。例えば、複製回数決定部52は、検出パケットの宛先に応じて、検出パケットが通過可能な経路数を求め、その経路数の全てについての障害の発生の有無を判定できる可能性が所定以上となる複製回数を決定してもよい。なお、経路数の求め方は、通信装置30とスイッチ20の間の通信によって行われてもよく、管理装置80のようにネットワークの経路の情報を保持している装置から経路を複製回数決定部52が取得してもよい。
以上の説明では、カプセル化の際にVXLANが用いられる場合を例として説明したが、以上で説明したシステムは、カプセル化を伴う任意の通信システムに適用可能である。例えば、MAC−in−MACが用いられるシステムやIPv4とIPv6が併用されるシステムにも、以上で説明した処理が適用され得る。
さらに、実装に応じて、TEP中での処理も変更され得る。例えば、ヘッダ情報記録部61は、ハッシュ計算部42から送信元ポート番号を取得する代わりに、外部ヘッダ付加部43から外部ヘッダの情報を取得してもよい。
第2の実施形態では、検出パケットの複製回数から、応答パケットの受信数の予測数を求めた上で、予測数の初期値分だけの応答パケットを受信したかを判定するために、記憶部51中の予測値の値を応答パケットの受信のたびにデクリメントする例を述べた。しかし、図13などを用いて説明した方法は一例であり、実装に応じて、予測数の初期値分だけの応答パケットを受信したかを判定できる任意の方法が使用可能である。例えば、予測数の初期値を保存すると共に、応答パケットの受信数をインクリメントし、予測数の初期値と応答パケットの受信数が等しくなったときに、応答パケットを仮想マシン10に出力するように、計数部54が動作しても良い。
上述の第1〜第4の実施形態を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
送信対象のパケットについて、宛先装置に至る経路の選択に使用される情報として第1の値を前記パケットに含まれる情報から算出し、
前記パケットが前記宛先装置との間の通信経路の障害の検出に用いる検出パケットである場合、前記第1の値と、前記検出パケットを送信するたびに変更される値との演算により、第2の値を求めると共に、前記検出パケットに前記第2の値を含む外部ヘッダを付加し、
前記パケットが前記検出パケットではない場合、前記パケットに前記第1の値を含む外部ヘッダを付加し、
前記外部ヘッダを付加したパケットを宛先装置に向けて送信する
処理を情報処理装置に行わせることを特徴とするパケット送信プログラム。
(付記2)
前記検出パケットを複製することにより、第1のパケットと第2のパケットを生成し、
前記第1のパケットに付加する外部ヘッダに前記第2の値として含める値を、前記第1の値と、前記検出パケットを送信するたびに変更される値として選択された第3の値との演算で得られる値に設定し、
前記第2のパケットに付加する外部ヘッダに前記第2の値として含める値を、前記第1の値と、前記検出パケットを送信するたびに変更される値として選択された第4の値との演算で得られる値に設定する
処理を前記情報処理装置に行わせることを特徴とする付記1に記載のパケット送信プログラム。
(付記3)
前記検出パケットの複製回数を用いて、前記検出パケットに対する応答パケットの受信数の予測数を求め、
前記応答パケットの受信数と前記予測数が等しくなるまで、前記応答パケットを前記検出パケットの入力元に出力せず、
前記応答パケットの受信数と前記予測数が等しい場合、前記応答パケットの1つを、前記入力元に出力する
処理を前記情報処理装置に行わせることを特徴とする付記2に記載のパケット送信プログラム。
(付記4)
前記検出パケットの送信元から前記宛先装置までの間の経路の総数と、前記総数の経路の各々を複製された検出パケットが1つ以上経由する確率を用いて、前記検出パケットの複製回数を決定する
処理を前記情報処理装置に行わせることを特徴とする付記2または3に記載のパケット送信プログラム。
(付記5)
前記第1の値を、前記検出パケットに付加する外部ヘッダ中の送信元ポート番号として計算し、
前記第1のパケットに付加される外部ヘッダの送信元ポート番号を、前記第3の値と前記第1の値の演算で得られる値に設定し、
前記第2のパケットに付加される外部ヘッダの送信元ポート番号を、前記第4の値と前記第1の値の演算で得られる値に設定する
処理を前記情報処理装置に行わせることを特徴とする付記2〜4のいずれか1項に記載のパケット送信プログラム。
(付記6)
送信対象のパケットについて、宛先装置に至る経路の選択に使用される情報として第1の値を前記パケットに含まれる情報から計算するとともに、前記パケットが前記宛先装置との間の通信経路の障害の検出に用いる検出パケットである場合、前記第1の値と、前記検出パケットを送信するたびに変更される値との演算により、第2の値を計算する計算部と、
前記検出パケットに前記第2の値を含む外部ヘッダを付加するとともに、前記送信対象のパケットのうちで前記検出パケットではないパケットに前記第1の値を含む外部ヘッダを付加する付加部と、
前記外部ヘッダを付加したパケットを宛先装置に向けて送信する送信部
を備えることを特徴とする情報処理装置。
(付記7)
前記検出パケットが入力されると、前記検出パケットを複製することにより、第1のパケットと第2のパケットを生成する複製部
をさらに備え、
前記付加部は、
前記第1のパケットに付加する外部ヘッダに前記第2の値として含める値を、前記第1の値と、前記検出パケットを送信するたびに変更される値として選択された第3の値との演算で得られる値に設定し、
前記第2のパケットに付加する外部ヘッダに前記第2の値として含める値を、前記第1の値と、前記検出パケットを送信するたびに変更される値として選択された第4の値との演算で得られる値に設定する
ことを特徴とする付記6に記載の情報処理装置。
(請求項8)
前記検出パケットの複製回数から求めた前記検出パケットに対する応答パケットの受信数の予測数を記憶する記憶部と、
前記検出パケットに対する応答パケットの受信数を計数する計数部
をさらに備え、
前記計数部は、
前記応答パケットの受信数と前記予測数が等しくなるまで、前記応答パケットを前記検出パケットの入力元に出力せず、
前記応答パケットの受信数と前記予測数が等しい場合、前記応答パケットの1つを、前記入力元に出力する
ことを特徴とする付記7に記載の情報処理装置。
(付記9)
前記検出パケットの送信元から前記宛先装置までの間の経路の総数と、前記総数の経路の各々を複製された検出パケットが1つ以上経由する確率を用いて、前記検出パケットの複製回数を決定する決定部
をさらに備えることを特徴とする付記7または8に記載の情報処理装置。
(付記10)
前記計算部は、
前記第1の値を、前記検出パケットに付加する外部ヘッダ中の送信元ポート番号として計算し、
前記付加部は
前記第1のパケットに付加される外部ヘッダの送信元ポート番号を、前記第3の値と前記第1の値の演算で得られる値に設定し、
前記第2のパケットに付加される外部ヘッダの送信元ポート番号を、前記第4の値と前記第1の値の演算で得られる値に設定する
ことを特徴とする付記7〜9のいずれか1項に記載の情報処理装置。
(付記11)
送信対象のパケットについて、宛先装置に至る経路の選択に使用される情報として第1の値を前記パケットに含まれる情報から算出し、
前記パケットが前記宛先装置との間の通信経路の障害の検出に用いる検出パケットである場合、前記第1の値と、前記検出パケットを送信するたびに変更される値との演算により、第2の値を求めると共に、前記検出パケットに前記第2の値を含む外部ヘッダを付加し、
前記パケットが前記検出パケットではない場合、前記パケットに前記第1の値を含む外部ヘッダを付加し、
前記外部ヘッダを付加したパケットを宛先装置に向けて送信し、
前記検出パケットに対する応答パケットが得られるかを判定することにより前記障害を検出する
処理を情報処理装置が行うことを特徴とする障害検出方法。
(付記12)
前記情報処理装置を含むネットワーク中の装置と通信可能な管理装置が、
前記情報処理装置から前記宛先装置に至る経路の候補を決定し、
前記情報処理装置、前記宛先装置、前記情報処理装置と前記宛先装置の間で送受信されるパケットを転送する転送装置の各々から、前記検出パケットに外部ヘッダが付加されたパケットの通過状況を取得し、
前記経路の候補の各々について、当該経路の候補に含まれる転送装置から取得した前記通過状況を用いて、当該経路の候補を介して、前記検出パケットに外部ヘッダが付加されたパケットが前記宛先装置に到達したかを判定することにより、障害の発生を検出する
ことを特徴とする付記11に記載の障害検出方法。
(付記13)
前記通過状況として通知される情報には、前記検出パケットの外部ヘッダに前記第2の値として設定された値が含まれており、
第1の検出パケットの外部ヘッダには、前記第2の値として、前記第1の値と前記検出パケットを送信するたびに変更される値として選択された第3の値との演算で得られる値が設定され、かつ、第2の検出パケットの外部ヘッダには、前記第2の値として、前記第1の値と、前記検出パケットを送信するたびに変更される値として選択された第4の値との演算で得られる値が設定された場合、
前記管理装置は、
前記第1の値と前記第3の値の演算で得られる値を前記通過情報に含めて通知した装置を経由する経路を前記第1の検出パケットが通過したと判定するとともに、前記第1の値と前記第4の値の演算で得られる値を前記通過情報に含めて通知した装置を経由する経路を前記第2の検出パケットが通過したと判定する
ことを特徴とする付記12に記載の障害検出方法。
2 ノード
5、40、50、60 TEP
10 仮想マシン
15 ネットワーク
20 スイッチ
25 サーバ
30 通信装置
31 仮想スイッチ
32 ネットワークインタフェース
33 送信部
34 受信部
41、73 パケット照合部
42 ハッシュ計算部
43 外部ヘッダ付加部
45 外部ヘッダ照合部
46 外部ヘッダ除去部
51、85 記憶部
52 複製回数決定部
53 パケット複製部
54 計数部
61 ヘッダ情報記録部
62、75 管理装置インタフェース
70 転送装置
71 受信ポート
72 スイッチ回路
74、88 記録部
76 送信ポート
80 管理装置
81 インタフェース
86 トポロジ情報
87 アドレス情報
90 処理部
91 設定部
92 取得部
93 経路候補決定部
94 判定部
101 プロセッサ
102 メモリ
103 入力装置
104 出力装置
105 バス

Claims (6)

  1. 送信対象のパケットについて、宛先装置に至る経路の選択に使用される情報として第1の値を前記パケットに含まれる情報から算出し、
    前記パケットが前記宛先装置との間の通信経路の障害の検出に用いる検出パケットである場合、前記第1の値に対する演算であって、前記第1の値と、前記演算が行われるたびに変更される変数の値との前記演算により、第2の値を求めると共に、前記第2の値を前記経路の選択に使用される送信元ポート番号の情報に設定した外部ヘッダを、前記検出パケットに付加し、
    前記パケットが前記検出パケットではない場合、前記第1の値を前記経路の選択に使用される送信元ポート番号の情報に設定した外部ヘッダを、前記パケットに付加し、
    前記外部ヘッダを付加したパケットを宛先装置に向けて送信する
    処理を情報処理装置に行わせることを特徴とするパケット送信プログラム。
  2. 前記パケットが前記検出パケットである場合、前記検出パケットを複製して複数の検出パケットを生成する処理を前記情報処理装置に更に行わせ、
    前記複数の検出パケットの各々についての前記演算では、前記演算が行われるたびに変更される前記変数の値として、前記複数の検出パケットの各々で互いに異なる値を用いる、
    ことを特徴とする請求項1に記載のパケット送信プログラム。
  3. 前記検出パケットの複製により生成する前記複数の検出パケットのパケット数を用いて、前記検出パケットに対する応答パケットの受信数の予測数を求め、
    前記応答パケットの受信数と前記予測数が等しくなるまで、前記応答パケットを前記検出パケットの入力元に出力せず、
    前記応答パケットの受信数と前記予測数が等しい場合、前記応答パケットの1つを、前記入力元に出力する
    処理を前記情報処理装置に行わせることを特徴とする請求項2に記載のパケット送信プログラム。
  4. 前記検出パケットの送信元から前記宛先装置までの間の経路の総数と、前記総数の経路の各々を複製された検出パケットが1つ以上経由する確率を用いて、前記検出パケットの複製により生成する前記複数の検出パケットのパケット数を決定する
    処理を前記情報処理装置に行わせることを特徴とする請求項2または3に記載のパケット送信プログラム。
  5. 送信対象のパケットについて、宛先装置に至る経路の選択に使用される情報として第1の値を前記パケットに含まれる情報から計算するとともに、前記パケットが前記宛先装置との間の通信経路の障害の検出に用いる検出パケットである場合、前記第1の値に対する演算であって、前記第1の値と、前記演算が行われるたびに変更される変数の値との前記演算により、第2の値を計算する計算部と、
    前記第2の値を前記経路の選択に使用される送信元ポート番号の情報に設定した外部ヘッダを、前記検出パケットに付加するとともに、前記第1の値を前記経路の選択に使用される送信元ポート番号の情報に設定した外部ヘッダを、前記送信対象のパケットのうちで前記検出パケットではないパケットに付加する付加部と、
    前記外部ヘッダを付加したパケットを宛先装置に向けて送信する送信部
    を備えることを特徴とする情報処理装置。
  6. 送信対象のパケットについて、宛先装置に至る経路の選択に使用される情報として第1の値を前記パケットに含まれる情報から算出し、
    前記パケットが前記宛先装置との間の通信経路の障害の検出に用いる検出パケットである場合、前記第1の値に対する演算であって、前記第1の値と、前記演算が行われるたびに変更される変数の値との前記演算により、第2の値を求めると共に、前記第2の値を前記経路の選択に使用される送信元ポート番号の情報に設定した外部ヘッダを、前記検出パケットに付加し、
    前記パケットが前記検出パケットではない場合、前記第1の値を前記経路の選択に使用される送信元ポート番号の情報に設定した外部ヘッダを、前記パケットに付加し、
    前記外部ヘッダを付加したパケットを宛先装置に向けて送信し、
    前記検出パケットに対する応答パケットが得られるかを判定することにより前記障害を検出する
    処理を情報処理装置が行うことを特徴とする障害検出方法。
JP2015254601A 2015-12-25 2015-12-25 パケット送信プログラム、情報処理装置、および、障害検出方法 Active JP6868958B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015254601A JP6868958B2 (ja) 2015-12-25 2015-12-25 パケット送信プログラム、情報処理装置、および、障害検出方法
US15/385,134 US10313182B2 (en) 2015-12-25 2016-12-20 Apparatus and method to detect a fault in a communication path by using a detection packet

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015254601A JP6868958B2 (ja) 2015-12-25 2015-12-25 パケット送信プログラム、情報処理装置、および、障害検出方法

Publications (2)

Publication Number Publication Date
JP2017118438A JP2017118438A (ja) 2017-06-29
JP6868958B2 true JP6868958B2 (ja) 2021-05-12

Family

ID=59086690

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015254601A Active JP6868958B2 (ja) 2015-12-25 2015-12-25 パケット送信プログラム、情報処理装置、および、障害検出方法

Country Status (2)

Country Link
US (1) US10313182B2 (ja)
JP (1) JP6868958B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10412005B2 (en) * 2016-09-29 2019-09-10 International Business Machines Corporation Exploiting underlay network link redundancy for overlay networks
US10291500B2 (en) 2017-01-23 2019-05-14 International Business Machines Corporation Network interface port management
US10554692B2 (en) * 2017-06-16 2020-02-04 Google Llc Cross-origin communication in restricted computer environments
US11106656B2 (en) * 2017-07-28 2021-08-31 Cisco Technology, Inc. Method and apparatus for a software-seamed and augmented view of an asynchronous network fabric
EP3679685A1 (en) * 2017-09-08 2020-07-15 Nchain Holdings Limited Improved time lock technique for securing a resource on a blockchain
WO2023013066A1 (ja) * 2021-08-06 2023-02-09 日本電信電話株式会社 監視装置、監視方法、および、監視プログラム
US20230299895A1 (en) * 2022-03-15 2023-09-21 Microsoft Technology Licensing, Llc Packet level redundancy in distributed computing systems

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4598462B2 (ja) 2004-09-16 2010-12-15 富士通株式会社 L2−vpnサービスを提供するプロバイダ網、及びエッジルータ
WO2014068616A1 (ja) * 2012-10-31 2014-05-08 富士通株式会社 通信制御方法、ネットワークシステム、および通信装置
US9306830B2 (en) * 2013-01-30 2016-04-05 Accedian Networks Inc. Layer-3 performance monitoring sectionalization
US10193771B2 (en) * 2013-12-09 2019-01-29 Nicira, Inc. Detecting and handling elephant flows
US9628254B2 (en) * 2014-03-11 2017-04-18 Telefonaktiebolaget Lm Ericsson (Publ) Tail end MBMS bearer fault management

Also Published As

Publication number Publication date
US20170187569A1 (en) 2017-06-29
JP2017118438A (ja) 2017-06-29
US10313182B2 (en) 2019-06-04

Similar Documents

Publication Publication Date Title
JP6868958B2 (ja) パケット送信プログラム、情報処理装置、および、障害検出方法
EP3692689B1 (en) Segment routing network signaling and packet processing
EP4054153B1 (en) Method for forwarding packet and network device
US8672566B2 (en) Node apparatus and communication method
EP2544417B1 (en) Communication system, path control apparatus, packet forwarding apparatus and path control method
JP4598462B2 (ja) L2−vpnサービスを提供するプロバイダ網、及びエッジルータ
JP6269250B2 (ja) データ転送制御装置、データ転送制御方法、及び、プログラム
JP6048505B2 (ja) 並列計算機、ノード装置、及び並列計算機の制御方法
JP5115819B2 (ja) Ipネットワークシステム
JP6801409B2 (ja) 経路探索システム、経路探索方法及び経路探索プログラム
US9344352B2 (en) Transfer device, communication system, and roundabout path detecting method
JP6443864B2 (ja) パケット紛失検出を実装するための方法、装置、およびシステム
JP2006166090A (ja) 通信装置
JP5720340B2 (ja) 制御サーバ、通信システム、制御方法およびプログラム
US20220255831A1 (en) Method and apparatus for detecting link status
JP5534033B2 (ja) 通信システム、ノード、パケット転送方法およびプログラム
JP4778594B2 (ja) パケット中継装置、パケット中継方法およびプログラム
JP4623317B2 (ja) 通信装置、ルーティング方法及びプログラム
US10333817B2 (en) Non-transitory computer-readable storage medium, communication device, and determination method
CN105027502A (zh) 控制信息管理装置、控制信息呈现方法和程序
JP2006270781A (ja) リソース管理装置、システムおよび方法
KR20190001402A (ko) 소프트웨어 정의 네트워크에서의 소프트웨어 정의 네트워크 제어기, 이를 이용한 장애 복구 그룹 생성 방법 및 장애 복구 방법
JP2015525984A (ja) 通信システム、制御装置、通信方法及びプログラム
CN115442288B (zh) 一种SRv6网络数据包检查方法和装置
JP2017046211A (ja) 通信装置、制御方法およびプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180912

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190613

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190625

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190809

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20190809

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20190809

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20191126

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200221

C60 Trial request (containing other claim documents, opposition documents)

Free format text: JAPANESE INTERMEDIATE CODE: C60

Effective date: 20200221

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20200227

C21 Notice of transfer of a case for reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C21

Effective date: 20200303

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20200319

C211 Notice of termination of reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C211

Effective date: 20200324

C22 Notice of designation (change) of administrative judge

Free format text: JAPANESE INTERMEDIATE CODE: C22

Effective date: 20201117

C22 Notice of designation (change) of administrative judge

Free format text: JAPANESE INTERMEDIATE CODE: C22

Effective date: 20210126

C23 Notice of termination of proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C23

Effective date: 20210224

C03 Trial/appeal decision taken

Free format text: JAPANESE INTERMEDIATE CODE: C03

Effective date: 20210330

C30A Notification sent

Free format text: JAPANESE INTERMEDIATE CODE: C3012

Effective date: 20210330

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210413

R150 Certificate of patent or registration of utility model

Ref document number: 6868958

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150