[go: up one dir, main page]

JP6111974B2 - 転送装置、制御装置、および、転送方法 - Google Patents

転送装置、制御装置、および、転送方法 Download PDF

Info

Publication number
JP6111974B2
JP6111974B2 JP2013219657A JP2013219657A JP6111974B2 JP 6111974 B2 JP6111974 B2 JP 6111974B2 JP 2013219657 A JP2013219657 A JP 2013219657A JP 2013219657 A JP2013219657 A JP 2013219657A JP 6111974 B2 JP6111974 B2 JP 6111974B2
Authority
JP
Japan
Prior art keywords
transfer
packet
information
unit
control device
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.)
Expired - Fee Related
Application number
JP2013219657A
Other languages
English (en)
Other versions
JP2015082742A (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 JP2013219657A priority Critical patent/JP6111974B2/ja
Priority to US14/512,550 priority patent/US9699090B2/en
Publication of JP2015082742A publication Critical patent/JP2015082742A/ja
Application granted granted Critical
Publication of JP6111974B2 publication Critical patent/JP6111974B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/20Traffic policing
    • 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/0681Configuration of triggering conditions
    • 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/0686Additional information in the notification, e.g. enhancement of specific meta-data
    • 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/34Signalling channels for network management communication
    • H04L41/342Signalling channels for network management communication between virtual entities, e.g. orchestrators, SDN or NFV entities
    • 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
    • H04L49/00Packet switching elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric

Landscapes

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

Description

本発明は、複数の装置を含むネットワーク中でのパケットの転送方法に関する。
近年、ソフトウェアを用いた仮想的なネットワークや、仮想的なネットワークの形成に用いられる技術であるSoftware Defined Networking(SDN)が注目されてきている。SDNでは、コントローラと呼ばれる装置がネットワーク中に含まれている装置を管理する。例えば、ネットワーク中のスイッチは、コントローラから取得した転送ルールを使用して、受信したパケットの転送処理を行う。転送ルールを使用しても処理できないパケットを受信した場合、スイッチは受信したパケットの情報をコントローラに通知することにより、コントローラからそのパケットの処理方法を特定するための情報を取得する。スイッチは、コントローラから取得した情報に基づいて、パケットの転送処理を行う。このように、コントローラが他の装置での処理に影響を与えることから、耐障害性やシステムの拡張性を向上させるために、ネットワーク中に複数のコントローラを設置することが考えられている。
関連する技術として、それぞれが通信経路を算出する複数のコントローラと、複数のコントローラのうちの経路決定者が設定した経路に従って、受信パケットの中継処理を行う複数のスイッチを含むシステムが考案されている(例えば、特許文献1など)。
特開2011−160363号公報
複数のコントローラが含まれているネットワークであっても、あるコントローラに障害が発生した場合や、あるコントローラに過剰な負荷がかかっている場合には、コントローラからスイッチへの転送ルールの通知ができなくなる場合があり得る。このような場合でも、受信パケットを処理できないスイッチは、そのパケットの転送に使用する情報(すなわち、転送ルール)を接続先のコントローラに要求する。この場合、スイッチは転送ルールが得られないにもかかわらずコントローラに転送ルールを要求することになるので、無駄な通信処理を行ってしまい、効率が悪い。
本発明は、1つの側面では、通信処理の効率を改善することを目的とする。
複数の制御装置を備えるネットワーク中の転送装置は、受信部、記憶部、判定部、送信部を備える。受信部は、転送処理の対象である対象パケットを受信する。記憶部は、前記転送装置が行う処理の方法を表す転送ルールを決定する制御装置である決定装置から、前記受信部が受信した転送ルールを記憶する。判定部は、前記対象パケットに適用できる転送ルールが前記記憶部に記憶されていない場合、前記決定装置から前記転送ルールを取得できないことを示す不可情報が、前記対象パケット中に含まれているかを判定する。送信部は、前記対象パケットに前記不可情報が含まれている場合、前記対象パケットに適用される転送ルールを前記決定装置に要求せずに、前記対象パケットを、他の転送装置に送信する。
通信処理の効率が改善できる。
実施形態にかかる通信方法の例を示す図である。 転送装置の構成の例を示す図である。 制御装置の構成の例を示す図である。 制御装置の通信方法の例を説明する図である。 転送装置および制御装置のハードウェア構成の例を示す。 ネットワークの例を示す図である。 転送ルールテーブルとデフォルト転送ルールの例を示す図である。 障害情報を含むパケットのフォーマットの例を示す図である。 第1の実施形態で行われる通信処理の例を説明する図である。 第1の実施形態で行われる通信処理の例を説明する図である。 転送装置の動作の例を説明するフローチャートである。 第2の実施形態で使用される制御装置の構成の例を示す。 出力ポートの情報を含むパケットのフォーマットの例を示す図である。 第2の実施形態で行われる通信処理の例を説明する図である。 制御装置の動作の例を説明するフローチャートである。 転送装置の動作の例を説明するフローチャートである。 転送ルールを含むパケットのフォーマットの例を示す図である。 転送ルールを用いた処理方法の例を説明する図である。 転送ルールテーブルの変更例を説明する図である。 転送装置の動作の例を説明するフローチャートである。 デフォルト転送ルールの決定方法の例を説明するフローチャートである。
図1は、実施形態にかかる通信方法の例を示す。図1に示すネットワークは、複数の転送装置10(10x〜10z)、および、複数の制御装置30(30x、30y)を含む。制御装置30はSDNでのコントローラとして動作でき、パケットの転送経路の決定や転送ルールの通知を行うものとする。転送装置10xと転送装置10yは制御装置30xに接続している。転送装置10zは制御装置30yに接続している。ここで、転送装置は、SDNでのスイッチとして動作でき、制御装置から得た情報(転送ルール)に従ってパケットを転送する。転送装置10xには端末5w、端末5uが接続しており、転送装置10yには、端末5xと端末5yが接続している。さらに、転送装置10zに端末5zが接続されている。
「転送ルール」は、転送処理の方法を表わす任意のデータである。例えば、転送ルールは、パケットの宛先Media Access Control(MAC)アドレスに、そのパケットを転送装置10が転送するときに使用する出力ポートの番号を対応付けた情報であっても良い。転送装置10xは、制御装置30xから通知された転送ルールに従って転送できないパケットを受信すると、制御装置30xに新たな転送ルールを要求し、得られた転送ルールを用いて、パケットの転送処理を行う。転送装置10yも転送装置10xと同様の処理を行う。さらに、転送装置10zは、制御装置30yから転送ルールを取得して、パケットの転送処理を行うものとする。図1の例では、転送装置10xと転送装置10yは、制御装置30xから取得した転送ルールに従ってパケットを転送するが、制御装置30xに障害が発生した場合、制御装置30yとの接続を確立し、制御装置30yから転送ルールを取得するものとする。
以下、制御装置30xに障害が発生した後で、転送装置10x、10yが制御装置30yとの通信を確立する前に、端末5wが端末5z宛のパケットP0を送信した場合を例として、実施形態に係る通信方法を説明する。ここでは、転送装置10x〜10zのいずれも、端末5z宛てのパケットの転送ルールを保持していないものとする。
(A)端末5wは、端末5z宛てのパケットP0を生成し、端末5zに向けて送信する。このため、パケットP0は、転送装置10xに送信される。
(B)転送装置10xは、パケットP0を受信すると、予め記憶している転送ルールを用いて、パケットP0を転送できるかを判定する。ここでは、転送装置10xは、保持している転送ルールを用いても、パケットP0の転送はできないと判定する。
(C)転送装置10xは制御装置30yと接続を確立していないので、転送装置10xにとっての転送ルールの問い合わせ先は、制御装置30xである。そこで、転送装置10xは制御装置30xに転送ルールを要求するが、制御装置30xに障害が発生しているので、転送装置10xは転送ルールを取得できない。
所定時間内に制御装置30xから転送ルールを取得できない場合、転送装置10xは、パケットP0に、制御装置30xから転送ルールを取得できないことを表す情報を付すことにより、パケットP0をパケットP1に変換する。以下、制御装置から転送ルールを取得できないことを通知するために使用される情報を「不可情報」と記載することがある。なお、不可情報には、転送ルールを通知できない制御装置30を識別する識別子が含まれている。図1の例では、不可情報はパケットP1中の「30x:NG」という情報である。転送装置10xは、転送装置10xに接続されている他の転送装置10に、パケットP1を転送する。転送装置10xがパケットP1の転送先を選択する方法については後述する。ここでは、パケットP1が転送装置10yに送信されるものとする。
(D)転送装置10yは、まず、保持している転送ルールを用いてパケットP1を転送できるかを判定する。ここでは、転送装置10yは、保持している転送ルールを用いても、パケットP1を転送できないと判定する。次に、転送装置10yは、制御装置30xから転送ルールを取得できるかを判定するために、パケットP1中の不可情報を抽出する。パケットP1の不可情報は、制御装置30xから転送ルールを取得できないことを表している。そこで、転送装置10yは、制御装置30xに転送ルールを要求せずに、パケットP1を転送装置10zに転送する。なお、転送装置10yも転送装置10xと同様に、後述する方法でパケットP1を転送する転送装置を選択するものとする。
(E)転送装置10zは、転送装置10yと同様に、保持している転送ルールを用いてもパケットP1を転送できないと判定する。次に、転送装置10zは、制御装置30yから転送ルールを取得できるかを判定するために、パケットP1中の不可情報を抽出する。パケットP1の不可情報は、制御装置30xから転送ルールを取得できないことを表しているが、制御装置30yについての情報は含まれていない。そこで、転送装置10zは、制御装置30yに転送ルールを要求する。
(F)制御装置30yは、転送装置10zからの要求に応じて、端末5z宛てのパケットの転送先を含む転送ルールを、転送装置10zに送信する。
(G)転送装置10zは、転送ルールを用いて、パケットP1の送信先を特定する。さらに、転送装置10zは、転送ルールから、転送装置10zから端末5zに直接、パケットを送信できることを認識する。そこで、転送装置10zは、パケットP1から不可情報を削除することにより、パケットP1をパケットP0に変換した後で、パケットP0を端末5zに送信する。端末5zは、パケットP0を転送装置10zから受信する。
このように、実施形態にかかる通信方法によると、転送装置10は、転送ルールを取得できない制御装置30を他の転送装置10から通知されると、通知された制御装置30には転送ルールを要求しない。このため、転送装置10は、無駄な問合せ処理を制御装置30に行わなくてすむ。さらに、転送装置10は、転送ルールが無いために転送先を特定できない場合は、処理対象のパケットを、他の転送装置10に転送する。すると、転送ルールを要求する制御装置30の変更中で転送装置10が転送ルールを得られない場合でも、転送装置10はパケットを廃棄しないことになるので、転送装置10でのパケットの廃棄によるパケットロスも防止できる。
図1を参照しながら制御装置30xに障害が発生した場合について説明したが、他の原因により、制御装置30xから転送ルールを取得できないケースでも実施形態にかかる通信方法は適用され得る。例えば、制御装置30xの負荷が高すぎて処理が行われない場合などでも図1と同様の処理が可能である。一方、制御装置30xと転送装置10xの間の接続が切れた場合には、転送装置10xは転送ルールを取得できないが、転送装置10yは制御装置30xから転送ルールを取得できる可能性がある。このように、転送装置10x以外の他の転送装置10では転送ルールが取得できる可能性がある場合、転送装置10xは、不可情報をパケットに付加しない。このため、転送装置10xでの接続が切断されても、転送装置10yは転送ルールの取得を行うことが可能である。
図1はあるネットワークでの通信例を示しており、例えば、制御装置30に接続している転送装置10の数や転送装置10に接続している端末5の数などは任意に変更され得る。また、図1に示すネットワークは、論理ネットワークであっても良く、ネットワークが1台のコンピュータや物理回線で接続された複数のコンピュータによって実現されていても良い。さらに、論理ネットワークは、Openflowなど、転送装置10が制御装置30で決定された転送ルールに従ってパケットを転送する任意の技術で実現され得るものとする。なお、本明細書中では、読みやすくするための便宜上、ネットワーク中で送受信される情報の単位を表現する際に使用する文言を「パケット」に統一しているにすぎない。このため、実装に応じて、適宜、「パケット」という文言を「フレーム」に読み替えることができるものとする。
<装置構成>
図2は、転送装置10の構成の例を示す。転送装置10は、受信部11、送信部12、転送先特定部14、記憶部15、接続管理部18、制御部20、ポートPo1〜Po5を備える。さらに、転送装置10は、外部インタフェース13を備えても良い。制御部20は、判定部21、取得部22、付加処理部23、変換部24を有する。なお、図2はポート数が5つの転送装置10の例であるが、1台の転送装置10が有するポートの数は実装に応じて変更され得る。
受信部11は、ポートPo1〜Po5を介して、他の転送装置10、制御装置30、端末5などからパケットを受信する。送信部12は、他の転送装置10、制御装置30、端末5などにパケットを送信する。例えば、送信部12は、付加処理部23、変換部24などから入力されたパケットの送信処理を行う。
転送先特定部14は、受信部11で受信したパケットの出力先のポートを決定する。転送先特定部14は、パケットの転送先などの条件をキーとして、適用できる転送ルールを特定する。転送先特定部14は、適用可能な転送ルールを特定できた場合、パケットを出力するポートを転送ルールに基づいて決定し、ポート番号と共に、転送対象のパケットを変換部24に出力する。一方、適用可能な転送ルールを特定できない場合、転送先特定部14は、パケットを判定部21に出力する。
記憶部15は、転送ルールテーブル16を保持する。転送ルールテーブル16には、これまでに転送装置10が取得した転送ルールが記録されている。記憶部15は、デフォルト転送ルール17も保持している。以下、デフォルト転送ルール17は、転送ルールテーブル16を用いて処理できないパケットの転送先を特定するための情報のことを表すものとする。デフォルト転送ルール17は、制御装置30で生成されてもよく、ネットワークに含まれていない装置やオペレータにより決定されても良い。ネットワークに含まれていない装置やオペレータによりデフォルト転送ルール17が決定される場合、転送装置10は、外部インタフェース13を介して、デフォルト転送ルール17を取得する。一方、制御装置30がデフォルト転送ルール17を生成する場合、転送装置10は、受信部11を介して、デフォルト転送ルール17を取得する。転送ルールテーブル16とデフォルト転送ルール17の例については、後述する。さらに、記憶部15は、制御部20での処理に用いられるデータや、制御部20での処理で生成されたデータも保持する。
接続管理部18は、転送装置10と制御装置30との間のセッション、転送装置10同士の通信に使用されるセッション、転送装置10と端末5との間のセッションの状態をモニタする。例えば、接続管理部18は、通信中の制御装置30aとの間のセッションが切断されると、制御装置30aとの間のセッションの再確立や、他の制御装置30bとのセッションの確立のための処理も行う。接続管理部18は、セッションの確立に成功している制御装置30を、転送ルールの要求先として取得部22に通知する。例えば、接続管理部18は、転送ルールの要求先と確立しているセッションの識別子や、転送ルールの要求先とする制御装置30の識別子などを取得部22に通知できる。
判定部21は、転送先特定部14から入力されたパケットに不可情報が含まれているかを判定する。ここで、不可情報には、転送ルールの取得ができない制御装置30の識別子が含まれている。判定部21は、パケットに不可情報が含まれている場合、転送ルールの要求先となっている制御装置30の識別子が不可情報に含まれているかを判定する。転送ルールの要求先の識別子が不可情報に含まれている場合、判定部21は、制御装置30へ転送ルールを要求しないことを決定する。転送ルールを要求しない場合、判定部21は、転送先特定部14から入力されたパケットを付加処理部23に出力する。
一方、転送ルールの問い合わせ先の識別子が不可情報に含まれていない場合、判定部21は、処理対象のパケットを取得部22に出力する。転送先特定部14から入力されたパケットに不可情報が含まれていない場合も、判定部21は、パケットを取得部22に出力する。
取得部22は、制御装置30に転送ルールを要求するためのメッセージを生成し、送信部12に出力する。このとき、取得部22は、パケットの宛先の情報、パケット中に不可情報が含まれているかなどの情報を制御装置30宛てのメッセージに含める。以下、転送ルールを制御装置30に要求するために使用されるメッセージを「要求メッセージ」と記載することがある。また、取得部22は、転送ルールの要求の契機となったパケットを、要求メッセージに含めても良い。取得部22は、要求メッセージを制御装置30に送信した時刻を記憶する。要求メッセージが送信された時刻から経過した時間が、予め記憶している閾値を超えても、転送ルールが得られない場合、取得部22は、通信中の制御装置30からは転送ルールを取得できないと判定する。すると、取得部22は、転送ルールの要求処理の契機となったパケットを、付加処理部23に出力する。
付加処理部23は、入力されたパケットに不可情報を付加する。不可情報には、不可情報を付している転送装置10が転送ルールの取得に失敗したときの通信先の制御装置30(要求先)の識別子が含まれる。付加処理部23は、不可情報の付加後、デフォルト転送ルール17を用いてパケットの出力ポートを特定し、処理後のパケットを送信部12に出力する。不可情報の詳細や付加処理部23の動作については、後述する。
取得部22は、要求メッセージの送信時刻から転送ルールの受信までの時間が閾値以下である場合、転送ルールの要求処理の契機となったパケットを、変換部24に出力する。変換部24は、転送ルールが取得できたパケットに含まれている不可情報を削除することにより、取得部22から入力されたパケットを端末5が処理できるパケット(転送パケット)に変換する。変換部24は、転送先特定部14から入力されたパケットについても、不可情報が含まれている場合は、不可情報を削除した後のパケットを、転送先特定部14から通知されたポート番号と共に、送信部12に出力する。
図3は、制御装置30の構成の例を示す。制御装置30は、受信部31、送信部32、接続管理部33、アプリケーション処理部45、経路計算制御部50、記憶部60を備える。経路計算制御部50は、転送ルール決定部51を有する。
受信部31は、転送装置10、他の制御装置30などからパケットを受信する。受信部31は、転送ルールの要求メッセージであることを示す情報を含むパケットを、転送ルール決定部51に出力する。受信部31は、要求メッセージ以外のパケットをアプリケーション処理部45に出力する。要求メッセージであることを表す情報として、例えば、Packet-Inメッセージであることを示すOpenflowヘッダなどが用いられる。送信部32は、転送装置10、他の制御装置30などにパケットを送信する。例えば、送信部32は、転送ルール決定部51などから入力されたパケットの送信処理を行う。
接続管理部33は、転送装置10と制御装置30との間のセッションや、制御装置30間でのデータの共有に使用するセッションの状態をモニタする。接続管理部33は、転送装置10からセッションの確立が要求されると、適宜、転送装置10との間のセッションの確立のための処理を行う。
転送ルール決定部51は、ネットワークのトポロジーを表すトポロジー情報などを用いて、転送ルールを決定する。転送ルール決定部51は、転送ルールを含む応答メッセージを生成する。ここで、応答メッセージの宛先は、要求メッセージの送信元の転送装置10である。転送ルール決定部51は、応答メッセージを送信部32に出力する。さらに、転送ルール決定部51は、単位時間当たりに受信する要求メッセージの数が予め記憶している閾値を超えると、負荷が高いと判定する。転送ルール決定部51は、負荷が高いと判定した場合、新たな問合せの中止を要求するための中止メッセージを生成し、接続している転送装置10に送信できる。
記憶部60は、ネットワーク情報61などのデータを保持する。ここで、ネットワーク情報61は、ネットワークのトポロジー情報や、各接続で転送装置10が使用しているポート番号などの情報を含む。さらに、記憶部60は、アプリケーション処理部45、経路計算制御部50での処理に用いられるデータや、これらの処理によって生成されたデータも保持する。
各制御装置30は、ネットワーク中の他の制御装置30の情報と、他の制御装置30に接続されている転送装置10や端末5の情報を共有する。制御装置30の間での情報の共有のために、図4に示すネットワークN1またはN2が使用される。なお、図4は、3台の制御装置30(30a〜30c)が使用される場合の例であり、制御装置30の数は任意に変更され得る。
ネットワークN1では、制御装置30a〜30cの各々が、調整装置70に接続されている。制御装置30aは、制御装置30aと接続している転送装置10の識別子や、転送装置10を介して接続している端末5の情報を、定期的に、調整装置70に通知する。制御装置30bと制御装置30cも、同様に、接続している転送装置10や端末5の情報を調整装置70に通知する。調整装置70は、各制御装置30について、転送装置10との接続関係や、端末5の接続関係を記憶している。さらに、調整装置70は、制御装置30a〜30cがそれぞれ正常に動作しているかをモニタする。制御装置30a〜30cは、適宜、調整装置70からデータを取得し、得られたデータを記憶部60に記憶する。
一方、ネットワークN2が使用される場合、制御装置30a〜30cの間で互いに、接続関係を表す情報を送受信する。また、制御装置30a〜30cの間で互いに、正常に動作しているかの確認処理も行う。例えば、ネットワークN2では、制御装置30aは、制御装置30bに、制御装置30aが保持している接続関係の情報を通知し、制御装置30bとの間で正常に通信できるかを判定する。また、制御装置30aは、制御装置30aが制御装置30cから通知された接続情報も、制御装置30bに通知する。制御装置30bも、制御装置30cとの間で接続関係の情報の交換と、正常に動作しているかの監視を行う。このとき、制御装置30bは、制御装置30bに接続している転送装置10や端末5の情報の他に、転送装置10aから通知された接続関係の情報も、転送装置10cに通知する。転送装置10cは、制御装置30aとの間で接続関係の情報の交換と、正常に動作しているかの監視を行う。制御装置30cは、制御装置30cに接続している転送装置10や端末5の情報の他に、転送装置10bから通知された接続関係の情報も、転送装置10aに通知する。このように、ネットワークN2が使用される場合、制御装置30a〜30cの間の通信により、全ての制御装置30で接続関係の情報を共有することができる。
図5は、転送装置10および制御装置30のハードウェア構成の例を示す。なお、ネットワーク中に調整装置70が設置されている場合、調整装置70のハードウェア構成も、図5に示すとおりである。転送装置10と制御装置30のいずれも、プロセッサ101、メモリ102、バス103、ネットワーク接続装置104を備える。バス103は、プロセッサ101、メモリ102、ネットワーク接続装置104を、相互にデータの送受信が可能になるように接続する。転送装置10では、プロセッサ101は、転送先特定部14、接続管理部18、制御部20を実現する。メモリ102は、例えば、記憶部15として動作する。ネットワーク接続装置104は、受信部11と送信部12を実現し、ポートも含む。ネットワーク接続装置104は、ネットワーク105との通信を行う。
制御装置30では、プロセッサ101は、接続管理部33、アプリケーション処理部45、経路計算制御部50を実現する。メモリ102は、例えば、記憶部60として動作する。ネットワーク接続装置104は、受信部31と送信部32を実現する。調整装置70は、各制御装置30から取得した情報を、メモリ102に保持する。さらに、調整装置70は、ネットワーク接続装置104を用いて、制御装置30と通信する。調整装置70において、メモリ102に記録されるデータの更新処理や、制御装置30との通信に関する制御などは、プロセッサ101が行う。
<第1の実施形態>
図6は、ネットワークの例を示す。図6は、論理ネットワークの例を示しており、図6の実線は、セッションが確立されていることを意味するものとする。さらに、図6に含まれている1つ以上の装置が、物理的な1台のコンピュータによって実装されることもあり得る。
図6の例では、制御装置30aと制御装置30bは、調整装置70に接続している。制御装置30aは、転送装置10a〜10cと接続しており、制御装置30bは転送装置10dと接続している。さらに、図6の例では、転送装置10a〜10dが、転送装置10a、10b、10c、10dの順に環状に接続されている。さらに、各転送装置10には任意の数の端末5が接続しているが、図6では、図を見やすくするために、一部の端末5だけを図示している。図6の例では、転送装置10a〜10cは、制御装置30aから取得した転送ルールを用いてパケットを転送し、転送装置10dは、制御装置30bから取得した転送ルールを用いてパケットを転送するものとする。なお、各転送装置10中の数字を含む四角形はポートを表わしており、四角形の中に書かれた数字はポート番号を表わしているものとする。
図7は、転送ルールテーブル16とデフォルト転送ルール17の例を示す。図7の転送ルールテーブル16aは、転送装置10aが保持する転送ルールテーブル16の例である。転送ルールは、転送装置10に入力されるパケットの条件と、そのパケットに対する処理を対応付けた任意のルールである。また、ルールごとに優先度が対応付けられており、優先度が高い(優先度の値が小さい)ルールが優先的に適用される。パケットの条件を特定するための項目は、パケットに含まれる任意のレイヤの情報を使用することができる。例えば、転送ルールは、スイッチの入力ポートなどの物理レイヤの条件や、宛先TCPポート番号などのトランスポートレイヤの情報を含んでも良い。アクションは、各条件の組合せに対応付けた転送装置10の処理を示す。
例えば、宛先MACアドレスが端末5aのアドレスである場合、転送装置10aは、転送ルールテーブル16a中の優先度=1のルールを用いて、処理対象のパケットをポートPo4から出力する。同様に、宛先MACアドレスが端末5bのアドレスである場合、転送装置10aは、転送ルールテーブル16a中の優先度=2のルールを用いて、処理対象のパケットをポートPo2から出力する。
一方、転送装置10は、転送ルールテーブル16に含まれている転送ルールを適用することができず、さらに、新たな転送ルールを取得できない場合、デフォルト転送ルール17を用いて転送処理を行う。例えば、転送装置10aは、転送ルールテーブル16aを保持しているので、端末5c宛てのパケットについての転送ルールを保持していない。このため、転送装置10aの取得部22aは、制御装置30aに端末5c宛てのパケットに適用するための転送ルールを要求するが、制御装置30aに障害が発生しているなどの理由により、転送ルールを取得できない場合がある。すると、転送装置10aは、図7に示すデフォルト転送ルール17aを用いて、不可情報を付加した後のパケットの出力ポートを特定する。図7の例では、転送装置10aは、不可情報の付加後のパケットをポートPo3から出力する。さらに、デフォルト転送ルール17は、他の転送装置10によって不可情報が付加されたパケットについても適用され得る。例えば、転送装置10aは、他の転送装置10から受信したパケットに、制御装置30aから転送ルールを取得できないことを表す不可情報が含まれていると、デフォルト転送ルール17aに従って、出力ポートを決定する。
前述のとおり、図6は、論理ネットワークの例を示している。このため、図6に示す時点では、転送装置10a〜10cは制御装置30aに接続しているが、制御装置30aに障害が発生した場合や、制御装置30aの負荷が大きくなった場合、転送装置10a〜10cは制御装置30bとの間でセッションを確立する。しかし、制御装置30aが転送ルールを通知できない状態になった時点から、転送装置10a〜10cが制御装置30bとの間でセッションを確立するまでは、転送装置10a〜10cは新たな転送ルールを取得できない。以下、転送装置10a〜10cが新たな転送ルールを取得できない期間中に行われる通信処理の例を説明する。
なお、以下では、転送装置10は、デフォルト転送ルール17を使用してパケットを転送している場合、転送ルールの取得に際して障害が発生したことを通知する情報(障害情報)をパケットに付加するものとする。このため、以下の説明では、不可情報は、障害情報のうちで、転送ルールが取得できない原因が制御装置30にあることが特定できる情報とする。障害情報については後で詳しく説明する。
〔ケース1〕
以下、図6のネットワークで、制御装置30aに障害が発生しているときに、端末5aが端末5dにパケットを送信する場合の処理の例を説明する。ここで、転送装置10a〜10cのいずれも、制御装置30aで障害が発生していることを認識していないものとする。また、転送装置10aは、転送ルールテーブル16aとデフォルト転送ルール17aを保持しており、転送装置10bは、転送ルールテーブル16bとデフォルト転送ルール17bを保持しているものとする。さらに、転送装置10cは、デフォルト転送ルール17c、転送装置10dはデフォルト転送ルール17dを保持しているものとする。
なお、以下の説明では、処理を行っている装置を区別し易くするために、符号の後に動作を行っている転送装置10や制御装置30に割り当てられたアルファベットを記載する。例えば、判定部21aは、転送装置10aに含まれている判定部21のことを示す。同様に、例えば、転送ルール決定部51aは、制御装置30a中の転送ルール決定部51のことを表す。
(1)端末5aは、端末5d宛てのパケットP1を生成する。パケットP1は、転送装置10aに送信される。
(2)転送装置10aの受信部11aは、ポートPo4から端末5d宛のパケットP1を受信する。受信部11aは、受信したパケットP1を、転送先特定部14aに出力する。転送先特定部14aは、転送ルールテーブル16aを参照して、パケットP1の出力先のポート番号が得られるかを判定する。転送ルールテーブル16aには、宛先MACアドレスが端末5dのパケットに適用できる転送ルールは含まれていない。そこで、転送先特定部14aは、パケットP1を判定部21aに出力する。
判定部21aは、パケットP1に障害情報が含まれているかを判定する。ここでは、パケットP1には障害情報が含まれていないので、判定部21aは、パケットP1を取得部22aに出力する。取得部22aは、パケットP1の宛先MACアドレスなどの情報を含む要求メッセージ91aを生成する。取得部22aは、送信部12aを介して要求メッセージ91aを制御装置30aに送信し、さらに、要求メッセージ91aの送信時刻を記憶する。
(3)ここでは、制御装置30aで障害が発生しているため、転送装置10aは、要求メッセージ91aの送信時刻から所定の時間以内に、制御装置30aから転送ルールを得ることができないとする。このため、取得部22aは、要求メッセージ91aの送信時刻から所定の時間が経過すると、パケットP1を付加処理部23aに出力する。付加処理部23aは、パケットP1に障害情報を付加する。
図8は、障害情報を含むパケットのフォーマットの例である。付加処理部23は、取得部22から入力されたパケットのペイロードとEthernet(登録商標)ヘッダの間に、障害情報を付加する。なお、他の転送装置10によって既に障害情報が付加されているパケットに障害情報を付加する場合、付加処理部23は、パケットの先頭側の障害情報とEthernetヘッダの間に、新たな障害情報を付加する。図8の例では、1つの障害情報には、障害原因、転送装置10の識別子、制御装置30の識別子、終了フラグが含まれる。
障害原因フィールドには、制御装置30からの転送ルールの取得に際して発生した障害の原因を示す値が記録される。例えば、図8の例では、障害原因フィールドの値=1は、転送装置10と制御装置30との間のセッションが切断されたために、転送装置10が転送ルールを取得できないことを表す。障害原因フィールドの値=2は、要求メッセージの送信から所定の時間内に制御装置30から転送ルールを取得できないことを表す。障害原因フィールドの値=3は、制御装置30での負荷の上昇により、制御装置30から転送ルールを取得できないことを表す。このため、図8に示す障害情報が使用される場合、障害原因フィールドの値が2または3の障害情報は、不可情報である。一方、障害原因フィールドの値が1の障害情報は、不可情報としては扱われない。換言すると、障害原因フィールドの値が1の障害情報は、デフォルト転送ルール17を用いてパケットを転送しているが、制御装置30には障害が無い可能性があることを示す情報である。
障害情報中の転送装置10の識別子は、障害情報を付加する転送装置10を識別する値である。障害情報中の制御装置30の識別子は、転送ルールの取得において障害が発生したときに、転送ルールの要求先となった制御装置30を識別する値である。終了フラグは、パケットの先頭から処理している装置が障害情報の終了を特定するために使用する。最初に障害情報を付加する転送装置10は、終了フラグ=TRUEを含む障害情報を付加し、その他の転送装置10は、終了フラグ=FALSEを含む障害情報を付加する。このため、終了フラグ=TRUEの障害情報の後にパケットのペイロードが続いている。
例えば、付加処理部23aは、パケットP1に障害情報ヘッダが含まれていないので、終了フラグ=TRUEの障害情報を生成する。また、要求メッセージ91aの送信時刻から所定の時間以内に、制御装置30aから転送ルールを得られなかったので、付加処理部23aは、障害原因フラグを2に設定する。このため、付加処理部23aは、以下の情報を含む障害情報をパケットP1に付加する。
障害情報1
障害原因フィールドの値:2
転送装置10の識別子 :転送装置10a
制御装置30の識別子 :制御装置30a
終了フラグ :TRUE
以下、付加処理部23aによる障害情報の付加後のパケットを、パケットP2とする。付加処理部23は、パケットP2の出力ポートを、デフォルト転送ルール17a(図7)を用いて特定する。デフォルト転送ルール17a中のアクションの欄では、パケットをポートPo3から出力することが指定されている。そこで、付加処理部23aは、パケットP2を、出力ポートがポートPo3であることを表わす情報と共に、送信部12aに出力する。
(4)送信部12aは、パケットP2を、ポートPo3から出力する。このため、パケットP2は、転送装置10bに転送される。
(5)転送装置10bの受信部11bは、ポートPo4から端末5d宛のパケットP2を受信する。受信部11bは、パケットP2を、転送先特定部14bに出力する。転送先特定部14bは、転送ルールテーブル16b(図7)を参照して、パケットP2の出力先のポート番号を検索するが、宛先MACアドレスが端末5dである場合の転送ルールを取得できない。そこで、転送先特定部14bは、パケットP2を判定部21bに出力する。
判定部21bは、パケットP2に障害情報ヘッダが含まれているかを判定する。ここでは、パケットP2には障害情報ヘッダが含まれているので、判定部21bは、障害情報を解析することにより、不可情報が通知されたかを判定する。判定部21bは、制御装置30aから転送ルールを取得しようとした転送装置10aがタイムアウトにより転送ルールを得られなかったことを特定する。制御装置30aからの応答のタイムアウトが発生していることは、制御装置30aでの障害の発生を意味するので、パケットP2は制御装置30aに関する不可情報を含んでいる。そこで、判定部21bは、制御装置30aから転送ルールを取得できないと判定する。判定部21bは、転送ルールの要求先が制御装置30aであることから、転送ルールの要求を行わないことを決定し、パケットP2を付加処理部23bに出力する。
(6)付加処理部23bは、制御装置30aの識別子を含む障害情報中の障害原因フィールドの値が2に設定されているので、付加処理部23bが付加する障害情報でも、障害原因フィールドの値を2とする。さらに、パケットP2に障害情報が含まれているので、終了フラグ=FALSEに設定する。このため、付加処理部23bは、以下の情報を含む障害情報をパケットP2に付加する。
障害情報2
障害原因フィールドの値:2
転送装置10の識別子 :転送装置10b
制御装置30の識別子 :制御装置30a
終了フラグ :FALSE
付加処理部23bによる障害情報の付加後のパケットを、パケットP3とする。付加処理部23bは、パケットP3の出力ポートを、デフォルト転送ルール17b(図7)を用いて特定する。このため、付加処理部23bは、パケットP3を、出力ポートがポートPo2であることを表わす情報と共に、送信部12bに出力する。
(7)送信部12bは、パケットP3を、ポートPo2から出力する。このため、パケットP3は、転送装置10cに送信される。
(8)転送装置10cでは、手順(5)〜(7)と同様の処理が行われる。そこで、付加処理部23cは、以下の情報を含む障害情報をパケットP3に付加する。
障害情報3
障害原因フィールドの値:2
転送装置10の識別子 :転送装置10c
制御装置30の識別子 :制御装置30a
終了フラグ :FALSE
付加処理部23cによる障害情報の付加後のパケットを、パケットP4とする。付加処理部23cは、パケットP4の出力ポートを、デフォルト転送ルール17c(図7)を用いて特定する。このため、付加処理部23cは、パケットP3を、出力ポートがポートPo3であることを表わす情報と共に、送信部12cに出力する。送信部12cでの処理により、パケットP4は、転送装置10dに送信される。
(9)転送装置10dの受信部11dは、パケットP4を、転送先特定部14dに出力する。転送先特定部14dは、転送ルールテーブル16dを参照する。ここで、転送ルールテーブル16dにはパケットP4に適用できる転送ルールが含まれていないものとする。転送先特定部14dは、パケットP4を判定部21dに出力する。
判定部21dは、パケットP4に含まれている障害情報を解析することにより、制御装置30aで障害が発生していると判定する。しかし、判定部21dは、転送ルールの問い合わせ先が制御装置30bであるので、転送ルールを制御装置30bに要求できると判定し、パケットP4を取得部22dに出力する。
(10)取得部22dは、パケットP4の宛先MACアドレスなどの情報を含む要求メッセージ91dを生成する。取得部22dは、送信部12dを介して要求メッセージ91dを制御装置30bに送信し、さらに、要求メッセージ91dの送信時刻を記憶する。
(11)制御装置30bの受信部31bは、要求メッセージ91dを取得すると、転送ルール決定部51bに出力する。転送ルール決定部51bは、ネットワーク中のトポロジー情報などを用いて、転送ルールを決定する。ここでは、転送ルール決定部51bは、端末5d宛てのパケットを転送装置10dのポートPo3から出力することを転送装置10dに通知するための応答メッセージ92bを生成する。転送ルール決定部51bは、応答メッセージ92bを送信部32bに出力する。送信部32bは、応答メッセージ92bを転送装置10dに送信する。
(12)転送装置10dの取得部22dは、端末5d宛てのパケットを転送装置10dのポートPo3から出力することを、転送ルールテーブル16dに追加する。さらに、取得部22dは、パケットP4の出力ポートがポートPo3であることを通知する情報と、パケットP4を、変換部24dに出力する。
(13)変換部24dは、パケットP4と共にパケットP4の出力ポートを特定する情報が入力されたことにより、パケットP4から障害情報を削除する。言い換えると、変換部24dは、パケットP4をパケットP1に変換している。なお、変換部24dは、変換後のパケットの出力ポートとして、取得部22dから通知されたポートの情報を用いる。このため、変換部24dは、パケットP1を、パケットP1の出力ポートがポートPo3であることを表わす情報と共に、送信部12dに出力する。
(14)送信部12dは、パケットP1をポートPo3から出力する。このため、パケットP1が端末5dに送信される。
ケース1では、転送装置10aが制御装置30aに障害が起こっていることを意味する障害情報をパケットに付加するので、転送装置10bと転送装置10cは、障害が発生している制御装置30に無駄に問合せを行わなくてすむ。このため、転送装置10b、転送装置10cでの処理負荷が軽減される。
〔ケース2〕
以下、図9を参照しながら、制御装置30aの負荷が所定の値よりも高くなったときに、端末5aがパケットを端末5dに送信する場合の処理の例を説明する。なお、図9を参照しながら説明する例でも、端末5、転送装置10、制御装置30の間の接続関係や、各転送装置10で使用される転送ルールテーブル16とデフォルト転送ルール17は、ケース1と同様であるものとする。
(21)制御装置30aの転送ルール決定部51aは、単位時間当たりに受信する要求メッセージの数が予め記憶している閾値を超えると、負荷が高くなったと判定する。そこで、新たな要求メッセージの送信の中止を要求するための中止メッセージ93aを生成し、接続している転送装置10に送信する。中止メッセージ93aは、新たな要求メッセージを処理しないことを意味する情報と、制御装置30aの識別子を含む任意のフォーマットのメッセージであるものとする。制御装置30aは、転送装置10a〜10cに、中止メッセージ93aを送信する。
(22)転送装置10aの受信部11aは、受信した中止メッセージ93aを、取得部22aに出力する。取得部22aは、制御装置30aへの要求メッセージの送信が許可されるまで制御装置30aへの転送ルールの要求を中止する。
(23)転送装置10b、転送装置10cでも、手順(22)と同様の処理が行われる。
(24)その後、端末5aは、端末5d宛てのパケットP1を生成したとする。パケットP1は、転送装置10aに送信される。
(25)転送装置10aの受信部11aは、受信したパケットP1を、転送先特定部14aに出力する。転送先特定部14aは、パケットP1に適用できる転送ルールが転送ルールテーブル16aに含まれていないと判定すると、パケットP1を判定部21aに出力する。判定部21aは、パケットP1に障害情報が含まれていないので、パケットP1を取得部22aに出力する。
取得部22aは、制御装置30aへの要求メッセージの送信を中止しているので、制御装置30aの負荷が高いことを表わす情報と共に、パケットP1を付加処理部23aに出力する。付加処理部23aは、取得部22aから入力された情報を用いて、以下の情報を含む障害情報をパケットP1に付加する。
障害情報1
障害原因フィールドの値:3
転送装置10の識別子 :転送装置10a
制御装置30の識別子 :制御装置30a
終了フラグ :TRUE
ここで、障害情報1では障害原因フィールドの値=3であるので、障害情報1は制御装置30aに対する不可情報として扱われる。付加処理部23aは、障害情報を付加したパケットP5の出力ポートがポートPo3であることを、デフォルト転送ルール17a(図7)を用いて特定する。さらに、手順(4)と同様に、パケットP5を転送装置10bに転送する。
(26)転送装置10bの転送先特定部14bは、受信部11bを介してパケットP5を取得する。パケットP5に適用できる転送ルールが転送ルールテーブル16bに含まれていないので、転送先特定部14bは、パケットP5を判定部21bに出力する。判定部21bは、パケットP5に含まれている障害情報を解析することにより、転送装置10aは、制御装置30aの負荷が高いために転送ルールを取得できなかったことを特定する。そこで、判定部21bは、制御装置30aから転送ルールを取得できないと判定する。判定部21bは、転送ルールの要求先が制御装置30aであることから、転送ルールの要求を行わないことを決定し、パケットP5を付加処理部23bに出力する。付加処理部23bは、パケットP5に以下の障害情報を付加したパケットP6を生成する。
障害情報2
障害原因フィールドの値:3
転送装置10の識別子 :転送装置10b
制御装置30の識別子 :制御装置30a
終了フラグ :FALSE
パケットP6は、手順(6)、(7)で述べたように、デフォルト転送ルール17b(図7)を用いて、ポートPo2から出力されるため、転送装置10cで受信される。
(27)転送装置10cでは、手順(26)と同様の処理が行われる。そこで、付加処理部23cは、以下の情報を含む障害情報をパケットP6に付加する。
障害情報3
障害原因フィールドの値:3
転送装置10の識別子 :転送装置10c
制御装置30の識別子 :制御装置30a
終了フラグ :FALSE
付加処理部23cによる障害情報の付加後のパケットP7は、デフォルト転送ルール17c(図7)を用いて処理されるため、転送装置10dに送信される。
転送装置10dでの受信後の処理は、ケース1で述べた手順(9)〜(14)と同様である。
ケース2では、制御装置30aの負荷が所定の値よりも高くなっていることが制御装置30aから通知された転送装置10a〜10cは、制御装置30aに転送ルールを要求しない。このため、転送装置10a〜10cのいずれも、制御装置30aに無駄に問合せを行わなくてすむため、転送装置10a〜10cでの処理負荷が軽減される。さらに、制御装置30aは負荷が高い間に新たな要求メッセージの受信や処理を行わないので、制御装置30aの復旧も早められる。
〔ケース3〕
以下、図10を参照しながら、制御装置30aで障害が発生した上、転送装置10aと制御装置30aの間のセッションが切断されている場合に、端末5aがパケットを端末5dに送信する場合の処理の例を説明する。なお、図10を参照しながら説明する例でも、端末5、転送装置10、制御装置30の間の接続関係や、各転送装置10で使用される転送ルールテーブル16とデフォルト転送ルール17は、ケース1と同様である。また、転送装置10bと制御装置30aの間のセッションと、転送装置10cと制御装置30aの間のセッションは切断されていないものとする。
(31)転送装置10aの接続管理部18aは、転送装置10aと制御装置30aの間でのセッションの状態をモニタする。接続管理部18aは、転送装置10aと制御装置30aとの間のセッションが切断されたことを検出すると、取得部22aにセッションの切断を通知する。すると、取得部22aは、転送装置10aと制御装置30aの間で通信ができないため、制御装置30aへの転送ルールの要求を中止する。
(32)端末5aは、端末5d宛てのパケットP1を生成したとする。パケットP1は、転送装置10aに送信される。
(33)転送装置10aの転送先特定部14aは、受信部11aを介してパケットP1を取得し、パケットP1に適用できる転送ルールが転送ルールテーブル16a(図7)に含まれているかを判定する。パケットP1に適用できる転送ルールが無いので、転送先特定部14aは、パケットP1を判定部21aに出力する。判定部21aは、パケットP1に障害情報が含まれていないので、パケットP1を取得部22aに出力する。
取得部22aは、制御装置30aへの要求メッセージの送信を中止しているので、転送装置10aと制御装置30aの間のセッションが切断されていることを表わす情報と共に、パケットP1を付加処理部23aに出力する。付加処理部23aは、取得部22aから入力された情報を用いて、以下の情報を含む障害情報をパケットP1に付加する。
障害情報1
障害原因フィールドの値:1
転送装置10の識別子 :転送装置10a
制御装置30の識別子 :制御装置30a
終了フラグ :TRUE
ここで、付加処理部23aが生成した障害情報は、障害原因フィールドの値=1に設定されているので、転送ルールの取得に際しての障害は、制御装置30aの状態ではないことを意味する。すなわち、障害情報1は、制御装置30aについての不可情報ではない。付加処理部23aは、障害情報を付加したパケットP8の出力ポートがポートPo3であることを、デフォルト転送ルール17a(図7)を用いて特定する。さらに、手順(4)と同様に、パケットP8を転送装置10bに転送する。
(34)転送装置10bの転送先特定部14bは、受信部11bを介してパケットP8を取得する。パケットP8に適用できる転送ルールが転送ルールテーブル16bに含まれていないので、転送先特定部14bは、パケットP8を判定部21bに出力する。判定部21bは、パケットP8に含まれている障害情報を解析することにより、パケットP8には、不可情報が含まれていないと判定する。つまり、判定部21bは、転送装置10aにおいて制御装置30aとの間のセッションが切断されたために転送装置10aが転送ルールを取得できなかったことを特定する。この結果、判定部21bは、転送装置10bと制御装置30aのセッションが接続されていれば、転送装置10bが制御装置30aから転送ルールを取得できる可能性があると判定する。そこで、判定部21bは、パケットP8を取得部22bに出力する。
(35)取得部22bは、パケットP8の宛先MACアドレスなどの情報を含む要求メッセージ91bを生成する。取得部22bは、送信部12bを介して要求メッセージ91bを制御装置30aに送信し、要求メッセージ91bの送信時刻を記憶する。しかし、制御装置30aで障害が発生しているため、転送装置10bは、要求メッセージ91bの送信時刻から所定の時間以内に、制御装置30aから転送ルールを得ることができない。このため、取得部22bは、要求メッセージ91bの送信時刻から所定の時間が経過すると、パケットP8を付加処理部23bに出力する。付加処理部23bは、パケットP8に以下の障害情報を付加する。
障害情報2
障害原因フィールドの値:2
転送装置10の識別子 :転送装置10b
制御装置30の識別子 :制御装置30a
終了フラグ :FALSE
ここで、付加処理部23bが生成した障害情報は、障害原因フィールドの値=2に設定されているので、制御装置30aの状態が原因で転送ルールが取得できないことを意味する。すなわち、障害情報2は、制御装置30aについての不可情報である。付加処理部23bは、障害情報の付加後のパケットP9の出力ポートを、デフォルト転送ルール17b(図7)を用いて特定する。付加処理部23bは、パケットP9を、出力ポートがポートPo2であることを表わす情報と共に、送信部12bに出力する。送信部12bの処理により、パケットP9は、転送装置10cに送信される。
(36)転送装置10cがパケットP9を受信すると、判定部21cは、パケットP9中の障害情報を解析する。パケットP9には障害情報1と障害情報2が含まれており、障害情報1は不可情報ではないが、と障害情報2は不可情報である。このように、不可情報と、不可情報ではない情報が障害情報ヘッダに含まれており、両者が同じ制御装置30に関する情報である場合、判定部21は、不可情報を優先する。ここでは、判定部21cは、障害情報1と障害情報2のうち、不可情報として使用できる障害情報2の情報を、転送ルールの取得の際に発生した原因として使用する。そこで、判定部21cは、制御装置30aから転送ルールを取得しようとした転送装置10bがタイムアウトにより転送ルールを得られなかったことから、制御装置30aで障害が発生したと判定する。このため、判定部21cは、転送装置10cも制御装置30aから転送ルールを取得できないと判定し、転送ルールの問合せを行わないことを決定する。判定部21cは、パケットP9を付加処理部23cに出力する。付加処理部23cは、手順(8)と同様の処理により、パケットP10を生成する。パケットP10は、手順(8)と同様の処理により、転送装置10dに送信される。
転送装置10dがパケットP10を受信した後の処理は、ケース1で述べた手順(9)〜(14)と同様である。
ケース3では、転送装置10bが制御装置30aに障害が起こっていることを意味する障害情報をパケットに付加するので、転送装置10cは、障害が発生している制御装置30に無駄に問合せを行わなくてすむ。なお、ここでは、制御装置30aで障害が発生している場合を例として説明したが、制御装置30aでの障害が発生していない場合、手順(34)、(35)の処理により、転送装置10bは制御装置30aから転送ルールを取得することもできる。つまり、転送装置10は、転送ルールの問い合わせを行うかを判断するときに、障害の発生だけでなく、障害の原因も使用するので、転送ルールの問い合わせを行うかを適切に判断でき、無駄な問い合わせを削減できる。
図11は、転送装置10の動作の例を説明するフローチャートである。なお、図11は、転送装置10の動作の例であり、ステップS3〜S5の順序を任意に変更することができる。転送装置10はパケットを受信するまで待機する(ステップS1)。転送先特定部14は、受信したパケットに適用可能な転送ルールが転送ルールテーブル16に含まれているかを判定する(ステップS2)。適用可能な転送ルールが転送ルールテーブル16に含まれていない場合、転送先特定部14は、パケットを判定部21に出力する(ステップS2でNo)。判定部21は、パケット中の障害情報を解析することにより、転送ルールを要求する制御装置30で障害が発生したことが通知されたかを判定する(ステップS3)。パケット中の障害情報により、制御装置30での障害の発生が通知されている場合、判定部21は、要求メッセージの送信を行わないことを決定し、パケットを付加処理部23に出力する(ステップS3でYes)。付加処理部23は、入力されたパケットに障害情報を付加し、デフォルト転送ルール17を用いて出力ポートを特定する(ステップS9、S10)。その後、転送装置10は、出力ポートからパケットを送信する(ステップS14)。
制御装置30での障害の発生が通知されていない場合、判定部21は、制御装置30での負荷が高いことが通知されたかを判定する(ステップS3でNo、ステップS4)。制御装置30での負荷が高いことが通知されている場合、判定部21は、要求メッセージの送信を行わないことを決定し、パケットを付加処理部23に出力する(ステップS4でYes)。以後、ステップS9、S10、S14の処理が行われる。
制御装置30での負荷が高いことが通知されていない場合、判定部21は、パケットを取得部22に出力する(ステップS4でNo)。取得部22は、転送装置10と制御装置30の間のセッションは接続中であるかを判定する(ステップS5)。転送装置10と制御装置30の間のセッションが切断されている場合、取得部22は、要求メッセージの送信を行わないことを決定し、パケットを付加処理部23に出力する(ステップS5で切断)。以後、ステップS9、S10、S14の処理が行われる。
転送装置10と制御装置30の間のセッションが接続中である場合、取得部22は、送信部12を介して、制御装置30に要求メッセージを送信する(ステップS5で接続中、ステップS6)。取得部22は、要求メッセージの送信時刻から所定の時間内に転送ルールを受信できない場合、タイムアウトが発生したと判定し、パケットを付加処理部23に出力する(ステップS7でYes)。付加処理部23は、取得部22からパケットが入力されると、タイムアウトが発生したと判定し、制御装置30での障害の発生を障害の原因として通知する障害情報を、パケットに付加する(ステップS9)。以後、ステップS10、S14の処理が行われる。
取得部22は、要求メッセージの送信時刻から所定の時間内に転送ルールを受信できた場合、受信した転送ルールを用いて、パケットの出力ポートを特定する(ステップS7でNo、ステップS8)。取得部22は、パケットの出力ポートを特定する情報と共に、パケットを変換部24に出力する。変換部24は、取得部22から入力されたパケットに障害情報が含まれているかを判定する(ステップS12)。パケットに障害情報が含まれている場合、変換部24は、障害情報を削除する(ステップS12でYes、ステップS13)。変換部24は、障害情報を削除した後のパケットを、取得部22から通知されたポート番号と共に送信部12に出力する。送信部12は、変換部24から通知されたポートからパケットを送信する(ステップS14)。
ステップS2において、パケットに適用可能な転送ルールが転送ルールテーブル16に含まれていると判定された場合、転送先特定部14は、転送ルールを用いて出力ポートを特定する(ステップS11)。その後、転送先特定部14は、パケットの出力ポートを特定する情報と共に、パケットを変換部24に出力する。その後、ステップS12〜S14の処理が行われる。
第1の実施形態によると、制御装置30での障害の発生や、制御装置30の処理負荷が大きいことが障害情報により通知されるので、転送装置10は、障害情報による通知の対象となった制御装置30に対する問合せを行わない。このため、転送装置10の無駄な処理を削減することができる。さらに、制御装置30での処理負荷が高くなっている場合に、転送装置10からの問合せが中止されることにより、制御装置30の負荷をさらに大きくしなくてすむので、制御装置30の復旧を早めることにも資するといえる。
図6〜図11を用いて説明した例では、パケットの宛先は、障害を起こしていない制御装置30bと通信可能な転送装置10dに接続された端末5dであったが、以上の説明は一例に過ぎない。例えば、パケットの宛先は、端末5cなど、送信元の端末5と同じ制御装置30の配下の端末5であっても良い。いずれの転送装置10も端末5c宛のパケットの転送ルールを保持していない場合、以上の説明と同様に、端末5c宛のパケットは転送装置10dに転送される。
転送装置10dは、手順(9)、(10)と同様の処理により、制御装置30bに転送ルールを問い合わせる。制御装置30bは調整装置70との通信により、制御装置30aに接続されている転送装置10と端末5との間の接続関係を取得する。そこで、制御装置30bは、転送装置10bに端末5cが接続されていることを特定し、端末5c宛のパケットについての転送装置10dでの転送ルールを決定する。例えば、制御装置30bは、転送装置10dに端末5c宛のパケットをポートPo2から出力することを転送ルールとして通知したとする。すると、手順(12)、(13)と同様の処理により、転送装置10dは、端末5c宛てのパケットを、転送装置10aに転送する。転送装置10aが転送装置10dからパケットを受信するまでの間に制御装置30bとの間で通信を確立している場合、転送装置10aは、制御装置30bから新たな転送ルールを取得できる。このため、転送装置10aは、転送ルールを用いて、パケットを転送装置10bに送信する。さらに、転送装置10bも転送装置10aからパケットを受信するまでに、制御装置30bとの間で通信を確立している場合、転送装置10bも、制御装置30bから新たな転送ルールを取得できる。このため、転送装置10bは、転送ルールを用いて、パケットを端末5cに送信できる。
<第2の実施形態>
第2の実施形態では、要求メッセージを受信した制御装置80が、転送ルールの問合せの対象となっているパケットの宛先までの経路を通知する場合の例を説明する。第2の実施形態では、新たな転送ルールを取得できない転送装置10にパケットが転送されても、パケット中の経路情報により、宛先の端末5への転送が行われる。
図12は、第2の実施形態で使用される制御装置80の構成の例を示す。制御装置80は、受信部31、送信部32、接続管理部33、経路付加部40、アプリケーション処理部45、経路計算制御部55、記憶部60を備える。経路計算制御部55は、転送ルール決定部51と経路計算部52を有する。なお、受信部31、送信部32、接続管理部33、アプリケーション処理部45、記憶部60の動作は、制御装置30と同様である。
転送ルール決定部51は、転送ルールの要求メッセージを解析することにより、転送ルールの問合せの契機となったパケットに障害情報が含まれているかを判定する。なお、第2の実施形態では、転送装置10は、要求メッセージに、転送ルールの問合せの対象となっているパケットを含めるものとする。転送ルール決定部51は、要求メッセージ中のパケットを解析することにより、障害情報がパケットに含まれているかを判定する。転送ルールの問い合わせの対象となっているパケットに障害情報が含まれている場合、転送ルール決定部51は、要求メッセージを経路計算部52と経路付加部40に出力する。一方、転送ルールの問い合わせの対象となっているパケットに障害情報が含まれていない場合、転送ルール決定部51は、要求メッセージを第1の実施形態と同様に処理する。
経路計算部52は、ネットワーク中のトポロジー情報などを用いて、要求メッセージの送信元の転送装置10から、転送ルールの問い合わせの対象のパケットの宛先に至る経路を計算する。経路計算部52は、計算結果を経路付加部40に出力する。経路付加部40は、経路計算部52から通知された計算結果と、ネットワーク情報61を用いて、経路に含まれている各転送装置10での出力ポートを特定する。さらに、経路付加部40は、要求メッセージから、転送ルールの問い合わせの対象のパケットを抽出する。経路付加部40は、抽出したパケットに、転送装置10ごとの出力ポートを特定するための情報を含める。経路付加部40は、出力ポートを特定するための情報を含むパケットを、送信部32に出力する。
なお、制御装置80のハードウェア構成も、図5に示すとおりである。制御装置80では、プロセッサ101は、接続管理部33、経路付加部40、アプリケーション処理部45、経路計算制御部55として動作する。メモリ102は、例えば、記憶部60として動作する。ネットワーク接続装置104は、受信部31と送信部32を実現する。
図13は、出力ポートの情報を含むパケットのフォーマットの例を示す。図13のペイロードとEthernetヘッダは、経路付加部40が抽出したパケットのペイロードとEthernetヘッダである。経路付加部40は、要求メッセージから抽出したパケットから障害情報ヘッダを削除し、出力ポート情報ヘッダを付加する。例えば、図13に示すように、経路付加部40は、ペイロードとEthernetヘッダの間に、出力ポート情報ヘッダを付加することができる。出力ポート情報ヘッダには、1つ以上のポート情報が含まれている。以下の説明では、ポート情報は、制御装置80からのホップ数が大きくなる順に並べられており、最もペイロードに近いポート情報は、パケットの宛先の端末5が接続している転送装置10で使用される情報であるものとする。図13の例では、ポート情報1は、パケットの宛先の端末5が接続している転送装置10での出力ポートを表わす。図13の例では、1つのポート情報には、転送装置10の識別子、出力ポート番号、終了フラグが含まれる。
終了フラグは、パケットの先頭から処理している装置が出力ポート情報ヘッダの終了を特定するために使用する。終了フラグ=TRUEは、そのポート情報が出力ポート情報ヘッダの末尾の情報であることを示す。一方、終了フラグ=FALSEは、そのポート情報の後に、他のポート情報が含まれていることを示す。以下の説明では、パケットの宛先の端末5が接続している転送装置10での出力ポートについての情報では、終了フラグ=TRUEに設定され、その他の転送装置10では終了フラグ=FALSEに設定される。なお、出力ポート情報ヘッダの末尾の情報は、対象パケットの宛先に接続している転送装置10の情報である。このため、終了フラグ=TRUEは、そのポート情報が適用される転送装置10が対象パケットの宛先の端末5に接続していることを示す情報でもある。
図14は、第2の実施形態で行われる通信処理の例を示す。図14でも、図6などを用いて説明したネットワークを例としており、端末5、転送装置10、制御装置、調整装置70の接続関係は、第1の実施形態と同様である。以下、制御装置80aに障害が発生したため、転送装置10a〜10cが新たな転送ルールを取得できない期間中に、端末5aから端末5cにパケットが送信された場合を例として、通信処理の例を説明する。なお、以下の説明では、いずれの転送装置10も端末5c宛てのパケットに適用できる転送ルールを保持していないものとする。
端末5aで端末5c宛のパケットP20が生成され、転送装置10aに転送された場合、第1の実施形態の手順(1)〜(10)で述べた処理と同様の処理が行われる。なお、転送装置10dが転送装置10cから受信したパケットを、パケットP21と記載する。取得部22dは、パケットP21を要求メッセージ91dに含めている。従って、要求メッセージ91dに含まれているパケットP21には、転送装置10a〜10cで付加された障害情報が含まれている。さらに、パケットP21の障害情報ヘッダ以外の情報は、端末5aで生成されたパケットP20と同じである。
(41)制御装置80bの受信部31bは、要求メッセージ91dを転送ルール決定部51bに出力する。転送ルール決定部51bは、要求メッセージ中に含まれているパケットP21に障害情報が含まれているかを判定する。ここでは、パケットP21に障害情報が含まれているので、要求メッセージ91dを経路計算部52bに出力する。
(42)経路計算部52bは、ネットワーク中の接続関係を用いて、転送装置10dから端末5cに至るまでの経路を計算する。なお、ネットワーク中の接続関係は、記憶部60bに記憶されている情報であっても良く、調整装置70から取得した情報であっても良い。経路計算部52bは、得られた経路の情報を経路付加部40に出力する。
(43)経路付加部40bは、記憶部60bに記憶されているネットワーク情報61bと、経路計算部52bから通知された経路情報を用いて、各転送装置10での出力ポートを特定する。さらに、経路付加部40bは、要求メッセージ91dからパケットP20を取得し、以下のような情報を含む出力ポート情報ヘッダを、パケットP20に含める。
ポート情報3
転送装置10の識別子:転送装置10d
出力ポート :ポートPo4
終了フラグ :FALSE
ポート情報2
転送装置10の識別子:転送装置10c
出力ポート :ポートPo1
終了フラグ :FALSE
ポート情報1
転送装置10の識別子:転送装置10b
出力ポート :ポートPo3
終了フラグ :TRUE
以下、パケットP20に出力ポート情報ヘッダが付加されたパケットをパケットP22と記載する。経路付加部40bは、パケットP22を送信部32bに出力する。送信部32bは、パケットP22を転送装置10dに送信する。
(44)転送装置10dの受信部11dは、パケットP22を取得部22dに出力する。取得部22dは、パケットP22に出力ポート情報ヘッダが含まれているかを判定する。パケットP22に出力ポート情報ヘッダが含まれているので、取得部22dは、パケットP22を転送先特定部14dに出力する。転送先特定部14dは、出力ポート情報ヘッダから、転送装置10dでの出力ポートが記録されているポート情報(ポート情報3)を抽出する。抽出したポート情報では、出力ポートがポートPo4に設定されている。そこで、転送先特定部14は、出力ポートがポートPo4であることを表わす情報と共に、パケットP22を送信部12dに出力する。送信部12dがパケットP22をポートPo4から出力することにより、パケットP22は、転送装置10cに送信される。
(45)転送装置10cの転送先特定部14cは、受信部11dを介してパケットP22を取得する。この時点では、転送装置10cは、制御装置80bとの接続を確立しておらず、さらに、制御装置80aも障害から復旧していないものとする。従って、転送装置10cは、新たな転送ルールを取得することはできない。転送先特定部14cは、パケットP22に出力ポート情報ヘッダが含まれていると判定すると、手順(44)と同様に出力ポート情報ヘッダの処理を行う。このため、転送先特定部14cは、転送ルールを使用する代わりに、ポート情報2を用いて、転送装置10cからの出力ポートがポートPo1であると特定する。そこで、転送先特定部14cは、出力ポートがポートPo1であることを表わす情報と共に、パケットP22を送信部12cに出力する。送信部12cがパケットP22をポートPo1から出力することにより、パケットP22は、転送装置10bに送信される。
(46)転送装置10bの転送先特定部14bは、手順(45)と同様の処理を行うので、ポート情報1を用いて、転送装置10bからの出力ポートがポートPo3であると特定する。さらに、転送先特定部14bは、ポート情報1では終了フラグ=TRUEに設定されているので、パケットP22から出力ポート情報ヘッダを削除する。この処理により、転送装置10bは、パケットP22をパケットP20に変換する。転送先特定部14bは、出力ポートがポートPo3であることを表わす情報と共に、パケットP20を送信部12bに出力する。送信部12bがパケットP20をポートPo3から出力することにより、パケットP20は、端末5cに送信される。
なお、図14を参照しながら、ネットワーク中の制御装置が制御装置80である場合を例として説明したが、ネットワーク中には、制御装置80と制御装置30の両者が混じっていてもよい。
図15は、制御装置80の動作の例を説明するフローチャートである。転送ルール決定部51は、受信部31を介して、要求メッセージを取得する。なお、図15は、図4のネットワークN2に示すように、制御装置80同士が直接通信するネットワークで行われる動作の例を示す。転送ルール決定部51は、制御装置80が単位時間当たりに受信する要求メッセージの数と閾値との比較結果を用いて、制御装置80の処理負荷が高いかを判定する(ステップS21)。制御装置80の処理負荷が高い場合、転送ルール決定部51は、要求メッセージの処理を終了する(ステップS21でYes)。一方、処理負荷が高くない場合、接続管理部33は、他の制御装置80との間の通信が可能であるかを判定する(ステップS21でNo、ステップS22)。他の制御装置80との通信ができない場合、制御装置80は処理を終了する(ステップS22でYes)。他の制御装置80と通信できる場合、転送ルール決定部51は、要求メッセージ中に障害情報が含まれているかを判定する(ステップS22でNo、ステップS23)。要求メッセージ中に障害情報が含まれていない場合、転送ルール決定部51は、転送ルールを生成し、送信部32を介して、要求メッセージの送信元に送信する(ステップS23でNo、ステップS24)。
一方、要求メッセージ中に障害情報が含まれている場合、転送ルール決定部51は、他の制御装置80で障害が発生していることを検知する(ステップS23でYes、ステップS25)。転送ルール決定部51は、要求メッセージを経路計算部52に出力する。経路計算部52は、要求メッセージの送信元から、要求メッセージに含まれているパケットの宛先までの経路を計算する(ステップS26)。経路付加部40は、経路計算部52での計算結果を用いて、各転送装置10での出力ポートを特定し、要求メッセージに含まれているパケットに出力ポート情報ヘッダを含める(ステップS27)。経路付加部40は、送信部32を介して、出力ポート情報ヘッダを含むパケットを送信する(ステップS28)。その後、転送ルール決定部51は、要求メッセージの送信元に、経路計算部52が計算した経路を用いるための転送ルールを通知する(ステップS29)。
なお、制御装置80は、制御装置30と制御装置80が混じっているネットワーク中でも図15を用いて説明したように動作することができる。
図16は、転送装置10の動作の例を説明するフローチャートである。図16は、パケットの転送処理を行うときの動作の例を示している。転送装置10は、パケットを受信する。転送先特定部14は、受信したパケットに出力ポート情報ヘッダが含まれているかを判定する(ステップS41)。受信したパケットに出力ポート情報ヘッダが含まれていない場合、転送先特定部14は、経路情報を含んでいないパケットを受信したと判定して、転送処理を行う(ステップS41でNo、ステップS42)。なお、ステップS42での処理は、図11を参照しながら説明したとおりである。一方、出力ポート情報ヘッダを含むパケットを受信した場合、転送先特定部14は、変数nを1に設定する(ステップS41でYes、ステップS43)。ここで、nは、出力ポート情報ヘッダ中のポート情報を識別するために使用される変数である。転送先特定部14は、パケットの先頭側からn番目のポート情報を読み込み、自装置の識別子が含まれているかを判定する(ステップS44、S45)。自装置の識別子が含まれていない場合、転送先特定部14は、読み込んだポート情報の終了フラグがTRUEに設定されているかを判定する(ステップS45でNo、ステップS46)。ポート情報の終了フラグがTRUEに設定されている場合、転送先特定部14は処理を終了する(ステップS46でYes)。ポート情報の終了フラグがTRUEに設定されていない場合、転送先特定部14は、nを1つインクリメントして、ステップS44以降の処理を行う(ステップS46でNo、ステップS47)。
一方、読み込んだポート情報に自装置の識別子が含まれている場合、転送先特定部14は、出力ポートを特定する(ステップS45でYes、ステップS48)。さらに、転送先特定部14は、読み込んだポート情報の終了フラグがTRUEに設定されているかを判定する(ステップS49)。読み込んだポート情報の終了フラグがTRUEに設定されている場合、転送先特定部14は、処理対象のパケットから出力ポート情報ヘッダを削除し、パケットを送信部12に出力する(ステップS49でYes、ステップS50)。その後、送信部12は、特定された出力ポートからパケットを送信する(ステップS51)。
第2の実施形態では、制御装置80は、転送ルールの問合せを受けると、処理対象のパケットに、そのパケットの宛先までの経路中の転送装置10での出力ポートの情報を、出力ポート情報ヘッダとして挿入する。このため、各転送装置10は、出力ポート情報ヘッダを参照することにより、そのパケットについての出力ポートを特定することができる。換言すると、転送装置10は、新たな転送ルールを取得できない状況でも、パケットを宛先に向けて転送することができる。例えば、図14のケースでは、転送装置10bと転送装置10cのいずれも制御装置80から転送ルールを取得できない場合であっても、転送装置10bと転送装置10cは、出力ポート情報ヘッダを用いて転送処理を行うことができる。
従って、第2の実施形態を用いると、転送ルールを取得できなくなっている転送装置10に接続されている端末5へのパケットの転送であっても、転送装置10が転送ルールを取得できるようになる前に転送処理を行うことができる。
<第3の実施形態>
要求メッセージを受信した制御装置80は、転送ルールの問合せの対象となっているパケットの宛先までの経路の代わりに、各転送装置10で使用される転送ルールを通知することもできる。この場合、経路付加部40は、得られた経路に含まれている各転送装置10が使用可能な転送ルールを含むパケットを、要求メッセージの送信元に送信する。
図17は、転送ルールを含むパケットのフォーマットの例を示す。図17のペイロードとEthernetヘッダは、経路付加部40が要求メッセージから抽出したパケットのペイロードとEthernetヘッダである。経路付加部40は、取得したパケットから障害情報ヘッダを削除し、転送ルール変更ヘッダを付加する。図17の例では、経路付加部40は、ペイロードとEthernetヘッダの間に、転送ルール変更ヘッダを付加している。転送ルール変更ヘッダには、1つ以上の転送ルールが含まれている。以下の説明では、転送ルールは、制御装置80からのホップ数が大きくなる順に並べられており、最もペイロードに近いポート情報は、パケットの宛先の端末5が接続している転送装置10で使用される情報であるものとする。図17の例では、転送ルール1は、パケットの宛先の端末5が接続している転送装置10での出力ポートを表わす情報である。図17の例では、転送装置10の識別子、パケットの選択条件、選択されたパケットに対するアクション、終了フラグが、1つの転送ルールに含まれている。終了フラグは、図13を参照しながら説明した出力ポート情報ヘッダを含むパケットと同様である。従って、終了フラグ=TRUEは、その転送ルールを使用する転送装置10が処理対象のパケットの宛先の端末5に接続していることを示す情報でもある。
図18は、転送ルールを用いた処理方法の例を説明する図である。図18の例では、制御装置80cと制御装置80dの間で、ネットワーク中の接続情報が共有されているものとする。なお、制御装置80cと制御装置80dの間で情報を共有するための方法は、図4を参照しながら述べたいずれかの方法であるものとする。制御装置80cは、転送装置10e、10fと接続しており、制御装置80dは転送装置10gと接続している。さらに、転送装置10fは、転送装置10eと転送装置10gのいずれともパケットの送受信が可能である。転送装置10eには端末5Bが接続しており、転送装置10fには端末5Aが接続している。なお、図18はネットワークの一例であり、ネットワーク中の制御装置80、転送装置10、端末5の数は任意に変更されうる。
図18のネットワークにおいて、制御装置80cに障害が発生したことにより、転送装置10fと転送装置10eが新たな転送ルールを制御装置80cから取得できないときに、端末5Aが端末5Bにパケットを送信したとする。ここで、転送装置10fは、端末5Aから端末5B宛のパケットが送信された時点では、図19の転送ルールテーブル16f_1を保持しているものとする。同様に、転送装置10eは、転送ルールテーブル16e_1(図19)、転送装置10gは、転送ルールテーブル16g_1(図19)を保持しているものとする。
(51)転送装置10fは、端末5Aから端末5B宛のパケットP30を受信する。転送先特定部14fは、転送ルールテーブル16f_1には、端末5B宛のパケットP30に適用できる転送ルールが含まれていないと判定する。その後、第1の実施形態の手順(2)、(3)で説明した処理と同様の処理により、パケットP30に障害情報を付加したパケットP31が生成される。さらに、パケットP31は、デフォルト転送ルール17e(図示せず)を用いて、転送装置10gに転送されたとする。
(52)転送装置10gの転送先特定部14gは、転送ルールテーブル16g_1には、端末5B宛のパケットP31に適用できる転送ルールが含まれていないと判定する。そこで、取得部22gは、制御装置80dに要求メッセージ91gを送信する。ここで、取得部22gは、パケットP31を要求メッセージ91gに含めている。
(53)第2の実施形態の手順(41)、(42)と同様の処理により、転送装置10gから端末5Bに至る経路が計算される。ここで、転送装置10gから転送装置10f、転送装置10eを介し、端末5Bに至る経路が計算される。
(54)経路付加部40dは、経路計算部52dから得られた経路と、ネットワーク情報61を用い、転送装置ごとの出力ポートを特定する。次に、経路付加部40は、各転送装置10について求めた出力ポートを、パケットP31の宛先に対応付けた転送ルールを生成する。例えば、転送装置10gでの出力ポートがポートPo1である場合、パケットの宛先に対応付けて、以下の転送ルールを生成する。
転送ルールT3
転送装置10の識別子:転送装置10g
選択条件 :宛先MACアドレスが端末5Bのアドレス
アクション :ポートPo1から出力
さらに、転送装置10gは要求メッセージ91gの送信元であるので、終了フラグをFALSEに設定する。同様に、経路付加部40dは、転送装置10fで使用される転送ルールT2と、転送装置10eで使用される転送ルールT1を以下のように生成する。
転送ルールT2
転送装置10の識別子:転送装置10f
選択条件 :宛先MACアドレスが端末5Bのアドレス
アクション :ポートPo2から出力
終了フラグ :FALSE
転送ルールT1
転送装置10の識別子:転送装置10e
選択条件 :宛先MACアドレスが端末5Bのアドレス
アクション :ポートPo1から出力
終了フラグ :TRUE
経路付加部40dは、得られた転送ルールT1〜T3を転送ルールヘッダに記録し、パケットP31のペイロードとEthernetの間に転送ルールヘッダを付加する。さらに、パケットP31中の障害情報ヘッダを削除する。図18に、転送ルール変更ヘッダを含むパケットP32を示す。制御装置80dは、パケットP32を転送装置10dに送信する。
(55)転送装置10gの取得部22gは、受信部11gを介してパケットP32を取得する。取得部22gは、パケットP32に転送ルール変更ヘッダが含まれているかを判定する。パケットP32に転送ルール変更ヘッダが含まれているので、取得部22gは、パケットP32を転送先特定部14gに出力する。転送先特定部14gは、転送ルール変更ヘッダから、転送装置10gで使用する転送ルールT3を抽出する。転送先特定部14gは、得られた転送ルールを用いて、転送ルールテーブル16g_1(図19)を、転送ルールテーブル16g_2(図19)に更新する。さらに、転送先特定部14gは、パケットP32が端末5B宛のパケットであるので、転送ルールテーブル16g_2に従って、パケットP32をポートPo1から出力することにより、パケットP32を転送装置10fに送信する。
(56)転送装置10fの転送先特定部14fは、受信部11fを介してパケットP32を取得する。転送先特定部14fは、パケットP32に転送ルール変更ヘッダが含まれているかを判定する。パケットP32に転送ルール変更ヘッダが含まれているので、転送先特定部14fは、転送ルール変更ヘッダから、転送装置10fで使用する転送ルールT2を抽出する。転送先特定部14fは、得られた転送ルールを用いて、転送ルールテーブル16f_1(図19)を、転送ルールテーブル16f_2(図19)に更新する。さらに、転送先特定部14fは、パケットP32が端末5B宛のパケットであるので、転送ルールテーブル16f_2に従って、パケットP32をポートPo2から出力することにより、パケットP32を転送装置10eに送信する。
(57)転送装置10eの転送先特定部14eは、手順(56)と同様の処理により、転送ルールテーブル16e_1(図19)を、転送ルールT1により、転送ルールテーブル16e_2(図19)に更新する。さらに、転送ルールT1に含まれている終了フラグがTRUEに設定されていることから、転送先特定部14eは、パケットP32から転送ルール変更ヘッダを削除し、パケットP32をパケットP30に変換する。転送装置10eは、転送ルールテーブル16e_2を用いて、パケットP30を処理することにより、パケットP30を端末5Bに送信する。
図20は、第3の実施形態での転送装置の動作の例を説明するフローチャートである。図20は、パケットの転送処理を行うときの動作の例を示している。転送先特定部14は、受信部11を介して、制御装置80からパケットを受信する。転送先特定部14は、受信したパケットに転送ルール変更ヘッダが含まれているかを判定する(ステップS61)。受信パケットに転送ルール変更ヘッダが含まれていない場合、転送先特定部14は、経路情報を含んでいないパケットを受信したと判定して、転送処理を行う(ステップS61でNo、ステップS62)。なお、ステップS62での処理は、図11を参照しながら説明した通りである。ステップS63〜ステップS67の処理は、図16を参照しながら説明したステップS43〜S47と同様である。
読み込んだ転送ルールに自装置の識別子が含まれている場合、転送先特定部14は、転送ルールテーブル16を更新する(ステップS65でYes、ステップS68)。さらに、転送先特定部14は出力ポートを特定する(ステップS69)。転送先特定部14は、読み込んだポート情報の終了フラグがTRUEに設定されているかを判定する(ステップS70)。読み込んだポート情報の終了フラグがTRUEに設定されている場合、転送先特定部14は、処理対象のパケットから転送ルール変更ヘッダを削除し、パケットを送信部12に出力する(ステップS70でYes、ステップS71)。その後、送信部12は、更新後の転送ルールテーブル16を用いて特定された出力ポートからパケットを送信する(ステップS72)。
このように、第3の実施形態を用いると、パケットの出力先のポートの特定と、転送ルールテーブル16の更新が1つのパケットを用いて行われるため、効率的に通信処理が行われる。
<第4の実施形態>
第4の実施形態では、デフォルト転送ルール17を制御装置30で生成する場合について説明する。なお、制御装置80も制御装置30と同様の処理により、転送装置10ごとにデフォルト転送ルール17を求めることができる。
制御装置30は、他の制御装置30との間で、転送装置10や端末5との間の接続関係を表わす情報を交換すると、自装置と接続を確立している転送装置10に対して、デフォルト転送ルール17の計算を行う。このとき、制御装置30は、各転送装置10について、最小のホップ数で他の制御装置30と接続を確立している転送装置10に到達する経路を求め、求めた経路を使用するための出力ポートを各転送装置10に対して計算する。
図21は、デフォルト転送ルールの決定方法の例を説明するフローチャートである。転送ルール決定部51は、自装置と接続を確立している転送装置10のうちでデフォルト転送ルール17を決定する対象を選択する。例えば、制御装置30は、新たにセッションを確立した転送装置10に対してデフォルト転送ルール17を計算し、計算結果を通知することができる。この場合、接続管理部33は、新たにセッションを確立した転送装置10を転送ルール決定部51に通知する。以下、デフォルト転送ルール17を決定する対象を転送装置10tと記載する。
転送ルール決定部51は、接続管理部33から転送装置10tの情報を通知されると、転送装置10tをデフォルト転送ルール17を求める対象とし、変数mを0に設定する(ステップS81)。ここで、変数mは、転送装置10tからのホップ数を特定するために使用される。転送ルール決定部51は、これまでにネットワーク中の全ての転送装置10を調査対象としているかを判定する(ステップS82)。ネットワーク中の全ての転送装置10について調査を行っていない場合、転送ルール決定部51は、転送装置10tからmホップにある全ての転送装置10を調査対象に設定する(ステップS82でNo、ステップS83)。さらに、転送ルール決定部51は、調査対象とした転送装置10について、通信中の制御装置を特定する(ステップS84)。転送ルール決定部51は、調査対象としている転送装置10の中に、転送装置10tとは異なる制御装置30と通信中の転送装置10があるかを判定する(ステップS85)。転送装置10tとは異なる制御装置30と通信中の転送装置10が無い場合、転送ルール決定部51は、mの値を1つインクリメントして、ステップS82以降の処理を繰り返す(ステップS85でNo、ステップS86)。
一方、転送装置10tとは異なる制御装置30と通信中の転送装置10がある場合、転送ルール決定部51は、転送装置10tとは異なる制御装置30と通信中の転送装置10を、経路計算部52に通知する(ステップS85でYes)。経路計算部52は、転送ルール決定部51から通知された転送装置10を終点としたときの、転送装置10tからの最短経路を計算する(ステップS88)。転送ルール決定部51は、経路計算部52で得られた経路を使用するための、転送装置10tでの出力ポートを求める(ステップS89)。
例えば、図6に示すネットワーク中で制御装置30aが故障する前に、制御装置30bが転送装置10dとセッションを確立したとする。すると、転送ルール決定部51bは、転送装置10dから1ホップ目に転送装置10cと転送装置10aがあることを特定する。さらに、転送装置10cと転送装置10aのいずれも制御装置30aと通信している。そこで、経路計算部52bは、経路の状況なども勘案して、転送装置10dから転送装置10cに至る経路を、デフォルト転送ルール17の算出に用いることにしたとする。すると、転送ルール決定部51bは、ポートPo4から出力することを、転送装置10dで使用するデフォルト転送ルール17として決定する。転送ルール決定部51bは、デフォルト転送ルール17を転送装置10dに通知する。
ステップS82で全ての転送装置10を調査対象にしたと判定された場合、転送ルール決定部51は、ネットワーク中に、自装置以外の制御装置30に接続されている転送装置10が無いと判定する(ステップS82でYes)。そこで、転送ルール決定部51は、転送装置10tのポートのうちで他の転送装置10に接続されているポートのうちの1つをランダムに選択する(ステップS87)。転送ルール決定部51は、選択したポートからパケットを出力することをデフォルト転送ルール17として、転送装置10tに通知する。
このように、制御装置30でデフォルト転送ルール17が決定されると、転送装置10は、転送ルールが得られない場合に、なるべく少ないホップ数で転送ルールを提供可能な制御装置30と通信できる転送装置10に、パケットを転送できる。そのため、効率的に通信処理が行われる。
なお、第4の実施形態は、第1〜第3の実施形態を含む任意の他の実施形態と組み合わせて使用される。
<その他>
なお、実施形態は上記に限られるものではなく、様々に変形可能である。以下にその例をいくつか述べる。
第1の実施形態のケース2では、制御装置30中の転送ルール決定部51が、処理負荷の大きさを閾値と比較した結果、転送ルールの問い合わせを受け付けるかを決定しているが、制御装置30での負荷の大きさは、転送装置10で推定しても良い。例えば、転送装置10aの取得部22aは、単位時間当たりに制御装置30aに送信した要求メッセージの数を、予め記憶している閾値と比較することができる。取得部22aは、単位時間当たりに制御装置30aに送信した要求メッセージの数が閾値を越えると、制御装置30aの処理負荷が高いと判定し、制御装置30aへの要求メッセージの送信を中止する。このため、転送装置10aは、手順(25)の処理を行う。転送装置10bは、転送装置10aから受信したパケットP5に、障害原因フィールドの値=3の障害情報が含まれていることから、制御装置30aでの負荷が高いと推定する。そこで、転送装置10bも、制御装置30aへの要求メッセージの送信を中止し、手順(26)の処理を行う。転送装置10cも、転送装置10bと同様に動作する。このように変形すると、制御装置30aが中止メッセージ93aを送信しなくても、制御装置30aの負荷が高いと判断されると制御装置30aへの要求メッセージの送信が中止される。このため、制御装置30aの処理負荷が、中止メッセージ93aの生成が困難なほどに高くなっても、制御装置30aへの要求メッセージの送信を中止できる。
第2の実施形態では、出力ポート情報ヘッダを含むパケットを生成するときに、制御装置80が障害情報ヘッダを削除する場合について述べたが、制御装置80は障害情報ヘッダを残したまま、出力ポート情報ヘッダを付加したパケットを生成しても良い。この場合、出力ポート情報ヘッダ中の終了フラグがTRUEに設定されているエントリの処理を行った転送装置10は、出力ポート情報ヘッダと障害情報ヘッダの両方をパケットから削除した後、転送処理を行う。第3の実施形態についても同様に、転送ルール変更ヘッダを含むパケットを生成するときに、制御装置80が障害情報ヘッダを削除しなくてもよい。この場合も、終了フラグがTRUEに設定されているエントリの処理を行った転送装置10は、転送ルール変更ヘッダと障害情報ヘッダの両方をパケットから削除した後、転送処理を行う。
以上の説明では、理解しやすくするために、各転送装置10が1つの制御装置30とセッションを確立している場合を例として説明したが、転送装置10は、複数の制御装置30と同時にセッションを確立しても良い。この場合、セッションを確立している制御装置30のうちの1台が転送ルールを提供し、他の制御装置30は、転送ルールを提供しない。ここで、転送ルールを通知する制御装置30をマスタコントローラ、転送ルールを通知しない制御装置30をスレーブコントローラと記載する。制御装置30間での通信や制御装置30と調整装置70の通信により、各制御装置30は、各転送装置10について、マスタコントローラとスレーブコントローラを特定できるものとする。また、マスタコントローラで障害が発生した場合や、マスタコントローラの負荷が高い場合などは、転送装置10は、スレーブコントローラをマスタコントローラに設定し直し、新たなマスタコントローラから転送ルールを取得できるものとする。制御装置80についても同様である。
なお、第4の実施形態では、転送装置10が複数の制御装置30、80とセッションを確立している場合、転送装置10がマスタコントローラを変更した場合にも、新たにデフォルト転送ルール17が計算される。転送装置10は、新たなマスタコントローラからデフォルト転送ルール17を通知されるとデフォルト転送ルール17を更新するので、転送装置10は、マスタコントローラの変更に応じてデフォルト転送ルール17も変更できる。
さらに、いずれの実施形態においても、制御装置30、80は、図4に示すネットワークN1、N2のいずれかを用いてネットワーク中の転送装置10や端末5の接続関係などの情報を共有することができる。
第1〜第4の実施形態では、転送装置10はデフォルト転送ルール17を用いた転送をする場合に、パケットに障害情報を付加する場合を例として説明したが、転送装置10は不可情報以外の情報をパケットに付加しないように変形されても良い。例えば、第1の実施形態のケース1やケース2のように、制御装置30に障害が発生した場合か、制御装置30の負荷が閾値を超えた場合であって、かつ、適用可能な転送ルールがない場合に、転送装置10は、パケットに不可情報を付加する。一方、第1の実施形態のケース3のように、転送装置10と制御装置30の間のセッションが切断されたために転送ルールを取得できない場合、転送装置10は、不可情報も障害情報もパケットに付加しない。
さらに、制御装置30は、転送ルールの要求メッセージの受信以外の要因により、制御装置30での負荷が高くなった場合でも、中止メッセージを生成することができる。この場合も、第1の実施形態で述べたように、転送装置10は、中止メッセージの送信元の制御装置30に転送ルールを要求しない。制御装置80についても制御装置30と同様に中止メッセージを生成できるものとする。
第2の実施形態では、各転送装置10で使用する出力ポートの情報が出力ポート情報ヘッダに含まれているケースを例として説明したが、出力ポートの情報は、ヘッダ以外の部分に記録されても良いものとする。同様に、第3の実施形態で説明した転送ルール変更ヘッダに含まれている情報は、パケットのヘッダ以外の領域に含まれていても良い。
第1〜第4の実施形態でも、図1を参照しながら説明したように、不可情報がすでに付加されているパケットに対しては、付加処理部23が不可情報を付加しないように変形されても良い。この場合、判定部21は、転送先特定部14から入力されたパケット中に転送ルールの要求先の制御装置30についての不可情報が含まれている場合、デフォルト転送ルール17を用いてパケットの出力ポートを特定する。さらに、判定部21は、特定したポートの情報と共に、パケットを送信部12に出力する。送信部12は、入力されたパケットを、通知された出力ポートから送信する。
上述の第1〜第4の実施形態を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
複数の制御装置を備えるネットワーク中の転送装置であって、
転送処理の対象である対象パケットを受信する受信部と、
前記転送装置が行う処理の方法を表す転送ルールを決定する制御装置である決定装置から、前記受信部が受信した転送ルールを記憶する記憶部と、
前記対象パケットに適用できる転送ルールが前記記憶部に記憶されていない場合、前記決定装置から前記転送ルールを取得できないことを示す不可情報が、前記対象パケット中に含まれているかを判定する判定部と、
前記対象パケットに前記不可情報が含まれている場合、前記対象パケットに適用される転送ルールを前記決定装置に要求せずに、前記対象パケットを、他の転送装置に送信する送信部
を備えることを特徴とする転送装置。
(付記2)
前記対象パケットに適用できる転送ルールが前記記憶部に記憶されておらず、かつ、前記対象パケットに前記不可情報が含まれていない場合、前記対象パケットに適用される転送ルールを前記決定装置から取得するための処理を行う取得部と、
前記対象パケットに適用される転送ルールを所定の時間以内に前記決定装置から取得できない場合、前記対象パケットに前記不可情報を付加する付加処理部、
を備え、
前記送信部は、前記不可情報を付加した後の対象パケットを、前記他の転送装置に送信する
ことを特徴とする付記1に記載の転送装置。
(付記3)
前記対象パケットに適用できる転送ルールが前記記憶部に記憶されておらず、かつ、前記対象パケットに前記不可情報が含まれていない場合、前記対象パケットに適用される転送ルールを前記決定装置から取得するための処理を行う取得部と、
前記対象パケットに適用される転送ルールを前記決定装置から取得すると、取得した転送ルールに基づいて前記対象パケットの転送先を特定する特定部と、
前記複数の制御装置のうちの前記決定装置以外のいずれかからの転送ルールの取得に障害が発生したことを通知する障害情報が前記対象パケットに含まれており、かつ、前記対象パケットの転送先が特定された場合、前記対象パケットから前記障害情報を削除することにより、前記対象パケットを転送パケットに変換する変換部、
を備え、
前記送信部は、前記転送パケットを、前記転送先に送信する
ことを特徴とする付記1に記載の転送装置。
(付記4)
前記対象パケットに適用される転送ルールを前記決定装置から取得すると、取得した転送ルールに基づいて前記対象パケットの転送先を特定する特定部と、
前記複数の制御装置のうちの前記決定装置以外のいずれかからの転送ルールの取得に障害が発生したことを通知する障害情報が前記対象パケットに含まれており、かつ、前記対象パケットの転送先が特定された場合、前記対象パケットから前記障害情報を削除することにより、前記対象パケットを転送パケットに変換する変換部、
を備え、
前記送信部は、前記転送パケットを、前記転送先に送信する
ことを特徴とする付記2に記載の転送装置。
(付記5)
複数のポートを備え、
前記取得部は、前記対象パケットに適用される転送ルールを前記決定装置に要求するための要求メッセージを生成し、
前記送信部は、前記要求メッセージを前記決定装置に送信し、
前記対象パケットの宛先に至る経路に含まれる各転送装置の識別子に、前記識別子で識別される転送装置での出力ポートを対応付けた出力ポート情報が、前記要求メッセージに応答する応答メッセージに含まれている場合、前記特定部は、前記出力ポート情報中で当該転送装置の識別子に対応付けられたポートを特定し、
前記送信部は、前記複数のポートのうちで、前記特定部により特定されたポートを、転送処理に使用する
ことを特徴とする付記3または4に記載の転送装置。
(付記6)
前記取得部は、前記対象パケットに適用される転送ルールを前記決定装置に要求するための要求メッセージを生成し、
前記送信部は、前記要求メッセージを前記決定装置に送信し、
前記特定部は、
前記対象パケットの宛先に至る経路に含まれる各転送装置の識別子に、前記識別子で識別される転送装置で使用される転送ルールを対応付けた転送ルール変更情報が、前記要求メッセージに応答する応答メッセージに含まれている場合、前記転送ルール変更情報中で当該転送装置の識別子に対応付けられた転送ルールを用いて前記記憶部の情報を変更し、
前記記憶部の変更後の情報を用いて、前記転送先を特定する
ことを特徴とする付記3または4に記載の転送装置。
(付記7)
前記不可情報は、前記決定装置での障害が発生したことを通知する情報か、前記決定装置での処理負荷が所定の閾値を超えたことを通知する情報である
ことを特徴とする付記1〜6のいずれか1項に記載の転送装置。
(付記8)
複数の制御装置を備えるネットワーク中の転送装置であって、
転送処理の対象である対象パケットの送受信を行うネットワーク接続装置と、
前記転送装置が行う処理の方法を表す転送ルールを決定する制御装置である決定装置から、前記ネットワーク接続装置が受信した転送ルールを記憶するメモリと、
プロセッサ、
を備え、
前記プロセッサは、
前記対象パケットに適用できる転送ルールが前記メモリに記憶されていない場合、前記決定装置から前記転送ルールを取得できないことを示す不可情報が、前記対象パケット中に含まれているかを判定し、
前記不可情報が含まれている場合、前記対象パケットに適用される転送ルールを前記決定装置に要求せずに、前記対象パケットを、前記ネットワーク接続装置に出力し、
前記ネットワーク接続装置は、前記対象パケットを他の転送装置に送信する
ことを特徴とする転送装置。
(付記9)
複数の制御装置と複数の転送装置を備えるネットワーク中の制御装置であって、
パケットの転送処理の方法を表す転送ルールを要求する要求メッセージを受信する受信部と、
前記転送ルールを決定する決定部と、
前記転送ルールでの処理対象のパケットである対象パケットに、前記複数の制御装置のいずれかから転送ルールを取得できないことを示す不可情報が含まれている場合、前記対象パケットを前記要求メッセージから抽出すると共に、前記要求メッセージの送信元から前記対象パケットの宛先までの経路の情報を、前記対象パケットに付加する経路付加部と、
前記経路の情報を付加した対象パケットを、前記要求メッセージの送信元に送信する送信部
を備えることを特徴とする制御装置。
(付記10)
前記複数の転送装置のそれぞれについて、前記転送装置が備えるポートの番号に、前記ポートを介して接続された装置を対応付けたネットワーク情報を記憶する記憶部と、
前記経路を決定するための計算処理を行う計算部、
をさらに備え、
前記経路付加部は、前記計算部の計算結果と前記ネットワーク情報を用いて、前記経路に含まれる各転送装置の識別子に、前記識別子で識別される転送装置での出力ポートを対応付けた情報を、前記対象パケットに付加する
ことを特徴とする付記9に記載の制御装置。
(付記11)
前記複数の転送装置のそれぞれについて、前記転送装置が備えるポートの番号に、前記ポートを介して接続された装置を対応付けたネットワーク情報を記憶する記憶部と、
前記ネットワーク情報を用いて前記経路を決定するための計算処理を行う計算部、
をさらに備え、
前記決定部は、前記経路に含まれる転送装置ごとの転送ルールをさらに決定し、
前記経路付加部は、前記経路に含まれる各転送装置の識別子に、前記識別子で識別される転送装置で使用される転送ルールを対応付けた情報を、前記対象パケットに含める
ことを特徴とする付記9に記載の制御装置。
(付記12)
前記決定部は、
前記複数の転送装置のうちの第1の転送装置と前記制御装置の間の接続が確立されると、前記制御装置とは異なる他の制御装置から前記転送ルールを通知されている転送装置のうちで、前記第1の転送装置からのホップ数が相対的に小さい転送装置である第2の転送装置を、前記ネットワーク情報を用いて検索し、
前記第1の転送装置から前記第2の転送装置に至る経路を使用する場合の前記第1の転送装置での出力ポートを、前記第1の転送装置が前記制御装置から前記転送ルールを取得できない場合の前記対象パケットの出力ポートに指定する
ことを特徴とする付記10または11に記載の制御装置。
(付記13)
複数の制御装置と複数の転送装置を備えるネットワーク中の制御装置であって、
パケットの転送処理の方法を表す転送ルールを要求する要求メッセージを受信するネットワーク接続装置と、
前記転送ルールを決定するプロセッサ、
を備え、
前記プロセッサは、前記転送ルールでの処理対象のパケットである対象パケットを前記要求メッセージから抽出すると共に、前記対象パケットに前記複数の制御装置のいずれかからの転送ルールを取得できないことを示す不可情報が含まれている場合、前記要求メッセージの送信元から前記対象パケットの宛先までの経路の情報を、前記対象パケットに付加し、
前記ネットワーク接続装置は、前記経路の情報を付加した対象パケットを、前記要求メッセージの送信元に送信する
ことを特徴とする制御装置。
(付記14)
第1の制御装置、第2の制御装置、および、複数の転送装置を備え、前記第1の制御装置は、第1および第2の転送装置が行う処理の方法を表す転送ルールを決定するネットワークで行われる転送方法であって、
前記第1の転送装置は、
処理対象である第1のパケットに適用する転送ルールの前記第1の制御装置からの取得に失敗した場合、前記第1の制御装置から前記転送ルールを取得できないことを示す不可情報を、前記第1のパケットに付加して、第2のパケットを生成し、
前記第2のパケットを、前記第2の転送装置に送信し、
前記第2の転送装置は、前記第2のパケット中の前記不可情報を検出すると、前記第2のパケットに適用する転送ルールを保持していなくても、前記第1の制御装置に転送ルールを要求せずに、第3の転送装置に、前記第2のパケットを転送する
ことを特徴とする転送方法。
(付記15)
前記第2の制御装置は、前記第3の転送装置が行う処理を決定し、
前記第3の転送装置は、
前記第2のパケットに適用する処理を保持していない場合、前記第2のパケットに適用する処理を示す情報を要求する要求メッセージを、前記第2の制御装置に送信し、
前記第2の制御装置から前記第2のパケットに適用する処理が通知されると、前記第2のパケットから前記不可情報を削除することにより、前記第2のパケットを前記第1のパケットに変換し、
前記第1のパケットを、前記第2の制御装置から取得した情報を用いて処理する
ことを特徴とする付記14に記載の転送方法。
(付記16)
前記要求メッセージは、前記第2のパケットを含み、
前記第2の制御装置は、
前記要求メッセージを受信すると、前記第3の転送装置から前記第1のパケットの宛先に至る経路を決定し、
前記経路に含まれる各転送装置の識別子に、前記識別子で識別される転送装置での出力ポートを対応付けた出力ポート情報を、前記第1のパケットに付加して、前記第3の転送装置に送信し、
前記第3の転送装置は、前記出力ポート情報を含むパケットを、前記出力ポート情報中の前記第3の転送装置の識別子に対応付けられたポートから出力する
ことを特徴とする付記15に記載の転送方法。
5 端末
10 転送装置
11、31 受信部
12、32 送信部
13 外部インタフェース
14 転送先特定部
15、60 記憶部
16 転送ルールテーブル
17 デフォルト転送ルール
18、33 接続管理部
20 制御部
21 判定部
22 取得部
23 付加処理部
24 変換部
30、80 制御装置
40 経路付加部
45 アプリケーション処理部
50、55 経路計算制御部
51 転送ルール決定部
52 経路計算部
61 ネットワーク情報
70 調整装置
91 要求メッセージ
92 応答メッセージ
93 中止メッセージ
101 プロセッサ
102 メモリ
103 バス
104 ネットワーク接続装置
105 ネットワーク

Claims (12)

  1. 複数の制御装置を備えるネットワーク中の転送装置であって、
    転送処理の対象である対象パケットを受信する受信部と、
    前記転送装置が行う処理の方法を表す転送ルールを決定する制御装置である決定装置から、前記受信部が受信した転送ルールを記憶する記憶部と、
    前記対象パケットに適用できる転送ルールが前記記憶部に記憶されていない場合、前記決定装置から前記転送ルールを取得できないことを示す不可情報が、前記対象パケット中に含まれているかを判定する判定部と、
    前記対象パケットに前記不可情報が含まれている場合、前記対象パケットに適用される転送ルールを前記決定装置に要求せずに、前記対象パケットを、他の転送装置に送信する送信部
    を備えることを特徴とする転送装置。
  2. 前記対象パケットに適用できる転送ルールが前記記憶部に記憶されておらず、かつ、前記対象パケットに前記不可情報が含まれていない場合、前記対象パケットに適用される転送ルールを前記決定装置から取得するための処理を行う取得部と、
    前記対象パケットに適用される転送ルールを所定の時間以内に前記決定装置から取得できない場合、前記対象パケットに前記不可情報を付加する付加処理部、
    を備え、
    前記送信部は、前記不可情報を付加した後の対象パケットを、前記他の転送装置に送信する
    ことを特徴とする請求項1に記載の転送装置。
  3. 前記対象パケットに適用できる転送ルールが前記記憶部に記憶されておらず、かつ、前記対象パケットに前記不可情報が含まれていない場合、前記対象パケットに適用される転送ルールを前記決定装置から取得するための処理を行う取得部と、
    前記対象パケットに適用される転送ルールを前記決定装置から取得すると、取得した転送ルールに基づいて前記対象パケットの転送先を特定する特定部と、
    前記複数の制御装置のうちの前記決定装置以外のいずれかからの転送ルールの取得に障害が発生したことを通知する障害情報が前記対象パケットに含まれており、かつ、前記対象パケットの転送先が特定された場合、前記対象パケットから前記障害情報を削除することにより、前記対象パケットを転送パケットに変換する変換部、
    を備え、
    前記送信部は、前記転送パケットを、前記転送先に送信する
    ことを特徴とする請求項1に記載の転送装置。
  4. 複数のポートを備え、
    前記取得部は、前記対象パケットに適用される転送ルールを前記決定装置に要求するための要求メッセージを生成し、
    前記送信部は、前記要求メッセージを前記決定装置に送信し、
    前記対象パケットの宛先に至る経路に含まれる各転送装置の識別子に、前記識別子で識別される転送装置での出力ポートを対応付けた出力ポート情報が、前記要求メッセージに応答する応答メッセージに含まれている場合、前記特定部は、前記出力ポート情報中で当該転送装置の識別子に対応付けられたポートを特定し、
    前記送信部は、前記複数のポートのうちで、前記特定部により特定されたポートを、転送処理に使用する
    ことを特徴とする請求項3に記載の転送装置。
  5. 前記取得部は、前記対象パケットに適用される転送ルールを前記決定装置に要求するための要求メッセージを生成し、
    前記送信部は、前記要求メッセージを前記決定装置に送信し、
    前記特定部は、
    前記対象パケットの宛先に至る経路に含まれる各転送装置の識別子に、前記識別子で識別される転送装置で使用される転送ルールを対応付けた転送ルール変更情報が、前記要求メッセージに応答する応答メッセージに含まれている場合、前記転送ルール変更情報中で当該転送装置の識別子に対応付けられた転送ルールを用いて前記記憶部の情報を変更し、
    前記記憶部の変更後の情報を用いて、前記転送先を特定する
    ことを特徴とする請求項3に記載の転送装置。
  6. 複数の制御装置と複数の転送装置を備えるネットワーク中の制御装置であって、
    パケットの転送処理の方法を表す転送ルールを要求する要求メッセージを受信する受信部と、
    前記転送ルールを決定する決定部と、
    前記転送ルールでの処理対象のパケットである対象パケットに、前記複数の制御装置のいずれかから転送ルールを取得できないことを示す不可情報が含まれている場合、前記対象パケットを前記要求メッセージから抽出すると共に、前記要求メッセージの送信元から前記対象パケットの宛先までの経路の情報を、前記対象パケットに付加する経路付加部と、
    前記経路の情報を付加した対象パケットを、前記要求メッセージの送信元に送信する送信部
    を備えることを特徴とする制御装置。
  7. 前記複数の転送装置のそれぞれについて、前記転送装置が備えるポートの番号に、前記ポートを介して接続された装置を対応付けたネットワーク情報を記憶する記憶部と、
    前記経路を決定するための計算処理を行う計算部、
    をさらに備え、
    前記経路付加部は、前記計算部の計算結果と前記ネットワーク情報を用いて、前記経路に含まれる各転送装置の識別子に、前記識別子で識別される転送装置での出力ポートを対応付けた情報を、前記対象パケットに付加する
    ことを特徴とする請求項6に記載の制御装置。
  8. 前記複数の転送装置のそれぞれについて、前記転送装置が備えるポートの番号に、前記ポートを介して接続された装置を対応付けたネットワーク情報を記憶する記憶部と、
    前記ネットワーク情報を用いて前記経路を決定するための計算処理を行う計算部、
    をさらに備え、
    前記決定部は、前記経路に含まれる転送装置ごとの転送ルールをさらに決定し、
    前記経路付加部は、前記経路に含まれる各転送装置の識別子に、前記識別子で識別される転送装置で使用される転送ルールを対応付けた情報を、前記対象パケットに含める
    ことを特徴とする請求項6に記載の制御装置。
  9. 前記決定部は、
    前記複数の転送装置のうちの第1の転送装置と前記制御装置の間の接続が確立されると、前記制御装置とは異なる他の制御装置から前記転送ルールを通知されている転送装置のうちで、前記第1の転送装置からのホップ数が相対的に小さい転送装置である第2の転送装置を、前記ネットワーク情報を用いて検索し、
    前記第1の転送装置から前記第2の転送装置に至る経路を使用する場合の前記第1の転送装置での出力ポートを、前記第1の転送装置が前記制御装置から前記転送ルールを取得できない場合の前記対象パケットの出力ポートに指定する
    ことを特徴とする請求項7または8に記載の制御装置。
  10. 第1の制御装置、第2の制御装置、および、複数の転送装置を備え、前記第1の制御装置が第1および第2の転送装置が行う処理の方法を表す転送ルールを決定するネットワークで行われる転送方法であって、
    前記第1の転送装置は、
    処理対象である第1のパケットに適用する転送ルールの前記第1の制御装置からの取得に失敗した場合、前記第1の制御装置から前記転送ルールを取得できないことを示す不可情報を、前記第1のパケットに付加して、第2のパケットを生成し、
    前記第2のパケットを、前記第2の転送装置に送信し、
    前記第2の転送装置は、前記第2のパケット中の前記不可情報を検出すると、前記第2のパケットに適用する転送ルールを保持していなくても、前記第1の制御装置に転送ルールを要求せずに、第3の転送装置に、前記第2のパケットを転送する
    ことを特徴とする転送方法。
  11. 前記第2の制御装置は、前記第3の転送装置が行う処理を決定し、
    前記第3の転送装置は、
    前記第2のパケットに適用する処理を保持していない場合、前記第2のパケットに適用する処理を示す情報を要求する要求メッセージを、前記第2の制御装置に送信し、
    前記第2の制御装置から前記第2のパケットに適用する処理が通知されると、前記第2のパケットから前記不可情報を削除することにより、前記第2のパケットを前記第1のパケットに変換し、
    前記第1のパケットを、前記第2の制御装置から取得した情報を用いて処理する
    ことを特徴とする請求項10に記載の転送方法。
  12. 前記要求メッセージは、前記第2のパケットを含み、
    前記第2の制御装置は、
    前記要求メッセージを受信すると、前記第3の転送装置から前記第1のパケットの宛先に至る経路を決定し、
    前記経路に含まれる各転送装置の識別子に、前記識別子で識別される転送装置での出力ポートを対応付けた出力ポート情報を、前記第1のパケットに付加して、前記第3の転送装置に送信し、
    前記第3の転送装置は、前記出力ポート情報を含むパケットを、前記出力ポート情報中の前記第3の転送装置の識別子に対応付けられたポートから出力する
    ことを特徴とする請求項11に記載の転送方法。
JP2013219657A 2013-10-22 2013-10-22 転送装置、制御装置、および、転送方法 Expired - Fee Related JP6111974B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013219657A JP6111974B2 (ja) 2013-10-22 2013-10-22 転送装置、制御装置、および、転送方法
US14/512,550 US9699090B2 (en) 2013-10-22 2014-10-13 Transfer device, control device, and transfer method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013219657A JP6111974B2 (ja) 2013-10-22 2013-10-22 転送装置、制御装置、および、転送方法

Publications (2)

Publication Number Publication Date
JP2015082742A JP2015082742A (ja) 2015-04-27
JP6111974B2 true JP6111974B2 (ja) 2017-04-12

Family

ID=52826056

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013219657A Expired - Fee Related JP6111974B2 (ja) 2013-10-22 2013-10-22 転送装置、制御装置、および、転送方法

Country Status (2)

Country Link
US (1) US9699090B2 (ja)
JP (1) JP6111974B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113472644B (zh) * 2021-07-12 2023-03-31 武汉绿色网络信息服务有限责任公司 路径寻址方法和网络业务系统

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5450406A (en) * 1993-04-20 1995-09-12 Kabushiki Kaisha Toshiba ATM communication system with high speed connection-less service function
JP3653917B2 (ja) 1997-02-25 2005-06-02 富士通株式会社 通信網におけるパケット中継方法及びエンドシステム
US7561587B2 (en) * 2002-09-26 2009-07-14 Yhc Corporation Method and system for providing layer-4 switching technologies
WO2006098028A1 (ja) 2005-03-17 2006-09-21 Fujitsu Limited ネットワークシステム及びネットワーク接続機器
US7443872B1 (en) * 2005-04-29 2008-10-28 Network Appliance, Inc. System and method for multiplexing channels over multiple connections in a storage system cluster
JP2007288464A (ja) 2006-04-17 2007-11-01 Meidensha Corp ネットワークのルーティング方式
US20080189769A1 (en) * 2007-02-01 2008-08-07 Martin Casado Secure network switching infrastructure
WO2010103909A1 (ja) * 2009-03-09 2010-09-16 日本電気株式会社 OpenFlow通信システムおよびOpenFlow通信方法
JP5300076B2 (ja) * 2009-10-07 2013-09-25 日本電気株式会社 コンピュータシステム、及びコンピュータシステムの監視方法
JP5488979B2 (ja) 2010-02-03 2014-05-14 日本電気株式会社 コンピュータシステム、コントローラ、スイッチ、及び通信方法
JP5413737B2 (ja) * 2010-02-15 2014-02-12 日本電気株式会社 ネットワークシステム、及び経路情報更新方法
US8837493B2 (en) * 2010-07-06 2014-09-16 Nicira, Inc. Distributed network control apparatus and method
US20120287785A1 (en) * 2011-05-14 2012-11-15 International Business Machines Corporation Data traffic handling in a distributed fabric protocol (dfp) switching network architecture
CN103621027B (zh) * 2011-05-30 2016-06-29 日本电气株式会社 通信路由控制系统和通信路由控制方法
JP2013038647A (ja) * 2011-08-09 2013-02-21 Nec Corp メッセージ転送システム、制御装置、メッセージ転送ノード、メッセージ転送方法およびプログラム
US9246815B2 (en) * 2011-10-05 2016-01-26 Nec Corporation Load reducing system and load reducing method
US9692775B2 (en) * 2013-04-29 2017-06-27 Telefonaktiebolaget Lm Ericsson (Publ) Method and system to dynamically detect traffic anomalies in a network
US9521028B2 (en) * 2013-06-07 2016-12-13 Alcatel Lucent Method and apparatus for providing software defined network flow distribution

Also Published As

Publication number Publication date
US20150109896A1 (en) 2015-04-23
US9699090B2 (en) 2017-07-04
JP2015082742A (ja) 2015-04-27

Similar Documents

Publication Publication Date Title
US20180324274A1 (en) Information system, control apparatus, method of providing virtual network, and program
US9628324B2 (en) Openflow switch and failure recovery method in openflow network
US20160330167A1 (en) Arp Implementation Method, Switch Device, and Control Device
CN102347905A (zh) 一种网络设备及其转发信息更新方法
JP5884892B2 (ja) ネットワークシステム、コントローラ、及び負荷分散方法
CN112039775B (zh) 一种实现kad网络节点快速路由的方法和系统
WO2012077262A1 (en) Server management apparatus, server management method, and program
CN108173757B (zh) 端口状态设置方法及装置
CN105471613B (zh) 一种临时通道的建立方法、设备和系统
JP2014504043A (ja) 通信制御システム、制御装置、通信制御方法および通信制御プログラム
CN110120897A (zh) 链路探测方法、装置、电子设备及机器可读存储介质
CN110661836B (zh) 消息路由方法、装置及系统、存储介质
WO2021046565A2 (en) Pce controlled network reliability
US9560058B2 (en) Monitoring device and monitoring method
JP6606919B2 (ja) フロースイッチ、コントローラ、及び、中継装置
JP6111974B2 (ja) 転送装置、制御装置、および、転送方法
US8892773B2 (en) Path control apparatus, path control method, path control program, and network system
US9942823B2 (en) Communication terminal, communication method, and communication program
JPWO2015178415A1 (ja) 通信装置、制御装置、通信システム及び送信制御方法
US20180183709A1 (en) Communication node, communication system, communication method, and program
KR20150085464A (ko) 서버 연결 장치 및 방법
CN113595828A (zh) 软件定义网络拓扑探测方法及系统
US20200341968A1 (en) Differential Update of Local Cache from Central Database
JP2005286681A (ja) 中継機器
CN113595939B (zh) 软件定义网络单向链路发现方法及系统

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160405

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170227

R150 Certificate of patent or registration of utility model

Ref document number: 6111974

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees