JPWO2015045275A1 - 制御装置、ネットワークシステム、パケット転送制御方法、制御装置用プログラム - Google Patents

制御装置、ネットワークシステム、パケット転送制御方法、制御装置用プログラム Download PDF

Info

Publication number
JPWO2015045275A1
JPWO2015045275A1 JP2015538862A JP2015538862A JPWO2015045275A1 JP WO2015045275 A1 JPWO2015045275 A1 JP WO2015045275A1 JP 2015538862 A JP2015538862 A JP 2015538862A JP 2015538862 A JP2015538862 A JP 2015538862A JP WO2015045275 A1 JPWO2015045275 A1 JP WO2015045275A1
Authority
JP
Japan
Prior art keywords
control
transfer
packet
transfer rule
rule
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.)
Withdrawn
Application number
JP2015538862A
Other languages
English (en)
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.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Publication of JPWO2015045275A1 publication Critical patent/JPWO2015045275A1/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • 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/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2466Traffic characterised by specific attributes, e.g. priority or QoS using signalling traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/645Splitting route computation layer and forwarding layer, e.g. routing according to path computational element [PCE] or based on OpenFlow functionality

Landscapes

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

Abstract

転送装置を制御する制御装置の負荷を増加させることなく、制御装置とは別に設けられた装置に制御メッセージを送ることを実現できるようにする。制御装置90は、パケットを転送する複数の転送装置のパケット転送動作を制御する。制御装置90は、制御用転送規則生成手段91を備える。制御用転送規則生成手段91は、ルータが転送装置を介して他のルータにパケットを送信する場合の経路を示す経路情報を経路情報収集装置に通知するための制御メッセージを転送装置がルータと経路情報収集装置との間で転送する動作を規定する制御用転送規則を生成する。

Description

本発明は、転送規則に従ってパケットを転送する転送装置に対して転送規則を送信することで転送装置を制御する制御装置、その制御装置を含むネットワークシステム、およびその制御装置に適用されるパケット転送制御方法、制御装置用プログラムに関する。
パケットを転送するスイッチを制御装置が制御するプロトコルとして、オープンフロー(OpenFlow)が知られている。オープンフローにおけるスイッチをOFS(OpenFlow Switch )と記す。また、オープンフローにおける制御装置をOFC(OpenFlow Controller )と記す。OFS,OFCについては、例えば、非特許文献1,2に記載されている。以下、非特許文献2で規定されているOpenFlow1.0におけるOFS,OFCの概略を説明する。
OFSとOFCとはセキュアチャネルと呼ばれる通信用チャネルを介して通信を行う。OFSは、パケット転送のために参照するフローテーブルを備えている。フローテーブルには、フローに対応してパケットの転送先を定めたフローエントリが格納される。OFCは、オープンフローに従って、セキュアチャネルを介してOFSと通信を行い、API(Application Program Interface)レベルでフローを制御する。
以下、OFCによるOFSの制御の一例を示す。OFSは、パケットを受信するとそのパケットに合致するフローエントリを検索する。パケットに合致するフローエントリが存在しない場合、OFSは、セキュアチャネルを介して、そのパケットをOFCに転送する。なお、合致するフローエントリが存在しないパケットは、ファーストパケット(First Packet)と呼ばれる。OFCは、OFSのネットワークのトポロジ情報を保持している。そして、OFCは、OFSからパケットを受信するとそのパケットの宛先および送信元の情報と、トポロジ情報とに基づいて、そのパケットのパスを決定する。さらに、OFCは、そのパス上の各OFSに対して、それぞれフローエントリを決定し、パス上のOFS毎にフローエントリを設定する。最初にOFSが受信したパケットは、そのフローエントリに従って、決定されたパスに沿って、次のOFSに順次転送される。2番目以降のパケットも、そのパスに沿って、次のOFSに順次転送される。
図13は、フローテーブル内のフローエントリの例を示す説明図である。フローエントリは、フロー毎に定められている。フローエントリは、パケットヘッダと照合されるルールと、フローに対する処理を定義したアクションと、フロー統計情報(Statistics)とを含む。パケットヘッダと照合されるルールは、正確な値であっても、ワイルドカードであってもよい。アクションは、ルールに合致したパケットに適用される。フロー統計情報は、アクティビティカウンタとも呼ばれる。フロー統計情報は、例えば、アクティブエントリ数、パケットルックアップ数、パケットマッチ数を含む。また、フロー統計情報は、例えば、フロー単位で、受信パケット数、受信バイト数、フローがアクティブな期間を含む。また、フロー統計情報は、例えば、ポート単位で、受信パケット数、送信パケット数、受信バイト数、送信バイト数、受信ドロップ数、受信エラー数、送信エラー数、受信フレームアラインメントエラー数、受信オーバーランエラー数、受信CRC(Cyclic Redundancy Check )エラー数、コリジョン数を含む。
OFSは、パケットを受信すると、フローテーブル内の各フローエントリのルールとパケットとを照合する。パケットに合致するフローエントリがない場合には、OFSは、そのパケットをファーストパケットとして扱い、セキュアチャネルを介してそのパケットをOFCに送信する。OFSは、そのOFSが有しているフローエントリに対して、フローエントリの追加、変更、削除を行う。
図14は、パケットヘッダを示す模式図である。DAは、ディスティネーションアドレスを意味する。また、SAは、ソースアドレスを意味する。OFSは、フローエントリ内のルールとパケットとの照合に、例えば、パケットヘッダ内のMAC(Media Access Control) DA、MAC SA、Ethernet(登録商標)タイプ(TPID)、VLAN ID(Virtual Local Area Network Identification )、VLAN TYPE(優先度)、IP SA(Internet Protocol SA)、IP DA、IPプロトコル、Source Port (TCP/UDP ソースポート、あるいは、ICMP(Internet Control Message Protocol) Type)、Destination Port(TCP/UDP ディスティネーションポート、あるいは、ICMP Code)を用いる(図14参照)。
図15は、アクション名とアクションの内容の例を示す説明図である。“OUTPUT”は、指定ポート(インタフェース)に出力することを意味する。“SET_VLAN_VID”から“SET_TP_DST”までのアクションは、それぞれ、パケットヘッダのフィールドを修正するアクションである。
また、OFSは、パケットを、物理ポートや、以下に示す仮想ポートから出力する。図16は、仮想ポートの例を示す説明図である。“IN_PORT ”は、パケットを入力ポートから送信することを意味する。“NORMAL”は、OFSがサポートする既存の転送パスを用いてパケットを処理することを意味する。“FLOOD ”は、パケットを受信したポートを除く通信可能状態(Forwarding状態)の全てのポートからパケットを送信することを意味する。“ALL ”は、パケットを受信したポートを除く全ポートからパケットを送信することを意味する。“CONTROLLER”は、パケットをカプセル化してOFCに送信することを意味する。“LOCAL ”は、パケットをOFS自身のネットワークスタックに送信することを意味する。アクションが指定されていないフローエントリに合致したパケットはドロップ(破棄)される。
図17は、セキュアチャネルを介して授受されるメッセージの例を示す説明図である。“Flow-mod”は、OFCがOFSに対して、フローエントリの追加、変更、削除を行うためのメッセージである。“Packet-in ”は、OFSからOFCに対して送られるメッセージである。“Packet-in ”は、フローエントリに合致しなかったパケットをOFCに送るために用いられる。“Packet-out”は、OFCからOFSに対して送られるメッセージである。“Packet-out”は、OFCが生成したパケットをOFSの任意のポートから出力するために用いられる。“Port-status ”は、OFSからOFCに対して送られるメッセージである。“Port-status ”は、ポートの状態が変化したことをOFCに通知するために用いられる。例えば、ポートに接続しているリンクに故障が発生した場合、リンクダウン状態になったことを通知するために“Port-status ”が用いられる。“Flow-Removed”は、OFSからOFCに対して送られるメッセージである。“Flow-Removed”は、フローエントリが一定時間使用されず、タイムアウトでOFSから消去される場合に、その旨をOFCに通知するために使用される。
以上、OpenFlow1.0におけるOFS,OFCの概略を説明した。
非特許文献3には、OFSで構成されたネットワークをIPネットワークとして動作させるためのOFCの実装が提案されている。図18は、非特許文献3で提案されている構成例を示す模式図である。図18に示す例では、OFS62〜65が制御対象ネットワーク60に含まれる。また、ルータ66〜69が、図18に示すようにOFS62〜65に接続されている。IPネットワークのエミュレーションを行うためには、OSPF(Open Shortest Path First)等の経路制御プロトコルの機能を有する制御プロトコル処理部74を設ける必要がある。経路制御プロトコルによって収集された経路情報に基づいて、宛先IPアドレス毎にフローエントリが作成され、OFS62〜65に設定される。QuagFlowでは、経路制御プロトコルの機能を有する仮想マシン72をOFC71とは別に設け、OFC71と連携させることでこの機能を実現している。仮想マシン72には、オープンソースで公開されている経路制御ソフトウェアであるQuaggaに従って動作する制御プロトコル処理部74が含まれる。OFS側で受け取った経路制御プロトコルのメッセージは、OFC71が、仮想マシン72内で動作する中継エージェント73に送信する。そして、その制御メッセージは、TAPインタフェース75〜78経由で制御プロトコル処理部74まで送られる。Quaggaから見ると、Linux(登録商標)がルータとして動作している環境と変わらない。そのため、Quaggaを特に改造せずに用いることができる。
また、特許文献1には、中継装置が受信したパケットを制御装置に送るシステムが開示されている。特許文献1に記載のシステムでは、制御装置は、中継装置から送られてきたパケットがどのインタフェースで受信したものかを判別するために、中継装置のアドレス情報に対応付けられたシンボルを用いる。特許文献1に記載された中継装置として、ルータのようにインタフェース毎にアドレスが割り当てられている装置を用いることができる。
特開2004−320694号公報
Nick Mckeown, 外7名、"OpenFlow: Enabling Innovation in Campus Networks"、2008年3月14日、[平成25年9月11日検索]、インターネット<http://www.openflowswitch.org//documents/openflow-wp-latest.pdf> "OpenFlow Switch Specification Version 1.0.0 (Wire Protocol 0x01)"、2009年12月31日、[平成25年9月11日検索]、インターネット<http://www.openflow.org/documents/openflow-spec-v1.0.0.pdf> Marcelo Ribeiro Nascimento, 外3名、"QuagFlow: Partnering Quagga with OpenFlow"、[平成25年9月11日検索]、インターネット<http://conferences.sigcomm.org/sigcomm/2010/papers/sigcomm/p441.pdf>
経路制御プロトコルに従って動作する制御プロトコル処理装置が経路情報を収集し、OFCがその経路情報を利用してフローエントリを作成する構成では、制御プロトコル処理装置に経路情報を通知するための制御メッセージ(以下、経路制御メッセージと記す。)を送る必要がある。
非特許文献3に記載された技術では、OFSは、受け取った経路制御メッセージを、オープンフローの“Packet-in ”メッセージを用いてOFC71に送る。経路制御メッセージは、OFC71から、仮想マシン72に用意された中継エージェント73に送られ、仮想インタフェースを介して、制御プロトコル処理部74に送られる(図18参照)。従って、制御プロトコル処理部74に送られる経路制御メッセージを、OFC71が全て中継するため、OFC71の処理負荷が大きくなる。
また、特許文献1に記載された発明をオープンフローに適用する場合、OFSを中継装置として用いることが考えられる。しかし、OFSでは、インタフェース毎にアドレスが割り当てられていないため、OFSは、特許文献1に記載された中継装置として用いることができない。また、特許文献1に記載の技術では、中継装置は、制御装置にパケットを送信する際、パケットにシンボルを付加する必要がある。すると、パケット長が長くなったり、パケット加工負荷が高くなったりする。
そこで、本発明は、転送装置を制御する制御装置の負荷を増加させることなく、制御装置とは別に設けられた装置に制御メッセージを送ることを実現できるようにすることを目的とする。
本発明による制御装置は、パケットを転送する複数の転送装置のパケット転送動作を制御する制御装置であって、ルータが転送装置を介して他のルータにパケットを送信する場合の経路を示す経路情報を経路情報収集装置に通知するための制御メッセージを転送装置がルータと経路情報収集装置との間で転送する動作を規定する制御用転送規則を生成する制御用転送規則生成手段を備えることを特徴とする。
また、本発明によるネットワークシステムは、パケットを転送する複数の転送装置と、転送装置のパケット転送動作を制御する制御装置とを備えるネットワークシステムであって、制御装置が、ルータが転送装置を介して他のルータにパケットを送信する場合の経路を示す経路情報を経路情報収集装置に通知するための制御メッセージを転送装置がルータと経路情報収集装置との間で転送する動作を規定する制御用転送規則を生成する制御用転送規則生成手段を含むことを特徴とする。
また、本発明によるパケット転送制御方法は、パケットを転送する複数の転送装置のパケット転送動作を制御する制御装置が、ルータが転送装置を介して他のルータにパケットを送信する場合の経路を示す経路情報を経路情報収集装置に通知するための制御メッセージを転送装置がルータと経路情報収集装置との間で転送する動作を規定する制御用転送規則を生成することを特徴とする。
また、本発明による制御装置用プログラムは、パケットを転送する複数の転送装置のパケット転送動作を制御するコンピュータに搭載される制御装置用プログラムであって、コンピュータに、ルータが転送装置を介して他のルータにパケットを送信する場合の経路を示す経路情報を経路情報収集装置に通知するための制御メッセージを転送装置がルータと経路情報収集装置との間で転送する動作を規定する制御用転送規則を生成する制御用転送規則生成処理を実行させることを特徴とする。
本発明によれば、転送装置を制御する制御装置の負荷を増加させることなく、制御装置とは別に設けられた装置に制御メッセージを送ることを実現できる。
本発明のネットワークシステムの例を示す説明図である。 本発明の第1の実施形態の制御装置の構成例を示すブロック図である。 トポロジDBの例を示す説明図である。 インタフェース対応DBの例を示す説明図である。 制御装置がスイッチに対して制御用転送規則を設定する際の処理経過の例を示すフローチャートである。 制御装置がスイッチに対して制御用転送規則を設定する際の処理経過の例を示すフローチャートである。 本発明の第2の実施形態の制御装置の構成例を示すブロック図である。 第2の実施形態におけるインタフェース対応DBの例を示す説明図である。 第2の実施形態において、制御装置がスイッチに対して制御用転送規則を設定する際の処理経過の例を示すフローチャートである。 第2の実施形態において、制御装置がスイッチに対して制御用転送規則を設定する際の処理経過の例を示すフローチャートである。 本発明の制御装置の概要を示すブロック図である。 本発明のネットワークシステムの概要を示すブロック図である。 フローテーブル内のフローエントリの例を示す説明図である。 パケットヘッダを示す模式図である。 アクション名とアクションの内容の例を示す説明図である。 仮想ポートの例を示す説明図である。 セキュアチャネルを介して授受されるメッセージの例を示す説明図である。 非特許文献3で提案されている構成例を示す模式図である。
以下、本発明の実施形態を図面を参照して説明する。
実施形態1.
図1は、本発明のネットワークシステムの例を示す説明図である。本発明のネットワークシステムは、制御装置31と、制御プロトコル処理装置30と、スイッチ21〜25とを備える。各スイッチ21〜25によって、制御対象ネットワーク40が形成される。図1では5台のスイッチを図示したが、制御対象ネットワーク40を形成するスイッチの台数は限定されない。図1に示す“0x22”等はスイッチのIDである。また、制御対象ネットワーク40を利用してデータを送信しようとする者(ここでは、顧客とする。)は、ルータ12〜15を備える。以下、ルータ12〜15を顧客側ルータと記す。顧客側ルータの台数も限定されない。各顧客側ルータ12〜15は、制御対象ネットワーク40を介してデータ(パケット)を送信する場合における制御対象ネットワーク40内の経路(顧客側ルータ間の経路)を示す経路情報を予め保持している。
制御装置31と、個々のスイッチ21〜25とは、個別にセキュアチャネルで接続されている。図1に示す例では、セキュアチャネルを点線で図示している。セキュアチャネルは、顧客側ルータ間でパケットを送受信するための経路とは別に設けられている。そして、制御装置31は、オープンフローを用いて各スイッチ21〜25を制御する。
制御対象ネットワーク40を形成するスイッチ21〜25をノードとして転送されるパケットには、顧客側ルータ間で送受信されるパケットと、顧客側ルータが保持する経路情報を制御プロトコル処理装置30に通知するための経路制御メッセージとがある。
制御プロトコル処理装置30は、経路情報を取得するための制御プロトコルに従って、顧客側ルータ12〜15との間で経路制御メッセージを送受信することによって、顧客側ルータ間で送受信されるパケットの経路情報を収集する。ここで、各顧客側ルータ12〜15と制御プロトコル処理装置30との間の経路制御メッセージの転送経路は、制御装置31が決定する。そして、制御装置31は、その転送経路上のスイッチ毎に、経路制御メッセージを次のノードに転送するための転送規則(以下、制御用転送規則と記す。)を決定し、転送経路上の各スイッチに制御用転送規則を設定する。この結果、顧客側ルータ12〜15と制御プロトコル処理装置30との間で、経路制御メッセージの送受信が可能となる。
制御プロトコル処理装置30は、顧客側ルータ12〜15から収集した経路情報を制御装置31に通知する。制御装置31は、その経路情報に基づいて、顧客側ルータ間で授受されるパケットの転送経路上のスイッチ毎に、パケットを次のノードに転送するための転送規則(以下、データ用転送規則と記す。)を決定し、その転送経路上の各スイッチにデータ用転送規則を設定する。この結果、顧客側ルータ間でのパケットの送受信が可能となる。
また、制御用転送規則およびデータ用転送規則は、いずれもフローエントリであると言える。
図2は、本発明の第1の実施形態の制御装置の構成例を示すブロック図である。第1の実施形態における制御装置31は、転送規則送出部32と、制御用転送規則生成部33と、制御用転送パス計算部34と、トポロジデータベース(以下、トポロジDBと記す。)記憶部35と、インタフェース対応データベース(以下、インタフェース対応DBと記す。)記憶部36と、データ用転送規則生成部37と、優先度調整部38とを備える。
トポロジDB記憶部35は、トポロジDBを記憶する記憶装置である。トポロジDBは、制御装置31が管理する制御対象ネットワーク40内の各スイッチ間の接続情報の集合である。トポロジDBは、予めトポロジDB記憶部35に記憶される。トポロジDBを収集してトポロジDB記憶部35に記憶させる方法は特に限定されない。図3は、トポロジDBの例を示す説明図である。トポロジDBは、上流スイッチID41と、上流スイッチ側の出力ポート番号42と、下流スイッチID43と、下流スイッチ側の入力ポート番号44とを含むエントリを複数有している。1つのエントリによって、リンクの上流側の端部となるスイッチのポートおよびリンクの下流側の端部となるスイッチのポートが特定される。例えば、図3に示す1番目のエントリは、IDが“0x21”であるスイッチの5番ポートから、IDが“0x22”であるスイッチの1番ポートに至るリンクが存在することを示している。
インタフェース対応DB記憶部36は、インタフェース対応DBを記憶する記憶装置である。インタフェース対応DBは、顧客側ルータと制御プロトコル処理装置30のインタフェースの対応関係を示す情報の集合である。インタフェース対応DBを収集してインタフェース対応DB記憶部36に記憶させる方法は特に限定されない。例えば、人手でインタフェース対応DBを作成しインタフェース対応DB記憶部36に記憶させてもよい。
図4は、インタフェース対応DBの例を示す説明図である。インタフェース対応DBは、顧客側ルータに接続されるスイッチのID50と、そのスイッチにおいて顧客側ルータに接続されるポートのポート番号51と、顧客側ルータのMACアドレス52と、顧客側ルータのIPアドレス53と、顧客側ルータのL4(Layer 4 )ポート番号54と、制御プロトコル処理装置30に接続されるスイッチのID55と、そのスイッチにおいて制御プロトコル処理装置30に接続されるポートのポート番号56と、制御プロトコル処理装置30のインタフェースのMACアドレス57と、制御プロトコル処理装置30のインタフェースのIPアドレス58と、制御プロトコル処理装置30のインタフェースのL4ポート番号59の10個の項目を含むエントリを複数有する。
インタフェース対応DBの1つのエントリは、1つの顧客側ルータに対応している。例えば、図4に示す1番目のエントリ45は、顧客側ルータ12に関して、制御プロトコル処理装置30との間の対応関係を表している。具体的には、図4に示す1番目のエントリ45は、顧客側ルータに接続されるスイッチのIDが“0x22”であり、その顧客側ルータがそのスイッチの3番ポートに接続されることを示している。IDが“0x22”であるスイッチの3番ポートに接続されている顧客側ルータ12(図1参照)がこのエントリ45における顧客側ルータである。また、エントリ45は、顧客側ルータ12のMACアドレスおよびIPアドレスが、それぞれ、“xx:xx:xx:xx:xx:01 ”、“192.168.0.1 ”であることを示している。また、エントリ45は、制御プロトコル処理装置30に接続されるスイッチのIDが“0x21”であり、制御プロトコル処理装置30がそのスイッチの1番ポートに接続されることを示している。従って、IDが“0x21”であるスイッチの1番ポートに接続される制御プロトコル処理装置30のインタフェース1(図1参照)が、顧客側ルータ12に対応していることがわかる。また、エントリ45は、その制御プロトコル処理装置30のインタフェース1のMACアドレスおよびIPアドレスが、それぞれ、“xx:xx:xx:xx:xx:02 ”、“192.168.0.2 ”であることを示している。また、エントリ45において、顧客側ルータ12のL4ポート番号と、制御プロトコル処理装置30のインタフェース1のL4ポート番号はともに179である。このことは、顧客側ルータ12と制御プロトコル処理装置30のインタフェース1との間で、TCP等のL4プロトコルにおけるポート番号179を用いて経路制御メッセージが送受信されることを意味している。また、図4に示す2番目から4番目までの各エントリ46〜48に示すように、顧客側ルータのMACアドレス52、顧客側ルータのIPアドレス53、顧客側ルータのL4ポート番号54、制御プロトコル処理装置30のインタフェースのMACアドレス57、制御プロトコル処理装置30のインタフェースのIPアドレス58、および制御プロトコル処理装置30のインタフェースのL4ポート番号59の各項目に対しては、ワイルドカードが指定されていてもよい。
制御用転送パス計算部34は、トポロジDBに基づいて、インタフェース対応DBが示すスイッチ間のパスを計算する。例えば、制御用転送パス計算部34は、図4に示すエントリ45に着目した場合、IDが“0x22”であるスイッチとIDが“0x21”であるスイッチとの間のパスを計算する。制御用転送パス計算部34は、計算したパスを制御用転送規則生成部33に送る。
制御用転送規則生成部33は、制御用転送パス計算部34によって計算されたパス上のスイッチ毎に、そのパスに沿って経路制御メッセージを次のノードに転送するための制御用転送規則を生成する。制御用転送規則生成部33は、生成した制御用転送規則を転送規則送出部32に送る。
また、データ用転送規則生成部37は、制御プロトコル処理装置30が収集した経路情報が示す経路上のスイッチ毎に、その経路に沿ってパケットを次のノードに転送するためのデータ用転送規則を生成する。データ用転送規則生成部37は、生成したデータ用転送規則を転送規則送出部32に送る。また、データ用転送規則生成部37は、生成するデータ用転送規則に優先度を定める。優先度が高いということは、スイッチがパケットを受信したときにスイッチによって参照される優先度が高いことを意味する。
また、優先度調整部38は、データ用転送規則生成部37がデータ用転送規則に対して定める優先度を確認する。そして、優先度調整部38は、データ用転送規則生成部37がデータ用転送規則に対して定める優先度よりも高い優先度を転送規則送出部32に通知する。例えば、データ用転送規則生成部37がデータ用転送規則に対して定める優先度が10000〜12000の範囲であるとする。この場合、優先度調整部38は、その優先度の範囲よりも高い優先度(例えば、15000)を転送規則送出部32に通知する。
転送規則送出部32は、制御用転送規則生成部33によって生成された制御用転送規則をその制御用転送規則に対応するスイッチに送信する。このとき、転送規則送出部32は、優先度調整部38から通知された優先度も制御用転送規則と併せてスイッチに送信する。また、転送規則送出部32は、データ用転送規則生成部37によって生成されたデータ用転送規則およびその優先度をそのデータ用転送規則に対応するスイッチに送信する。
制御用転送パス計算部34、制御用転送規則生成部33、データ用転送規則生成部37、優先度調整部38、および転送規則送出部32は、例えば、制御装置用プログラムに従って動作するコンピュータのCPUによって実現される。この場合、例えば、プログラム記憶装置(図示略)に記憶された制御装置用プログラムをCPUが読み込み、CPUがその制御装置用プログラムに従って、制御用転送パス計算部34、制御用転送規則生成部33、データ用転送規則生成部37、優先度調整部38、および転送規則送出部32として動作すればよい。また、制御用転送パス計算部34、制御用転送規則生成部33、データ用転送規則生成部37、優先度調整部38、および転送規則送出部32が別々のハードウェアで実現されてもよい。
次に、動作について説明する。
図5および図6は、制御装置31がスイッチに対して制御用転送規則を設定する際の処理経過の例を示すフローチャートである。以下、スイッチをIDを用いて、スイッチ“0x22”等のように記す。
まず、制御用転送パス計算部34は、インタフェース対応DBから、未処理のエントリを1つ選択する(ステップS1)。
次に、制御用転送パス計算部34は、選択したエントリ中の顧客側ルータに接続されるスイッチを始点とし、制御プロトコル処理装置30に接続されるスイッチを終点とするパスを、トポロジDBに含まれる接続情報(スイッチ間の接続情報)に基づいて計算する(ステップS2)。制御用転送パス計算部34は、例えば、最短パスを計算するアルゴリズムであるダイクストラ法を用いてパスを計算する。ただし、ダイクストラ法は例示であり、制御用転送パス計算部34は、他の方法で計算してもよい。例えば、ステップS1で選択したエントリが図4に示すエントリ45であるとする。この場合、顧客側ルータに接続されるスイッチは、スイッチ“0x22”であり、このスイッチが始点となる。また、制御プロトコル処理装置30に接続されるスイッチは、スイッチ“0x21”であり、このスイッチが終点となる。ダイクストラ法を用いてパスを計算する場合、始点から終点までのパスは、スイッチ“0x22”→スイッチ“0x21”というパスとなる(図1参照)。また、例えば、ステップS1で図4に示すエントリ46を選択している場合、始点から終点までのパスは、スイッチ“0x24”→スイッチ“0x22”→スイッチ“0x21”というパスが計算される(図1参照)。
また、制御用転送パス計算部34は、ステップS2において、始点と終点を逆にしたパスも計算する。すなわち、制御用転送パス計算部34は、制御プロトコル処理装置30に接続されるスイッチを始点とし、顧客側ルータに接続されるスイッチを終点とするパスも計算する。例えば、制御用転送パス計算部34がエントリ45(図4参照)を選択し、上記のように、スイッチ“0x22”→スイッチ“0x21”というパスを計算する場合、制御用転送パス計算部34は、その逆向きのスイッチ“0x21”→スイッチ“0x22”というパスも計算する。すなわち、制御用転送パス計算部34は、ステップS2で、互いに逆方向である2つのパスを計算する。
また、制御用転送パス計算部34は、互いに逆方向である2つのパスを導出する際、両方をダイクストラ法等で計算しなくてもよい。例えば、顧客側ルータに接続されるスイッチを始点とし、制御プロトコル処理装置30に接続されるスイッチを終点とするパスをダイクストラ法等で計算した後、そのパス上のスイッチを逆順に並べることによって、始点と終点を逆にしたパスを導出してもよい。
制御用転送パス計算部34は、ステップS2で計算した2つのパスを示す情報と、ステップS1で選択したエントリとを併せて、制御用転送規則生成部33に送る(ステップS3)。
次に、制御用転送規則生成部33は、制御用転送パス計算部34から送られてきた2つの各パス上の各スイッチのうち、以降の処理(具体的にはステップS5,S6)を行っていないスイッチを1つ選択する(ステップS4)。なお、制御用転送規則生成部33は、互いに逆方向である2つのパス上のスイッチをそれぞれ別個に選択する。例えば、スイッチ“0x24”→スイッチ“0x22”→スイッチ“0x21”というパスにおけるスイッチ“0x22”と、その逆向きのスイッチ“0x21”→スイッチ“0x22”→スイッチ“0x24”というパスにおけるスイッチ“0x22”とを別個に選択する。
次に、制御用転送規則生成部33は、ステップS1で選択されたエントリに基づいて、フローエントリ(ここでは、制御用転送規則)内の、パケット照合に用いるルールを作成する(ステップS5)。例えば、ステップS1で選択されたエントリが、図4に示すエントリ45であるとする。この場合、制御用転送規則生成部33は、顧客側ルータのMACアドレス“xx:xx:xx:xx:xx:01 ”を、ルール中の送信元MACアドレスとして指定する。同様に、制御用転送規則生成部33は、顧客側ルータのIPアドレス“192.168.0.1 ”を、ルール中の送信元IPアドレスとして指定する。また、制御用転送規則生成部33は、顧客側ルータのL4ポート番号“179”を、ルール中の送信元TCPポート番号として指定する。また、制御用転送規則生成部33は、制御プロトコル処理装置30のインタフェースのMACアドレス“xx:xx:xx:xx:xx:02 ”を、ルール中の宛先MACアドレスとして指定する。また、制御用転送規則生成部33は、制御プロトコル処理装置30のインタフェースのIPアドレス“192.168.0.2 ”を、ルール中の宛先IPアドレスとして指定する。また、制御プロトコル処理装置30のインタフェースのL4ポート番号を、ルール中の宛先TCPポート番号として指定する。
次に、制御用転送規則生成部33は、ステップS5で作成したルールに対して、パスに沿って次のノードにパケット(ここでは、経路制御メッセージ)を転送させるアクションを付与することで、フローエントリ(ここでは、制御用転送規則)を完成させる。そして、制御用転送規則生成部33は、そのフローエントリを転送規則送出部32に送る(ステップS6)。
スイッチ“0x21”→スイッチ“0x22”→スイッチ“0x24”というパスにおけるスイッチ“0x22”がステップS4で選択されている場合を例にして、ステップS6の処理の例を示す。スイッチ“0x22”の次のノードはスイッチ“0x24”であり、スイッチ“0x22”において、スイッチ“0x24”にパケットを転送するために用いるポートは、4番ポートである(図1参照)。従って、制御用転送規則生成部33は、4番ポートからパケットを送信するというアクションを定める。
ステップS6の後、制御用転送規則生成部33は、ステップS3で制御用転送パス計算部34から送られてきた2つの各パス上の全てのスイッチに対して、ステップS5,S6の処理が完了したか否かを判定する(ステップS7)。ステップS5,S6の処理が完了していないスイッチが存在する場合(ステップS7のNo)、制御用転送規則生成部33は、ステップS4以降の処理を繰り返す。
ステップS4〜S7の処理を繰り返すことで、ステップS2で求められた互いに逆向きの2つのパス上の各スイッチについて、パスに沿って次のノードに経路制御メッセージを転送するための制御用転送規則が得られる。
また、転送規則送出部32は、優先度調整部38から優先度の通知を受ける(ステップS8)。すなわち、優先度調整部38は、データ用転送規則生成部37がデータ用転送規則に対して定める優先度よりも高い優先度を転送規則送出部32に通知する。そして、転送規則送出部32は、その優先度を受ける。
転送規則送出部32は、制御用転送規則生成部33によって生成された各制御用転送規則と、優先度調整部38から通知された優先度とを、制御用転送規則に対応するスイッチに送信する(ステップS9)。転送規則送出部32は、OpenFlowプロトコルを用いて制御用転送規則を各スイッチに送信する。各スイッチは、転送規則送出部32から受信した制御用転送規則をフローエントリとして保持する。すなわち、転送規則送出部32は、制御用転送規則をスイッチに送信することによって、スイッチに対する制御用転送規則の設定を行う。
ステップS9の後、制御用転送パス計算部34は、インタフェース対応DB中の全てのエントリを選択済みであるか否かを判定する(ステップS10)。インタフェース対応DB中に未選択のエントリがあれば(ステップS10のNo)、ステップS1に移行し、ステップS1以降の処理を繰り返す。インタフェース対応DB中の全てのエントリが選択済みであれば(ステップS10のYes)、処理を終了する。
各スイッチに制御用転送規則が設定されることで、顧客側ルータ12〜15と制御プロトコル処理装置30との間で、経路制御メッセージの送受信が可能となる。そして、顧客側ルータ12〜15および制御プロトコル処理装置30が、制御対象ネットワーク40内のスイッチを介して経路制御メッセージを送受信することによって、制御プロトコル処理装置30は、各顧客側ルータ12〜15が予め保持している経路情報を収集する。
制御プロトコル処理装置30は、各顧客側ルータ12〜15から収集した経路情報を制御装置31に送信する。そして、制御装置31内のデータ用転送規則生成部37がその経路情報を取得する。データ用転送規則生成部37は、その経路情報に基づいて、データに該当するパケットを顧客側ルータ同士が送受信するときの経路を特定し、その経路情報のスイッチ毎に、パケットを次のノードに転送するためのデータ用転送規則を作成する。このとき、データ用転送規則生成部37は、データ用転送規則の優先度も定める。データ用転送規則生成部37は、経路上の各スイッチに対して作成したデータ用転送規則およびその優先度を転送規則送出部32に送る。転送規則送出部32は、それぞれのデータ用転送規則およびその優先度を、データ用転送規則に対応するスイッチに送信する。各スイッチは、転送規則送出部32から受信したデータ用転送規則をフローエントリとして保持する。すなわち、転送規則送出部32は、データ用転送規則をスイッチに送信することによって、スイッチに対するデータ用転送規則の設定を行う。そして、各スイッチにデータ用転送規則が設定されることで、顧客側ルータ12〜15同士の間で、データに該当するパケットの送受信が可能となる。
本実施形態によれば、制御装置31が、顧客側ルータ12〜15と制御プロトコル処理装置30とが経路制御メッセージを送受信する際のパスを決定し、そのパス上の各スイッチ毎に、制御用転送規則を定める。そして、制御装置31は、そのパス上のスイッチに制御用転送規則を送信することによってスイッチに制御用転送規則を設定する。従って、経路制御メッセージは、制御対象ネットワーク40内のスイッチを介して各顧客側ルータ12〜15と制御プロトコル処理装置30との間で授受される。よって、制御装置31が経路制御メッセージを中継することはなく、制御装置31の処理負荷の増加を防ぐことができる。
また、本発明と特許文献1に記載の技術とを比較する。特許文献1に記載の技術では、中継装置は、制御装置にパケットを送信する際、パケットにシンボルを付加する必要がある。これに対して、本発明では、制御プロトコル処理装置30は、顧客側ルータ12〜15から収集した経路情報に対して、そのようなシンボルを付加することなく、制御装置31に送信してよい。従って、制御装置31内のデータ用転送規則生成部37が経路情報を取得する過程で、経路情報のデータ長が長くなったり、経路情報に対する加工負荷が生じたりすることを防ぐことができる。
また、本実施形態では、経路制御メッセージを転送するために用いる制御用転送規則の優先度は、顧客側ルータ間で授受されるパケットを転送するために用いるデータ用転送規則の優先度よりも高い。そのため、顧客側ルータ12〜15からのトラフィックのうち、経路制御メッセージのみを制御プロトコル処理装置30に送り、それ以外のパケットを他の顧客側ルータに送ることができる。
実施形態2.
第2の実施形態のネットワークシステムの構成例は、図1と同様に表すことができるので、図1を参照して説明する。ただし、第2の実施形態における制御装置31の構成は、第1の実施形態における制御装置31の構成とは一部異なる。
第2の実施形態では、スイッチは、フローエントリに合致しない経路制御メッセージを受信した場合、Packet-in メッセージを制御装置31に送信することによって、その経路制御メッセージを制御装置31に送る。制御装置31は、Packet-in メッセージによって経路制御メッセージを取得した場合、その経路制御メッセージを送信元から宛先まで転送するためのパスを決定する。そして、制御装置31は、そのパス上のスイッチ毎に制御用転送規則を定め、その各スイッチに制御用転送規則を設定する。すなわち、第2の実施形態では、ファーストパケットに該当する経路制御メッセージを制御装置31が取得したことを契機に、制御装置31は、その経路制御メッセージを送信元から宛先まで転送するためのパスを決定し、そのパス上のスイッチ毎に制御用転送規則を定める。
図7は、本発明の第2の実施形態の制御装置の構成例を示すブロック図である。本実施形態における制御装置31は、第1の実施形態の制御装置31が備える要素に加え、Packet-in 受信部81と、パケット種別判別部82とを備える。また、本実施形態において、インタフェース対応DB記憶部36が記憶するインタフェース対応DBは、第1の実施形態におけるインタフェース対応DBと一部異なる。また、制御用転送パス計算部34、制御用転送規則生成部33、および優先度調整部38の動作が、第1の実施形態におけるそれらの要素の動作と一部異なる。また、トポロジDB記憶部35、データ用転送規則生成部37および転送規則送出部32は、第1の実施形態におけるそれらの要素と同様であり、説明を省略する。
スイッチは、フローエントリに合致しないパケット(換言すれば、ファーストパケット)を受信した場合、OpenFlowプロトコルにおけるPacket-in メッセージにそのパケットを含める。また、スイッチは、Packet-in メッセージの送信元の情報として、そのスイッチのIDをPacket-in メッセージに含める。また、スイッチは、そのファーストパケットを受信したポート番号もPacket-in メッセージに含める。そして、スイッチは、セキュアチャネルを介して、Packet-in メッセージを制御装置31に送信する。
Packet-in 受信部81は、上記のPacket-in メッセージを、セキュアチャネルを介して受信する。そして、Packet-in 受信部81は、Packet-in メッセージからパケットを取り出す。また、Packet-in 受信部81は、Packet-in メッセージから、そのPacket-in メッセージの送信元スイッチのID(すなわち、ファーストパケットを受信したスイッチのID)と、そのスイッチがファーストパケットを受信したポート番号も抽出する。そして、Packet-in 受信部81は、Packet-in メッセージから取り出したパケット、スイッチのID、およびポート番号をあわせて、パケット種別判別部82に送る。
パケット種別判別部82は、Packet-in 受信部81から取得したパケットを解析し、そのパケットが経路制御メッセージであるか否かを判別する。そのパケットが経路制御メッセージである場合、パケット種別判別部82は、そのパケット(経路制御メッセージ)と、Packet-in 受信部81から取得したスイッチのIDおよびポート番号とを制御用転送パス計算部34に送る。
また、Packet-in 受信部81から取得したパケットが経路制御メッセージでない場合、パケット種別判別部82は、そのパケットを制御用転送パス計算部34に送ることなく処理を終了する。
インタフェース対応DB記憶部36は、インタフェース対応DBを記憶する。ただし、第2の実施形態におけるインタフェース対応DBは、第1の実施形態におけるインタフェース対応DBとは異なる。図8は、第2の実施形態におけるインタフェース対応DBの例を示す説明図である。本実施形態では、インタフェース対応DBに含まれる各エントリは、顧客側ルータに接続されるスイッチのID50と、そのスイッチにおいて顧客側ルータに接続されるポートのポート番号51と、制御プロトコル処理装置30に接続されるスイッチのID55と、そのスイッチにおいて制御プロトコル処理装置30に接続されるポートのポート番号56とを含んでいればよい。なお、それぞれのエントリ45a〜48aは、1つの顧客側ルータに対応している。この点は、第1の実施形態と同様である。
制御用転送パス計算部34は、第1の実施形態とは異なり、パケット種別判別部82からパケット(経路制御メッセージ)、スイッチのIDおよびポート番号が送られてきたことを契機に、パスの作成を行う。
制御用転送規則生成部33は、そのパケット(経路制御メッセージ)を用いて、制御用転送規則を生成する。
第2の実施形態における優先度調整部38は、データ用転送規則生成部37がデータ用転送規則に対して定める優先度を確認する。そして、優先度調整部38は、データ用転送規則生成部37がデータ用転送規則に対して定める優先度よりも低い優先度を転送規則送出部32に通知する。
制御用転送パス計算部34、制御用転送規則生成部33、データ用転送規則生成部37、優先度調整部38、転送規則送出部32、Packet-in 受信部81およびパケット種別判別部82は、例えば、制御装置用プログラムに従って動作するコンピュータのCPUによって実現される。この場合、例えば、プログラム記憶装置(図示略)に記憶された制御装置用プログラムをCPUが読み込み、CPUがその制御装置用プログラムに従って、制御用転送パス計算部34、制御用転送規則生成部33、データ用転送規則生成部37、優先度調整部38、転送規則送出部32、Packet-in 受信部81およびパケット種別判別部82として動作すればよい。また、これらの各要素が別々のハードウェアで実現されていてもよい。
図9および図10は、第2の実施形態において、制御装置31がスイッチに対して制御用転送規則を設定する際の処理経過の例を示すフローチャートである。既に説明したように、Packet-in 受信部81は、Packet-in メッセージをセキュアチャネルを介して受信すると、Packet-in メッセージからパケット、そのPacket-in メッセージの送信元スイッチのID、およびそのスイッチがファーストパケットを受信したポート番号を取りだし、パケット種別判別部82に送る。
パケット種別判別部82は、Packet-in 受信部81から取得したパケットを解析し、そのパケットが経路制御メッセージであるか否かを判別する。パケット種別判別部82は、パケットが経路制御メッセージであることを条件に、Packet-in 受信部81から取得したパケット、スイッチのIDおよびポート番号を制御用転送パス計算部34に送信する。以上の動作は、図9に示すフローチャートで図示を省略している。
制御用転送パス計算部34は、パケット種別判別部82からパケット、スイッチのIDおよびポート番号が送られてきたことを契機にステップS11の処理を開始する。なお、このパケットは、経路制御メッセージである。また、パケット種別判別部82から送られてくるスイッチのIDおよびポート番号は、ファーストパケットに該当する経路制御メッセージを受信したスイッチのIDおよび、そのスイッチにおいて経路制御メッセージを受信したポートのポート番号である。
制御用転送パス計算部34は、パケット種別判別部82から送られてきたスイッチのIDおよびポート番号を用いてインタフェース対応DBを検索し、そのスイッチのIDおよびポート番号の組に対応付けられているスイッチのIDおよびポート番号を検索する(ステップS11)。
図8に例示するインタフェース対応DBを参照して、ステップS11の例を示す。例えば、パケット種別判別部82から送られてきたスイッチのIDおよびポート番号がそれぞれ、“0x24”、“3”であるとする。ID“0x24”とポート番号“3”の組は、エントリ46a(図8参照)に含まれる。そして、エントリ46aにおいて、ID“0x24”およびポート番号“3”は、顧客側ルータに接続されるスイッチのIDおよびポート番号である。従って、制御用転送パス計算部34は、エントリ46aにおいてID“0x24”およびポート番号“3”の組と対になっている、制御プロトコル処理装置30に接続されているスイッチのID“0x21”およびポート番号“2”を検索する。
また、例えば、パケット種別判別部82から送られてきたスイッチのIDおよびポート番号がそれぞれ、“0x21”、“4”であるとする。ID“0x21”とポート番号“4”の組は、エントリ48aに含まれている。そして、エントリ48aにおいて、ID“0x21”およびポート番号“4”は、制御プロトコル処理装置30に接続されているスイッチのIDおよびポート番号である。従って、制御用転送パス計算部34は、エントリ48aにおいてID“0x21”およびポート番号“4”の組と対になっている、顧客側ルータに接続されるスイッチのID“0x25”およびポート番号“2”を検索する。
ステップS11の後、制御用転送パス計算部34は、パケット種別判別部82から送られてきたIDによって特定されるスイッチを始点とし、ステップS11での検索によって得られたIDによって特定されるスイッチを終点とするパスを、トポロジDBに含まれる接続情報(スイッチ間の接続情報)に基づいて計算する(ステップS12)。制御用転送パス計算部34は、例えば、ダイクストラ法を用いてパスを計算すればよい。なお、第2の実施形態では、始点と終点を逆にしたパスは計算しなくてよい。
次に、制御用転送パス計算部34は、ステップS12で計算したパスを示す情報を、パケット種別判別部82から送られてきたパケット(ファーストパケットに該当する経路制御メッセージ)、スイッチのIDおよびポート番号とともに、制御用転送規則生成部33に送る(ステップS13)。
次に、制御用転送規則生成部33は、制御用転送パス計算部34から送られてきたパス上の各スイッチのうち、以降の処理(具体的にはステップS15,S16)を行っていないスイッチを1つ選択する(ステップS14)。
次に、制御用転送規則生成部33は、パケット種別判別部82から送られてきたパケット(ファーストパケットに該当する経路制御メッセージ)に基づいて、フローエントリ(制御用転送規則)内の、パケット照合に用いるルールを作成する(ステップS15)。具体的には、制御用転送規則生成部33は、そのパケットの中から、送信元MACアドレス、宛先MACアドレス、送信元IPアドレス、宛先IPアドレス、プロトコル番号、送信元ポート番号、宛先ポート番号を取り出し、これらを満たす条件をルールとして定める。ここでは、ルールに含まれる項目として7つの項目を例示した。制御用転送規則生成部33は、これらの項目の一部にワイルドカードを指定してもよい。例えば、送信元ポート番号、宛先ポート番号がそれぞれ“179”であった場合、制御用転送規則生成部33はルール内で、ポート番号にワイルドカードを指定してもよい。
次に、制御用転送規則生成部33は、ステップS15で作成したルールに対して、パスに沿って次のノードにパケット(ここでは、経路制御メッセージ)を転送させるアクションを付与することで、フローエントリ(ここでは、制御用転送規則)を完成させる。そして、制御用転送規則生成部33は、そのフローエントリを転送規則送出部32に送る(ステップS16)。ステップS16の動作は、第1の実施形態におけるステップS6の動作と同様である。
ステップS16の後、制御用転送規則生成部33は、ステップS13で制御用転送パス計算部34から送られてきたパス上の全てのスイッチに対して、ステップS15,S16の処理が完了したか否かを判定する(ステップS17)。ステップS15,S16の処理が完了していないスイッチが存在する場合(ステップS17のNo)、制御用転送規則生成部33は、ステップS14以降の処理を繰り返す。
ステップS14〜S17の処理を繰り返すことで、ステップS12で計算されたパス上の各スイッチについて、パスに沿って次のノードに経路制御メッセージを転送するための制御用転送規則が得られる。
また、転送規則送出部32は、優先度調整部38から優先度の通知を受ける(ステップS18)。すなわち、優先度調整部38は、データ用転送規則生成部37がデータ用転送規則に対して定める優先度よりも低い優先度を転送規則送出部32に通知する。そして、転送規則送出部32は、その優先度を受ける。
転送規則送出部32は、制御用転送規則生成部33によって生成された各制御用転送規則と、優先度調整部38から通知された優先度とを、制御用転送規則に対応するスイッチに送信する(ステップS19)。転送規則送出部32は、OpenFlowプロトコルを用いて制御用転送規則を各スイッチに送信する。各スイッチは、転送規則送出部32から受信した制御用転送規則をフローエントリとして保持する。すなわち、転送規則送出部32は、制御用転送規則をスイッチに送信することによって、スイッチに対する制御用転送規則の設定を行う。
ステップS12で計算されたパス上の各スイッチに制御用転送規則が設定されることで、ファーストパケットに該当する経路制御メッセージは、宛先まで順次転送されていく。また、送信元および宛先が、ファーストパケットに該当する経路制御メッセージの送信元および宛先と同一となっている経路制御メッセージもその宛先まで順次転送されていく。
そして、本実施形態では、ファーストパケットに該当する経路制御メッセージが検出される毎に、その経路制御メッセージを転送するための制御用転送規則が生成され、スイッチに設定される。
このように、顧客側ルータ12〜15および制御プロトコル処理装置30との間で授受される経路制御メッセージがファーストパケットとして検出されると、制御装置31によってパスが計算され、そのパス上のスイッチに制御用転送規則が設定される。従って、顧客側ルータ12〜15および制御プロトコル処理装置30は、制御対象ネットワーク40内のスイッチを介して経路制御メッセージを送受信することができる。その結果、制御プロトコル処理装置30は、各顧客側ルータ12〜15が予め保持している経路情報を収集することができる。
制御プロトコル処理装置30は、各顧客側ルータ12〜15から収集した経路情報を制御装置31に送信する。この後の動作は、既に第1の実施形態で説明した動作と同様であり、説明を省略する。
本実施形態によれば、制御装置31が、顧客側ルータ12〜15と制御プロトコル処理装置30とが経路制御メッセージを送受信する際のパスを決定し、そのパス上の各スイッチ毎に、制御用転送規則を定める。そして、制御装置31は、そのパス上のスイッチに制御用転送規則を送信することによってスイッチに制御用転送規則を設定する。従って、第1の実施形態と同様に、制御装置31が経路制御メッセージを中継することはなく、制御装置31の処理負荷の増加を防ぐことができる。
また、第1の実施形態と同様に、制御装置31内のデータ用転送規則生成部37が経路情報を取得する過程で、経路情報のデータ長が長くなったり、経路情報に対する加工負荷が生じたりすることを防ぐことができる。
また、本実施形態では、経路制御メッセージを転送するために用いる制御用転送規則の優先度は、顧客側ルータ間で授受されるパケットを転送するために用いるデータ用転送規則の優先度よりも低い。そのため、本実施形態では、スイッチが受信したパケットに合致する転送規則を検索する際、データ用転送規則が優先的に検索される。その結果、データ用転送規則に合致しなかったパケットに対してのみ、制御用転送規則との照合を行うことができる。
次に、本発明の概要について説明する。図11は、本発明の制御装置の概要を示すブロック図である。また、図12は、本発明のネットワークシステムの概要を示すブロック図である。本発明のネットワークシステムは、パケットを転送する複数の転送装置93(例えば、スイッチ21〜25)と、転送装置93のパケット転送動作を制御する制御装置90(例えば、制御装置31)とを備える。そして、制御装置90は、制御用転送規則生成手段91を備える(図11、図12参照)。
制御用転送規則生成手段91(例えば、制御用転送規則生成部33)は、ルータ(例えば、顧客側ルータ12〜15)が転送装置を介して他のルータにパケットを送信する場合の経路を示す経路情報を経路情報収集装置(例えば、制御プロトコル処理装置30)に通知するための制御メッセージ(例えば、経路制御メッセージ)を転送装置がルータと経路情報収集装置との間で転送する動作を規定する制御用転送規則を生成する。
そのような構成によって、制御装置90の負荷を増加させることなく、制御装置とは別に設けられた装置に制御メッセージを送ることを実現できる。
上記の実施形態の一部または全部は、以下の付記のようにも記載され得るが、以下に限定されるわけではない。
(付記1)パケットを転送する複数の転送装置のパケット転送動作を制御する制御装置であって、ルータが転送装置を介して他のルータにパケットを送信する場合の経路を示す経路情報を経路情報収集装置に通知するための制御メッセージを転送装置がルータと経路情報収集装置との間で転送する動作を規定する制御用転送規則を生成する制御用転送規則生成手段を備えることを特徴とする制御装置。
(付記2)ルータに接続される転送装置と、経路情報収集装置のインタフェースに接続される転送装置との間のパスを計算するパス計算手段を備え、制御用転送規則生成手段は、前記パス上の転送装置毎に、前記パスに沿って制御メッセージを次のノードに転送するための制御用転送規則を生成する付記1に記載の制御装置。
(付記3)ルータ同士が送受信するパケットを転送装置がルータ間で転送する動作を規定するデータ用転送規則を生成するデータ用転送規則生成手段と、スイッチが制御用転送規則を参照する優先度を、スイッチがデータ用転送規則を参照する優先度とは異なる値に設定する優先度調整手段とを備える付記1または付記2に記載の制御装置。
(付記4)パス計算手段は、転送装置に接続される経路情報収集装置のインタフェースと、ルータとの対応関係を示す情報に基づいて、ルータに接続される転送装置と、前記経路情報収集装置のインタフェースに接続される転送装置との間のパスを計算し、ルータ同士が送受信するパケットを転送装置がルータ間で転送する動作を規定するデータ用転送規則を生成するデータ用転送規則生成手段と、スイッチが制御用転送規則を参照する優先度を、スイッチがデータ用転送規則を参照する優先度よりも高い値に設定する優先度調整手段とを備える付記2に記載の制御装置。
(付記5)パス計算手段は、スイッチが制御用転送規則に合致しないパケットであると判定した制御メッセージを前記スイッチから受信した場合に、前記制御メッセージに基づいて、ルータに接続される転送装置と、前記経路情報収集装置のインタフェースに接続される転送装置との間のパスを計算し、ルータ同士が送受信するパケットを転送装置がルータ間で転送する動作を規定するデータ用転送規則を生成するデータ用転送規則生成手段と、スイッチが制御用転送規則を参照する優先度を、スイッチがデータ用転送規則を参照する優先度よりも低い値に設定する優先度調整手段とを備える付記2に記載の制御装置。
(付記6)制御用転送規則生成手段は、制御メッセージが制御用転送規則に適合するための条件として経路情報収集装置のアドレスを定めた制御用転送規則を生成する付記1から付記5のうちのいずれかに記載の制御装置。
(付記7)制御用転送規則生成手段は、制御メッセージが制御用転送規則に適合するための条件としてルータのアドレスを定めた制御用転送規則を生成する付記1から付記6のうちのいずれかに記載の制御装置。
(付記8)パケットを転送する複数の転送装置と、前記転送装置のパケット転送動作を制御する制御装置とを備えるネットワークシステムであって、前記制御装置は、ルータが転送装置を介して他のルータにパケットを送信する場合の経路を示す経路情報を経路情報収集装置に通知するための制御メッセージを転送装置がルータと経路情報収集装置との間で転送する動作を規定する制御用転送規則を生成する制御用転送規則生成手段を含むことを特徴とするネットワークシステム。
(付記9)パケットを転送する複数の転送装置のパケット転送動作を制御する制御装置が、ルータが転送装置を介して他のルータにパケットを送信する場合の経路を示す経路情報を経路情報収集装置に通知するための制御メッセージを転送装置がルータと経路情報収集装置との間で転送する動作を規定する制御用転送規則を生成することを特徴とするパケット転送制御方法。
(付記10)制御装置が、ルータに接続される転送装置と、経路情報収集装置のインタフェースに接続される転送装置との間のパスを計算し、前記パス上の転送装置毎に、前記パスに沿って制御メッセージを次のノードに転送するための制御用転送規則を生成する付記9に記載のパケット転送制御方法。
(付記11)制御装置が、ルータ同士が送受信するパケットを転送装置がルータ間で転送する動作を規定するデータ用転送規則を生成し、スイッチが制御用転送規則を参照する優先度を、スイッチがデータ用転送規則を参照する優先度とは異なる値に設定する付記9または付記10に記載のパケット転送制御方法。
(付記12)制御装置が、転送装置に接続される経路情報収集装置のインタフェースと、ルータとの対応関係を示す情報に基づいて、ルータに接続される転送装置と、前記経路情報収集装置のインタフェースに接続される転送装置との間のパスを計算し、ルータ同士が送受信するパケットを転送装置がルータ間で転送する動作を規定するデータ用転送規則を生成し、スイッチが制御用転送規則を参照する優先度を、スイッチがデータ用転送規則を参照する優先度よりも高い値に設定する付記9から付記11に記載のパケット転送制御方法。
(付記13)制御装置が、スイッチが制御用転送規則に合致しないパケットであると判定した制御メッセージを前記スイッチから受信した場合に、前記制御メッセージに基づいて、ルータに接続される転送装置と、前記経路情報収集装置のインタフェースに接続される転送装置との間のパスを計算し、ルータ同士が送受信するパケットを転送装置がルータ間で転送する動作を規定するデータ用転送規則を生成し、スイッチが制御用転送規則を参照する優先度を、スイッチがデータ用転送規則を参照する優先度よりも低い値に設定する付記9から付記11に記載のパケット転送制御方法。
(付記14)制御装置が、制御メッセージが制御用転送規則に適合するための条件として経路情報収集装置のアドレスを定めた制御用転送規則を生成する付記9から付記13のうちのいずれかに記載のパケット転送制御方法。
(付記15)制御装置が、制御メッセージが制御用転送規則に適合するための条件としてルータのアドレスを定めた制御用転送規則を生成する付記9から付記14のうちのいずれかに記載のパケット転送制御方法。
(付記16)パケットを転送する複数の転送装置のパケット転送動作を制御するコンピュータに搭載される制御装置用プログラムであって、前記コンピュータに、ルータが転送装置を介して他のルータにパケットを送信する場合の経路を示す経路情報を経路情報収集装置に通知するための制御メッセージを転送装置がルータと経路情報収集装置との間で転送する動作を規定する制御用転送規則を生成する制御用転送規則生成処理を実行させるための制御装置用プログラム。
以上、実施形態を参照して本願発明を説明したが、本願発明は上記の実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
この出願は、2013年9月26日に出願された日本特許出願2013−199255を基礎とする優先権を主張し、その開示の全てをここに取り込む。
産業上の利用の可能性
本発明は、オープンフローを用いたネットワークシステムに好適に適用される。
12〜15 顧客側ルータ
21〜25 スイッチ
30 制御プロトコル処理装置
31 制御装置
32 転送規則送出部
33 制御用転送規則生成部
34 制御用転送パス計算部
35 トポロジDB記憶部
36 インタフェース対応DB記憶部
37 データ用転送規則生成部
38 優先度調整部
81 Packet-in 受信部
82 パケット種別判別部

Claims (16)

  1. パケットを転送する複数の転送装置のパケット転送動作を制御する制御装置であって、
    ルータが転送装置を介して他のルータにパケットを送信する場合の経路を示す経路情報を経路情報収集装置に通知するための制御メッセージを転送装置がルータと経路情報収集装置との間で転送する動作を規定する制御用転送規則を生成する制御用転送規則生成手段を備える
    ことを特徴とする制御装置。
  2. ルータに接続される転送装置と、経路情報収集装置のインタフェースに接続される転送装置との間のパスを計算するパス計算手段を備え、
    制御用転送規則生成手段は、前記パス上の転送装置毎に、前記パスに沿って制御メッセージを次のノードに転送するための制御用転送規則を生成する
    請求項1に記載の制御装置。
  3. ルータ同士が送受信するパケットを転送装置がルータ間で転送する動作を規定するデータ用転送規則を生成するデータ用転送規則生成手段と、
    スイッチが制御用転送規則を参照する優先度を、スイッチがデータ用転送規則を参照する優先度とは異なる値に設定する優先度調整手段とを備える
    請求項1または請求項2に記載の制御装置。
  4. パス計算手段は、
    転送装置に接続される経路情報収集装置のインタフェースと、ルータとの対応関係を示す情報に基づいて、ルータに接続される転送装置と、前記経路情報収集装置のインタフェースに接続される転送装置との間のパスを計算し、
    ルータ同士が送受信するパケットを転送装置がルータ間で転送する動作を規定するデータ用転送規則を生成するデータ用転送規則生成手段と、
    スイッチが制御用転送規則を参照する優先度を、スイッチがデータ用転送規則を参照する優先度よりも高い値に設定する優先度調整手段とを備える
    請求項2に記載の制御装置。
  5. パス計算手段は、
    スイッチが制御用転送規則に合致しないパケットであると判定した制御メッセージを前記スイッチから受信した場合に、前記制御メッセージに基づいて、ルータに接続される転送装置と、前記経路情報収集装置のインタフェースに接続される転送装置との間のパスを計算し、
    ルータ同士が送受信するパケットを転送装置がルータ間で転送する動作を規定するデータ用転送規則を生成するデータ用転送規則生成手段と、
    スイッチが制御用転送規則を参照する優先度を、スイッチがデータ用転送規則を参照する優先度よりも低い値に設定する優先度調整手段とを備える
    請求項2に記載の制御装置。
  6. 制御用転送規則生成手段は、
    制御メッセージが制御用転送規則に適合するための条件として経路情報収集装置のアドレスを定めた制御用転送規則を生成する
    請求項1から請求項5のうちのいずれか1項に記載の制御装置。
  7. 制御用転送規則生成手段は、
    制御メッセージが制御用転送規則に適合するための条件としてルータのアドレスを定めた制御用転送規則を生成する
    請求項1から請求項6のうちのいずれか1項に記載の制御装置。
  8. パケットを転送する複数の転送装置と、
    前記転送装置のパケット転送動作を制御する制御装置とを備えるネットワークシステムであって、
    前記制御装置は、
    ルータが転送装置を介して他のルータにパケットを送信する場合の経路を示す経路情報を経路情報収集装置に通知するための制御メッセージを転送装置がルータと経路情報収集装置との間で転送する動作を規定する制御用転送規則を生成する制御用転送規則生成手段を含む
    ことを特徴とするネットワークシステム。
  9. パケットを転送する複数の転送装置のパケット転送動作を制御する制御装置が、
    ルータが転送装置を介して他のルータにパケットを送信する場合の経路を示す経路情報を経路情報収集装置に通知するための制御メッセージを転送装置がルータと経路情報収集装置との間で転送する動作を規定する制御用転送規則を生成する
    ことを特徴とするパケット転送制御方法。
  10. 制御装置が、
    ルータに接続される転送装置と、経路情報収集装置のインタフェースに接続される転送装置との間のパスを計算し、
    前記パス上の転送装置毎に、前記パスに沿って制御メッセージを次のノードに転送するための制御用転送規則を生成する
    請求項9に記載のパケット転送制御方法。
  11. 制御装置が、
    ルータ同士が送受信するパケットを転送装置がルータ間で転送する動作を規定するデータ用転送規則を生成し、
    スイッチが制御用転送規則を参照する優先度を、スイッチがデータ用転送規則を参照する優先度とは異なる値に設定する
    請求項9または請求項10に記載のパケット転送制御方法。
  12. 制御装置が、
    転送装置に接続される経路情報収集装置のインタフェースと、ルータとの対応関係を示す情報に基づいて、ルータに接続される転送装置と、前記経路情報収集装置のインタフェースに接続される転送装置との間のパスを計算し、
    ルータ同士が送受信するパケットを転送装置がルータ間で転送する動作を規定するデータ用転送規則を生成し、
    スイッチが制御用転送規則を参照する優先度を、スイッチがデータ用転送規則を参照する優先度よりも高い値に設定する
    請求項9から請求項11のうちのいずれか1項に記載のパケット転送制御方法。
  13. 制御装置が、
    スイッチが制御用転送規則に合致しないパケットであると判定した制御メッセージを前記スイッチから受信した場合に、前記制御メッセージに基づいて、ルータに接続される転送装置と、前記経路情報収集装置のインタフェースに接続される転送装置との間のパスを計算し、
    ルータ同士が送受信するパケットを転送装置がルータ間で転送する動作を規定するデータ用転送規則を生成し、
    スイッチが制御用転送規則を参照する優先度を、スイッチがデータ用転送規則を参照する優先度よりも低い値に設定する
    請求項9から請求項11のうちのいずれか1項に記載のパケット転送制御方法。
  14. 制御装置が、
    制御メッセージが制御用転送規則に適合するための条件として経路情報収集装置のアドレスを定めた制御用転送規則を生成する
    請求項9から請求項13のうちのいずれか1項に記載のパケット転送制御方法。
  15. 制御装置が、
    制御メッセージが制御用転送規則に適合するための条件としてルータのアドレスを定めた制御用転送規則を生成する
    請求項9から請求項14のうちのいずれか1項に記載のパケット転送制御方法。
  16. パケットを転送する複数の転送装置のパケット転送動作を制御するコンピュータに搭載される制御装置用プログラムであって、
    前記コンピュータに、
    ルータが転送装置を介して他のルータにパケットを送信する場合の経路を示す経路情報を経路情報収集装置に通知するための制御メッセージを転送装置がルータと経路情報収集装置との間で転送する動作を規定する制御用転送規則を生成する制御用転送規則生成処理
    を実行させるための制御装置用プログラム。
JP2015538862A 2013-09-26 2014-08-28 制御装置、ネットワークシステム、パケット転送制御方法、制御装置用プログラム Withdrawn JPWO2015045275A1 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2013199255 2013-09-26
JP2013199255 2013-09-26
PCT/JP2014/004429 WO2015045275A1 (ja) 2013-09-26 2014-08-28 制御装置、ネットワークシステム、パケット転送制御方法、制御装置用プログラム

Publications (1)

Publication Number Publication Date
JPWO2015045275A1 true JPWO2015045275A1 (ja) 2017-03-09

Family

ID=52742451

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015538862A Withdrawn JPWO2015045275A1 (ja) 2013-09-26 2014-08-28 制御装置、ネットワークシステム、パケット転送制御方法、制御装置用プログラム

Country Status (3)

Country Link
US (1) US20160301629A1 (ja)
JP (1) JPWO2015045275A1 (ja)
WO (1) WO2015045275A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020053854A (ja) * 2018-09-27 2020-04-02 株式会社リコー ネットワークシステム、通信制御装置、通信制御方法およびプログラム

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017164219A1 (ja) * 2016-03-24 2017-09-28 日本電気株式会社 統計情報管理装置、通信システム、統計情報管理方法およびプログラム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7646731B2 (en) * 2006-12-19 2010-01-12 Cisco Technology, Inc. Route monitoring in a network management system
KR101476014B1 (ko) * 2010-01-05 2014-12-23 닛본 덴끼 가부시끼가이샤 네트워크 시스템 및 네트워크 용장화 방법
EP2659632A4 (en) * 2010-12-27 2017-01-11 Nec Corporation Mapping server, network system, packet forwarding method and program
US8830820B2 (en) * 2011-10-14 2014-09-09 Google Inc. Semi-centralized routing
US20150256455A1 (en) * 2012-10-31 2015-09-10 Nec Corporation, Communication system, path information exchange apparatus, communication node, forwarding method for path information and program

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020053854A (ja) * 2018-09-27 2020-04-02 株式会社リコー ネットワークシステム、通信制御装置、通信制御方法およびプログラム

Also Published As

Publication number Publication date
WO2015045275A1 (ja) 2015-04-02
US20160301629A1 (en) 2016-10-13

Similar Documents

Publication Publication Date Title
US11134012B2 (en) Communication system, communication device, controller, and method and program for controlling forwarding path of packet flow
US11134011B2 (en) Communication system, control device, communication method, and program
US9401928B2 (en) Data stream security processing method and apparatus
US20120314605A1 (en) Communication system, path control apparatus, packet forwarding apparatus, and path control method
US20130177016A1 (en) Communication system, control apparatus, packet handling operation setting method, and program
US20130266017A1 (en) Communication system, control apparatus, communication method, and program
KR20150051107A (ko) 신속한 경로 설정 및 장애 복구 방법
US10069648B2 (en) Communication system, control apparatus, communication control method and program
US20150304216A1 (en) Control method, control apparatus, communication system, and program
WO2014017631A1 (ja) 制御装置、通信システム、通信方法及びプログラム
JP5725236B2 (ja) 通信システム、ノード、パケット転送方法およびプログラム
WO2014129624A1 (ja) 制御装置、通信システム、経路切替方法及びプログラム
US20150256455A1 (en) Communication system, path information exchange apparatus, communication node, forwarding method for path information and program
US9614758B2 (en) Communication system, integrated controller, packet forwarding method and program
WO2015045275A1 (ja) 制御装置、ネットワークシステム、パケット転送制御方法、制御装置用プログラム
JP2016092756A (ja) 制御装置、通信システム、ループ抑止方法及びプログラム
WO2014087993A1 (ja) 制御装置、通信システム、通信方法及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170705

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20180125