(57)【要約】【課題】スイッチ群とスイッチ群との間に設けられた複数経路を有効に利用可能にする。【解決手段】本スイッチは、仮想的に統合されるべき複数のスイッチを含む第１のドメインに含まれる他のスイッチに接続される第１のポートを介して当該第１のドメイン内におけるスイッチのデータを取得する第１の処理部と、第１のポート以外の第２のポートを介して第１のドメインに隣接する第２のドメインに含まれるスイッチのデータを取得すると共に第１のドメインに含まれる他のスイッチから第２のドメインに含まれるスイッチのデータを取得し、同一の第２のドメインに接続される複数のポートを特定して当該複数のポートに係る設定を行い、第１のドメイン及び第２のドメインを含む複数のドメインをツリー構成にするための処理を実行する第２の処理部とを有する。【選択図】図３
2014165521.tif 000002
【特許請求の範囲】
【請求項１】
仮想的に統合されるべき複数のスイッチを含む第１のドメインに含まれる他のスイッチに接続される第１のポートを介して当該第１のドメイン内におけるスイッチのデータを取得する第１の処理部と、
前記第１のポート以外の第２のポートを介して前記第１のドメインに隣接する第２のドメインに含まれるスイッチのデータを取得すると共に前記第１のドメインに含まれる他のスイッチから前記第２のドメインに含まれるスイッチのデータを取得し、同一の第２のドメインに接続される複数のポートを特定して当該複数のポートに係る設定を行い、前記第１のドメイン及び前記第２のドメインを含む複数のドメインをツリー構成にするための処理を実行する第２の処理部と、
を有するスイッチ。
【請求項２】
前記複数のポートに係る設定が、当該複数のポートに接続されるリンクを仮想的な１リンクとして取り扱う設定である
請求項１記載のスイッチ。
【請求項３】
前記複数のドメインをツリー構成にするための処理が、
前記第１のドメインが、前記ツリー構成におけるルートのドメインであり、自スイッチが前記第１のドメインにおける主たるスイッチである場合、
前記ルートのドメインから隣接するドメインに順次接続して接続先のドメインに隣接するドメインのデータを収集し、当該隣接するドメインがツリー構成から外れる経路で他のドメインと接続されていると判断すると当該接続先のドメインに含まれるスイッチの複数のポートのうち前記ツリー構成から外れる経路で他のドメインと接続されるポートを非使用状態に設定する処理
を含む請求項２記載のスイッチ。
【請求項４】
前記複数のドメインをツリー構成にするための処理が、
前記ツリー構成における自スイッチの階層レベルを隣接するドメインに含まれるスイッチと交換することで、前記ツリー構成における親ドメインと階層レベルとを特定し、
前記ツリー構成における自スイッチの変更後の階層レベル及び親ドメインの識別子を、前記第１のドメインに含まれる他のスイッチと交換することで、前記ツリー構成における親ドメインと階層レベルとを更新する
処理を含む請求項２記載のスイッチ。
【請求項５】
前記複数のドメインをツリー構成にするための処理が、さらに、
前記ツリー構成におけるルートのドメインまでの階層レベル数がより少ない経路が検出された場合には、前記ツリー構成における親ドメインとされていた隣接ドメインと接続されているポートを非使用状態に設定し、
前記ツリー構成における親ドメインとは別の隣接ドメインが親ドメイン相当であると検出された場合には、検出された前記隣接ドメインと接続されているポートを非使用状態に設定する
処理を含む請求項４記載のスイッチ。
【請求項６】
前記複数のポートに係る設定が、当該複数のポート間の中継を遮断する設定である
請求項１記載のスイッチ。
【請求項７】
前記複数のドメインをツリー構成にするための処理が、
前記第１のドメインが、前記ツリー構成におけるルートのドメインであり、自スイッチが前記第１のドメインにおける主たるスイッチである場合、
前記ルートのドメインから隣接するドメインに順次接続して接続先のドメインに隣接するドメインのデータを収集し、当該隣接するドメインがツリー構成から外れる経路で他のドメインと接続されていると判断すると当該接続先のドメインに含まれるスイッチの複数のポートのうち前記ツリー構成から外れる経路で他のドメインと接続されるポートを非使用状態に設定する処理
を含む請求項６記載のスイッチ。
【請求項８】
前記複数のドメインをツリー構成にするための処理が、さらに、
前記複数のドメイン外の装置に接続されている外部ポート以外のポートをアップリンクに設定する処理と、
前記接続先のドメインに隣接するドメインに接続しているポートをダウンリンクに変更する処理と、
アップリンクが設定されているポート間の中継を遮断する設定、及び同一隣接ドメインと接続されているポート以外であってダウンリンクが設定されているポート間の中継を許可する設定を行う処理と、
ダウンリンクが設定されているポート及び外部ポートの各々に対してアップリンクが設定されているポートを１つ対応付ける処理と、
対応付けられたポート間以外でダウンリンクが設定されているポート又は外部ポートとアップリンクが設定されているポートとの間での中継を遮断する設定を行う処理と、
を含む請求項７記載のスイッチ。
【請求項９】
前記複数のドメインをツリー構成にするための処理が、
前記ツリー構成における自スイッチの階層レベルを隣接するドメインに含まれるスイッチと交換することで、前記ツリー構成における親ドメインと階層レベルとを特定し、
前記ツリー構成における自スイッチの変更後の階層レベル及び親ドメインの識別子を、前記第１のドメインに含まれる他のスイッチと交換することで、前記ツリー構成における親ドメインと階層レベルとを更新する
処理を含む請求項６記載のスイッチ。
【請求項１０】
前記複数のドメインをツリー構成にするための処理が、さらに、
前記ツリー構成におけるルートのドメインまでの階層レベル数がより少ない経路が検出された場合には、前記ツリー構成における親ドメインとされていた隣接ドメインと接続されているポートを非使用状態に設定し、
前記ツリー構成における親ドメインとは別の隣接ドメインが親ドメイン相当であると検出された場合には、検出された前記隣接ドメインと接続されているポートを非使用状態に設定する
処理を含む請求項９記載のスイッチ。
【請求項１１】
前記複数のドメインをツリー構成にするための処理が、さらに、
前記ツリー構成における親ドメインに含まれるスイッチと接続されているポートをアップリンクに設定し、アップリンクが設定されているポート以外のポートをダウンリンクに設定する処理と、
アップリンクが設定されているポート間の中継を遮断する設定、及び同一隣接ドメインと接続されているポート以外であってダウンリンクが設定されているポート間の中継を許可する設定を行う処理と、
ダウンリンクが設定されているポート及び外部ポートの各々に対してアップリンクが設定されているポートを１つ対応付ける処理と、
対応付けられたポート間以外でダウンリンクが設定されているポート又は外部ポートとアップリンクが設定されているポートとの間での中継を遮断する設定を行う処理と、
を含む請求項１０記載のスイッチ。
【請求項１２】
複数のスイッチを有し、
前記複数のスイッチは、仮想的に統合されるべき複数のスイッチを各々含む複数のドメインに分類され、
前記複数のスイッチのうち少なくとも一部が、
前記複数のドメインのうち自ドメインに含まれる他のスイッチに接続される第１のポートを介して当該自ドメイン内におけるスイッチのデータを取得する第１の処理部と、
前記第１のポート以外の第２のポートを介して前記自ドメインに隣接するドメインに含まれるスイッチのデータを取得すると共に前記自ドメインに含まれる他のスイッチから前記自ドメインに隣接するドメインに含まれるスイッチのデータを取得し、前記自ドメインに隣接する同一のドメインに接続される複数のポートがあれば当該複数のポートに係る設定を行い、前記複数のドメインをツリー構成にするための処理を実行する第２の処理部と、
を含むスイッチシステム。
【請求項１３】
仮想的に統合されるべき複数のスイッチを含む第１のドメインに含まれる他のスイッチに接続される第１のポートを介して当該第１のドメイン内におけるスイッチのデータを取得し、
前記第１のポート以外の第２のポートを介して前記第１のドメインに隣接する第２のドメインに含まれるスイッチのデータを取得すると共に前記第１のドメインに含まれる他のスイッチから前記第２のドメインに含まれるスイッチのデータを取得し、同一の第２のドメインに接続される複数のポートを特定して当該複数のポートに係る設定を行い、前記第１のドメイン及び前記第２のドメインを含む複数のドメインをツリー構成にするための処理を実行する、
処理をプロセッサに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、ネットワークにおいて用いられるスイッチ装置に関する。
【背景技術】
【０００２】
近年データセンタ等で実現されるクラウドサービスでは、多数の顧客に対してサーバ資源を共用するため、多数のサーバに直結するネットワークを、多数のスイッチ間を複数経路で繋いで広帯域化した冗長化ネットワークとして構築するという要求が高まっている。
【０００３】
サーバ前段のスイッチはレイヤ２のスイッチであるため、上記のようなネットワークをそのまま構築するとループ構成となってしまうため、ＳＴＰ（Spanning Tree Protocol）等を利用することになるが、ＳＴＰを利用すると、冗長経路はブロッキングされて使用できなくなるため、広帯域とならない。Fabricスイッチと称し、複数の同種スイッチを論理的に１つに統合し、内部で状態のやりとりを行うことで複数回線を冗長経路として使用し、ＳＴＰを利用しない広帯域で冗長化されたネットワークを構築できるスイッチが登場してきている。なお、Fabricは、Fabricスイッチによって構築されたネットワークを指すものとする。
【０００４】
このようなFabricスイッチは、複数のスイッチを論理的に１つのスイッチに見せるため、例えば以下の機能を有することが望まれている。
（Ａ）Fabricスイッチ間に設けられた複数経路を有効に利用可能にし、ループを回避すること
（Ｂ）外部のネットワークやサーバに対する冗長性を確保した形での接続（ＬＡＧ：Link Aggregation）をサポートするため、Fabricスイッチ側にＭＬＡＧ（Multi-chassis Link Aggregation。ＬＡＧに含まれる複数の回線が、別々のスイッチ装置に接続される形態）に対応可能であること
【０００５】
（Ｂ）については、専用の中継ハードウェア（例えばＡＳＩＣ（Application Specific Integrated Circuit）チップ）を開発するか、市販のハードウエアでＭＬＡＧ機能をサポートしているものを使用することで対処できる。
【０００６】
いずれのハードウエアを採用するにせよ、ＭＬＡＧ機能を実現するには、他のスイッチのハードウエアとの状態同期を行うことになり、Fabricスイッチ間の回線は、通常のEthernet（登録商標）回線ではなく、内部リンクとして独自のフォーマットを利用した通信を行うことで実現する。ここで、独自のフォーマットを利用した通信を行う機能としては、ハードウエア毎に個別に用意されているが、ＭＬＡＧ機能とは別に、ハードウエア間の内部接続回線の中でループが構築されている場合は内部機能としてループをさせない（すなわち、ループを検知したら該当フレームを廃棄してループを止める）機能も搭載されている場合がほとんどである。そのため、（Ａ）についても当該機能を使用することで解決は可能である。しかし、あくまでハードウエアのベンダの内部仕様に依存することになり、またそのような機能を別目的で使用することになるので、好ましくない結果が得られた場合でも修正や変更が難しい場合もある。
【０００７】
また、（Ａ）の実現のためには、現在ＴＲＩＬＬ（Transparents Interconnection of Lots of Links：RFC5556）やＳＰＢ（Shortest Path Bridge：IEEE802.1aq）等があるため、それらの技術を利用することにより複数経路の効率的利用が可能となる。しかし、上記のようなハードウエアでＭＬＡＧを実現しようとすると、スイッチ間を独自フォーマットで接続する仕組みを利用せざるを得ないが、この方式とＴＲＩＬＬやＳＰＢとの親和性が悪いことが知られている。
【０００８】
また、ＴＲＩＬＬやＳＰＢは入力フレームに外側のＭＡＣヘッダを追加し、Hop by Hopで外部のＭＡＣアドレスを逐一変換することで通信経路を制御している。ＭＡＣヘッダを追加するため、内部中継のフレームは外部からの入力フレームに２０バイト以上のオーバーヘッドを付与しなければならず、短いフレーム（例えば６４バイト長）の転送時の帯域が大幅に減らされることとなる（フレーム長に比較してオーバーヘッド長の割合が大きいため）。
【０００９】
このように、スイッチ群とスイッチ群との間に設けられた複数経路を有効に利用可能にする技術は存在していない。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特表２００５−５２２７７４号公報
【特許文献２】特開平１１−１０３３０２号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
従って、本技術の目的は、スイッチ群とスイッチ群との間に設けられた複数経路を有効に利用可能にするための技術を提供することである。
【課題を解決するための手段】
【００１２】
本技術に係るスイッチは、（Ａ）仮想的に統合されるべき複数のスイッチを含む第１のドメインに含まれる他のスイッチに接続される第１のポートを介して当該第１のドメイン内におけるスイッチのデータを取得する第１の処理部と、（Ｂ）第１のポート以外の第２のポートを介して第１のドメインに隣接する第２のドメインに含まれるスイッチのデータを取得すると共に第１のドメインに含まれる他のスイッチから第２のドメインに含まれるスイッチのデータを取得し、同一の第２のドメインに接続される複数のポートを特定して当該複数のポートに係る設定を行い、第１のドメイン及び第２のドメインを含む複数のドメインをツリー構成にするための処理を実行する第２の処理部とを有する。
【発明の効果】
【００１３】
一側面によれば、スイッチ群とスイッチ群との間に設けられた複数経路を有効に利用できるようになる。
【図面の簡単な説明】
【００１４】
【図１】図１は、Fabricの構成例を示す図である。
【図２】図２は、ＭＬＡＧを説明するための図である。
【図３】図３は、スイッチの機能ブロック図である。
【図４】図４は、実施の形態に係るメインの処理フローを示す図である。
【図５】図５は、第１の実施の形態に係るドメイン構築処理の処理フローを示す図である。
【図６】図６は、第１の実施の形態に係るFabric構築処理の処理フローを示す図である。
【図７】図７は、第１の実施の形態に係るマスタによる処理の処理フローを示す図である。
【図８】図８は、第１の実施の形態に係るルートドメインによる処理の処理フローを示す図である。
【図９】図９は、スイッチの接続例を示す図である。
【図１０Ａ】図１０Ａは、接続先ドメインリストの第１の状態を示す図である。
【図１０Ｂ】図１０Ｂは、接続先ドメインリストの第２の状態を示す図である。
【図１０Ｃ】図１０Ｃは、接続先ドメインリストの第３の状態を示す図である。
【図１０Ｄ】図１０Ｄは、接続先ドメインリストの第４の状態を示す図である。
【図１０Ｅ】図１０Ｅは、接続先ドメインリストの第５の状態を示す図である。
【図１０Ｆ】図１０Ｆは、接続先ドメインリストの第６の状態を示す図である。
【図１０Ｇ】図１０Ｇは、接続先ドメインリストの第７の状態を示す図である。
【図１１】図１１は、第２の実施の形態に係るFabric構築処理の処理フローを示す図である。
【図１２】図１２は、第２の実施の形態に係るマスタによる処理の処理フローを示す図である。
【図１３】図１３は、第２の実施の形態に係る通知処理Ａの処理フローを示す図である。
【図１４】図１４は、第２の実施の形態に係る通知処理Ｂの処理フローを示す図である。
【図１５】図１５は、第２の実施の形態に係る通知処理Ｂの処理フローを示す図である。
【図１６】図１６は、第２の実施の形態に係る通知処理Ｂの処理フローを示す図である。
【図１７】図１７は、第２の実施の形態に係る通知処理Ｂの処理フローを示す図である。
【図１８】図１８は、第２の実施の形態に係る通知処理Ｂの処理フローを示す図である。
【図１９】図１９は、第２の実施の形態に係る通知処理Ｂの処理フローを示す図である。
【図２０】図２０は、End Host Modeを説明するための図である。
【図２１】図２１は、第３の実施の形態に係るFabric構築処理の処理フローを示す図である。
【図２２】図２２は、第３の実施の形態に係るFabric構築処理の処理フローを示す図である。
【図２３Ａ】図２３Ａは、ポートの設定の第１の状態を説明するための図である。
【図２３Ｂ】図２３Ｂは、ポートの設定の第２の状態を説明するための図である。
【図２３Ｃ】図２３Ｃは、ポートの設定の第３の状態を説明するための図である。
【図２４】図２４は、第３の実施の形態に係るルートドメインによる処理の処理フローを示す図である。
【図２５Ａ】図２５Ａは、第３の実施の形態における接続先ドメインリストの第１の状態を示す図である。
【図２５Ｂ】図２５Ｂは、第３の実施の形態における接続先ドメインリストの第２の状態を示す図である。
【図２５Ｃ】図２５Ｃは、第３の実施の形態における接続先ドメインリストの第３の状態を示す図である。
【図２５Ｄ】図２５Ｄは、第３の実施の形態における接続先ドメインリストの第４の状態を示す図である。
【図２５Ｅ】図２５Ｅは、第３の実施の形態における接続先ドメインリストの第５の状態を示す図である。
【図２６】図２６は、フレームの増殖を説明するための図である。
【図２７】図２７は、第３の実施の形態に係るルートドメインによる処理の処理フローを示す図である。
【図２８】図２８は、第４の実施の形態に係るFabric構築処理の処理フローを示す図である。
【図２９】図２９は、第２の実施の形態における通知処理と異なる部分を説明するための図である。
【図３０】図３０は、コンピュータでスイッチを実装する場合の機能ブロック図である。
【発明を実施するための形態】
【００１５】
［実施の形態１］
図１に、本実施の形態に係るFabricの構成例を示す。図１では、６台のスイッチにより１つのFabricが構築される例を示している。
【００１６】
本実施の形態では、まず、１段階目の仮想統合として、最初に仮想統合すべきスイッチ間を、予めスイッチのハードウエアに設けられている機能を用いて独自フォーマットで接続し、１台のスイッチとして見せるための統合を行う。これにより、このように接続されたスイッチ群では、当該スイッチ群に予め設けられたハードウエアによって、ＭＬＡＧ機能を実現できるようになる。このように統合された後の１単位のスイッチ群をドメインと呼ぶ。図１の例では、スイッチ１及び２を含むドメイン１と、スイッチ３及び４を含むドメイン２と、スイッチ５及び６を含むドメイン３とが構築される。
【００１７】
その後、２段階目の仮想統合として、ドメイン間をある１つのドメインを頂点（ルート）とするツリー構成を構築する。図１の例では、ドメイン１がルートドメインであり、ドメイン２及び３はリーフドメインとなる。リーフドメインには、サーバやストレージが接続される。
【００１８】
このようにドメインのツリー構成を構築することにすれば、ドメイン間に設けられる複数経路を有効且つ効率的に利用するための経路制御方式は、あくまで仮想的に１つのスイッチとなっているドメイン間（１ドメインと別の１ドメインとの間）のみにその適用が限定され、スイッチのハードウエアの特別な仕様に依存せず、単純且つ効率的に実現できる。
【００１９】
本実施の形態では、経路制御方式として、ＭＬＡＧを利用するものとする。図２に示すように、ドメイン間の複数の経路を全て同一のＭＬＡＧメンバに設定することで論理的に１つの回線として用いられ、Fabric全体としても、論理的にルートを頂点とする単一のツリー構成となる。
【００２０】
なお、本実施の形態における各スイッチは、図３に示すような構成を有する。スイッチ１００は、制御部１１０と、メモリ１２０と、スイッチハードウエア１３０と、ポート１乃至ｎとを有する。制御部１１０は、スイッチハードウエア１３０を含むスイッチ１００全体を制御し、本実施の形態に係るドメイン構築処理を行う第１処理部１１１と、ツリー構成を構築する処理を含むFabric構築処理を行う第２処理部１１２とを有する。なお、制御部１１０は、例えばプロセッサとプログラムの組み合わせにて実現される。この場合、メモリ１２０又は他のＲＯＭ（Read Only Memory）に格納されているプログラムをプロセッサが実行することにより、制御部１１０が実現される。メモリ１２０は、制御部１１０により収集されたデータ等を格納する。
【００２１】
スイッチハードウエア１３０は、独自フォーマットで他のスイッチとの通信を行う機能と、ＭＬＡＧ機能とを有し、ポート間のフレーム中継を行う半導体装置である。ポート１乃至ｎは、他のスイッチ、外部ネットワーク、サーバ等と接続するためのケーブルが接続される。ＭＬＡＧ機能は、複数のスイッチにおける複数の特定のリンクを１つのリンクとして取り扱うための機能である。
【００２２】
次に、本実施の形態に係るスイッチ１００により実行される処理内容について、図４乃至図１０Ｇを用いて説明する。
【００２３】
スイッチ１００の制御部１１０における第１処理部１１１は、上で述べた仮想統合の第１段階に相当するドメイン構築処理を実行する（図４：ステップＳ１）。ドメイン構築処理については、後に詳しく述べる。その後、制御部１１０における第２処理部１１２は、上で述べたFabric構築処理を実行する（ステップＳ３）。Fabric構築処理についても、後に詳しく述べる。
【００２４】
このように２段階の処理を行うことによって、Fabricの構築を簡易且つ効率的に行っている。
【００２５】
次に、ドメイン構築処理の処理内容を、図５を用いて説明する。なお、管理者は、ドメイン番号、スイッチ番号（Fabricにおけるユニークな番号）、ドメイン内リンク（同一ドメインに含まれるべきスイッチに接続されるリンク）のポート番号、自ドメインがルートドメインか否かを含む定義データの設定を各スイッチに対して行うものとする。
【００２６】
そこで、第１処理部１１１は、例えばメモリ１２０において定義データが設定済みであるか判断する（図５：ステップＳ１１）。定義データが設定済みではない場合には、第１処理部１１１は、管理者からの定義データの設定入力を待ち、入力されれば、メモリ１２０に格納する（ステップＳ１３）。そして処理はステップＳ１１に戻る。
【００２７】
一方、定義データが設定済みである場合には、第１処理部１１１は、スイッチハードウエア１３０に対してドメイン内リンクのポートをリンクアップさせ、当該ポートに対してＬＬＤＰ（Link Layer Discovery Protocol）を用いて隣接スイッチのアドレスを取得する（ステップＳ１５）。さらに、第１処理部１１１は、スイッチハードウエア１３０に、隣接スイッチのアドレスに対して接続を行わせ、隣接スイッチのドメイン番号及びスイッチ番号等と、さらに隣接スイッチについての隣接スイッチのドメイン番号及びスイッチ番号等（アドレスなどを含む）を取得する（ステップＳ１７）。自スイッチのドメイン番号及びスイッチ番号等も隣接スイッチに通知される。結果として、自ドメイン内に含まれる全スイッチのドメイン番号及びスイッチ番号等が収集されることになる。この処理では、スイッチハードウエア１３０独自のフォーマットでデータ交換を行う。
【００２８】
そして、第１処理部１１１は、定義データの設定に問題があるか判断する（ステップＳ１９）。具体的には、ドメイン番号が異なるスイッチが存在していたり、同一スイッチ番号が複数存在する場合には、定義データに問題があると判断される。この後の処理は、ドメイン番号及びスイッチ番号をベースに処理が行われるので、この時点で正しく定義されているか否かを確認するものである。
【００２９】
定義データの設定に問題があれば、第１処理部１１１は、定義データエラーを管理者に出力し（ステップＳ２１）、処理はステップＳ１３に戻る。例えば、ドメイン番号が異なるスイッチのスイッチ番号や同一スイッチ番号が検出されればその番号を通知して、管理者に修正を依頼する。
【００３０】
一方、定義データの設定に問題がなければ、第１処理部１１１は、取得されたスイッチ番号の中で、自スイッチ番号が最小であるか否かを判断する（ステップＳ２３）。ここでは、自スイッチ番号が最小であれば、第１処理部１１１は、自スイッチをマスタに設定する（ステップＳ２５）。そして処理は呼出元の処理に戻る。一方、自スイッチ番号が最小でなければ、第１処理部１１１は、自スイッチをスレーブに設定する（ステップＳ２７）。そして処理は呼出元の処理に戻る。本実施の形態では、自スイッチ番号が最小であることをマスタスイッチの条件としているが、他の条件にてマスタを設定しても良い。
【００３１】
以上のような処理にて、各ドメインが構築される。
【００３２】
次に、本実施の形態に係るFabric構築処理について図６乃至図１０Ｇを用いて説明する。
【００３３】
第２処理部１１２は、スイッチハードウエア１３０に対してドメイン内リンクのポート以外のポートをリンクアップさせる（図６：ステップＳ３１）。その後、第２処理部１１２は、スイッチハードウエア１３０に、リンクアップしたポートに対してＬＬＤＰを用いて隣接スイッチのアドレス、ドメイン番号及びスイッチ番号等を取得する（ステップＳ３３）。具体的には、アドレスを取得すると、当該アドレスでスイッチハードウエア１３０及び適切なポートを介して接続を行い、そしてドメイン番号及びスイッチ番号等を取得する。
【００３４】
その後、第２処理部１１２は、ドメイン内リンクを介して取得データを、同一ドメイン内の他のスイッチと共有する（ステップＳ３５）。そして、第２処理部１１２は、自ドメインが隣接するドメインの数及び番号、各隣接ドメインに繋がるポート群のデータを集約し、メモリ１２０に格納する（ステップＳ３７）。これによって、ドメイン内の全スイッチの各ポートに繋がる隣接スイッチのデータ（アドレス、ドメイン番号、スイッチ番号、ポート番号）が格納される。さらに、隣接ドメイン番号のリスト、隣接ドメイン毎に、どのスイッチのどのポートが当該隣接ドメインに接続されているのかを表すデータも生成される。
【００３５】
そして、第２処理部１１２は、自スイッチがマスタスイッチであるか判断し（ステップＳ３９）、自スイッチがマスタスイッチであれば、マスタによる処理を実行する（ステップＳ４１）。マスタによる処理については、後に詳しく述べる。一方、自スイッチがマスタスイッチでなければ、処理は呼出元の処理に戻る。なお、マスタスイッチでなくスレーブスイッチであっても、マスタによる処理にて指示があれば処理を行う。
【００３６】
次に、図７乃至図１０Ｇを用いて、マスタによる処理について説明する。各ドメインにおいてマスタスイッチの制御部１１０の第２処理部１１２は、メモリ１２０に格納されている隣接ドメイン番号リストにおいて未処理の隣接ドメインを１つ特定する（図７：ステップＳ５１）。そして、第２処理部１１２は、メモリ１２０に格納されているデータに基づき、特定された隣接ドメインに繋がるポートが自ドメイン内に複数存在するか判断する（ステップＳ５３）。隣接ドメイン毎に、どのスイッチのどのポートが当該隣接ドメインに接続されているのかを表すデータから、特定された隣接ドメインについて複数のポートが特定されるか判断する。
【００３７】
そして、隣接ドメインに繋がるポートが自ドメイン内に複数存在していない場合には、処理はステップＳ６１に移行する。一方、隣接ドメインに繋がるポートが自ドメイン内に複数存在していれば、第２処理部１１２は、該当ポート群をＭＬＡＧとして設定する（ステップＳ５５）。マスタスイッチに該当ポート群が含まれれば、スイッチハードウエア１３０に対して該当ポート群についてＭＬＡＧの設定を行わせる。なお、該当ポート群に自ドメイン内のスレーブスイッチのポートが含まれれば、第２処理部１１２は、ドメイン内リンクを介して、スレーブスイッチに対して該当ドメインを通知する（ステップＳ５７）。スレーブスイッチにおける第２処理部１１２は、マスタスイッチから該当ドメインの通知を受信すると、自スイッチのスイッチハードウエア１３０に対して、該当ドメインに接続されるポート群をＭＬＡＧに設定させる（ステップＳ５９）。
【００３８】
これにより、ドメイン間リンクは１つのＭＬＡＧポートに設定され、本実施の形態では、複数リンクを分散しながら使用することが可能となる。
【００３９】
そして、マスタスイッチにおける第２処理部１１２は、隣接ドメイン番号リストにおいて、未処理の隣接ドメインが存在するか判断する（ステップＳ６１）。未処理の隣接ドメインが存在する場合には処理はステップＳ５１に戻る。一方、未処理の隣接ドメインが存在しない場合には、第２処理部１１２は、自スイッチがルートドメインのマスタスイッチであるか否かを判断する（ステップＳ６３）。自スイッチがルートドメインのマスタスイッチでなければ、処理は呼出元の処理に戻る。
【００４０】
一方、自スイッチがルートドメインのマスタスイッチであれば、第２処理部１１２は、ルートドメインによる処理を実行する（ステップＳ６５）。ルートドメインによる処理については、図８乃至図１０Ｇを用いて説明する。
【００４１】
ルートドメインにおける制御部１１０の第２処理部１１２は、例えばメモリ１２０において、空の接続先ドメインリストを生成する（図８：ステップＳ７１）。そして、自ドメイン（ルートドメイン）及び自ドメインに接続するドメイン群を、接続先ドメインリストに追加し、親ドメインを自ドメイン（ルートドメイン）に設定する（ステップＳ７３）。
【００４２】
例えば、図９に示すような接続となっている場合を例に説明する。図９の例では、ドメイン１にはスイッチ１及び２が含まれ、ドメイン２にはスイッチ３及び４が含まれ、ドメイン３にはスイッチ５及び６が含まれ、ドメイン４にはスイッチ７及び８が含まれ、ドメイン５には、スイッチ９及び１０が含まれる。スイッチ１、スイッチ３、スイッチ５、スイッチ７及びスイッチ９が、マスタスイッチである。そして、ドメイン１は、ルートドメインであり、ドメイン２及び３が接続されている。ドメイン２には、ドメイン４及び５が接続されている。なお、ドメイン４及び５が接続されてしまっているので、この物理的な接続ではツリー構成となっていない。
【００４３】
また、ステップＳ７３では、図１０Ａに示すような接続先ドメインリストが生成される。図１０Ａの例では、ドメイン番号と、当該ドメインのマスタスイッチのアドレスと、親ドメインと、既訪問フラグとが格納されるようになっている。ステップＳ７３では、ルートドメインであるドメイン１については、既訪問フラグがセットされるが、それ以外のドメインについては既訪問フラグはオフとなっている。また、ドメイン１乃至３の親ドメインとして、ドメイン１が設定される。
【００４４】
そして、第２処理部１１２は、追加エントリのドメイン番号が既登録エントリのドメイン番号と一致するか判断する（ステップＳ７５）。図１０Ａの場合には、一致しないと判断される。一致していないと判断された場合には、第２処理部１１２は、接続先ドメインリストにおいて既訪問フラグがオフのドメインが存在するか判断する（ステップＳ８３）。既訪問フラグがオフのドメインが存在しない場合には、処理は呼出元の処理に戻る。
【００４５】
一方、既訪問フラグがオフのドメインが存在する場合には、第２処理部１１２は、接続先ドメインリストにおいて既訪問フラグがオフのドメインを１つ選択し、既訪問フラグをオンにセットし、当該ドメインのマスタスイッチに接続する（ステップＳ８５）。第２処理部１１２は、スイッチハードウエア１３０及び適切なポートを介して、目的のドメインのマスタスイッチに接続する。この際ルートドメインから最短経路で目的のドメインのマスタスイッチに接続する。
【００４６】
さらに、第２処理部１１２は、接続先ドメインから隣接ドメイン群のリストを取得し、接続先ドメインリストにおいて選択したエントリの親ドメインと同一ドメインを除き隣接ドメインを接続先ドメインリストに追加する（ステップＳ８７）。この際、追加される隣接ドメインの親ドメインを、接続先ドメインとして設定する。そして処理はステップＳ７５に戻る。
【００４７】
図１０Ａの後に、ドメイン２に接続すると、ドメイン２について既訪問フラグをオンにセットする。さらに、ドメイン２から隣接ドメイン群のリスト（ドメイン１、４及び５）を取得し、接続先ドメイン（ドメイン２）の親ドメイン（ここではルートドメイン）と同一ドメインを除き隣接ドメインを接続先ドメインリストに追加すると、図１０Ｂに示す状態になる。追加エントリの親ドメインはドメイン２となる。
【００４８】
処理がステップＳ７５に戻っても、接続先ドメインリストに重複ドメイン番号が存在しないので、ステップＳ８５及びＳ８７が実行される。そして、ドメイン３に接続すると、ドメイン３について既訪問フラグをオンにセットする。さらに、ドメイン３から隣接ドメイン群のリストを取得するが、接続先ドメインの親ドメイン以外は新たな隣接ドメインが存在しないので、図１０Ｃに示す状態になる。
【００４９】
処理がステップＳ７５に戻っても、接続先ドメインリストに重複ドメイン番号が存在しないので、ステップＳ８５及びＳ８７が実行される。そして、ドメイン４に接続すると、ドメイン４について既訪問フラグをオンにセットする。さらに、ドメイン４から隣接ドメイン群のリスト（ドメイン２及び５）を取得するが、接続先ドメインの親ドメインを除くと、ドメイン５が接続先ドメインリストに追加される。ここで、接続先ドメインリストは、図１０Ｄに示す状態になる。追加エントリの親ドメインは、ドメイン４となる。そうすると、ドメイン番号５が重複することになる。
【００５０】
追加エントリのドメイン番号が既登録エントリのドメイン番号と一致する場合には、第２処理部１１２は、ドメイン番号が既登録エントリのドメイン番号と一致する追加エントリを接続先ドメインリストから削除する（ステップＳ７７）。そして、第２処理部１１２は、接続先ドメインにおいて重複ドメイン番号のドメインに接続されている全ポートを非使用状態（ブロッキング状態）に設定させる（ステップＳ７９）。より具体的には、接続先ドメインのマスタスイッチに接続しているので、当該マスタスイッチのポートが該当ドメインに接続されている場合には、マスタスイッチのスイッチハードウエア１３０に対して該当ドメインに接続されているポートに対して非使用状態を設定させる。また、スレーブスイッチのポートが該当ドメインに接続されている場合には、ドメイン内リンクを介して、スレーブスイッチのスイッチハードウエア１３０に対して該当ドメイン（重複ドメイン番号のドメイン）に接続されているポートに対して非使用状態を設定させる（ステップＳ８１）。そして処理はステップＳ８３に移行する。
【００５１】
図１０Ｄの状態で、ドメイン番号の重複が検出されると、ドメイン番号５を削除する（図１０Ｅ）。図９からも分かるように、ドメイン４とドメイン５が接続されているので、ドメイン４に含まれるスイッチ８のポートのうちドメイン５に接続されているポートが、非使用状態に設定される。
【００５２】
その後、ドメイン５にドメイン２を経由して接続し、ドメイン５について既訪問フラグをオンにセットする。さらに、ドメイン５から隣接ドメイン群のリスト（ドメイン２及び４）を取得するが、接続先ドメインの親ドメインを除くと、ドメイン４が接続先ドメインリストに追加される。そうすると、接続先ドメインリストは、図１０Ｆに示す状態になる。親ドメインは、ドメイン５となる。すなわち、ドメイン番号４が重複することになる。
【００５３】
そうすると、ドメイン番号の重複が検出され、ドメイン番号４を削除する（図１０Ｇ）。図９からも分かるように、ドメイン４とドメイン５が接続されているので、ドメイン５に含まれるスイッチ９のポートのうちドメイン４に接続されているポートが、非使用状態に設定される。図１０Ｇでは、全てのドメインについて既訪問フラグがオンにセットされるので、処理は終了する。
【００５４】
以上のような処理を実行することで、ツリー構成が完了する。また、ドメイン間で複数のリンクが存在する場合には、当該リンクにはＭＬＡＧが設定され、スイッチハードウエア１３０が有するＭＬＡＧ機能が使用されるようになる。
【００５５】
［実施の形態２］
第１の実施の形態では、ルートドメインのマスタスイッチが、Fabric構築処理２の後段部分を実行するような形であったが、例えば、各スイッチがメッセージを交換しながら処理を行うようにしても良い。
【００５６】
以下、本実施の形態における処理内容について説明するが、ドメイン構築処理については第１の実施の形態と同様であり、説明を省略する。
【００５７】
図１１乃至図１９を用いて、本実施の形態に係るFabric構築処理を説明する。
【００５８】
第２処理部１１２は、スイッチハードウエア１３０に対してドメイン内リンクのポート以外のポートをリンクアップさせる（図１１：ステップＳ９１）。その後、第２処理部１１２は、スイッチハードウエア１３０に、リンクアップしたポートに対してＬＬＤＰを用いて隣接スイッチのアドレス、ドメイン番号及びスイッチ番号等を取得する（ステップＳ９３）。具体的には、アドレスを取得すると、当該アドレスでスイッチハードウエア１３０及び適切なポートを介して接続を行い、そしてドメイン番号及びスイッチ番号等を取得する。
【００５９】
その後、第２処理部１１２は、ドメイン内リンクを介して取得データを、同一ドメイン内の他のスイッチと共有する（ステップＳ９５）。そして、第２処理部１１２は、自ドメインが隣接するドメインの数及び番号、各隣接ドメインに繋がるポート群のデータを集約し、メモリ１２０に格納する（ステップＳ９７）。これによって、ドメイン内の全スイッチの各ポートに繋がる隣接スイッチのデータ（アドレス、ドメイン番号、スイッチ番号、ポート番号）が格納される。さらに、隣接ドメイン番号のリスト、隣接ドメイン毎に、どのスイッチのどのポートが当該隣接ドメインに接続されているのかを表すデータも生成される。
【００６０】
そして、第２処理部１１２は、自スイッチがマスタスイッチであるか判断し（ステップＳ９９）、自スイッチがマスタスイッチであれば、マスタによる処理２を実行する（ステップＳ１０１）。本実施の形態に係るマスタによる処理２については、後に詳しく述べる。その後、処理はステップＳ１０３に移行する。
【００６１】
また、ステップＳ１０１の後又は自スイッチがマスタスイッチでなければ、第２処理部１１２は、通知処理を実行する（ステップＳ１０３）。通知処理については、後に詳しく述べる。そして、処理は呼出元の処理に戻る。
【００６２】
このように、ステップＳ９１乃至Ｓ９７については、第１の実施の形態におけるステップＳ３１乃至Ｓ３７と同様である。
【００６３】
次に、図１２を用いて、マスタによる処理２について説明する。各ドメインにおいてマスタスイッチの制御部１１０の第２処理部１１２は、メモリ１２０に格納されている隣接ドメイン番号リストにおいて未処理の隣接ドメインを１つ特定する（図１２：ステップＳ１１１）。そして、第２処理部１１２は、メモリ１２０に格納されているデータに基づき、特定された隣接ドメインに繋がるポートが自ドメイン内に複数存在するか判断する（ステップＳ１１３）。隣接ドメイン毎に、どのスイッチのどのポートが当該隣接ドメインに接続されているのかを表すデータから、特定された隣接ドメインについて複数のポートが特定されるか判断する。
【００６４】
そして、隣接ドメインに繋がるポートが自ドメイン内に複数存在していない場合には、処理はステップＳ１２１に移行する。一方、隣接ドメインに繋がるポートが自ドメイン内に複数存在していれば、第２処理部１１２は、該当ポート群をＭＬＡＧとして設定する（ステップＳ１１５）。マスタスイッチに該当ポート群が含まれれば、スイッチハードウエア１３０に対して該当ポート群についてＭＬＡＧの設定を行わせる。なお、該当ポート群に自ドメイン内のスレーブスイッチのポートが含まれれば、第２処理部１１２は、ドメイン内リンクを介して、スレーブスイッチに対して該当ドメインを通知する（ステップＳ１１７）。スレーブスイッチにおける第２処理部１１２は、マスタスイッチから該当ドメインの通知を受信すると、自スイッチのスイッチハードウエア１３０に対して、該当ドメインに接続されるポート群をＭＬＡＧに設定させる（ステップＳ１１９）。
【００６５】
これにより、ドメイン間リンクは１つのＭＬＡＧポートに設定され、複数リンクを分散しながら使用することが可能となる。
【００６６】
そして、マスタスイッチにおける第２処理部１１２は、隣接ドメイン番号リストにおいて、未処理の隣接ドメインが存在するか判断する（ステップＳ１２１）。未処理の隣接ドメインが存在する場合には処理はステップＳ１１１に戻る。一方、未処理の隣接ドメインが存在しない場合には、処理は呼出元の処理に戻る。
【００６７】
このように第１の実施の形態に係るステップＳ５１乃至Ｓ６１と同様の処理が行われる。
【００６８】
次に、本実施の形態に係る通知処理について図１３乃至図１９を用いて説明する。上でも述べたように、スイッチ相互にメッセージをやり取りすることで自ドメインの階層とツリー構成のチェックを行うため、メッセージの送信プロセス（通知処理Ａ）と受信プロセス（通知処理Ｂ）が各スイッチ上で同時に動作する。
【００６９】
親ドメインは現在自ドメインの親とすべきドメインを示すもので、自スイッチの階層レベルはルートドメインの階層を１とした時の階層レベル（ルートドメイン直下であれば階層レベルは２、その下は３と続く）を示す。また、以下の説明で用いられる通知フラグは受信プロセスと送信プロセスで共有される情報で、受信プロセスにより階層レベルが変化して通知を行う場合に送信プロセスに通知を促すためのフラグとして使用される。
【００７０】
まず、スイッチ１００における制御部１１０の第２処理部１１２は、自スイッチがルートドメインに属するか判断する（図１３：ステップＳ１３１）。自スイッチがルートドメインに属しない場合には、第２処理部１１２は、自スイッチの階層レベルを０に設定し（ステップＳ１３３）、処理はステップＳ１３７に移行する。一方、自スイッチがルートドメインに属していれば、第２処理部１１２は、自スイッチの階層レベルを１に設定する（ステップＳ１３５）。
【００７１】
そして、第２処理部１１２は、自スイッチの親ドメインの階層レベルを０に設定する（ステップＳ１３７）。上でも述べたように、自ドメインがルートドメインであっても、自ドメインの階層レベルが１なので、親ドメインの階層レベルが０であれば矛盾はない。また、他のドメインについては、階層レベルが不明を意味する０に設定される。
【００７２】
その後、第２処理部１１２は、自スイッチの階層レベルを含む隣接ドメイン通知メッセージを全隣接ドメインのスイッチに送信する（ステップＳ１３９）。第２処理部１１２は、スイッチハードウエア１３０及び適切なポートを介して、隣接ドメイン通知メッセージを送信する。
【００７３】
その後、第２処理部１１２は、通知処理Ｂ側で通知フラグがセットされたか否かを判断する（ステップＳ１４１）。通知フラグがセットされているということは、以下で述べるドメイン内通知メッセージと隣接ドメイン通知メッセージを送信すべきタイミングであることを表している。通知フラグがセットされていない場合には、第２処理部１１２は、所定時間（例えば１秒程度。但し、プロセッサの負荷を下げるための時間であり、他の長さの時間であっても良い）、ウエイトして（ステップＳ１４３）、処理はステップＳ１４１に戻る。すなわち、通知フラグがセットされるまで、待機する。
【００７４】
一方、通知フラグがセットされていると、第２処理部１１２は、通知フラグをリセットし、その後変更後の階層レベル及び親ドメインのドメイン番号を含むドメイン内通知メッセージを、自ドメイン内の全スイッチ（自スイッチを含む）に送信する（ステップＳ１４５）。このように、ドメイン内通知メッセージは、自ドメイン内のスイッチ群に対して、階層レベル及び親ドメインのドメイン番号を通知するためのメッセージである。
【００７５】
そして処理はステップＳ１３９に戻り、自スイッチの階層レベルの更新を通知するため、隣接ドメイン通知メッセージについても再度送信される。
【００７６】
次に、通知処理Ｂについて図１４乃至図１９を用いて説明する。第２処理部１１２は、他のスイッチからメッセージを受信すると（図１４：ステップＳ１５１）、当該メッセージが隣接ドメイン通知メッセージであるか否かを判断する（ステップＳ１５３）。隣接ドメイン通知メッセージでない場合には、処理は端子Ａを介して図１７の処理に移行する。
【００７７】
一方、隣接ドメイン通知メッセージである場合には、第２処理部１１２は、自スイッチの階層レベルが「０」且つ受信メッセージ中の階層レベルが「０」以外であるか判断する（ステップＳ１５５）。すなわち、自スイッチの階層レベルが未定であり、隣接ドメインにおいて階層レベルが決定された場合に該当するか否かを判断している。
【００７８】
この条件を満たす場合には、第２処理部１１２は、自スイッチの階層レベルを、メッセージ中の階層レベル＋１に設定する（ステップＳ１５７）。そして、第２処理部１１２は、親ドメイン番号を、受信メッセージの送信元隣接ドメインのドメイン番号に設定する（ステップＳ１５９）。すなわち、受信メッセージの送信元隣接ドメインを、親ドメインとして設定する。そして処理はステップＳ１６７に移行する。
【００７９】
一方、ステップＳ１５５の条件を満たさない場合には、第２処理部１１２は、受信メッセージ中の階層レベルが「０」であるか否かを判断する（ステップＳ１６１）。隣接ドメインも階層レベルが未定であるか否かを判断する。この条件を満たさない場合には、処理は端子Ｂを介して図１５の処理に移行する。
【００８０】
一方、ステップＳ１６１の条件を満たす場合には、第２処理部１１２は、親ドメイン番号が、受信メッセージの送信元隣接ドメインのドメイン番号と一致するか判断する（ステップＳ１６３）。親ドメインとして設定されていた隣接ドメインの階層レベルが未定となったか否かを判断する。例えば、ケーブルが切断された又はスイッチの障害が発生して、ルートドメインからの経路が無くなったというような状態を検出する。この条件を満たす場合には、第２処理部１１２は、自スイッチの階層レベルを「０」に設定する（ステップＳ１６５）。そして、第２処理部１１２は、通知フラグをセットする（ステップＳ１６７）。そして処理は端子Ａを介して図１７の処理に移行する。一方、ステップＳ１６３の条件を満たさない場合には、処理はステップＳ１６７に移行する。親ドメインでない隣接ドメインの階層レベルが未定状態になった場合には、階層レベルが未定のドメインが存在するだけなので自スイッチの状態を変化させることはないが、隣接ドメインの階層レベルが０で未定のため、自ドメインの情報を通知して隣接ドメインの階層レベルの決定に用いる情報を通知するためである。このように、ドメインの追加や親ドメイン側の障害にも対応して階層状態を変更することが可能となる。
【００８１】
端子Ｂ以降の処理を図１５を用いて説明する。第２処理部１１２は、受信メッセージ中の階層レベル＋１が自スイッチの階層レベルより小さいか判断する（ステップＳ１６９）。現在よりも短いルートでルートドメインに行けるルートが見つかったか否かを判断する。この条件を満たした場合には、第２処理部１１２は、親ドメイン番号が、受信メッセージの送信元隣接ドメインのドメイン番号と一致するか否かを判断する（ステップＳ１７１）。親ドメインの階層レベルが変更されたのか否かを判断する。この条件を満たしている場合には、第２処理部１１２は、自スイッチの階層レベルを、メッセージ中の階層レベル＋１に設定する（ステップＳ１７３）。すなわち、親ドメインは変更されていないが、階層レベルは変更されたことになる。そして、処理はステップＳ１８１に移行する。
【００８２】
一方、親ドメイン番号が、メッセージの送信元隣接ドメインのドメイン番号と一致しない場合、現在の親ドメインとは別の親ドメインを経由する最短ルートを見つけたことを意味する。そこで、第２処理部１１２は、自スイッチの階層レベルを、受信メッセージ中の階層レベル＋１に設定する（ステップＳ１７５）。また、第２処理部１１２は、親ドメイン番号を有する隣接ドメインのスイッチが繋がっている自スイッチの全ポートに対して、スイッチハードウエア１３０に非使用状態を設定させる（ステップＳ１７７）。親ドメインが変更になるので、親ドメインであった隣接ドメインとの通信を遮断して、ツリー構成を維持する。ツリー構成において親ドメインは１つのみだからである。さらに、第２処理部１１２は、親ドメイン番号を、受信メッセージの送信元隣接ドメインのドメイン番号に設定し（ステップＳ１７９）、通知フラグをセットする（ステップＳ１８１）。その後処理は端子Ａを介して図１７の処理に移行する。
【００８３】
一方、ステップＳ１６９の条件を満たさないとされる場合、第２処理部１１２は、メッセージ中の階層レベル＋１が、自スイッチの階層レベルと同じであるか否かを判断する（ステップＳ１８３）。これは、現在の親ドメイン経由でルートドメインに至る経路とは異なるが、ルートドメインまでの距離が同じである経路が見つかったのか否かを判断するものである。この条件を満たさない場合には、処理は端子Ｃを介して図１６の処理に移行する。一方、この条件を満たす場合には、第２処理部１１２は、親ドメイン番号が、メッセージの送信元隣接ドメインのドメイン番号と一致するか否かを判断する（ステップＳ１８５）。一致する場合には、これまでと同じ状態についてのメッセージを受信しただけなので、処理は端子Ａを介して図１７の処理に移行する。
【００８４】
一方、ステップＳ１８５の条件が満たされない場合には、今回隣接ドメイン通知メッセージを送信してきた隣接ドメインをツリー構成から外すために、第２処理部１１２は、親ドメイン番号を有する隣接ドメインのスイッチが繋がっている自スイッチの全ポートに対して、スイッチハードウエア１３０に非使用状態を設定させる（ステップＳ１８７）。ツリー構成において親ドメインは１つのみだからである。そして処理は端子Ａを介して図１７の処理に移行する。
【００８５】
端子Ｃ以降の処理を図１６を用いて説明する。第２処理部１１２は、親ドメイン番号が、受信メッセージの送信元隣接ドメインのドメイン番号と一致するか否かを判断する（ステップＳ１８９）。これは、メッセージ中の階層レベル＋１が自スイッチの階層レベルより大きい値である状態で、親ドメインから隣接ドメイン通知メッセージを受信したかを判断している。この条件を満たさない場合には、ルートドメインに到達するルートを新たに発見したが、ルートドメインまでの距離は長いということになる。そうすると、処理はステップＳ１９３に移行する。なお、隣接ドメイン通知メッセージの送信元隣接ドメインが、自ドメインを親とするルートの方がルートドメインに近いと判断するため、当該送信元隣接ドメインに接続するポートを非使用とはしない。
【００８６】
一方、ステップＳ１８９の条件を満たす場合には、親ドメインの階層が変化したことになるので、第２処理部１１２は、自スイッチの階層レベルを、メッセージ中の階層レベル＋１に設定する（ステップＳ１９１）。そして、第２処理部１１２は、通知フラグをセットする（ステップＳ１９３）。
【００８７】
このようにすれば、各スイッチで自律的に親ドメインの特定及び階層レベルの設定ができ、さらにツリー構成を構築する上で矛盾するリンクを非使用にする設定を行うことができるようになる。
【００８８】
端子Ａ以降はドメイン内通知メッセージを受信した際の処理であり、図１７乃至図１９を用いて説明する。この処理は、隣接ドメイン通知メッセージを受信した際の処理に類似しているが、ドメイン内での通知であるから、異なる部分もある。以下、具体的に説明する。
【００８９】
第２処理部１１２は、受信メッセージがドメイン内通知メッセージであるか否かを判断する（ステップＳ２０１）。ドメイン内通知メッセージでない場合には、処理は端子Ｄを介して図１４の処理に戻る。
【００９０】
一方、ドメイン内通知メッセージである場合には、第２処理部１１２は、自スイッチの階層レベルが「０」且つ受信メッセージ中の階層レベルが「０」以外であるか判断する（ステップＳ２０３）。すなわち、自スイッチの階層レベルが未定であり、自ドメインの他スイッチにおいて階層レベルが決定された場合に該当するか否かを判断している。
【００９１】
この条件を満たす場合には、第２処理部１１２は、自スイッチの階層レベルを、メッセージ中の階層レベルに設定する（ステップＳ２０５）。そして、第２処理部１１２は、親ドメイン番号を、受信メッセージ内の親ドメイン番号に設定する（ステップＳ２０７）。そして処理はステップＳ２１５に移行する。
【００９２】
一方、ステップＳ２０３の条件を満たさない場合には、第２処理部１１２は、受信メッセージ中の階層レベルが「０」であるか否かを判断する（ステップＳ２０９）。自ドメインの他のスイッチの階層レベルが未定であるか否かを判断する。この条件を満たさない場合には、処理は端子Ｅを介して図１８の処理に移行する。
【００９３】
一方、ステップＳ２０９の条件を満たす場合には、第２処理部１１２は、親ドメイン番号が、受信メッセージ内の親ドメイン番号と一致するか判断する（ステップＳ２１１）。親ドメインとして設定されていた隣接ドメインの階層レベルが未定となったか否かを判断する。例えば、ケーブルが切断された又はスイッチの障害が発生して、ルートドメインからの経路が無くなったというような状態を検出する。この条件を満たす場合には、第２処理部１１２は、自スイッチの階層レベルを「０」に設定する（ステップＳ２１３）。そして、第２処理部１１２は、通知フラグをセットする（ステップＳ２１５）。そして処理は端子Ｄを介して図１４の処理に戻る。
【００９４】
一方、ステップＳ２１１の条件を満たさない場合には、処理はステップＳ２１５に移行する。親ドメインでない隣接ドメインの階層レベルが未定状態になった場合には、階層レベルが未定のドメインが存在するだけなので自スイッチの状態を変化させることはないが、隣接ドメインの階層レベルが０で未定のため、自ドメインの情報を通知して隣接ドメインの階層レベルの決定に用いる情報を通知するためである。このように、ドメインの追加や親ドメイン側の障害にも対応して階層状態を変更することが可能となる。
【００９５】
端子Ｅ以降の処理を図１８を用いて説明する。
【００９６】
第２処理部１１２は、受信メッセージ中の階層レベルが自スイッチの階層レベルより小さいか判断する（ステップＳ２１７）。現在よりも短いルートでルートドメインに行けるルートが見つかったか否かを判断する。この条件を満たした場合には、第２処理部１１２は、親ドメイン番号が、受信メッセージ内の親ドメイン番号と一致するか否かを判断する（ステップＳ２１９）。親ドメインの階層レベルが変更されたのか否かを判断する。この条件を満たしている場合には、第２処理部１１２は、自スイッチの階層レベルを、メッセージ中の階層レベルに設定する（ステップＳ２２１）。すなわち、親ドメインは変更されていないが、階層レベルは変更されたことになる。そして、処理はステップＳ２２９に移行する。
【００９７】
一方、親ドメイン番号が、メッセージ内の親ドメイン番号と一致しない場合、現在の親ドメインとは別の親ドメインを経由する最短ルートを見つけたことを意味する。そこで、第２処理部１１２は、自スイッチの階層レベルを、受信メッセージ中の階層レベルに設定する（ステップＳ２２３）。また、第２処理部１１２は、親ドメイン番号を有する隣接ドメインのスイッチが繋がっている自スイッチの全ポートに対して、スイッチハードウエア１３０に非使用状態を設定させる（ステップＳ２２５）。親ドメインが変更になるので、親ドメインであった隣接ドメインとの通信を遮断して、ツリー構成を維持する。ツリー構成において親ドメインは１つのみだからである。さらに、第２処理部１１２は、親ドメイン番号を、受信メッセージ内のドメイン番号に設定し（ステップＳ２２７）、通知フラグをセットする（ステップＳ２２９）。その後処理は端子Ｄを介して図１４の処理に戻る。
【００９８】
一方、ステップＳ２１７の条件を満たさないとされる場合、第２処理部１１２は、メッセージ中の階層レベルが、自スイッチの階層レベルと同じであるか否かを判断する（ステップＳ２３１）。これは、現在の親ドメイン経由でルートドメインに至る経路とは異なるが、ルートドメインまでの距離が同じである経路が見つかったのか否かを判断するものである。この条件を満たさない場合には、処理は端子Ｆを介して図１９の処理に移行する。一方、この条件を満たす場合には、第２処理部１１２は、親ドメイン番号が、メッセージ内の親ドメイン番号と一致するか否かを判断する（ステップＳ２３３）。一致する場合には、これまでと同じ状態についてのメッセージを受信しただけなので、処理は端子Ｄを介して図１４の処理に戻る。
【００９９】
一方、ステップＳ２３３の条件が満たされない場合には、今回ドメイン内通知メッセージを送信してきた隣接ドメインをツリー構成から外すために、第２処理部１１２は、親ドメイン番号を有する隣接ドメインのスイッチが繋がっている自スイッチの全ポートに対して、スイッチハードウエア１３０に非使用状態を設定させる（ステップＳ２３５）。ツリー構成において親ドメインは１つのみだからである。そして処理は端子Ｄを介して図１４の処理に戻る。
【０１００】
端子Ｆ以降の処理を図１９を用いて説明する。第２処理部１１２は、親ドメイン番号が、受信メッセージ内の親ドメイン番号と一致するか否かを判断する（ステップＳ２３７）。これは、メッセージ中の階層レベルが自スイッチの階層レベルより大きい値である状態で、親ドメインからドメイン内通知メッセージを受信したかを判断している。この条件を満たさない場合には、ルートドメインに到達するルートを新たに発見したが、ルートドメインまでの距離は長いということになる。そうすると、処理はステップＳ２４１に移行する。
【０１０１】
一方、ステップＳ２３７の条件を満たす場合には、親ドメインの階層が変化したことになるので、第２処理部１１２は、自スイッチの階層レベルを、メッセージ中の階層レベルに設定する（ステップＳ２３９）。そして、第２処理部１１２は、通知フラグをセットする（ステップＳ２４１）。そして処理は端子Ｄを介して図１４の処理に戻る。
【０１０２】
このようにすれば、自ドメイン内においても適切に階層レベル及び親ドメインの設定を行い、ツリー構成をも構築できるようになる。
【０１０３】
［実施の形態３］
第１の実施の形態及び第２の実施の形態では、経路制御方式としてはＭＬＡＧ方式（複数のリンクのいずれかにフレームを送出する方式）を採用したが、Ｅｎｄ  Ｈｏｓｔ  Ｍｏｄｅ（ＥＨＭ）方式を採用することが望まれる場合もある。
【０１０４】
ＥＨＭ方式は、スイッチ内のポートをUplink（アップリンク）とDownlink（ダウンリンク）に分け、Downlink及び外部ポートに対して１つのUplinkを対応付け、対応付けられたリンク間以外の通信を遮断する。このように、ポート単位で使用するUplinkを１本に固定化することで複数リンクを効率的に利用する。
【０１０５】
図２０に示すように、ルートドメインであるドメイン１にはスイッチ１及び２が含まれ、リーフドメインであるドメイン２にはスイッチ３及び４が含まれ、リーフドメインであるドメイン３にはスイッチ５及び６が含まれている例を考える。そして、スイッチ３においては、サーバ１に接続されているDownlinkポートと、スイッチ１に接続されているUplinkポートとが１：１対応になっており、サーバ２に接続されているDownlinkポートと、スイッチ２に接続されているUplinkポートとが１：１対応になっている。また、スイッチ４においては、サーバ１に接続されているDownlinkポートと、スイッチ１に接続されているUplinkポートとが１：１対応になっており、サーバ２に接続されているDownlinkポートと、スイッチ２に接続されているUplinkポートとが１：１対応になっている。
【０１０６】
また、スイッチ５においては、サーバ３に接続されているDownlinkポートと、スイッチ１に接続されているUplinkポートとが１：１対応になっており、サーバ４に接続されているDownlinkポートと、スイッチ２に接続されているUplinkポートとが１：１対応になっている。また、スイッチ６においては、サーバ３に接続されているDownlinkポートと、スイッチ１に接続されているUplinkポートとが１：１対応になっており、サーバ４に接続されているDownlinkポートと、スイッチ２に接続されているUplinkポートとが１：１対応になっている。
【０１０７】
そして、スイッチ１においては、スイッチ３乃至６の各々に接続されているDownlinkポートが、コアネットワークに接続される１つのUplinkポートに対応付けられており、これとは異なる対応付けとして、スイッチ２においては、スイッチ３乃至６の各々に接続されているDownlinkポートが、コアネットワークに接続される１つのUplinkポートに対応付けられている。
【０１０８】
このようなＥＨＭ方式を採用する場合でも、図４に示した２段階処理については同様に行われる。さらに、ドメイン構築処理については、第１の実施の形態と同様であるので、説明を省略する。
【０１０９】
次に、本実施の形態に係るFabric構築処理３について、図２１乃至図２７を用いて説明する。本実施の形態では、マスタスイッチが主たる処理を実行する処理フローを示す。
【０１１０】
各スイッチにおける制御部１１０の第２処理部１１２は、ドメイン内リンクのポート以外のポートを全てUplinkに設定すると共に、スイッチハードウエア１３０に対してリンクアップさせる（図２１：ステップＳ３０１）。メモリ１２０における各ポートの設定データを、Uplinkに設定しておく。
【０１１１】
そして、第２処理部１１２は、スイッチハードウエア１３０に、リンクアップしたポートに対してＬＬＤＰを用いて隣接スイッチのアドレス、ドメイン番号及びスイッチ番号等を取得させる（ステップＳ３０３）。具体的には、アドレスを取得すると、当該アドレスでスイッチハードウエア１３０及び適切なポートを介して接続を行い、そしてドメイン番号及びスイッチ番号等を取得する。
【０１１２】
その後、第２処理部１１２は、ドメイン内リンクを介して取得データを、同一ドメイン内の他のスイッチと共有する（ステップＳ３０５）。そして、第２処理部１１２は、自ドメインが隣接するドメインの数及び番号、各隣接ドメインに繋がるポート群のデータを集約し、メモリ１２０に格納する（ステップＳ３０７）。これによって、ドメイン内の全スイッチの各ポートに繋がる隣接スイッチのデータ（アドレス、ドメイン番号、スイッチ番号、ポート番号）が格納される。さらに、隣接ドメイン番号のリスト、隣接ドメイン毎に、どのスイッチのどのポートが当該隣接ドメインに接続されているのかを表すデータも生成される。
【０１１３】
また、第２処理部１１２は、リンクアップしたポートのリンク先から応答がなければ外部ポートとして、Uplink又はDownlink設定をクリアする（ステップＳ３０９）。但し、ルートドメインについては、Uplinkの設定を残すものとする。そして処理は端子Ｇを介して図２２の処理に移行する。そうすると、例えば、図２３Ａに示すようなスイッチ構成の場合、サーバに接続されるポートを除きUplinkの設定が行われる。
【０１１４】
図２２の処理の説明に移行して、第２処理部１１２は、自スイッチがマスタスイッチであるか判断する（ステップＳ３１１）。自スイッチがマスタスイッチでなければ、処理を終了する。一方、自スイッチがマスタスイッチであれば、各ドメインにおいてマスタスイッチの制御部１１０の第２処理部１１２は、メモリ１２０に格納されている隣接ドメイン番号リストにおいて未処理の隣接ドメインを１つ特定する（図２２：ステップＳ３１３）。そして、第２処理部１１２は、メモリ１２０に格納されているデータに基づき、特定された隣接ドメインに繋がるポート（外部ポートを除く）が自ドメイン内に複数存在するか判断する（ステップＳ３１５）。隣接ドメイン毎に、どのスイッチのどのポートが当該隣接ドメインに接続されているのかを表すデータから、特定された隣接ドメインについて複数のポートが特定されるか判断する。
【０１１５】
そして、隣接ドメインに繋がるポートが自ドメイン内に複数存在していない場合には、処理はステップＳ３２３に移行する。一方、隣接ドメインに繋がるポートが自ドメイン内に複数存在していれば、第２処理部１１２は、該当するポート群の間の中継を遮断する設定を実行する（ステップＳ３１７）。
【０１１６】
なお、マスタスイッチに該当ポート群が含まれれば、スイッチハードウエア１３０に対して該当ポート群の間の中継を遮断する設定を行わせる。なお、該当ポート群に自ドメイン内のスレーブスイッチのポートが含まれれば、第２処理部１１２は、ドメイン内リンクを介して、スレーブスイッチに対して該当ドメインを通知する（ステップＳ３１９）。スレーブスイッチにおける第２処理部１１２は、マスタスイッチから該当ドメインの通知を受信すると、自スイッチのスイッチハードウエア１３０に対して、該当ドメインに接続されるポート間の中継を遮断する設定を実行させる（ステップＳ３２１）。
【０１１７】
ＥＨＭ方式では、UplinkとDownlinkとでは基本的に１：１となるので、この対応付け以外での中継は存在しないためである。
【０１１８】
そして、マスタスイッチにおける第２処理部１１２は、隣接ドメイン番号リストにおいて、未処理の隣接ドメインが存在するか判断する（ステップＳ３２３）。未処理の隣接ドメインが存在する場合には処理はステップＳ３１３に戻る。一方、未処理の隣接ドメインが存在しない場合には、第２処理部１１２は、自スイッチがルートドメインのマスタスイッチであるか否かを判断する（ステップＳ３２５）。自スイッチがルートドメインのマスタスイッチでなければ、処理は呼出元の処理に戻る。
【０１１９】
一方、自スイッチがルートドメインのマスタスイッチであれば、第２処理部１１２は、ルートドメインによる処理２を実行する（ステップＳ３２７）。ルートドメインによる処理２については、図２３Ｂ乃至図２７を用いて説明する。
【０１２０】
次に、ルートドメインによる処理２について説明する。ルートドメインにおける制御部１１０の第２処理部１１２は、例えばメモリ１２０において、空の接続先ドメインリストを生成する（図２４：ステップＳ３３１）。そして、第２処理部１１２は、自ドメイン（ルートドメイン）及び自ドメインに隣接するドメイン群を、接続先ドメインリストに追加し、親ドメインを自ドメイン（ルートドメイン）に設定する（ステップＳ３３３）。
【０１２１】
ステップＳ３３３では、図２５Ａに示すような接続先ドメインリストが生成される。図２５Ａの例では、ドメイン番号と、当該ドメインのマスタスイッチのアドレスと、親ドメインと、既訪問フラグとが格納されるようになっている。ステップＳ３３３では、ルートドメインであるドメイン１については、既訪問フラグがセットされるが、それ以外のドメインについては既訪問フラグはオフとなっている。また、親ドメインとしてドメイン１を設定する。この段階でも、接続しているドメインは、ルートドメインであるものとする。
【０１２２】
その後、第２処理部１１２は、現在接続しているドメインに隣接するドメイン群（現在位置におけるドメインを除く）に繋がる全ポートをDownlinkに設定する（ステップＳ３３５）。現在接続しているドメインがルートドメインであるとすると、隣接するドメイン群はドメイン２及び３であり、ドメイン１においてドメイン２及び３に繋がれる全ポートがDownlinkに設定される。すなわち、図２３Ｂに示すような状態になる。
【０１２３】
そして、第２処理部１１２は、スイッチハードウエア１３０に対して、Uplinkに設定されたポート間の通信を遮断し、Downlinkに設定されたポート間の通信を許可する設定を行わせる（ステップＳ３３７）。但し、同一ドメインに接続されたDownlink間の通信については遮断する設定を行う。図２３Ｂにおけるドメイン１の場合、Downlinkに設定されたポートが８つあるが、２つずつ纏められているポート間（ｐとｑ、ｒとｓ、ｔとｕ、ｖとｗ）については通信を遮断する設定を行う。一方、ポートｐ及びｑとそれ以外のポート、ポートｒ及びｓとそれ以外のポート、ポートｔ及びｕとそれ以外のポート、ポートｖ及びｗとそれ以外のポート間では、通信を許可する。Uplinkについては、いずれのドメインに接続されるか否かを問わずにUplinkに設定されたポート間の通信は遮断される。なお、スレーブスイッチの各ポートについては、遮断すべき中継先ポートと、許可すべき中継先ポートのデータをマスタスイッチの第２処理部１１２が、ドメイン内リンクを介して通知する。
【０１２４】
また、第２処理部１１２は、現在接続しているドメインにおいて、Downlink及び外部ポートそれぞれに対して１のUplinkポートを割り当て、スイッチハードウエア１３０に対して、そのポート間以外の通信を遮断するように設定させる（ステップＳ３３９）。処理は端子Ｈを介して図２７の処理に移行する。Uplinkの割り当てについては、Uplink群に対して均等にDownlinkが割り当てられるように、例えばラウンドロビンなどのロジックに従って、Downlinkに対して１つのUplinkを割り当てる。図２３Ｂの例では、スイッチ１のUplinkのポートには、スイッチ１のDownlinkの４ポートが割り当てられ、スイッチ２のUplinkのポートには、スイッチ２のDownlinkの４ポートが割り当てられる。
【０１２５】
このような処理を行うことで、ある隣接ドメインから到着したフレームを別ドメイン宛てに出力することは可能だが、同一ドメイン宛てに返す通信は全て遮断されることとなる。これは、同一ドメイン宛てに出力を許可するとフレームが内部で増殖するためであり、既存のＥＨＭ方式では複数スイッチの考慮がないため、単純には対応できない部分である。具体的には、図２６に示すように、サーバ１から同報フレームを出力して、同一隣接ドメイン宛てにもフレームの中継を許可すると、フレーム増殖が発生する。この例では、スイッチ３及び４は同一ドメインに属するので、スイッチ４配下のサーバ１及び２にローカルで中継してしまう。また、スイッチ３は、対応するUplinkのポートに中継するが、中継先のドメイン１で、送信元ドメインにもそのまま折り返しで中継されるため、スイッチ４配下のサーバ１及び２にフレームが増殖して届いていることが分かる。上で述べたように、同一ドメインに接続されたDownlink間の通信については遮断する設定を行うことで、ドメイン１から折り返してフレームが戻ってくることはなくなる。
【０１２６】
そして、第２処理部１１２は、追加エントリのドメイン番号が既登録エントリのドメイン番号と一致するか判断する（図２７：ステップＳ３４１）。図２５Ａの場合には、一致しないと判断される。一致していないと判断された場合には、第２処理部１１２は、接続先ドメインリストにおいて既訪問フラグがオフのドメインが存在するか判断する（ステップＳ３４７）。既訪問フラグがオフのドメインが存在しない場合には、処理は呼出元の処理に戻る。
【０１２７】
一方、既訪問フラグがオフのドメインが存在する場合には、第２処理部１１２は、接続先ドメインリストにおいて既訪問フラグがオフのドメインを１つ選択し、既訪問フラグをオンにセットし、当該ドメインのマスタスイッチに接続する（ステップＳ３４９）。第２処理部１１２は、スイッチハードウエア１３０及び適切なポートを介して、目的のドメインのマスタスイッチに接続する。この際ルートドメインから最短経路で目的のドメインのマスタスイッチに接続する。
【０１２８】
さらに、第２処理部１１２は、接続先ドメインから隣接ドメイン群のリストを取得し、接続先ドメインリストにおいて選択したエントリの親ドメインと同一のドメインを除き隣接ドメインを接続先ドメインリストに追加し、親ドメインリストを接続先ドメインに変更する（ステップＳ３５１）。そして処理は端子Ｉを介して図２４のステップＳ３３５に戻る。
【０１２９】
図２５Ａの後に、ドメイン２に接続すると、ドメイン２について既訪問フラグをオンにセットする。さらに、ドメイン２から隣接ドメイン群のリスト（ドメイン１、４及び５）を取得し、接続先ドメイン（ドメイン２）の親ドメイン（ここではルートドメイン）を除き隣接ドメインを接続先ドメインリストに追加すると、図２５Ｂに示す状態になる。なお、追加エントリの親ドメインとして、接続先ドメイン（ドメイン２）を登録する。
【０１３０】
処理がステップＳ３３５に戻って、接続先ドメインがドメイン２であるので、ドメイン２の隣接ドメイン４及び５に接続されるポートは、図２３Ｃに示すようにDownlinkに設定される。そして、ドメイン２のUplinkに設定されたポートｊ乃至ｍ間の通信は遮断され、Downlinkに設定されたポートａ乃至ｈのうち、ポートａ、ｂ、ｅ及びｆ間の通信は遮断され、ポートｃ、ｄ、ｇ及びｈ間の通信は遮断される。そして、例えばポートａとポートｊが対応付けられ、ポートｂとポートｋとが対応付けられ、ポートｃとポートｌとが対応付けられ、ポートｄとポートｍとが対応付けられ、ポートｅとポートｊとが対応付けられ、ポートｆとポートｋとが対応付けられ、ポートｇとポートｌとが対応付けられ、ポートｈとポートｍとが対応付けられる。
【０１３１】
そして、図２５Ｂの後に、ドメイン３に接続すると、ドメイン３について既訪問フラグをオンにセットする。さらに、ドメイン３から隣接ドメイン群のリスト（ドメイン１）を取得し、接続先ドメインの親ドメイン（ドメイン１）を除くと、接続先ドメインリストには何も追加されない。そうすると、接続先ドメインリストは、図２５Ｃに示す状態となる。
【０１３２】
図２３Ａ乃至図２３Ｃの例では、ツリー構成ができているので、ドメイン４及び５を処理しても、接続先ドメインリストは、図２５Ｄ及び図２５Ｅに示すように、ドメインは追加されず、既訪問フラグが順番にセットされて行く。
【０１３３】
図２７の説明に戻って、追加エントリのドメイン番号が既登録エントリのドメイン番号と一致する場合には、第２処理部１１２は、ドメイン番号が既登録エントリのドメイン番号と一致する追加エントリを接続先ドメインリストから削除する（ステップＳ３４３）。そして、第２処理部１１２は、接続先ドメインにおいて重複ドメイン番号のドメインに接続されている全ポートを非使用状態（ブロッキング状態）に設定させる（ステップＳ３４５）。より具体的には、接続先ドメインのマスタスイッチに接続しているので、当該マスタスイッチのポートが該当ドメインに接続されている場合には、マスタスイッチのスイッチハードウエア１３０に対して該当ドメインに接続されているポートに対して非使用状態を設定させる。また、スレーブスイッチのポートが該当ドメインに接続されている場合には、ドメイン内リンクを介して、スレーブスイッチのスイッチハードウエア１３０に対して該当ドメイン（重複ドメイン番号のドメイン）に接続されているポートに対して非使用状態を設定させる。そして処理はステップＳ３４７に移行する。
【０１３４】
以上のような処理を実行することで、ＥＨＭ方式を実現できるようになる。
【０１３５】
［実施の形態４］
ＭＬＡＧ方式でも、スイッチ間でメッセージを交換することでFabric構築処理を実行する例を示したが、ＥＨＭ方式でも、スイッチ間でメッセージを交換することでFabric構築処理を実行できる。
【０１３６】
但し、第３の実施の形態におけるFabric構築処理３におけるステップＳ３０１乃至Ｓ３０９については、同様であるから説明を省略する。また、端子Ｇ以降の処理（図２８：ステップＳ３５１乃至Ｓ３６３）についても、図２２におけるステップＳ３１１乃至Ｓ３２３と同様であるから、説明を省略する。
【０１３７】
その後、第２処理部１１２は、通知処理２を実行する（ステップＳ３６５）。通知処理２は、基本的に第２の実施の形態における通知処理Ａ及び通知処理Ｂと同じである。
【０１３８】
しかしながら、ＥＨＭ方式ではUplink及びDownlinkの設定並びに中継の遮断及び許可についての設定を行うことになる。そのため、図２９に示すステップＳ３７１乃至３７５を、図１４のステップＳ１５９の後、図１５のステップＳ１７９の後、図１７のステップＳ２０７の後、図１８のステップＳ２２７の後に実行する。すなわち、親ドメインが設定された後に、追加の処理を実行する。
【０１３９】
すなわち、第２処理部１１２は、隣接スイッチが親ドメインの番号と一致するポートをUplinkに設定し、一致しないポートをDownlinkに設定する（ステップＳ３７１）。
【０１４０】
そして、第２処理部１１２は、スイッチハードウエア１３０に対して、Uplinkに設定されたポート間の通信を遮断し、Downlinkに設定されたポート間の通信を許可する設定を行わせる（ステップＳ３７３）。但し、同一ドメインに接続されたDownlink間の通信については遮断する設定を行う。なお、スレーブスイッチの各ポートについては、遮断すべき中継先ポートと、許可すべき中継先ポートのデータをマスタスイッチの第２処理部１１２が、ドメイン内リンクを介して通知する。
【０１４１】
また、第２処理部１１２は、現在接続しているドメインにおいて、Downlink及び外部ポートそれぞれに対して１のUplinkポートを割り当て、スイッチハードウエア１３０に対して、そのポート間以外の通信を遮断するように設定させる（ステップＳ３７５）。Uplinkの割り当てについては、Uplink群に対して均等にDownlinkが割り当てられるように、例えばラウンドロビンなどのロジックに従って、Downlinkに対して１つのUplinkを割り当てる。
【０１４２】
このような処理を行うことで、スイッチ間でメッセージ交換を行ってツリー構成を構築すると共にＥＨＭ方式のための中継についての設定が行われるようになる。
【０１４３】
現在のイーサネット（登録商標）に代表されるネットワークスイッチでは、Fabricによるスイッチの仮想統合を行うことができるものが増えている。だが、それを実現するために、様々な運用面や開発面でハードルがあった。これに対して、本実施の形態では既存のスイッチハードウエアを利用し、既存スイッチハードウエアでの仮想統合機構を利用しつつさらにそれらを束ねて１つのスイッチに見せる２段階の仮想統合を実現するため、運用面及び開発面におけるハードルを無くすことができる。
【０１４４】
また、Fabricの特長である複数パスの効率的利用という面において、ドメインレベルでの仮想統合レベルを１単位とし、それらをツリー構造にすることで、マルチパスの利用についてはドメイン間の複数リンクのみを考慮すればよく、Fabricの構築が簡単になる。
【０１４５】
さらに、マルチパス利用方式として、ＭＬＡＧやＥＨＭの方式を利用し、それをFabricのツリー構成で自動決定でき、設定の困難さを克服すると共に、ツリー構成から外れるリンクを非使用状態に自動検知することにより、ツリー構成を自動的に保つことができるようになる。また、従来のＥＨＭ方式ではツリー構成のような複数段のスイッチ構成の場合にフレーム増殖という問題があったが、Fabric構築処理に同一ドメイン間通信のみ遮断する処理を入れ込むことでフレーム増殖の問題も解決でき、人手による設定を行わずとも余分な通信を遮断する仕組みを確立できる。
【０１４６】
以上本技術の実施の形態を説明したが、本技術はこれに限定されるわけではない。例えば、スイッチ１００における制御部１１０の機能ブロック図は一例であって、プログラムモジュール構成とは一致しない場合もある。
【０１４７】
処理フローについても処理結果が変わらない限り、処理順番を入れ替えたり、複数ステップを並列実行するようにしても良い。
【０１４８】
また、上で述べたスイッチ１００は、図３０に示すように、メモリ２６０１とＣＰＵ２６０３とハードディスク・ドライブ（ＨＤＤ）２６０５と表示装置２６０９に接続される表示制御部２６０７とリムーバブル・ディスク２６１１用のドライブ装置２６１３と入力装置２６１５とネットワークに接続するための通信制御部２６１７（図３０では、２６１７ａ乃至２６１７ｃ）とがバス２６１９で接続されている構成の場合もある。なお、場合によっては、表示制御部２６０７、表示装置２６０９、ドライブ装置２６１３、入力装置２６１５は含まれない場合もある。オペレーティング・システム（ＯＳ：Operating System）及び本実施の形態における処理を実施するためのアプリケーション・プログラムは、ＨＤＤ２６０５に格納されており、ＣＰＵ２６０３により実行される際にはＨＤＤ２６０５からメモリ２６０１に読み出される。必要に応じてＣＰＵ２６０３は、表示制御部２６０７、通信制御部２６１７、ドライブ装置２６１３を制御して、必要な動作を行わせる。なお、通信制御部２６１７のいずれかを介して入力されたデータは、他の通信制御部２６１７を介して出力される。ＣＰＵ２６０３は、通信制御部２６１７を制御して、適切に出力先を切り替える。また、処理途中のデータについては、メモリ２６０１に格納され、必要があればＨＤＤ２６０５に格納される。本発明の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク２６１１に格納されて頒布され、ドライブ装置２６１３からＨＤＤ２６０５にインストールされる。インターネットなどのネットワーク及び通信制御部２６１７を経由して、ＨＤＤ２６０５にインストールされる場合もある。このようなコンピュータ装置は、上で述べたＣＰＵ２６０３、メモリ２６０１などのハードウエアとＯＳ及び必要なアプリケーション・プログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【０１４９】
以上述べた本発明の実施の形態をまとめると、以下のようになる。
【０１５０】
本技術に係るスイッチは、（Ａ）仮想的に統合されるべき複数のスイッチを含む第１のドメインに含まれる他のスイッチに接続される第１のポートを介して当該第１のドメイン内におけるスイッチのデータを取得する第１の処理部と、（Ｂ）第１のポート以外の第２のポートを介して第１のドメインに隣接する第２のドメインに含まれるスイッチのデータを取得すると共に第１のドメインに含まれる他のスイッチから第２のドメインに含まれるスイッチのデータを取得し、同一の第２のドメインに接続される複数のポートを特定して当該複数のポートに係る設定を行い、第１のドメイン及び第２のドメインを含む複数のドメインをツリー構成にするための処理を実行する第２の処理部とを有する。
【０１５１】
第１の処理部により第１のドメインを構築し、第２の処理部によりドメイン間の複数経路を適切に設定して、さらに複数のドメインをツリー構成にすることで、Fabricネットワークを簡単且つ効率的に構成でき、ドメイン間の複数経路を有効に利用可能とすることができる。
【０１５２】
なお、上で述べた複数のポートに係る設定が、当該複数のポートに接続されるリンクを仮想的な１リンクとして取り扱う設定である場合もある。具体的には、ＭＬＡＧ方式で経路制御を行うことができるようになる。
【０１５３】
また、ＭＬＡＧ方式の場合には、上で述べた複数のドメインをツリー構成にするための処理が、第１のドメインが、ツリー構成におけるルートのドメインであり、自スイッチが第１のドメインにおける主たるスイッチである場合、（ｂ１）ルートのドメインから隣接するドメインに順次接続して接続先のドメインに隣接するドメインのデータを収集し、当該隣接するドメインがツリー構成から外れる経路で他のドメインと接続されていると判断すると当該接続先のドメインに含まれるスイッチの複数のポートのうちツリー構成から外れる経路で他のドメインと接続されるポートを非使用状態に設定する処理を含むようにしても良い。
【０１５４】
ルートドメインの主たるスイッチが、主にツリー構成を構築するように処理を行うようにしても良い。また、ツリー構成から外れる接続が含まれる場合には、ポートを非使用状態に設定することで、物理的な接続が不適切な場合でも適切にツリー構成を実現できるようになる。
【０１５５】
また、ＭＬＡＧ方式の場合、上で述べた複数のドメインをツリー構成にするための処理が、（ｂ２）ツリー構成における自スイッチの階層レベルを隣接するドメインに含まれるスイッチと交換することで、ツリー構成における親ドメインと階層レベルとを特定し、（ｂ３）ツリー構成における自スイッチの変更後の階層レベル及び親ドメインの識別子を、第１のドメインに含まれる他のスイッチと交換することで、ツリー構成における親ドメインと階層レベルとを更新する処理を含むようにしても良い。
【０１５６】
このようにメッセージ交換によってツリー構成を構築するようにしても良い。
【０１５７】
なお、ＭＬＡＧ方式且つメッセージ交換方式を採用する場合、上で述べた複数のドメインをツリー構成にするための処理が、さらに、（ｂ４）ツリー構成におけるルートのドメインまでの階層レベル数がより少ない経路が検出された場合には、ツリー構成における親ドメインとされていた隣接ドメインと接続されているポートを非使用状態に設定し、（ｂ５）ツリー構成における親ドメインとは別の隣接ドメインが親ドメイン相当であると検出された場合には、検出された隣接ドメインと接続されているポートを非使用状態に設定する処理を含むようにしても良い。物理的な接続が不適切な場合にも対応できるようになる。
【０１５８】
さらに、上で述べた複数のポートに係る設定が、当該複数のポート間の中継を遮断する設定である場合もある。例えば、ＥＨＭ方式の場合には、対応付けがなされたアップリンクとダウンリンクとの間では中継がなされるが、それ以外では中継を行わないので、このような設定を行う。
【０１５９】
また、例えばＥＨＭ方式の場合、上で述べた複数のドメインをツリー構成にするための処理が、第１のドメインが、ツリー構成におけるルートのドメインであり、自スイッチが第１のドメインにおける主たるスイッチである場合、（ｃ１）ルートのドメインから隣接するドメインに順次接続して接続先のドメインに隣接するドメインのデータを収集し、当該隣接するドメインがツリー構成から外れる経路で他のドメインと接続されていると判断すると当該接続先のドメインに含まれるスイッチの複数のポートのうちツリー構成から外れる経路で他のドメインと接続されるポートを非使用状態に設定する処理を含むようにしても良い。
【０１６０】
ルートドメインの主たるスイッチが、主にツリー構成を構築するように処理を行うようにしても良い。また、ツリー構成から外れる接続が含まれる場合には、ポートを非使用状態に設定することで、物理的な接続が不適切な場合でも適切にツリー構成を実現できるようになる。
【０１６１】
また、例えばＥＨＭ方式の場合、上で述べた複数のドメインをツリー構成にするための処理が、さらに、（ｃ２）複数のドメイン外の装置に接続されている外部ポート以外のポートをアップリンクに設定する処理と、（ｃ３）接続先のドメインに隣接するドメインに接続しているポートをダウンリンクに変更する処理と、（ｃ４）アップリンクが設定されているポート間の中継を遮断する設定、及び同一隣接ドメインと接続されているポート以外であってダウンリンクが設定されているポート間の中継を許可する設定を行う処理と、（ｃ５）ダウンリンクが設定されているポート及び外部ポートの各々に対してアップリンクが設定されているポートを１つ対応付ける処理と、（ｃ６）対応付けられたポート間以外でダウンリンクが設定されているポート又は外部ポートとアップリンクが設定されているポートとの間での中継を遮断する設定を行う処理とを含むようにしても良い。
【０１６２】
このようにすれば例えばＥＨＭ方式のための設定処理も行われるようになる。
【０１６３】
また、上で述べた複数のドメインをツリー構成にするための処理が、（ｃ７）ツリー構成における自スイッチの階層レベルを隣接するドメインに含まれるスイッチと交換することで、ツリー構成における親ドメインと階層レベルとを特定し、（ｃ８）ツリー構成における自スイッチの変更後の階層レベル及び親ドメインの識別子を、第１のドメインに含まれる他のスイッチと交換することで、ツリー構成における親ドメインと階層レベルとを更新する処理を含むようにしても良い。
【０１６４】
このようにメッセージ交換によってツリー構成を構築するようにしても良い。
【０１６５】
さらに、例えばＥＨＭ方式且つメッセージ交換方式を採用する場合には、上で述べた複数のドメインをツリー構成にするための処理が、さらに、（ｃ９）ツリー構成におけるルートのドメインまでの階層レベル数がより少ない経路が検出された場合には、ツリー構成における親ドメインとされていた隣接ドメインと接続されているポートを非使用状態に設定し、（ｃ１０）ツリー構成における親ドメインとは別の隣接ドメインが親ドメイン相当であると検出された場合には、検出された隣接ドメインと接続されているポートを非使用状態に設定する処理を含むようにしても良い。物理的な接続が不適切な場合にも対応できるようになる。
【０１６６】
さらに、例えばＥＨＭ方式且つメッセージ交換方式を採用する場合には、上で述べた複数のドメインをツリー構成にするための処理が、さらに、（ｃ１１）ツリー構成における親ドメインに含まれるスイッチと接続されているポートをアップリンクに設定し、アップリンクが設定されているポート以外のポートをダウンリンクに設定する処理と、（ｃ１２）アップリンクが設定されているポート間の中継を遮断する設定、及び同一隣接ドメインと接続されているポート以外であってダウンリンクが設定されているポート間の中継を許可する設定を行う処理と、（ｃ１３）ダウンリンクが設定されているポート及び外部ポートの各々に対してアップリンクが設定されているポートを１つ対応付ける処理と、（ｃ１４）対応付けられたポート間以外でダウンリンクが設定されているポート又は外部ポートとアップリンクが設定されているポートとの間での中継を遮断する設定を行う処理とを含むようにしても良い。
【０１６７】
このようにすれば例えばＥＨＭ方式のための設定処理も行われるようになる。
【０１６８】
なお、上で述べたような処理をプロセッサに実施させるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブル・ディスク、ＣＤ−ＲＯＭなどの光ディスク、光磁気ディスク、半導体メモリ（例えばＲＯＭ）、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。なお、処理途中のデータについては、ＲＡＭ等の記憶装置に一時保管される。
【０１６９】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０１７０】
（付記１）
仮想的に統合されるべき複数のスイッチを含む第１のドメインに含まれる他のスイッチに接続される第１のポートを介して当該第１のドメイン内におけるスイッチのデータを取得する第１の処理部と、
前記第１のポート以外の第２のポートを介して前記第１のドメインに隣接する第２のドメインに含まれるスイッチのデータを取得すると共に前記第１のドメインに含まれる他のスイッチから前記第２のドメインに含まれるスイッチのデータを取得し、同一の第２のドメインに接続される複数のポートを特定して当該複数のポートに係る設定を行い、前記第１のドメイン及び前記第２のドメインを含む複数のドメインをツリー構成にするための処理を実行する第２の処理部と、
を有するスイッチ。
【０１７１】
（付記２）
前記複数のポートに係る設定が、当該複数のポートに接続されるリンクを仮想的な１リンクとして取り扱う設定である
付記１記載のスイッチ。
【０１７２】
（付記３）
前記複数のドメインをツリー構成にするための処理が、
前記第１のドメインが、前記ツリー構成におけるルートのドメインであり、自スイッチが前記第１のドメインにおける主たるスイッチである場合、
前記ルートのドメインから隣接するドメインに順次接続して接続先のドメインに隣接するドメインのデータを収集し、当該隣接するドメインがツリー構成から外れる経路で他のドメインと接続されていると判断すると当該接続先のドメインに含まれるスイッチの複数のポートのうち前記ツリー構成から外れる経路で他のドメインと接続されるポートを非使用状態に設定する処理
を含む付記２記載のスイッチ。
【０１７３】
（付記４）
前記複数のドメインをツリー構成にするための処理が、
前記ツリー構成における自スイッチの階層レベルを隣接するドメインに含まれるスイッチと交換することで、前記ツリー構成における親ドメインと階層レベルとを特定し、
前記ツリー構成における自スイッチの変更後の階層レベル及び親ドメインの識別子を、前記第１のドメインに含まれる他のスイッチと交換することで、前記ツリー構成における親ドメインと階層レベルとを更新する
処理を含む付記２記載のスイッチ。
【０１７４】
（付記５）
前記複数のドメインをツリー構成にするための処理が、さらに、
前記ツリー構成におけるルートのドメインまでの階層レベル数がより少ない経路が検出された場合には、前記ツリー構成における親ドメインとされていた隣接ドメインと接続されているポートを非使用状態に設定し、
前記ツリー構成における親ドメインとは別の隣接ドメインが親ドメイン相当であると検出された場合には、検出された前記隣接ドメインと接続されているポートを非使用状態に設定する
処理を含む付記４記載のスイッチ。
【０１７５】
（付記６）
前記複数のポートに係る設定が、当該複数のポート間の中継を遮断する設定である
付記１記載のスイッチ。
【０１７６】
（付記７）
前記複数のドメインをツリー構成にするための処理が、
前記第１のドメインが、前記ツリー構成におけるルートのドメインであり、自スイッチが前記第１のドメインにおける主たるスイッチである場合、
前記ルートのドメインから隣接するドメインに順次接続して接続先のドメインに隣接するドメインのデータを収集し、当該隣接するドメインがツリー構成から外れる経路で他のドメインと接続されていると判断すると当該接続先のドメインに含まれるスイッチの複数のポートのうち前記ツリー構成から外れる経路で他のドメインと接続されるポートを非使用状態に設定する処理
を含む付記６記載のスイッチ。
【０１７７】
（付記８）
前記複数のドメインをツリー構成にするための処理が、さらに、
前記複数のドメイン外の装置に接続されている外部ポート以外のポートをアップリンクに設定する処理と、
前記接続先のドメインに隣接するドメインに接続しているポートをダウンリンクに変更する処理と、
アップリンクが設定されているポート間の中継を遮断する設定、及び同一隣接ドメインと接続されているポート以外であってダウンリンクが設定されているポート間の中継を許可する設定を行う処理と、
ダウンリンクが設定されているポート及び外部ポートの各々に対してアップリンクが設定されているポートを１つ対応付ける処理と、
対応付けられたポート間以外でダウンリンクが設定されているポート又は外部ポートとアップリンクが設定されているポートとの間での中継を遮断する設定を行う処理と、
を含む付記７記載のスイッチ。
【０１７８】
（付記９）
前記複数のドメインをツリー構成にするための処理が、
前記ツリー構成における自スイッチの階層レベルを隣接するドメインに含まれるスイッチと交換することで、前記ツリー構成における親ドメインと階層レベルとを特定し、
前記ツリー構成における自スイッチの変更後の階層レベル及び親ドメインの識別子を、前記第１のドメインに含まれる他のスイッチと交換することで、前記ツリー構成における親ドメインと階層レベルとを更新する
処理を含む付記６記載のスイッチ。
【０１７９】
（付記１０）
前記複数のドメインをツリー構成にするための処理が、さらに、
前記ツリー構成におけるルートのドメインまでの階層レベル数がより少ない経路が検出された場合には、前記ツリー構成における親ドメインとされていた隣接ドメインと接続されているポートを非使用状態に設定し、
前記ツリー構成における親ドメインとは別の隣接ドメインが親ドメイン相当であると検出された場合には、検出された前記隣接ドメインと接続されているポートを非使用状態に設定する
処理を含む付記９記載のスイッチ。
【０１８０】
（付記１１）
前記複数のドメインをツリー構成にするための処理が、さらに、
前記ツリー構成における親ドメインに含まれるスイッチと接続されているポートをアップリンクに設定し、アップリンクが設定されているポート以外のポートをダウンリンクに設定する処理と、
アップリンクが設定されているポート間の中継を遮断する設定、及び同一隣接ドメインと接続されているポート以外であってダウンリンクが設定されているポート間の中継を許可する設定を行う処理と、
ダウンリンクが設定されているポート及び外部ポートの各々に対してアップリンクが設定されているポートを１つ対応付ける処理と、
対応付けられたポート間以外でダウンリンクが設定されているポート又は外部ポートとアップリンクが設定されているポートとの間での中継を遮断する設定を行う処理と、
を含む付記１０記載のスイッチ。
【０１８１】
（付記１２）
複数のスイッチを有し、
前記複数のスイッチは、仮想的に統合されるべき複数のスイッチを各々含む複数のドメインに分類され、
前記複数のスイッチのうち少なくとも一部が、
前記複数のドメインのうち自ドメインに含まれる他のスイッチに接続される第１のポートを介して当該自ドメイン内におけるスイッチのデータを取得する第１の処理部と、
前記第１のポート以外の第２のポートを介して前記自ドメインに隣接するドメインに含まれるスイッチのデータを取得すると共に前記自ドメインに含まれる他のスイッチから前記自ドメインに隣接するドメインに含まれるスイッチのデータを取得し、前記自ドメインに隣接する同一のドメインに接続される複数のポートがあれば当該複数のポートに係る設定を行い、前記複数のドメインをツリー構成にするための処理を実行する第２の処理部と、
を含むスイッチシステム。
【０１８２】
（付記１３）
仮想的に統合されるべき複数のスイッチを含む第１のドメインに含まれる他のスイッチに接続される第１のポートを介して当該第１のドメイン内におけるスイッチのデータを取得し、
前記第１のポート以外の第２のポートを介して前記第１のドメインに隣接する第２のドメインに含まれるスイッチのデータを取得すると共に前記第１のドメインに含まれる他のスイッチから前記第２のドメインに含まれるスイッチのデータを取得し、同一の第２のドメインに接続される複数のポートを特定して当該複数のポートに係る設定を行い、前記第１のドメイン及び前記第２のドメインを含む複数のドメインをツリー構成にするための処理を実行する、
処理をプロセッサに実行させるためのプログラム。
【符号の説明】
【０１８３】
１００  スイッチ
１１０  制御部
１１１  第１処理部
１１２  第２処理部
１２０  メモリ
１３０  スイッチハードウエア
【図１】
2014165521.tif 000003
【図２】
2014165521.tif 000004
【図３】
2014165521.tif 000005
【図４】
2014165521.tif 000006
【図５】
2014165521.tif 000007
【図６】
2014165521.tif 000008
【図７】
2014165521.tif 000009
【図８】
2014165521.tif 000010
【図９】
2014165521.tif 000011
【図１０Ａ】
2014165521.tif 000012
【図１０Ｂ】
2014165521.tif 000013
【図１０Ｃ】
2014165521.tif 000014
【図１０Ｄ】
2014165521.tif 000015
【図１０Ｅ】
2014165521.tif 000016
【図１０Ｆ】
2014165521.tif 000017
【図１０Ｇ】
2014165521.tif 000018
【図１１】
2014165521.tif 000019
【図１２】
2014165521.tif 000020
【図１３】
2014165521.tif 000021
【図１４】
2014165521.tif 000022
【図１５】
2014165521.tif 000023
【図１６】
2014165521.tif 000024
【図１７】
2014165521.tif 000025
【図１８】
2014165521.tif 000026
【図１９】
2014165521.tif 000027
【図２０】
2014165521.tif 000028
【図２１】
2014165521.tif 000029
【図２２】
2014165521.tif 000030
【図２３Ａ】
2014165521.tif 000031
【図２３Ｂ】
2014165521.tif 000032
【図２３Ｃ】
2014165521.tif 000033
【図２４】
2014165521.tif 000034
【図２５Ａ】
2014165521.tif 000035
【図２５Ｂ】
2014165521.tif 000036
【図２５Ｃ】
2014165521.tif 000037
【図２５Ｄ】
2014165521.tif 000038
【図２５Ｅ】
2014165521.tif 000039
【図２６】
2014165521.tif 000040
【図２７】
2014165521.tif 000041
【図２８】
2014165521.tif 000042
【図２９】
2014165521.tif 000043
【図３０】
2014165521.tif 000044