(57)【要約】【課題】  ＳＤＮにおいて用いるネットワークを制御するための情報処理システムを提供することを目的とする。【解決手段】  ＳＤＮコントローラとスイッチとを用いる情報処理システムであって，スイッチは，接続する端末からのパケットに対するフローエントリがフローテーブルにないことを判定すると，パケットを受け付けたポートと端末の個体識別情報とを含むメッセージをＳＤＮコントローラに送り，ＳＤＮコントローラは，受け付けたメッセージのうち，同一の個体識別情報であってポートが異なるメッセージが，時間および回数の条件を充足する場合には，ネットワークループがあることを判定する，情報処理システムである。【選択図】  図１
2020039075.tif 000002
【特許請求の範囲】
【請求項１】
ＳＤＮコントローラとスイッチとを用いる情報処理システムであって，
前記スイッチは，
接続する端末からのパケットに対するフローエントリがフローテーブルにないことを判定すると，パケットを受け付けたポートと前記端末の個体識別情報とを含むメッセージを前記ＳＤＮコントローラに送り，
前記ＳＤＮコントローラは，
前記受け付けたメッセージのうち，同一の個体識別情報であってポートが異なるメッセージが，時間および回数の条件を充足する場合には，ネットワークループがあることを判定する，
ことを特徴とする情報処理システム。
【請求項２】
ＳＤＮコントローラと複数のスイッチとを用いる情報処理システムであって，
前記スイッチは，
接続する端末からのパケットに対するフローエントリがフローテーブルにないことを判定すると，前記端末の個体識別情報を含むメッセージを，前記ＳＤＮコントローラに送り，
前記ＳＤＮコントローラは，
異なるスイッチから受け付けた同一の個体識別情報を含むメッセージが，時間および回数の条件を充足する場合には，ネットワークループがあることを判定する，
ことを特徴とする情報処理システム。
【請求項３】
前記ＳＤＮコントローラは，
ネットワークループがあることを検出すると，ネットワークループを解消するための制御処理を実行する，
ことを特徴とする請求項１または請求項２に記載の情報処理システム。
【請求項４】
前記ＳＤＮコントローラは，
前記制御処理として，ネットワークループの発生箇所を特定する，ネットワークループの発生を通知する，ネットワークループが発生しているポートを閉塞する制御指示を送る，ネットワークループが発生しているＶＬＡＮを閉塞する制御指示を送る，ネットワークループが発生している個体識別情報からのパケットを破棄するフローエントリを前記スイッチのフローテーブルに設定する，のいずれか一以上を実行する，
ことを特徴とする請求項３に記載の情報処理システム。
【請求項５】
ＳＤＮによって構築されたネットワークで用いるＳＤＮコントローラであって，
前記ＳＤＮコントローラは，
パケットを受け付けたポートと個体識別情報と含むメッセージをスイッチから受け付け，
前記受け付けたメッセージのうち，同一の個体識別情報であってポートが異なるメッセージが，時間および回数の条件を充足する場合には，ネットワークループがあることを判定する，
ことを特徴とするＳＤＮコントローラ。
【請求項６】
ＳＤＮによって構築されたネットワークで用いるＳＤＮコントローラであって，
前記ＳＤＮコントローラは，
異なるスイッチから受け付けた同一の個体識別情報を含むメッセージが，時間および回数の条件を充足する場合には，ネットワークループがあることを判定する，
ことを特徴とするＳＤＮコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，ＳＤＮ（Ｓｏｆｔｗａｒｅ  Ｄｅｆｉｎｅｄ  Ｎｅｔｗｏｒｋ）において用いるネットワークを制御するための情報処理システムに関する。
【背景技術】
【０００２】
コンピュータネットワークにおいては，ネットワークループと呼ばれる障害があることが知られている。ネットワークループとは，ネットワークに接続するコンピュータやネットワーク機器などが，人為ミスや機械の故障などによってループ上に接続される事象である。たとえば，図６に示すように，ケーブル間の誤接続などによって発生する。
【０００３】
たとえば図６に示すようなネットワークループが発生した場合，ネットワークを流れるパケットがスイッチでループしてしまうため，スイッチなどのネットワーク機器やサーバに著しい負荷が発生し，サーバなどの応答が著しく低下する。そのため，ネットワークループからネットワークを保護するため，ＭＡＣアドレススラッシング検出と呼ばれる方法がある。
【０００４】
ＭＡＣアドレススラッシング検出と呼ばれるループガード機能に関する従来技術として，たとえば下記特許文献１および特許文献２がある。
【０００５】
また，近年，ネットワーク構成は複雑化しており，その複雑化したネットワーク構成やマシン構成の管理を容易にするため，ＳＤＮと呼ばれる技術が用いられることがある（特許文献３）。そのため，ＳＤＮを用いたネットワークにおけるネットワークループに対応することが求められている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平９−９３２８２号公報
【特許文献２】特開２００６−１７３７８５号公報
【特許文献３】ＷＯ２０１０／１０３９０９号
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１および特許文献２における装置を用いることで，従来型の一般的なネットワークにおける一定の場合のネットワークループを検出することができる。しかし，特許文献１，特許文献２のような従来技術では，ＳＤＮを用いたネットワークにおけるネットワークループは検出することができなかった。また，特許文献１，特許文献２の装置では，スイッチなどのネットワーク機器の内部でＭＡＣアドレススラッシング検出の機能が実現されているため，複数のネットワーク機器を介してネットワークループが実現されている場合には，検出することができなかった。
【課題を解決するための手段】
【０００８】
本発明者は上記課題に鑑み，ＳＤＮを用いたネットワークでもネットワークループの検出が可能な情報処理システムを発明した。
【０００９】
第１の発明は，ＳＤＮコントローラとスイッチとを用いる情報処理システムであって，前記スイッチは，接続する端末からのパケットに対するフローエントリがフローテーブルにないことを判定すると，パケットを受け付けたポートと前記端末の個体識別情報とを含むメッセージを前記ＳＤＮコントローラに送り，前記ＳＤＮコントローラは，前記受け付けたメッセージのうち，同一の個体識別情報であってポートが異なるメッセージが，時間および回数の条件を充足する場合には，ネットワークループがあることを判定する，情報処理システムである。
【００１０】
第２の発明は，ＳＤＮコントローラと複数のスイッチとを用いる情報処理システムであって，前記スイッチは，接続する端末からのパケットに対するフローエントリがフローテーブルにないことを判定すると，前記端末の個体識別情報を含むメッセージを，前記ＳＤＮコントローラに送り，前記ＳＤＮコントローラは，異なるスイッチから受け付けた同一の個体識別情報を含むメッセージが，時間および回数の条件を充足する場合には，ネットワークループがあることを判定する，情報処理システムである。
【００１１】
これらの発明のように構成することで，ＳＤＮを用いたネットワークにおいても，ネットワークループに対応することができる。また，複数のネットワーク機器を介してネットワークループが実現されている場合であっても，その検出が可能となる。
【００１２】
上述の発明において，前記ＳＤＮコントローラは，ネットワークループがあることを検出すると，ネットワークループを解消するための制御処理を実行する，情報処理システムのように構成することができる。
【００１３】
上述の発明において，前記ＳＤＮコントローラは，前記制御処理として，ネットワークループの発生箇所を特定する，ネットワークループの発生を通知する，ネットワークループが発生しているポートを閉塞する制御指示を送る，ネットワークループが発生しているＶＬＡＮを閉塞する制御指示を送る，ネットワークループが発生している個体識別情報からのパケットを破棄するフローエントリを前記スイッチのフローテーブルに設定する，のいずれか一以上を実行する，情報処理システムのように構成することができる。
【００１４】
ネットワークループの発生を判定した場合，それに対する制御処理を実行することで，ネットワークに対する障害の発生を防止することができる。
【００１５】
第１の発明は，本発明のＳＤＮコントローラを用いることで実現することができる。すなわち，ＳＤＮによって構築されたネットワークで用いるＳＤＮコントローラであって，前記ＳＤＮコントローラは，パケットを受け付けたポートと個体識別情報と含むメッセージをスイッチから受け付け，前記受け付けたメッセージのうち，同一の個体識別情報であってポートが異なるメッセージが，時間および回数の条件を充足する場合には，ネットワークループがあることを判定する，ＳＤＮコントローラである。
【００１６】
第２の発明は，本発明のＳＤＮコントローラを用いることで実現することができる。すなわち，ＳＤＮによって構築されたネットワークで用いるＳＤＮコントローラであって，前記ＳＤＮコントローラは，異なるスイッチから受け付けた同一の個体識別情報を含むメッセージが，時間および回数の条件を充足する場合には，ネットワークループがあることを判定する，ＳＤＮコントローラである。
【発明の効果】
【００１７】
本発明の情報処理システムを用いることによって，ＳＤＮを用いたネットワークでもネットワークループの検出が可能となる。
【図面の簡単な説明】
【００１８】
【図１】ＳＤＮを利用したネットワークの一例を模式的に示す図である。
【図２】本発明の情報処理システムで用いるコンピュータのハードウェア構成の一例を示す図である。
【図３】本発明の情報処理システムの処理プロセスの一例を示すフローチャートの一例である。
【図４】実施例１におけるネットワークの一例を模式的に示す図である。
【図５】実施例２におけるネットワークの一例を模式的に示す図である。
【図６】スイッチへのケーブルの誤接続によるネットワークループの発生を模式的に示す図である。
【発明を実施するための形態】
【００１９】
本発明の情報処理システム１は，ＳＤＮを利用してネットワークを構築しているコンピュータシステムにおいて用いられる。図１に，ＳＤＮを利用したネットワークにおける情報処理システム１の全体の一例を示す。後述する各実施例におけるＯｐｅｎＦｌｏｗ（オープンフロー）はＳＤＮの標準仕様の一種である。本発明の情報処理システム１では，ＳＤＮを利用してネットワーク制御を行うため，ＳＤＮコントローラ２とスイッチとを用いる。スイッチには一または複数の端末４が接続している。
【００２０】
本発明の情報処理システム１では，ＳＤＮによるネットワーク管理技術を用いており，一または複数のネットワークは，ＳＤＮコントローラ２によってその通信が制御されている。ＳＤＮコントローラ２は，ＳＤＮによって構築されたネットワークにおいて，その通信を管理しており，スイッチの管理単位をポートレベルで管理している。ＳＤＮコントローラ２は，ネットワークの制御や管理を行うソフトウェアおよびそのソフトウェアが稼働するコンピュータを指すものとする。ＳＤＮとしてＯｐｅｎＦｌｏｗが用いられる場合，ＯｐｅｎＦｌｏｗコントローラ２ａがＳＤＮコントローラ２となる。
【００２１】
またＳＤＮによって構築されたネットワークでは，スイッチ３を介して端末４（コンピュータ）が接続している。スイッチ３はデータを転送するネットワーク機器である。ネットワーク通信を行うために必要なスイッチ３以外のネットワーク機器，たとえばゲートウェイなどの機器を，適宜，備えている。
【００２２】
スイッチ３には，端末４から受け取ったパケットをどのように制御するのかを示すルールであるフローエントリの集合（フローテーブル）が記憶されており，それにしたがってパケットを処理する。フローテーブルは，フローエントリを識別するためのテーブルＩＤ（識別情報）と，端末４から受け取ったパケットに対して，どのフローエントリで処理するかを判定するための条件と，フローエントリの優先度と，条件を充足した場合の制御とを対応づけて記憶している。
【００２３】
スイッチ３は，端末４からＦｉｒｓｔ  Ｐａｃｋｅｔを受け取ると，当該パケットの処理を一時保留し，当該スイッチ３に接続するすべてのＳＤＮコントローラ２に問い合わせをするＰａｃｋｅｔ−Ｉｎメッセージを送る。そして，当該端末４を管理するＳＤＮコントローラ２が，当該端末４のパケットの処理に対するフローエントリを，スイッチ３のフローテーブルに設定する。そして，一時保留したパケットを，当該フローエントリに基づいて処理をする。
【００２４】
スイッチ３は，異なるネットワークを管理する複数のＳＤＮコントローラ２と接続していてもよい。ＳＤＮとしてＯｐｅｎＦｌｏｗが用いられる場合，ＯｐｅｎＦｌｏｗスイッチ（ＯＦＳ）３ａがスイッチ３に相当する。
【００２５】
本発明の情報処理システム１は，サーバやパーソナルコンピュータなどの各種のコンピュータにより実現される。図２にコンピュータのハードウェア構成の一例を示す。コンピュータは，プログラムの演算処理を実行するＣＰＵなどの演算装置７０と，情報を記憶するＲＡＭやハードディスクなどの記憶装置７１と，ディスプレイなどの表示装置７２と，キーボードやポインティングデバイス（マウスやテンキーなど）などの入力装置７３と，演算装置７０の処理結果や記憶装置７１に記憶する情報をインターネットやＬＡＮなどのネットワークを介して送受信する通信装置７４とを有している。
【００２６】
なお，図１ではそれぞれが一台のコンピュータで実現される場合を示したが，複数台のコンピュータにその機能が分散配置され，実現されても良い。また，本発明における各処理部は、その機能が論理的に区別されているのみであって、物理上あるいは事実上は同一の領域をなしていても良い。また一つのＳＤＮコントローラ２が複数のスイッチ３と接続していても良いし，一つのスイッチ３が複数のＳＤＮコントローラ２と接続していても良い。
【００２７】
本発明の情報処理システム１の処理プロセスの一例を図３のフローチャートを用いて説明する。
【００２８】
スイッチ３は，端末４からＦｉｒｓｔ  Ｐａｃｋｅｔを受け付けると，当該スイッチ３のフローテーブルを参照する。Ｆｉｒｓｔ  Ｐａｃｋｅｔを送った端末４のパケットに対するフローエントリはフローテーブルには登録されていないので，当該スイッチ３は，フローテーブルに該当するフローエントリがなかったことを示すＰａｃｋｅｔ−Ｉｎメッセージを，接続しているＳＤＮコントローラ２に送る。
【００２９】
スイッチ３から送られたＰａｃｋｅｔ−Ｉｎメッセージを受け付けたＳＤＮコントローラ２は（Ｓ１００），同一のＭＡＣアドレスからのパケットを別のポートで受信したか，あるいは別のスイッチ３で受信したかを判定する（Ｓ１１０）。もしいずれかであれば，所定の閾値の時間で所定の回数以上，同一のＭＡＣアドレスからのパケットを受信しているかを判定する（Ｓ１２０，Ｓ１３０）。すなわち，同一のＭＡＣアドレスからのパケットが短時間（たとえば１００ミリ秒）に複数回，別のポートやスイッチ３から受信していることでネットワークループが発生していることを判定する（Ｓ１４０）。なお，ＭＡＣアドレスをコンピュータの個体識別情報として用いることが好ましいが，コンピュータを特定可能な識別情報であれば如何なる識別情報であっても良い。
【００３０】
もしネットワークループがあることを判定した場合，ＳＤＮコントローラ２は，ネットワークループを解消する所定の制御処理を実行する（Ｓ１５０）。所定の制御処理としては，たとえばＰａｃｋｅｔ−ＩｎメッセージにおけるポートやＭＡＣアドレスを特定することで，ネットワークループの発生箇所を特定し，ネットワークループの発生を所定の担当者の通知先に，ＳＮＭＰ  Ｔｒａｐ，Ｓｙｓｌｏｇ，電子メールなどによる通知する，ネットワークループが発生しているポートを閉塞する制御指示をスイッチ３に送る，ネットワークループが発生しているＶＬＡＮを閉塞する制御指示をスイッチ３に送る，ネットワークループが発生しているＭＡＣアドレスからのパケットの破棄（Ｄｒｏｐ）のフローエントリをフローテーブルに設定するなどがある。
【００３１】
なお，上述ではＰａｃｋｅｔ−Ｉｎメッセージに基づいて処理を実行しているが，Ｐａｃｋｅｔ−Ｉｎメッセージに限定するものではなく，スイッチ３から受け付けたメッセージであればよい。
【実施例１】
【００３２】
つぎに図４に示すようなネットワークループの場合に，本発明の情報処理システム１の処理を説明する。なお本実施例においては，ＳＤＮとしてＯｐｅｎＦｌｏｗを用いる場合を説明するので，ＳＤＮコントローラ２としてＯｐｅｎＦｌｏｗコントローラ２ａ，スイッチ３としてＯｐｅｎＦｌｏｗスイッチ３ａの場合を説明する。
【００３３】
図４のネットワークでは，ＯｐｅｎＦｌｏｗスイッチ３ａに２つのハブ（ハブＡ，ハブＢ）が接続しており，ハブＡがＯｐｅｎＦｌｏｗスイッチ３ａのポート１に，ハブＢがＯｐｅｎＦｌｏｗスイッチ３ａのポート２に接続している。そしてハブＡとハブＢとが接続している。またハブＡには端末４が接続している。
【００３４】
このようなネットワーク構成においては，端末４からのパケットがネットワークループした場合，ＯｐｅｎＦｌｏｗスイッチ３ａは，送信元のＭＡＣアドレスが端末４のものであるパケットを，ポート１とポート２の両方から受け付けることとなる。そして，ＯｐｅｎＦｌｏｗスイッチ３ａは，パケットを受け付けたポートが変わるたびにＰａｃｋｅｔ−ＩｎメッセージをＯｐｅｎＦｌｏｗコントローラ２ａに送る。そうすると，ＯｐｅｎＦｌｏｗコントローラ２ａでは，ＯｐｅｎＦｌｏｗスイッチ３ａのＰａｃｋｅｔ−Ｉｎメッセージを，短時間の間に多数受け付けることとなり，ＯｐｅｎＦｌｏｗコントローラ２ａに著しい負荷が発生する。
【００３５】
そこで本発明の情報処理システム１の処理によって，ＯｐｅｎＦｌｏｗコントローラ２ａがＯｐｅｎＦｌｏｗスイッチ３ａから受け付けたＰａｃｋｅｔ−Ｉｎメッセージが，同一のＭＡＣアドレスから別のポートで受け付けたものであるかを判定する。そしてそれが所定の閾値とする時間（たとえば１００ミリ秒）に所定回数以上受け付けている場合には，ネットワークループがあると判定する。
【００３６】
すなわち，図４のＯｐｅｎＦｌｏｗコントローラ２ａは，同一のＭＡＣアドレスからポート１で受け付けたＰａｃｋｅｔ−Ｉｎメッセージと，ポート２で受け付けたＰａｃｋｅｔ−Ｉｎメッセージとを短時間で複数回，受け付けることとなる。そこで，所定の閾値とした時間で所定の閾値とした回数以上，同様のＰａｃｋｅｔ−Ｉｎメッセージを受け付けた場合には，ネットワークループがあることを判定し，所定の制御処理を実行する。
【実施例２】
【００３７】
つぎに図５に示すようなネットワークループの場合に，本発明の情報処理システム１の処理を説明する。なお本実施例においても，ＳＤＮとしてＯｐｅｎＦｌｏｗを用いる場合を説明するので，ＳＤＮコントローラ２としてＯｐｅｎＦｌｏｗコントローラ２ａ，スイッチ３としてＯｐｅｎＦｌｏｗスイッチ３ａの場合を説明する。
【００３８】
図５のネットワークでは，ＯｐｅｎＦｌｏｗコントローラ２ａに２つのＯｐｅｎＦｌｏｗスイッチ３ａ（ＯｐｅｎＦｌｏｗスイッチＡ，ＯｐｅｎＦｌｏｗスイッチＢ）が接続しており，さらにハブが２つのＯｐｅｎＦｌｏｗスイッチ３ａに接続している。当該ハブには，さらに端末４が接続しているが，ハブのケーブルに誤接続があることでネットワークループが発生している。
【００３９】
このようなネットワーク構成においては，端末４からのパケットがネットワークループした場合，ＯｐｅｎＦｌｏｗコントローラ２ａは送信元のＭＡＣアドレスが端末４のものであるパケットを，ＯｐｅｎＦｌｏｗスイッチＡ，ＯｐｅｎＦｌｏｗスイッチＢの両方から受け付けることとなる。そしてＯｐｅｎＦｌｏｗスイッチＡおよびＯｐｅｎＦｌｏｗスイッチＢは，受け付けるＯｐｅｎＦｌｏｗスイッチ３ａが変わるたびに，それぞれＰａｃｋｅｔ−ＩｎメッセージをＯｐｅｎＦｌｏｗコントローラ２ａに送る。そうすると，ＯｐｅｎＦｌｏｗコントローラ２ａでは，ＯｐｅｎＦｌｏｗスイッチＡのＰａｃｋｅｔ−Ｉｎメッセージ，ＯｐｅｎＦｌｏｗスイッチＢのＰａｃｋｅｔ−Ｉｎメッセージを，短時間の間に多数受け付けることとなり，ＯｐｅｎＦｌｏｗコントローラ２ａに著しい負荷が発生する。
【００４０】
そこで本発明の情報処理システム１の処理によって，ＯｐｅｎＦｌｏｗコントローラ２ａがＯｐｅｎＦｌｏｗスイッチ３ａから受け付けたＰａｃｋｅｔ−Ｉｎメッセージについて，同一のＭＡＣアドレスから別のＯｐｅｎＦｌｏｗスイッチ３ａで受け付けたものであるかを判定する。そしてそれが所定の閾値とする時間（たとえば１００ミリ秒）に所定回数以上受け付けている場合には，ネットワークループがあると判定する。
【００４１】
すなわち，図５のＯｐｅｎＦｌｏｗコントローラ２ａは，同一のＭＡＣアドレスのＯｐｅｎＦｌｏｗスイッチＡから受け付けたＰａｃｋｅｔ−Ｉｎメッセージと，ＯｐｅｎＦｌｏｗスイッチＢから受け付けたＰａｃｋｅｔ−Ｉｎメッセージとを短時間で複数回，受け付けることとなる。そこで，所定の閾値とした時間で所定の閾値とした回数以上，同様のＰａｃｋｅｔ−Ｉｎメッセージを受け付けた場合には，ネットワークループがあることを判定し，所定の制御処理を実行する。
【００４２】
本明細書において，本発明の技術的思想を逸脱しない範囲でその処理を適宜，変更することは可能である。たとえば処理の順番を変更，一部の処理を実行しない，処理を追加するなどをしてもよい。また，ＳＤＮコントローラ２とスイッチ３との間や，スイッチ３と端末４との間などにほかのネットワーク機器を設けてもよい。さらに，各種ネットワーク機器を，同様の機能を有するほかのネットワーク機器に変更しても良い。
【産業上の利用可能性】
【００４３】
本発明の情報処理システム１を用いることによって，ＳＤＮを用いたネットワークでもネットワークループの検出が可能となる。
【符号の説明】
【００４４】
１：情報処理システム
２：ＳＤＮコントローラ
２ａ：ＯｐｅｎＦｌｏｗコントローラ
３：スイッチ
３ａ：ＯｐｅｎＦｌｏｗスイッチ
４：端末
７０：演算装置
７１：記憶装置
７２：表示装置
７３：入力装置
７４：通信装置
【図１】
2020039075.tif 000003
【図２】
2020039075.tif 000004
【図３】
2020039075.tif 000005
【図４】
2020039075.tif 000006
【図５】
2020039075.tif 000007
【図６】
2020039075.tif 000008