<ネットワークの全体構成の一例>
以下、図面を参照して、実施形態について説明する。図1は、ネットワークの全体構成の一例を示している。図1の例のネットワークは、サブネットワークA、B、CおよびDの4つのサブネットワークを含んでいる。サブネットワークの数は4つには限定されない。なお、サブネットワークは1つのネットワークであり、単にネットワークと称することもある。
図1の例の「L3SW」は、「Layer 3 Switch」である。L3SWは、レイヤ3における通信のスイッチング制御を行う。L3SWは、例えばルータ等であってもよい。図1の例の「L2SW」は、「Layer 2 Switch」である。L2SWは、レイヤ2における通信のスイッチング制御を行う。
図1の例のネットワーク構成は、5つのL3SW(L3SW−1〜L3SW−3、L3SW−AおよびL3SW−B)を含み、4つのL2SW(L2SW−1〜L2SW−4)を含んでいる。L3SWの数は5つに限定されない。また、L2SWの数は4つに限定されない。
施設Aは、サブネットワークAを含んでいる。サブネットワークAは、L3SW−AおよびL3SW−2を含んでおり、両者は接続されている。施設Bは、サブネットワークBを含んでいる。サブネットワークBは、L3SW−BおよびL3SW−3を含んでおり、両者は接続されている。
サブネットワークCとサブネットワークDとはL3SW−AおよびL3SW−Bを介して接続されている。L3SW−AおよびL3SW−Bは冗長化されている。冗長化されたL3SW−AおよびL3SW−Bは通信制御装置の一例である。
L3SW−Aを基準とすると、自身の通信制御装置(自装置)はL3SW−Aになり、他の通信制御装置はL3SW−Bになる。L3SW−Bを基準とすると、自身の通信制御装置(自装置)はL3SW−Bになり、他の通信制御装置はL3SW−Aになる。
サブネットワークCは、L2SW−1〜L2SW−4を含んでいる。サブネットワークCは、第1のネットワークの一例である。L2SW−1は、複数の端末11に接続されている。L2SW−2は、カメラ12に接続されている。L2SW−3は、テレメータ13に接続されている。L2SW−4は、複数の端末14に接続されている。テレメータ13は、例えば、何らかの特徴量を測定する装置である。
端末11、カメラ12、テレメータ13および端末14は、L2SWとの間で通信を行う通信装置の一例である。以下、通信装置をホストと称することもある。各L2SWに接続されるホスト数は任意の数であってよい。
サブネットワークDは、L3SW−1、L3SW−2およびL3SW−3を含んでいる。サブネットワークDに含まれるL3SWの数は3つには限定されない。L3SW−1には、端末15が接続されている。L3SW−1に接続される端末15の数は任意の数であってよい。サブネットワークDは、第2のネットワークの一例である。
例えば、サブネットワークDは本線のネットワークとし、サブネットワークCを支線のネットワークとしてもよい。この場合、サブネットワークDは上位になり、サブネットワークCは下位になる。
サブネットワークDは、L3NW(Layer 3 Network)に属している。L3NWでは、OSPF(Open shortest Path First)プロトコルが使用される。OSPFは、L3SWがパケットの転送先を動的に決定するためのルーティングプロトコルの一種である。なお、L3NWで使用されるルーティングプロトコルは、OSPFには限定されない。L3NWの下位にL2NW(Layer 2 Network)がある。
上述したように、L3SW−AおよびL3SW−Bは冗長化されている。従って、L3SW−AまたはL3SW−Bの何れかに障害が発生したとしても、障害が発生していない通信制御装置に切り替えることにより、継続的に通信が行われる。このため、L3SW−AおよびL3SW−Bは、同じサブネットワークアドレスを有している。
図1の例では、L3SW−AはMASTERになっている。MASTERは現用系であることを示している。L3SW−BはBACKUPになっている。BACKUPは予備系であることを示している。よって、サブネットワークDからの通信制御は、現用系であるL3SW−Aが行う。
MASTERのL3SW−Aに何らかの障害が生じた場合、サブネットワークDからの通信制御は、BACKUPであるL3SW−Bに切り替えられる。従って、サブネットワークCとサブネットワークDとの間で通信の継続が図られる。
実施形態では、L3SW−AとL3SW−Bとの間は直接的に接続されていない。例えば、施設Aと施設Bとの間の距離が長い場合、L3SW−AとL3SW−Bとの間は直接的に接続されない。
従って、L3SW−AとL3SW−Bとの間で直接的に通信は行われない。ただし、L2SW−1〜L2SW−4を介して、またはサブネットワークDを介して、L3SW−AとL3SW−Bとは相互に通信を行うことができる。
図2は、L2SW−2とL2SW−3との間で断線等の通信障害を生じた場合の一例を示している。この場合、サブネットワークCは2つに分断される。図3は、サブネットワークCがサブネットワークC1とサブネットワークC2とに分断された場合の一例を示している。従って、分断されたサブネットワークC1とサブネットワークC2とが新たに形成される。
サブネットワークC1とサブネットワークC2とは異なるネットワークである。サブネットワークC2とサブネットワークDとの間の通信の制御は、L3SW−Bが行う。このため、L3SW−BはBACKUPからMASTERに遷移する。
L3SW−AおよびL3SW−Bは両者ともMASTERであり、且つ同じサブネットワークアドレスを持つ。例えば、端末15から端末14にデータを送信するときに、データの宛先は、サブネットワークC2のサブネットアドレスだけではなく、サブネットワークC1のサブネットアドレスも示す。従って、正常なルーティングを行うことが難しい。
<通信制御装置の一例>
図4は、実施形態の通信制御装置の機能ブロックの一例を示している。図4の例の通信制御装置は、L3SW−AとL3SW−Bとの両者に適用される。なお、図4の通信制御装置は一例であり、通信制御装置は他の機能を有していてもよい。
通信制御装置は、通信部21とBPDU処理部22とUDP処理部23とUDPデータ解析部24とARP処理部25とARPテーブル26とARPテーブル解析部27と選択部28と経路情報登録部29と制御部30とを備える。
通信部21は、データの送信および受信を行う。BPDU処理部22は、BPDU(Bridge Protocol Data Unit)フレームに関する処理を行う。BPDU処理部22は、通信部21から所定間隔でBPDUフレームを送信する制御を行う。
MASTERであるL3SW−AのBPDU処理部22は、L2SW−1〜L2SW−4を介して、BACKUPであるL3SW−Bに対してBPDUフレームを送信する制御を通信部21に対して行う。
また、BPDU処理部22は、BPDUフレームを正常に受信できたか否かに基づいてサブネットワークCに障害が発生したか否かを検出する。従って、BPDU処理部22は、サブネットワークCに障害が発生したか否かを検出する検出部としても機能する。
UDP処理部23は、UDP(User Datagram Protocol)データを送信する制御を通信部21に対して行う。UDPデータは、自身の通信制御装置がMASTERまたはBACKUPの何れであるかの情報(以下、マスタバックアップ情報と称することもある)および自身のL3SWのサブネットワークに含まれるホスト数の情報(以下、ホスト数情報と称することもある)を含む。
L3SW−Aは、サブネットワークDを経由して、L3SW−BにUDPデータを送信する。L3SW−Bは、サブネットワークDを経由して、L3SW−AにUDPデータを送信する。UDPデータは、パケット形式であってもよい。
UDPデータ解析部24は、受信したUDPデータを解析する。UDPデータには、マスタバックアップ情報およびホスト数情報が含まれている。UDPデータ解析部24は、受信したUDPデータに基づいて、UDPデータを送信した通信制御装置がMASTERまたはBACKUPの何れであるかを認識する。また、UDPデータ解析部24は、UDPデータを送信した通信制御装置のネットワークに含まれるホスト数を認識する。
ARP処理部25は、自身の通信制御装置のサブネットワークに含まれる各ホストに対して、ARP(Address Resolution Protocol)処理を行う。ARP処理部25は、自身の通信制御装置のサブネットワークに含まれる各ホストに対して、ARPリクエストをブロードキャストするように通信部21を制御する。この制御により、通信部21は、ARPリクエストをブロードキャストする。
ARPリクエストを受信したホストは、ARPリクエストを送信した通信制御装置に対して、IPアドレスおよびMACアドレスを含むARPリプライを送信する。ホストが送信したARPリプライは、通信部21が受信する。そして、ARP処理部25は、受信したARPリプライに基づいて、ホストのIPアドレスおよびMACアドレスをARPテーブルに格納する。ARPリプライには、他の情報が含まれていてもよい。
ARPテーブル解析部27は、ARPテーブル26に格納されている情報に基づいて、自身の通信制御装置のネットワークのホスト数情報を認識する。ARPテーブル解析部27は、ホスト数情報をUDP処理部23に通知する。
UDP処理部23は、通知されたホスト数情報をUDPデータに含める。UDP処理部23は、サブネットワークDを介して、UDPデータを他の通信制御装置に送信するように通信部21を制御する。この制御に基づいて、通信部21は、UDPデータを送信する。
選択部28は、第1の経路情報または第2の経路情報の何れかを選択する。第1の経路情報は、自身の通信制御装置のサブネットワークアドレスである。第2の経路情報は、ARPテーブル26に格納されているホストごとのIPアドレスである。従って、第1の経路情報は1つの経路情報になる。一方、第2の経路情報は、ARPテーブル26に格納されている個数分の経路情報を含む。
第1の経路情報はサブネットアドレスを示し、第2の経路情報はIPアドレスを示す。従って、第1の経路情報および第2の経路情報は、データの宛先のアドレスを示すアドレス情報と称してもよい。
選択部28が選択した経路情報は、通信部21に通知される。通信部21は、通知された経路情報(第1の経路情報または第2の経路情報)をサブネットワークDに送信する。
経路情報登録部29は、ルーティングテーブルの一例である。経路情報登録部29は、自装置の経路情報を登録する。制御部30は、通信制御装置の各種制御を行う。例えば、自装置をMASTERからBACKUPに変更する制御、またはBACKUPからMASTERに変更する制御等を行う。
サブネットワークDに含まれるL3SW−2は、L3SW−Aから送信された経路情報を受信する。L3SW−2は、受信した経路情報を経路情報登録部31に登録する。経路情報登録部31もルーティングテーブルの一例である。
サブネットワークDに含まれるL3SW−3は、L3SW−Bから送信された経路情報を受信する。L3SW−3は、L3SW−2と同様に、受信した経路情報を経路情報登録部31に登録する。なお、L3SW−1も経路情報登録部31を有している。
<BPDUフレーム通信の一例>
図5は、図1を簡略化した図であり、L3SW−AがL3SW−BにBPDUフレームを送信する場合の一例を示している。図5の例では、L3SW−AはMASTERであり、L3SW−BはBACKUPである。従って、MASTERであるL3SW−Aは、BPDUフレームをL3SW−Bに対して所定間隔で送信する。
なお、L3SW−BがMASTERであり、L3SW−AがBACKUPであってもよい。この場合は、L3SW−BがL3SW−Aに対して、BPDUフレームを所定間隔で送信する。
L3SW−AのBPDU処理部22は、L2SWを経由して、BPDUフレームがL3SW−Bに送信されるように通信部21を制御する。通信部21は、BPDUフレームを所定間隔で送信し、L3SW−Bは所定間隔でBPDUフレームを受信する。
L3SW−Bが所定間隔でBPDUフレームを受信している場合、L3SW−Bは、サブネットワークCに障害が発生していないことを認識する。図6は、BPDUフレームの通信経路(L2SW−1とL2SW−4との間の経路)に障害が生じた場合の例を示している。この場合、L3SW−Bは、L3SW−Aが送信したBPDUフレームを受信しない。
図7は、BPDUフレーム送信のタイミングチャートの一例を示している。図7の例では、MASTERであるL3SW−Aは、400msecごとに、BPDUフレームをBACKUPであるL3SW−Bに送信している。BPDUフレームの送信間隔は400msecには限定されない。
図7の例では、L3SW−Bが3回連続してBPDUフレームを受信しなかった場合に、障害を検出する。従って、L3SW−Bは、1200msecの間、BPDUフレームを受信しなかった場合に、タイムアウトとして、障害を検出する。なお、図7の例では、L3SW−Bが2回連続してBPDUフレームを受信しなかったため、L3SW−Aに向けて、BPDUフレームを送信している場合を示している。
発生した障害は、復旧される。図7の例では、BACKUPであるL3SW−Bが再びBPDUフレームを受信したときに、障害が復旧したことを認識する。障害が復旧した後には、サブネットワークCの分断が解消する。この場合、後述する優先度情報に基づいて、L3SW−AはMASTERになり、L3SW−BはBACKUPになる。
図8は、サブネットワークCが分断された後に、L3SW−BがBACKUPからMASTERに遷移した状態を示している。L3SW−BがBACKUPからMASTERに変更する処理は制御部30が行う。
サブネットワークC1は、複数の端末11を含む。サブネットワークDからサブネットワークC1に対する通信は、L3SW−Aを経由して、各端末11に対して行う。サブネットワークC2は、複数の端末14を含む。サブネットワークDからサブネットワークC1に対する通信は、L3SW−Bを経由して、各端末14に対して行う。
サブネットワークC1とサブネットワークC2とは異なるネットワークになる。ただし、サブネットワークC1およびサブネットワークC2は、もともとはサブネットワークCであったため、サブネットアドレスは同じである。
図9は、BPDUフレームの一例を示している。BPDUフレームは、EtherヘッダとLLCとSNAPとデータ部とを有する。Etherヘッダは、宛先MACアドレスや送信元MACアドレス等の情報を含む。
LLC(Logical Link Control)は、データリンクサービスを上位層に提供する機能を有する。SNAP(Sub-Network Access Protocol)は、カプセル化された情報である。データ部は、ID情報とバージョンとプライオリティとを含む。
ID情報は、装置を識別するために用いられる。バージョンは、バージョン情報を示す。例えば、データフォーマットが変更されたときに使用される。プライオリティは、BPDUフレームを送信した通信制御装置の優先度情報を示す。優先度情報については、後述する。
実施形態では、BPDUフレームを用いて、サブネットワークCのL2SWの経路に通信障害が生じたことを検出している。ただし、BPDUフレーム以外の方法で通信障害が検出されてもよい。例えば、L2SWが自装置の電源が遮断されたことを検出したときに、その旨の情報をL3SW−Bに通知してもよい。これにより、通信障害を検出することができる。
<MASTER遷移の通知の一例>
上述したように、BACKUPであったL3SW−Bの制御部30は、一定期間の間(上述した例では1200msec)、BPDUフレームを受信しなかった場合、自装置をMASTERに変更する。このとき、L3SW−Bは、自装置がMASTERに遷移したことをL3SW−Aに通知する。
図10の一例に示すように、L3SW−BのUDP処理部23は、自装置がMASTERに遷移したことを示すマスタバックアップ情報を含むUDPデータをL3SW−Aに送信するように、通信部21を制御する。通信部21が送信したUDPデータは、サブネットワークDのL3SW−3およびL3SW−2を経由して、L3SW−Aが受信する。
L3SW−AのUDPデータ解析部24は、受信したUDPデータを解析して、BACKUPであったL3SW−BがMASTERに遷移したことを検出する。これにより、L3SW−Bは、サブネットワークCが分断されたことを検出する。従って、L3SW−BおよびL3SW−Aは、L3SW−BがMASTERになったことを認識し、サブネットワークCが分断されたことを認識する。
図11は、UDPデータの一例を示す。UDPデータは、EtherヘッダとIPヘッダとUDPヘッダとデータ部とを含む。データ部は、マスタバックアップ情報とホスト数情報とを含む。
<ARP処理の一例>
図12は、L3SW−AおよびL3SW−BのARP処理部25が行うARP処理の一例を示している。以下、通信障害によって分断が生じる前のサブネットワークCのサブネットアドレスは「10.0.0.0/24」であるものとする。この形式は、プリフィックス形式であり、サブネットマスクの値は「24」である。
従って、サブネットワークCに含まれるホストには、「10.0.0.1」〜「10.0.0.254」の合計254個のIPアドレスを割り当てることができる。ここで、サブネットワークC1に含まれるホスト数(端末数)は「100」であるものとする。各ホストには、「10.0.0.1」〜「10.0.0.100」のIPアドレスが割り当てられているとする。
また、サブネットワークC2に含まれるホスト数(端末数)は「150」であるものとする。各ホストには、「10.0.0.101」〜「10.0.0.250」のIPアドレスが割り当てられているものとする。
図12の例で、L3SW−AのARP処理部25がARPリクエストを送信するように通信部21を制御する。通信部21は、ARPリクエストをサブネットワークC1にブロードキャストする。L3SW−Aが持つサブネットアドレスは、「10.0.0.0/24」である。よって、ARPリクエストは「10.0.0.1」〜「10.0.0.254」の範囲にブロードキャストされる。
同様に、L3SW−BのARP処理部25がARPリクエストを送信するように通信部21を制御する。通信部21は、ARPリクエストをサブネットワークC2にブロードキャストする。L3SW−Bが持つサブネットアドレスも、「10.0.0.0/24」である。よって、ARPリクエストは「10.0.0.1」〜「10.0.0.254」の範囲にブロードキャストされる。
サブネットワークC1の各ホストのIPアドレスは、「10.0.0.1」〜「10.0.0.100」である。よって、これらのIPアドレスを持つ100台の端末11がARPリクエストを受信する。そして、図13の一例に示すように、これら100台の端末11はARPリプライをL3SW−Aに送信する。
サブネットワークC2の各ホストのIPアドレスは、「10.0.0.101」〜「10.0.0.250」である。よって、これらのIPアドレスを持つ150台の端末14がARPリクエストを受信する。そして、図13の一例に示すように、これら150台の端末14がARPリプライをL3SW−Bに送信する。
ARPリプライには、ホストのIPアドレスおよびMACアドレスが含まれる。ARP処理部25は、受信したARPリプライに基づいて、IPアドレスおよびMACアドレスをARPテーブル26に格納する。
図14(A)は、L3SW−AのARPテーブル26が記憶する情報の一例を示している。サブネットワークC1の各ホストのIPアドレスは、「10.0.0.1」〜「10.0.0.100」である。よって、ARPテーブル26は、これら100個のIPアドレスおよび当該IPアドレスに対応するMACアドレスを記憶する。
図14(B)は、L3SW−BのARPテーブル26の一例を示している。サブネットワークC2の各ホストのIPアドレスは、「10.0.0.101」〜「10.0.0.250」である。よって、ARPテーブル26は、これら150個のIPアドレスおよび当該IPアドレスに対応するMACアドレスを記憶する。
<ホスト数の通知の一例>
図15は、L3SW−AとL3SW−Bとの間でホスト数情報を通知するUDPデータ通信の一例を示している。L3SW−AのARPテーブル解析部27は、ARPテーブル26に記憶されているIPアドレスの個数に基づいて、ホスト数情報を得る。ARPテーブル26は100個のIPアドレスを記憶しているため、ARPテーブル解析部27は、ホスト数情報「100」を得る。
UDP処理部23は、通信部21に対して、ホスト数情報「100」を含むUDPデータを送信させる制御を行う。UDPデータは、サブネットワークDを介して、L3SW−Bに送信される。
同様に、L3SW−BのARPテーブル解析部27は、ARPテーブル26に記憶されているIPアドレスの個数に基づいて、ホスト数情報を得る。ARPテーブル26は150個のIPアドレスを記憶しているため、ARPテーブル解析部27は、ホスト数情報「150」を得る。
UDP処理部23は、通信部21に対して、ホスト数情報「150」を含むUDPデータを送信させる制御を行う。UDPデータは、サブネットワークDを介して、L3SW−Bに送信される。
L3SW−BのUDPデータ解析部24は、受信したUDPデータを解析して、サブネットワークC1に含まれるホスト数が「100」であることを認識する。また、L3SW−AのUDPデータ解析部24は、受信したUDPデータを解析して、サブネットワークC2に含まれるホスト数が「150」であることを認識する。
<選択部の処理の一例>
次に、図16の一例を参照して、選択部28の処理について説明する。選択部28は、第1の経路情報または第2の経路情報の何れかを選択する。第1の経路情報は、サブネットワークCのサブネットワークアドレスである。第2の経路情報は、ホストごとのIPアドレスである。これらの経路情報は、ARPテーブル26に格納されている。
L3SW−AおよびL3SW−Bの選択部28は、それぞれサブネットワークC1に含まれるホスト数が「100」であり、サブネットワークC2に含まれるホスト数が「150」であることを認識する。
選択部28は、ホスト数を比較して、第1の経路情報または第2の経路情報の何れかの経路情報を選択する。選択部28は、自身の通信制御装置のネットワークに含まれるホスト数が、他の通信制御装置のネットワークに含まれるホスト数よりも多い場合、第1の経路情報を選択する。選択部28は、自身の通信制御装置のネットワークに含まれるホスト数が他の通信制御装置の配下に含まれるホスト数よりも少ない場合、第2の経路情報を選択する。
自身の通信制御装置がL3SW−Aの場合、他の通信制御装置はL3SW−Bになる。この場合、L3SW−Aの選択部28は、サブネットワークC1に含まれるホスト数「100」がサブネットワークC2に含まれるホスト数「150」よりも少ないため、第2の経路情報を選択する。
自身の通信制御装置がL3SW−Bの場合、他の通信制御装置はL3SW−Aになる。この場合、L3SW−Bの選択部28は、サブネットワークC2に含まれるホスト数「150」がサブネットワークC1に含まれるホスト数「100」よりも多いため、第1の経路情報を選択する。
L3SW−AおよびL3SW−Bの通信部21は、選択された経路情報を送信する。図16に示すように、L3SW−Aの通信部21は、選択された第2の経路情報をサブネットワークDのL3SW−2に送信する。L3SW−Bの通信部21は、選択された第1の経路情報を送信する。
L3SW−2およびL3SW−3の経路情報登録部31は、受信した経路情報を登録する。また、L3SW−2およびL3SW−3は、受信した経路情報をサブネットワークD内でブロードキャストする。L3SW−1、L3SW−2およびL3SW−3は、受信した経路情報を自身の経路情報登録部31に登録する。
従って、サブネットワークDからサブネットワークC1に含まれる各端末11に対する通信、およびサブネットワークDからサブネットワークC2に含まれる各端末14に対する通信が正常に行われる。つまり、サブネットワークCが分断されたとしても、正常な通信が行われる。
ここで、L3SW−Aは、第2の経路情報をサブネットワークDに送信している。第2の経路情報は、ホストごとのIPアドレスを示す情報である。サブネットワークC1に含まれるホスト数は「100」であるため、第2の経路情報は、100個の経路情報を含む。
L3SW−Bは、第1の経路情報をサブネットワークDに送信している。第1の経路情報は、分断される前のサブネットワークCのサブネットワークアドレスである。よって、第1の経路情報は1つの経路情報を含む。
サブネットワークCが分断されたときに、サブネットワークC1の各端末11およびサブネットワークC2の各端末14が、それぞれのIPアドレスをサブネットワークDに送信することにより、正常な通信を図ることができる。このとき、L3SW−AおよびL3SW−BがサブネットワークDに送信するIPアドレスの数は合計250になる。
一方、実施形態では、L3SW−Bは、第1の経路情報をサブネットワークDに送信しているため、サブネットワークDに送信されるサブネットワークアドレスの数は1つになる。よって、L3SW−AおよびL3SW−BがサブネットワークDに送信するアドレスの数は合計101になる。
従って、分断されたサブネットワークC1およびサブネットワークC2から送信されるアドレスの数を149個分少なくすることができる。これにより、サブネットワークDに通知する経路情報数を削減することができる。
なお、サブネットワークC1のサブネットワークアドレスとサブネットワークC2のサブネットワークアドレスとは同一(サブネットワークCのサブネットワークアドレス)である。従って、サブネットワークCのサブネットワークアドレスは、分断されたサブネットワークC1またはサブネットワークC2の何れか一方が使用できる。
そこで、選択部28は、サブネットワークC1とC2とのうち、ホスト数の多い方のサブネットワークを選択することで、サブネットワークDに送信する経路情報数の削減効果が高くなる。
一方、選択部28は、サブネットワークC1とC2とのうち、ホスト数の少ない方のサブネットワークを選択してもよい。例えば、図16の例で、L3SW−Aが第1の経路情報を送信し、L3SW−Bが第2の経路情報を送信してもよい。
この場合、L3SW−AはサブネットワークCのサブネットワークアドレスを送信するため、サブネットワークDに1つの経路情報が送信される。L3SW−Bは、サブネットワークC2に含まれる150個のIPアドレスを送信するため、サブネットワークDに送信される経路情報は150個になる。
よって、L3SW−AおよびL3SW−BがサブネットワークDに送信する経路情報の数は合計151個になる。このため、サブネットワークDに対して送信される経路情報の数を99個分少なくすることができる。
従って、サブネットワークC1のL3SW−AおよびL3SW−Bの選択部28は、相手方の通信制御装置がサブネットワークDに送信した経路情報に基づいて、自装置がサブネットワークDに送信する経路情報を選択する。
つまり、冗長化されたL3SW−AとL3SW−Bとのうち、一方が第1の経路情報をサブネットワークDに送信した場合には、他方は第2の経路情報をサブネットワークDに送信する。これにより、サブネットワークDに送信する経路情報の数を削減しつつ、正常な通信を行うことができる。
ここで、サブネットワークDに経路情報を送信することなく、サブネットワークC1またはサブネットワークC2に送信されたデータをサブネットワークDに戻すことが考えられる。例えば、端末15が端末14宛てにデータを送信したとする。
実施形態のように、L3SW−AおよびL3SW−Bから経路情報がサブネットワークDに通知されないと、端末15が送信したデータは、サブネットワークC1に送信されることがある。これは、L3SW−AとL3SW−Bとのサブネットアドレスが同じであることに起因する。
この場合、送信されたデータの宛先が不明なため、データは再びサブネットワークDに戻る。このため、バックトラックを生じる。バックトラックを生じるデータ通信は使用する帯域に無駄を生じ、通信が非効率になる。
従って、実施形態のように、L3SW−AおよびL3SW−BがサブネットワークDに第1の経路情報または第2の経路情報を送信することで、バックトラックを生じなくなる。これにより、効率的な通信を実現することができる。
また、サブネットワークC1とサブネットワークC2とは異なるネットワークである。よって、アドレスの再構成を行うことも考えられる。しかし、アドレスの再構成を行うと、再構成によりネットワーク全体に影響が出る。また、ホストのIPアドレスが固定されている場合には、アドレスを再構成すると、正常な通信が行われなくなる。
実施形態では、L3SW−AおよびL3SW−BがサブネットワークDに第1の経路情報または第2の経路情報を送信することで、アドレスの再構成を行う必要がなくなる。また、ホストのIPアドレスが固定されていたとしても、正常な通信を行うことができる。
<実施形態のフローチャートの一例>
次に、実施形態の処理の流れの一例を示すフローチャートについて説明する。図17は、MASTER装置の処理の流れの一例を示している。上述した例では、L3SW−AがMASTER装置になる。
図17は、L3SW−Aの処理の流れを示す。L3SW−AのBPDU処理部24は、所定間隔ごとに、BPDUフレームを送信するように通信部21を制御する。通信部21は、この制御に基づいて、BPDUフレームをL3SW−Bに送信する(ステップS1)。
また、L3SW−Aの通信部21は、L3SW−Bから所定間隔ごとにUDPデータを受信する(ステップS1)。通信部21が受信したUDPデータは、UDPデータ解析部24で解析される。UDPデータ解析部24は、受信したUDPに含まれるマスタバックアップ情報に基づいて、L3SW−BがMASTERであるか、BACKUPであるかを判定する(ステップS3)。
L3SW−BがMASTERでない場合(ステップS3でNO)、つまりL3SW−BがBACKUPである場合には、処理はステップS1に戻る。この場合、サブネットワークCは分断されていない。
一方、L3SW−BがMASTERである場合(ステップS3でYES)、処理は、次のステップS4に進む。この場合、断線等により、サブネットワークCがサブネットワークC1とC2とに分断されている状態になっている。
ARP処理部25は、ARPリクエストをサブネットワークC1の各ホストに送信するように通信部21を制御する。この制御に基づいて、通信部21は、ARPリクエストをサブネットワークC1にブロードキャストする(ステップS4)。
サブネットワークC1に含まれる100個の端末11は、ARPリクエストを受信し、IPアドレスおよびMACアドレスを含むARPリプライをL3SW−Bに送信する(ステップS5)。ARP処理部25は、受信したARPリプライに含まれるIPアドレスおよびMACアドレスをARPテーブル26に記憶する。
ARPテーブル解析部27は、ARPテーブル26をチェックし(ステップS6)、ARPテーブル26が記憶しているIPアドレスに基づいて、サブネットワークC1に含まれるホスト数をUDP処理部23に通知する。
UDP処理部23は、ホスト数情報を含むUDPデータをL3SW−Bに送信するように、通信部21を制御する。この制御に基づいて、通信部21は、ホスト数情報を含むUDPデータをL3SW−Bに送信する(ステップS7)。
後述するように、L3SW−Bもホスト数情報を含むUDPデータをL3SW−Aに送信する。UDP処理部23は、通信部21がUDPデータを受信したか否かを判定する(ステップS8)。
通信部21がUDPデータを受信しなければ(ステップS8でYES)、UDPデータを受信するまで待機する(ステップS9)。一方、通信部21がUDPデータを受信したときには(ステップS8でNO)、UDPデータ解析部24は、UDPデータに含まれるホスト数情報を解析する。
選択部28は、自身の通信制御装置(L3SW−A)のサブネットワークC1に含まれるホスト数が最多であるか否かを判定する(ステップS10)。例えば、サブネットワークCが3つ以上に分断された場合、自身の通信制御装置は、2つ以上の他の通信制御装置からホスト情報を含むUDPデータを受信する。
選択部28は、自身の通信制御装置のネットワークに含まれるホスト数と2つ以上の他の通信制御装置の分断されたサブネットワークに含まれる各ホスト数とを比較する。そして、選択部28は、自身の通信制御装置のサブネットワークに含まれるホスト数が最多であるか否かを判定する。
他の通信制御装置がL3SW−Bの1つだけの場合には、選択部28は、L3SW−AのサブネットワークC1に含まれるホスト数とL3SW−BのサブネットワークC2に含まれるホスト数との何れが多いかを判定する。
選択部28が、サブネットワークC1に含まれるホスト数が最多であると判定した場合(ステップS10でYES)、通信部21は第1の経路情報をサブネットワークDに送信する(ステップS11)。つまり、通信部21は、サブネットワークCのサブネットアドレスをサブネットワークDに送信する。
選択部28が、サブネットワークC1に含まれるホスト数が最多でないと判定した場合(ステップS10でNO)、通信部21は第2の経路情報をサブネットワークDに送信する(ステップS12)。つまり、通信部21は、サブネットワークC1に含まれる各ホストの経路情報(IPアドレス)をサブネットワークDに送信する。
次に、図18の一例を参照して、BACKUP装置の処理の流れを説明する。実施形態では、BACKUP装置は、L3SW−Bになっている。通信部21は、L3SW−Aから所定間隔ごとにUDPデータを受信する(ステップS21)。
また、上述したように、L3SW−Aは所定間隔ごとにBPDUフレームを送信している。L3SW−BのBPDU処理部22は、通信部21がBPDUフレームを一定時間受信しないタイムアウトが発生したか否かを判定する(ステップS22)。
タイムアウトを判定する基準となる時間は、任意に設定できる。なお、上述したように、BPDU処理部22は、所定回数連続してBPDUフレームを受信しない場合に、タイムアウトと判定してもよい。
タイムアウトが発生していなければ(ステップS22でNO)、処理はステップS21に戻る。タイムアウトが発生していれば(ステップS22でYES)、L3SW−Bの制御部30は、自身の通信制御装置をBACKUPからMASTERに変更する(ステップS23)。そして、L3SW−Bは、自身の通信制御装置がMASTERに遷移したことを、UDPデータを用いて、L3SW−Aに通知する(ステップS24)。
ARP処理部25は、ARPリクエストをサブネットワークC2に含まれる各ホストに送信する(ステップS25)。各ホストはARPリクエストに対して、IPアドレスおよびMACアドレスを含むARPリプライをL3SW−Bに送信する(ステップS26)。
ARP処理部25はIPアドレスおよびMACアドレスをARPテーブル26に記憶する。ARPテーブル解析部27は、ARPテーブル26をチェックし(ステップS27)、ARPテーブル26が記憶しているIPアドレスに基づいて、サブネットワークC2に含まれるホスト数をUDP処理部23に通知する。
UDP処理部23は、ホスト数情報を含むUDPをL3SW−Aに送信するように、通信部21を制御する。この制御に基づいて、通信部21は、ホスト数情報を含むUDPデータをL3SW−Aに送信する(ステップS28)。
上述したように、L3SW−Aは、L3SW−Bにホスト情報を含むUDPデータを送信する。UDP処理部23は、通信部21がUDPデータを受信したか否かを判定する(ステップS29)。
通信部21がUDPデータを受信しなければ(ステップS29でNO)、UDPデータを受信するまで待機する(ステップS30)。一方、通信部21がUDPデータを受信したときには(ステップS29でYES)、UDPデータ解析部24は、UDPデータに含まれるホスト数情報を解析する。
選択部28は、自身の通信制御装置(L3SW−B)のサブネットワークC2に含まれるホスト数が最多であるか否かを判定する(ステップS31)。選択部28が、最多であると判定した場合(ステップS31でYES)、通信部21はサブネットワークCのサブネットアドレスをサブネットワークDに送信する(ステップS32)。
選択部28が、サブネットワークC1に含まれるホスト数が最多でないと判定した場合(ステップS31でNO)、通信部21は第2の経路情報をサブネットワークDに送信する(ステップS33)。
次に、サブネットワークDに含まれるL3SW−1、L3SW−2およびL3SW−3の処理について、図19の例を参照して説明する。L3SW−2は、L3SW−Aから第1の経路情報または第2の経路情報を受信する。同様に、L3SW−3は、L3SW−Bから第1の経路情報または第2の経路情報を受信する(ステップS41)。
L3SW−2が第1の経路情報を受信したときは、L3SW−3は第2の経路情報を受信する。L3SW−3が第1の経路情報を受信したときは、L3SW−2は第2の経路情報を受信する。
L3SW−2およびL3SW−3は、受信した経路情報を経路情報登録部31に登録する(ステップS42)。そして、L3SW−2およびL3SW−3は、受信した経路情報を他のL3SWにブロードキャストする(ステップS43)。これにより、サブネットワークDの各L3SWは、経路情報登録部31に経路情報を登録することができる。
<障害の復旧の例>
L2SW−1とL2SW−4との間に生じていた障害が解消されると、通信が復旧する。このため、分断されていたサブネットワークC1とサブネットワークC2とは元のサブネットワークCに戻る。また、L3SW−AとL3SW−Bとは、L2SWの経路を介して、相互に通信が可能な状態になる。
図20の例に示すように、L3SW−Aは、BPDUフレームをL3SW−Bに送信する。また、L3SW−Bは、BPDUフレームをL3SW−Aに送信する。BPDUフレームは、優先度情報(プライオリティ)を含む。優先度情報は、例えば、通信制御装置のコンフィギュレーションファイルに設定することができる。
優先度情報は、MASTERになるための優先順位を示す。L3SW−Aは、コンフィギュレーションファイルを参照して、自身の優先度情報を認識する。例えば、優先度情報は自然数で表現してもよい。値が低いほど優先度が高く、値が高いほど優先度が低いようにしてもよい。
例えば、L3SW−Aのコンフィギュレーションファイルには、優先度情報「1」が設定されており、L3SW−Bのコンフィギュレーションファイルには、優先度情報「2」が設定されているとする。
L3SW−Aは、BPDUフレームのプライオリティに値「1」を含める。L3SW−Bは、BPDUフレームのプライオリティに値「2」を含める。L3SW−Aが送信したBPDUフレームは、L3SW−Bが受信する。L3SW−Bが送信したBPDUフレームは、L3SW−Aが受信する。
L3SW−Aは、自身のコンフィギュレーションの優先度情報と受信したBPDUフレームのプライオリティとを比較して、L3SW−Aの優先度が高いことを認識する。よって、L3SW−AはMASTERから変更しない。
L3SW−Bは、自身のコンフィギュレーションの優先度情報と受信したBPDUフレームのプライオリティとを比較して、L3SW−Bの優先度が低いことを認識する。よって、L3SW−Bは自装置の優先度情報をMASTERからBACKUPに変更する。
以上により、障害が解消して、通信が復旧したときに、冗長化されたL3SW−AとL3SW−Bとは、それぞれMASTERとBACKUPとに設定することができる。なお、優先度情報は自然数の値ではなくてもよい。例えば、優先度情報は、MACアドレス等の装置の固有情報に基づくものであってもよい。
<サブネットワーク分断後の通信の一例>
次に、図21の例を参照して、サブネットワーク分断後の通信の一例について説明する。図21のネットワーク構成では、L2SW−1には1つの端末11が接続されている。端末11のIPアドレスは「10.0.0.1」である。L2SW−3には1つの端末16が接続されている。端末16のIPアドレスは、「10.0.0.2」である。L2SW−4には1つの端末14が接続されている。端末14のIPアドレスは「10.0.0.3」である。
図21の例では、サブネットワークCは、サブネットワークC1とサブネットワークC2とに分断されている。端末11はサブネットワークC1に含まれている。端末14および端末16はサブネットワークC2に含まれている。
上述したように、L3SW−Aが送信するBPDUフレームに基づいて、L2SWの経路に障害が発生したことが検出される。L3SW−AおよびL3SW−Bは、それぞれARP処理を行う。L3SW−AのARPテーブル26には端末11のIPアドレスが記憶される。L3SW−BのARPテーブル26には端末14および端末16の2つのIPアドレスが記憶される。
L3SW−Aはホスト情報数を含むUDPデータをL3SW−Bに送信する。L3SW−Bはホスト情報数を含むUDPデータをL3SW−Aに送信する。これにより、L3SW−AおよびL3SW−Bは、サブネットワークC1のホスト数およびサブネットワークC2のホスト数を認識することができる。
L3SW−Aの選択部28は、サブネットワークC1のホスト数がサブネットワークC2のホスト数よりも少ないため、第2の経路情報を選択する。L3SW−Bの選択部28は、サブネットワークC2のホスト数がサブネットワークC1のホスト数よりも多いため、第1の経路情報を選択する。
L3SW−Aの通信部21は、L3SW−2に第2の経路情報を送信する。図21の例では、第2の経路情報は、「10.0.0.1/32」である。このうち、サブネットマスクは「32」である。サブネットマスクが「32」であるため、第2の経路情報が示すIPアドレスは1つになる。つまり、第2の経路情報は、端末11のIPアドレスを示す。
L3SW−Bの通信部21は、L3SW−2に第1の経路情報を送信する。図21の例では、第1の経路情報は、「10.0.0.0/24」である。このうち、サブネットマスクは「24」である。サブネットマスクが「24」であるため、第1の経路情報が示すIPアドレスは「10.0.0.1」〜「10.0.0.254」になる。第1の経路情報は、これらのIPアドレスを含むサブネットアドレスを示す。
L3SW−2は、第2の経路情報が示すIPアドレスを経路情報登録部31に登録する。L3SW−3は、第1の経路情報が示すIPアドレスを経路情報登録部31に登録する。
L3SW−2は、第2の経路情報をサブネットワークDのL3SW−1およびL3SW−3にブロードキャストする。これにより、L3SW−1およびL3SW−3は、第2の経路情報を経路情報登録部31に登録することができる。
L3SW−3は、第1の経路情報をサブネットワークDのL3SW−1およびL3SW−2にブロードキャストする。これにより、L3SW−1およびL3SW−2は、第1の経路情報を経路情報登録部31に登録することができる。
次に、図22を参照して、端末15が端末11にデータを送信する例について説明する。端末11のIPアドレスは、「10.0.0.1」である。よって、端末11は当該IPアドレス宛のデータをL3SW−1に送信する。
図22の例では、L3SW−1、L3SW−2およびL3SW−3のルーティングテーブル(経路情報登録部31)に関する情報が記載されている。L3SW−1が受信した端末11からのデータの宛先のIPアドレスは「10.0.0.1」である。
よって、L3SW−1は、ルーティングテーブルを参照して、当該IPアドレスの次の宛先は、L3SW−2であることを認識する。なお、ルーティングテーブルのうち、GW(Gateway)は次の宛先を示す。L3SW−1は、データをL3SW−2に送信する。
L3SW−2は、ルーティングテーブルを参照して、上記のIPアドレスのデータの宛先がL3SW−4であることを認識する。L3SW−2は、L3SW−Aにデータを送信する。L3SW−4は、L2SW−1にデータを送信する。L2SW−1は、端末11にデータを送信する。従って、端末11は、端末15が送信したデータを受信することができる。
なお、L3SW−1において、IPアドレスが「10.0.0.1」のGWは、L3SW−2およびL3SW−3の両方に該当する。つまり、IPアドレス「10.0.0.1」は、ルーティングテーブルの「宛先10.0.0.1/32」と「宛先10.0.0.0/24」との両者に該当する。
このとき、L3SW−1は、サブネットマスクの値が大きい方を選択して、データの次の宛先を決定する。つまり、L3SW−1はサブネットマスクのマスク幅が大きい方を宛先として決定する。これにより、データの宛先は、L3SW−2になる。
次に、図23を参照して、端末15が端末14宛てにデータを送信する例について説明する。端末15が送信したデータは、L3SW−1が受信する。L3SW−1は、ルーティングテーブルを参照して、次の宛先(GW)を決定する。データの宛先のIPアドレスが「10.0.0.3」であるため、次の宛先はL3SW−3となる。そして、L3SW−1はL3SW−3にデータを送信する。
L3SW−3は、L3SW−1が送信したデータを受信する。L3SW−3は、ルーティングテーブルを参照して、次の宛先(GW)を決定する。データの宛先のIPアドレスは、「10.0.0.3」であるため、次の宛先はL3SW−Bとなる。そして、L3SW−3は、L3SW−Bにデータを送信する。
L3SW−BはL2SW−4にデータを送信する。L2SW−4は、宛先のIPアドレスが「10.0.0.3」であるため、端末14にデータを送信する。従って、端末14は、端末15が送信したデータを受信することができる。
以上のように、端末15が送信したデータは、バックトラックやアドレスの再構成を生じることなく、最短の経路で、相手先の端末に受信される。図22および図23の例の場合、L3SW−Bはサブネットアドレスを送信しているため、サブネットワークDに送信する経路情報を1つ削減することができる。
<変形例>
次に、図24の例を参照して、変形例について説明する。変形例では、サブネットワークDにL3SW−4が追加されている。また、図20の例では、L3SW−AとL3SW−BとL3SW−Cとの3つの通信制御装置が冗長化されている。
また、L3SW−4はL3SW−Cと接続されている。L2SW−1には5台の端末11が接続されている。L2SW−3には6台の端末16が接続されている。L2SW−4には7台の端末16が接続されている。
L3SW−Aの優先度情報は「1」であり、L3SW−Bの優先度情報は「3」であり、L3SW−Cの優先度情報は「2」であるものとする。従って、MASTERになる優先度は、「L3SW−A>L3SW−C>L3SW−B」となる。
ここで、図25の例に示すように、L2SW−3とL2SW−4との間に障害が発生したとする。このため、サブネットワークCは、5台の端末11を含むサブネットワークC1と6台の端末16および7台の端末14を含むサブネットワークC2とに分断される。
サブネットワークC2では、L3SW−CとL3SW−Bとが冗長化されている。L3SW−BとL3SW−Cとは両者ともBACKUPであったため、例えば、L3SW−BおよびL3SW−Cの両者が一時的にMASTERに遷移する。L3SW−BまたはL3SW−Cの何れかは、同一のサブネットワークに属する異なる通信制御装置の一例である。
L3SW−BとL3SW−Cとは、相互にBPDUフレームを通信する。BPDUフレームは優先度情報を含む。上述の場合、L3SW−Cの優先度は、L3SW−Bの優先度よりも高い。よって、L3SW−BはBACKUPに遷移する。
L3SW−Aは、サブネットワークC1の各端末11に対してARP処理を行う。これにより、ARPテーブル26は5台の端末11のIPアドレスを記憶する。ARPテーブル解析部27は、ARPテーブル26に基づいて、サブネットワークC1のホスト数が「5」であることを認識する。
L3SW−Cは、サブネットワークC2の各端末14および各端末16に対してARP処理を行う。これにより、ARPテーブル26は、7台の端末14および6台の端末16のIPアドレスを記憶する。ARPテーブル解析部27は、ARPテーブル26に基づいて、サブネットワークC2のホスト数が「13(=6+7)」であることを認識する。
L3SW−AのUDP処理部23は、通信部21を制御する。この制御に基づいて、通信部21は、L3SW−Cに対して、ホスト数情報を含むUDPデータを送信する。UDPデータは、サブネットワークDを経由して、L3SW−Cが受信する。
L3SW−CのUDP処理部23は、通信部21を制御する。この制御に基づいて、通信部21は、L3SW−Aに対して、ホスト数情報を含むUDPデータを送信する。UDPデータは、サブネットワークDを経由して、L3SW−Aが受信する。
よって、L3SW−Aの選択部28は、サブネットワークC1のホスト数が「5」であり、サブネットワークC2のホスト数が「13」であることを認識する。サブネットワークC1のホスト数がサブネットワークC2のホスト数よりも少ないため、選択部28は、第2の経路情報を選択する。従って、第2の経路情報は、5つのIPアドレスを含む。
L3SW−Aの通信部21は、選択部28が選択した第2の経路情報をサブネットワークDのL3SW−2に送信する。L3SW−2は、経路情報登録部31に5つのIPアドレスを登録し、第2の経路情報をサブネットワークDにブロードキャストする。
L3SW−Cの選択部28も、サブネットワークC1のホスト数が「5」であり、サブネットワークC2のホスト数が「13」であることを認識する。サブネットワークC2のホスト数がサブネットワークC1のホスト数よりも多いため、選択部28は、第1の経路情報を選択する。従って、第1の経路情報は、1つのサブネットアドレスを含む。
L3SW−Cの通信部21は、選択部28が選択した第1の経路情報をサブネットワークDのL3SW−4に送信する。L3SW−4は、経路情報登録部31にサブネットワークC2のサブネットアドレスを登録し、第1の経路情報をサブネットワークDにブロードキャストする。
従って、L3SW−Cは、サブネットワークC2の各端末14および各端末16のIPアドレスではなく、サブネットワークC2のサブネットアドレスを第1の経路情報としてL3SW−4に送信している。これにより、サブネットワークDに送信される経路情報の数を12(=13−1)個削減することができる。
図26は、サブネットワークC3が3つに分断された例を示している。図26のネットワーク構成で、L2SW−1とL2SW−3との間、およびL2SW−3とL2SW−4との間で障害が発生した場合、サブネットワークCは3つに分断される。図26の例では、サブネットワークCは、サブネットワークC1とサブネットワークC2とサブネットワークC3とに分断される。
障害の発生の検出は、L3SW−A、L3SW−BおよびL3SW−CがBPDUフレームを通信することにより検出することができる。L3SW−Aは、ARP処理を行うことで、サブネットワークC1に含まれる端末11の数が5台であることを認識できる。
L3SW−Cは、ARP処理を行うことで、サブネットワークC2に含まれる端末16の数が6台であることを認識できる。L3SW−Bは、ARP処理を行うことで、サブネットワークC3に含まれる端末14の数が7台であることを認識できる。
L3SW−Aの通信部21は、サブネットワークDを経由して、ホスト数情報が「5」を含むUDPデータをL3SW−BおよびL3SW−Cに送信する。L3SW−Bの通信部21は、サブネットワークDを経由して、ホスト数情報が「7」を含むUDPデータをL3SW−AおよびL3SW−Cに送信する。L3SW−Cの通信部21は、サブネットワークDを経由して、ホスト数情報が「6」を含むUDPデータをL3SW−AおよびL3SW−Bに送信する。
従って、L3SW−A、L3SW−BおよびL3SW−Cはそれぞれ、サブネットワークC1、サブネットワークC2およびサブネットワークC3の分断された各サブネットワークに含まれるホストのホスト数情報を認識する。
L3SW−Aの選択部28は、サブネットワークC1のホスト数が最多であるか否かを判定する。上記のように、ホスト数が最も多いサブネットワークはサブネットワークC2である。よって、L3SW−Aの選択部28は、自身のサブネットワークのホスト数が最多でないため、第2の経路情報を選択する。第2の経路情報には、5つの端末11のそれぞれのIPアドレスが含まれる。
L3SW−Bの選択部28は、サブネットワークC2のホスト数が最多であるか否かを判定する。上記のように、ホスト数が最も多いサブネットワークはサブネットワークC2である。よって、L3SW−Aの選択部28は、自身のサブネットワークのホスト数が最多であるため、第1の経路情報を選択する。第1の経路情報には、サブネットワークC3のサブネットアドレスが含まれる。
L3SW−Cの選択部28は、サブネットワークC3のホスト数が最多であるか否かを判定する。上記のように、ホスト数が最も多いサブネットワークはサブネットワークC2である。よって、L3SW−Cの選択部28は、自身のサブネットワークのホスト数が最多でないため、第2の経路情報を選択する。第2の経路情報には、6つの端末11のそれぞれのIPアドレスが含まれる。
L3SW−Aは、第2の経路情報をサブネットワークDのL3SW−2に送信する。L3SW−2は、経路情報登録部31に第2の経路情報に含まれる5つのIPアドレスを登録する。そして、L3SW−2は、第2の経路情報をサブネットワークDにブロードキャストする。
L3SW−Bは、第1の経路情報をサブネットワークDのL3SW−3に送信する。L3SW−3は、経路情報登録部31に第1の経路情報に含まれるサブネットアドレスを登録する。そして、L3SW−3は、第1の経路情報をサブネットワークDにブロードキャストする。
L3SW−Cは、第2の経路情報をサブネットワークDのL3SW−2に送信する。L3SW−2は、経路情報登録部31に第2の経路情報に含まれる6つのIPアドレスを登録する。そして、L3SW−2は、第2の経路情報をサブネットワークDにブロードキャストする。
従って、サブネットワークCが3つに分断されたときには、選択部28は、自身のサブネットワークのホスト数が最多のときに、第1の経路情報を選択し、それ以外の場合は、第2の経路情報を選択する。これにより、サブネットワークDに送信する経路情報の数を削減する効果が高くなる。図26の場合は、6(=7−1)個の経路情報を削減することができる。
<通信制御装置のハードウェア構成の一例>
次に、図27を参照して、通信制御装置のハードウェア構成の一例を説明する。図27の例に示すように、バス100に対して、プロセッサ111とRAM(Random Access Memory)112とROM(Read Only Memory)113と補助記憶装置114と媒体接続部115と通信インタフェース116とが接続されている。
プロセッサ111はCPU(Central Processing Unit)のような任意の処理回路である。プロセッサ111はRAM112に展開されたプログラムを実行する。実行されるプログラムとしては、実施形態の通信制御プログラムを適用することができる。ROM113はRAM112に展開されるプログラムを記憶する不揮発性の記憶装置である。
補助記憶装置114は、種々の情報を記憶する記憶装置であり、例えばハードディスクドライブや半導体メモリ等を補助記憶装置114に適用することができる。媒体接続部115は、可搬型記録媒体117と接続可能に設けられている。
可搬型記録媒体117としては、可搬型のメモリや光学式ディスク(例えば、CD(Compact Disk)やDVD(Digital Versatile Disk)等)を適用することができる。この可搬型記録媒体117に実施形態の通信制御プログラムが記録されていてもよい。
通信インタフェース116は、外部との通信を行うときのインタフェースである。例えば、上述した通信部21は通信インタフェース116により実現されてもよい。また、ARPテーブル26は補助記憶装置114やRAM112に記憶されてもよい。
また、上述したコンフィギュレーションファイルは、ROM113に記憶されていてもよい。図4に示した各部のうち、通信部21およびARPテーブル26以外の各部は、プロセッサ111により実現されてもよい。
RAM112、ROM113および補助記憶装置114は、何れもコンピュータ読み取り可能な有形の記憶媒体の一例である。これらの有形な記憶媒体は、信号搬送波のような一時的な媒体ではない。
<その他>
上述した実施形態では、選択部28は、自身の通信制御装置のサブネットワークのホスト数が他の通信制御装置のサブネットワークのホスト数よりも多ければ、第1の経路情報を選択する。また、選択部28は、自身の通信制御装置のサブネットワークのホスト数が他の通信制御装置のサブネットワークのホスト数よりも少なければ、第2の経路情報を選択する。
選択部28は、自身の通信制御装置のサブネットワークのホスト数と他の通信盛業地のサブネットワークのホスト数とが同じ数の場合には、優先度情報に基づいて、第1の経路情報または第2の経路情報を選択してもよい。
このために、BPDUフレームを通信制御装置間で通信する。これにより、自身の通信制御装置は他の通信制御装置の優先度情報を認識することができる。従って、自身の通信制御装置の優先度が他の通信制御装置の優先度よりも高い場合、選択部28は、第1の経路情報を選択してもよい。また、自身の通信制御装置の優先度が他の通信制御装置の優先度よりも低い場合、選択部28は、第2の経路情報を選択してもよい。
尚、本実施形態は、以上に述べた実施の形態に限定されるものではなく、本実施形態の要旨を逸脱しない範囲内で種々の構成または実施形態を取ることができる。