次に、本発明の実施の形態を実施例に基づいて以下の順序で説明する。
A.第1実施例:
A1.ネットワークシステムの概要:
A2.各装置の構成:
A3.マルチキャスト中継装置1000におけるエントリ管理表T1131の更新処理:
A4.マルチキャスト中継装置1000におけるIGMP制御パケットの中継処理:
A5.マルチキャストルータ2000における複製エントリ表T2430の更新処理:
A6.障害発生前の状態:
A7.障害から復旧した直後の状態:
A8.復旧方法:
A9.比較例におけるエントリ管理表の復旧方法:
B.第2実施例:
C.第3実施例:
D.第4実施例:
E.変形例:
A.第1実施例:
A1.ネットワークシステムの概要:
図1は、本発明の一実施例としてのネットワークシステムの構成を示す説明図である。この図1では、一般的なマルチキャスト通信及びIGMPスヌーピング機能について説明する。本実施例のネットワークシステムは、IGMPスヌーピング機能を実装したマルチキャスト中継装置1000と、マルチキャスト送信者10を収容したマルチキャストルータ2000とを含んでいる。IGMPスヌーピング機能とは、マルチキャスト受信者を判別して、受信要求を行ったマルチキャスト受信者のみにマルチキャスト通信を行う機能である。このため、IGMPスヌーピング機能は、一般的に、複数のマルチキャスト受信者が接続されているマルチキャスト中継装置1000において使用される機能である。
マルチキャストルータ2000には、ポート2001を介して、マルチキャスト送信者10が接続されている。マルチキャスト送信者10は、マルチキャストルータ2000に対して、マルチキャストパケットを配信している(矢印F100)。マルチキャストルータ2000は、マルチキャストプロトコルを使用することによって、マルチキャスト送信者10を収容するVLAN100と、マルチキャスト受信者20,30,40を収容するVLAN101との間においてマルチキャスト通信を行うことが可能である。
なお、一般的に、マルチキャストルータがIGMPクエリアを兼ねることが多い。したがって、本実施例におけるIGMPクエリアは、マルチキャストルータ2000とする。また、一般的に、IGMPスヌーピング機能では、マルチキャストルータと接続されるポートがマルチキャストルータポートとして定義される。したがって、本実施例におけるマルチキャストルータポートは、ポート1001とする。
マルチキャスト中継装置1000におけるIGMPスヌーピング機能は、下流のマルチキャスト受信者20,30,40のマルチキャストグループへの参加状況を、上流のマルチキャストルータ2000に通知するために、マルチキャスト受信者20,30,40から送信される加入要求(IGMP加入要求メッセージ)及び離脱要求(IGMP離脱要求メッセージ)をマルチキャストルータポート1001に中継する。
マルチキャストルータ2000は、マルチキャスト受信者20,30,40から送信されるIGMP加入要求/離脱要求メッセージを受信することにより、下流のマルチキャスト受信者20,30,40を認識し、上流からのマルチキャスト通信を制御することができる。具体的には、例えば、マルチキャスト受信者20,30,40からIGMP加入要求メッセージが送信されていない場合は、マルチキャスト送信者10がマルチキャストパケットを配信し続けている場合(矢印F100)であっても、当該マルチキャストパケットの受信者が存在しないため、当該マルチキャストパケットはどこにも中継されない。
マルチキャスト受信者40がマルチキャスト送信者10から配信されるマルチキャストパケットを受信したい場合には、マルチキャスト受信者40は、加入を希望するマルチキャストグループアドレスを含んだIGMP加入要求メッセージを送信する(矢印F200)。IGMP加入要求メッセージを受信したマルチキャスト中継装置1000は、IGMPスヌーピング機能によってIGMP加入要求メッセージを解析し、当該マルチキャストグループアドレスと、当該IGMP加入要求メッセージを受信したポートに関する情報である受信ポート情報を取得する。マルチキャスト中継装置1000は、取得したマルチキャストグループアドレスと受信ポート情報とに基づいて、マルチキャストパケットの中継先を定めるマルチキャストパケット中継制御表を設定する。このマルチキャストパケット中継制御表は、図示しないメモリに格納されている。以下に説明する他のテーブルについても同様である。
また、マルチキャスト中継装置1000は、受信したIGMP加入要求メッセージを、マルチキャストルータポート1001を介してマルチキャストルータ2000に中継する(矢印F201)。マルチキャストルータ2000は、中継されたIGMP加入要求メッセージを受信すると、VLAN100とVLAN101との間でマルチキャスト中継を行う。すなわち、マルチキャストルータ2000は、VLAN100のマルチキャスト送信者10から送信されるマルチキャストパケットをVLAN101に中継する。VLAN101に中継されたマルチキャストパケットは、マルチキャスト中継装置1000に設定されたマルチキャストパケット中継制御表に基づいて、マルチキャスト受信者40のみに中継される(矢印F101)。
なお、本実施例ではマルチキャストルータ2000がIGMPクエリアであるため、マルチキャストルータ2000は、一般的に125秒周期で、IGMP問い合わせメッセージを送信する。マルチキャスト中継装置1000は、IGMP問い合わせメッセージを受信すると、当該IGMP問い合わせメッセージを、VLAN内にフラッディングする。
各マルチキャスト受信者は、IGMP問い合わせメッセージを受信すると、加入しているマルチキャストグループに対してIGMP加入要求メッセージを送信する。IGMPクエリアであるマルチキャストルータ2000が周期的にIGMP問い合わせメッセージを配信し、各マルチキャスト受信者が応答することで、マルチキャストルータ2000は、マルチキャスト受信者のグループ参加状況を監視することが出来る。
図2は、マルチキャスト中継装置1000が障害から復旧した場合に、障害発生前のマルチキャスト中継制御表を復旧させるための処理を示す説明図である。マルチキャスト中継装置1000に障害が発生し、その後に復旧すると、マルチキャスト中継制御表は、初期化された状態となる。本実施例では、マルチキャスト中継装置1000は、マルチキャスト中継制御表を迅速に復旧させるために、マルチキャスト中継制御表の複製を、隣接する装置(本実施例ではマルチキャストルータ2000)に作成しておく。そして、マルチキャスト中継装置1000は、障害から復旧すると、マルチキャストルータ2000に作成されたマルチキャスト中継制御表の複製に基づいて、自身のマルチキャスト中継制御表を復旧させる。
具体的には、マルチキャスト中継装置1000は、各マルチキャスト受信者から送信されたIGMP加入要求/離脱要求メッセージ(矢印F215、矢印F216、矢印F217)に、マルチキャスト中継制御表の複製を生成するために用いられる情報(以下では、「付加情報」ともいう)を追加する。マルチキャスト中継装置1000は、IGMPスヌーピング処理に従い、付加情報が追加されたIGMP加入要求/離脱要求メッセージを、マルチキャストルータポート1001を介してマルチキャストルータ2000に中継する。
マルチキャストルータ2000は、付加情報が追加されたIGMP加入要求/離脱要求メッセージに基づいて、マルチキャスト中継装置1000のマルチキャストパケット中継制御表の複製である複製エントリ表T2430を作成する。なお、本明細書において「複製」とは、複製対象物の完全な複製だけでなく、複製対象物を元の状態に復元することができる情報を含むものも意味する。
マルチキャスト中継装置1000に障害が発生し、その後に障害から復旧すると、マルチキャスト中継装置1000におけるマルチキャスト中継制御表のエントリが初期化される。そこで、マルチキャスト中継装置1000は、障害から復旧した後に、マルチキャストルータ2000に対して、複製エントリ表T2430のエントリを要求する(矢印F218)。
マルチキャストルータ2000は、マルチキャスト中継装置1000からの要求に対して、複製エントリ表T2430のエントリを速やかに応答する(矢印F219)。マルチキャスト中継装置1000は、応答された複製エントリ表T2430のエントリに基づいて、障害発生前のマルチキャストパケット中継制御表のエントリを再製する。
このようにすれば、障害発生前のマルチキャストパケット中継制御表のエントリを速やかに再製することができ、マルチキャスト通信を速やかに再開することができる。また、後述する比較例と比べて、マルチキャスト中継装置1000に応答されるIGMP加入要求メッセージも最小限に抑えることができるため、通信帯域の圧迫も軽減することができる。
また、マルチキャストパケット中継制御表は、加入要求メッセージ又は離脱要求メッセージによって更新されるため、付加情報を加入要求メッセージ又は離脱要求メッセージに追加して中継すれば、マルチキャストパケット中継制御表の複製である複製エントリ表T2430の更新を、マルチキャストパケット中継制御表の更新と同期させることができる。以下では、各装置の構成及び動作の詳細について説明する。
A2.各装置の構成:
図3は、マルチキャスト中継装置1000の内部構成を示す説明図である。マルチキャスト中継装置1000は、装置構成定義部1200と、IGMPスヌーピング処理部1100と、マルチキャストパケット中継処理部1300と、4つのポート1001,1002,1003,1004とを備えている。なお、マルチキャスト中継装置1000は、図示しないCPUや、ROM、RAM等を備えており、RAMに展開されたプログラムをCPUが読み込んで実行することにより、内部に示された機能を実行することができる。以下に説明する他の装置においても同様である。
装置構成定義部1200は、VLAN情報D1210と、IGMPスヌーピング情報D1220とを格納している。装置構成定義部1200に格納されたVLAN情報D1210及びIGMPスヌーピング情報D1220は、外部から設定することが可能である。
VLAN情報D1210には、マルチキャスト中継装置1000に設定されているVLANの名称であるVLAN名称と、当該VLANに設定されているIPアドレスと、当該VLANに属するポート情報とが含まれる。なお、VLAN名称は、VLANを識別するためのものであるため、VLAN番号等のように、VLANが識別できるものであればよい。
IGMPスヌーピング情報D1220には、IGMPスヌーピング機能が使用されるVLANのVLAN名称と、マルチキャストルータポート情報と、複製エントリ表の作成対象(以下では、「複製エントリ対象」ともいう)のVLANであるか否かを判定するための複製エントリ情報とが含まれる。
IGMPスヌーピング処理部1100は、IGMPスヌーピング機能を実現するための処理部であり、VLAN管理部1110と、制御パケット送受信処理部1120と、IGMPスヌーピングエントリ生成部1130とを備えている。制御パケット送受信処理部1120の内部には、マルチキャストルータ2000に中継されるIGMP加入要求/離脱要求メッセージに付加情報を追加する付加情報処理部が設けられている。エントリ生成部1130は、IGMPスヌーピング機能を実現するためのエントリ管理表T1131(中継制御情報)を生成する。
マルチキャストパケット中継処理部1300は、マルチキャストパケットの中継処理及びIGMP制御パケット(IGMP加入要求/離脱要求メッセージ)の受信処理を行う。マルチキャストパケット中継処理部1300は、VLAN登録票T1310と、マルチキャストパケット中継制御表T1320とを備えている。
装置構成定義部1200に対してVLAN情報D1210及びIGMPスヌーピング情報D1220が外部から設定されると、IGMPスヌーピング処理部1100は、装置構成定義部1200からVLAN情報D1210及びIGMPスヌーピング情報D1220を取得し(矢印F300,矢印F301)、VLAN管理部1110内のVLAN管理表T1111に登録する。
VLAN情報D1210及びIGMPスヌーピング情報D1220がVLAN管理表T1111に登録されると、IGMPスヌーピング処理部1100は、マルチキャストパケット中継処理部1300に対して、VLAN管理表T1111の内容を通知し、マルチキャストパケット中継処理部1300内のVLAN登録表T1310に登録する(矢印F302)。すなわち、VLAN登録票T1310の内容は、VLAN管理表T1111の内容と同じである。
マルチキャストパケット中継処理部1300は、VLAN登録表T1310に登録されているVLANから、IGMP制御パケット(IGMP加入要求/離脱要求/問い合わせメッセージ)を受信すると、当該IGMP制御パケットを、IGMPスヌーピング処理部1100内の制御パケット送受信処理部1120に通知する。
なお、装置構成定義部1200のIGMPスヌーピング情報D1220が更新され、VLAN管理表T1111にIGMPスヌーピング機能を使用するVLANが新たに追加された場合は、IGMPスヌーピング処理部1100は、マルチキャストパケット中継処理部1300に対して、当該追加されたVLANを通知し、マルチキャストパケット中継処理部1300内のVLAN登録表T1310に登録する(矢印F302)。
この場合にも、マルチキャストパケット中継処理部1300は、当該追加されたVLANからIGMP制御パケットを受信すると、当該IGMP制御パケットをIGMPスヌーピング処理部1100内の制御パケット送受信処理部1120に通知する。IGMPスヌーピング処理部1100における処理については後述する。
図4は、マルチキャスト中継装置1000に設定された各種情報及びテーブルの内容を示す説明図である。図4(A)は、VLAN情報D1210の一例を示す説明図である。VLAN情報D1210には、マルチキャスト中継装置1000に設定されているVLANに関する情報が設定される。このVLAN情報D1210には、VLAN名称と、IPアドレスと、ポート情報とが含まれる。この図4(A)に示した例では、VLAN情報D1210のVLAN名称フィールド1211には「VLAN101」が設定され、IPアドレスフィールド1212にはVLAN101に設定されたアドレスである「IP_addr1」が設定され、ポート情報フィールド1213にはVLAN101に属するポートである「1001,1002,1003,1004」が設定されている。
図4(B)は、IGMPスヌーピング情報D1220の一例を示す説明図である。IGMPスヌーピング情報D1220には、IGMPスヌーピングを使用するVLANの情報が設定される。このIGMPスヌーピング情報D1220には、VLAN名称と、マルチキャストルータポートと、複製エントリ情報とが含まれる。この図4(B)に示した例では、VLAN名称フィールド1221には「VLAN101」が設定され、マルチキャストルータポートフィールド1222にはマルチキャストルータ2000が接続されているポートである「1001」が設定され、複製エントリ情報フィールド1223には、複製エントリ対象であることを示す「YES」が設定されている。
図4(C)は、VLAN管理表T1111の一例を示す説明図である。VLAN管理表T1111は、VLAN情報D1210及びIGMPスヌーピング情報D1220に基づいて作成される。この図4(C)に示した例では、VLAN名称フィールド1112には「VLAN101」が設定され、IPアドレスフィールド1113には「IP_addr1」が設定され、ポート情報フィールド1114には「1001,1002,1003,1004」が設定され、マルチキャストルータポートフィールド1115には「1001」が設定され、複製エントリ情報フィールド1223には、「YES」が設定されている。
図4(D)は、エントリ管理表T1131の一例を示す説明図である。エントリ管理表T1131には、VLAN名称と、マルチキャストグループアドレスと、ポート情報とが含まれている。この図4(D)に示した例では、VLAN名称フィールド11311には「VLAN101」が設定され、マルチキャストグループアドレスフィールド11312には「G1」が設定され、ポート情報フィールド11313には「1004」が設定されている。この場合には、マルチキャストパケット中継処理部1300は、マルチキャストグループアドレス「G1」宛てのマルチキャストパケットを、ポート1004に接続されているマルチキャスト受信者40にのみ中継する。
図5は、マルチキャストルータ2000の内部構成を示す説明図である。マルチキャストルータ2000は、装置構成定義部2100と、マルチキャストプロトコル処理部2200と、マルチキャストパケット中継処理部2300と、複製エントリ処理部2400とを備えている。
装置構成定義部2100は、マルチキャスト情報D2110と、複製エントリ生成情報D2120とを格納している。装置構成定義部2100に格納されたマルチキャスト情報D2110及び複製エントリ生成情報D2120は、外部から設定することが可能である。
複製エントリ生成情報D2120には、複製エントリ表T2430を生成する対象となるVLANのVLAN名称と、複製エントリ対象であるマルチキャスト中継装置のVLANに設定されたIPアドレスと、複製エントリ対象であるマルチキャスト中継装置が接続されているポート情報とが含まれる。
マルチキャストプロトコル処理部2200は、装置構成定義部2100に格納されているマルチキャスト情報D2110から、マルチキャストを使用するVLAN情報を取得し、当該VLAN情報をマルチキャストパケット中継処理部2300内のVLAN登録表T2310に登録する。これにより、マルチキャストパケット中継処理部2300は、当該VLANからIGMP制御パケットを受信すると、当該IGMP制御パケットを、マルチキャストプロトコル処理部2200に通知する。
複製エントリ処理部2400は、複製エントリ管理表T2410と、制御パケット送受信処理部2420と、複製エントリ表T2430とを備えている。複製エントリ処理部2400は、装置構成定義部2100から複製エントリ生成情報D2120を取得し、複製エントリ管理表T2410に登録する(矢印F316)。したがって、複製エントリ管理表T2410の内容は、複製エントリ生成情報D2120の内容と同じである。
複製エントリ処理部2400は、複製エントリ生成情報D2120から、複製エントリ対象のVLANを取得すると、取得したVLANをマルチキャストパケット中継処理部2300内のVLAN登録表T2310に登録する(矢印F317)。
マルチキャストパケット中継処理部2300は、VLAN登録表T2310に登録されているVLANから、IGMP加入要求/離脱要求メッセージを受信すると、複製エントリ処理部2400に通知する。IGMP加入要求/離脱要求メッセージを受信した場合における複製エントリ処理部2400の処理については、後述する。
マルチキャストパケット中継処理部2300は、ポート2002からIGMP加入要求メッセージを受信すると、当該IGMP加入要求メッセージを、マルチキャストプロトコル処理部2200に通知する(矢印F201)。
マルチキャストプロトコル処理部2200は、IGMP加入要求メッセージの通知を受けると、マルチキャスト経路計算を行う。マルチキャストプロトコル処理部2200は、算出したマルチキャスト経路をマルチキャストパケット中継制御表T2320に登録する。これにより、マルチキャストパケット中継処理部2300は、マルチキャストパケットをVLAN100からVLAN101に中継することができる(矢印F101)。ここでのマルチキャスト経路の作成処理については説明を省略する。
以上の処理により、マルチキャスト送信者10から配信されたマルチキャストパケットは、マルチキャストルータ2000及びマルチキャスト中継装置1000に中継され、マルチキャスト中継装置1000のマルチキャストパケット中継制御表1320に登録されたIGMPスヌーピングエントリによって、IGMP加入要求メッセージを送信したマルチキャスト受信者のみに中継されることとなる。
図6は、マルチキャストルータ2000に設定された各種情報及びテーブルの内容を示す説明図である。図6(A)は、複製エントリ生成情報D2120の一例を示す説明図である。この図6に示した例では、複製エントリ生成情報D2120のVLAN名称フィールド2121には複製エントリ対象のVLANである「VLAN101」が設定され、IPアドレスフィールド2122には複製エントリ対象のマルチキャスト中継装置1000のVLAN101に設定されたIPアドレスである「IP_addr1」が設定され、ポート情報フィールド2123には複製エントリ対象のマルチキャスト中継装置1000が接続されているポートである「2002」が設定されている。
図6(B)は、複製エントリ管理表T2410の一例を示す説明図である。複製エントリ管理表T2410の内容は、上述した複製エントリ生成情報D2120と同じ内容である。
図6(C)は、複製エントリ表T2430の一例を示す説明図である。この図6(C)に示した例では、VLAN名称フィールド2431には「VLAN101」が設定され、IPアドレスフィールド2432にはマルチキャスト中継装置1000のVLAN101に設定されたIPアドレスである「IP_addr1」が設定されている。マルチキャストグループアドレスフィールド2433には受信者40が加入したマルチキャストグループのマルチキャストグループアドレスである「G1」が設定され、ポート情報フィールド2434にはIGMP加入要求メッセージの付加情報から取得されたマルチキャスト中継装置1000のポートである「1004」が設定されている。なお、複製エントリ表T2430の作成方法及び利用方法については後述する。
後述するように、マルチキャスト中継装置1000は、付加情報が追加されたIGMP加入要求/離脱要求メッセージを、マルチキャストルータポートに中継する。したがって、マルチキャストルータ2000は、マルチキャスト中継装置1000の中継制御情報(エントリ管理表T1131の内容)と同じ内容の中継制御情報(複製エントリ表T2430の内容)を作成することができる。
A3.マルチキャスト中継装置1000におけるエントリ管理表T1131の更新処理:
マルチキャスト中継装置1000は、IGMP制御パケットのうち、IGMP加入要求メッセージ又はIGMP離脱要求メッセージを受信すると、エントリ管理表T1131の更新処理(中継制御情報の更新処理)を行なう。以下では、エントリ管理表T1131の更新処理について説明する。
図7は、マルチキャスト中継装置1000がIGMP加入要求メッセージを受信した場合における処理を示すフローチャートである。マルチキャスト中継装置1000がマルチキャスト受信者からIGMP加入要求メッセージを受信すると(ステップS6100)、制御パケット送受信処理部1120は、当該IGMP加入要求メッセージを解析し、マルチキャストグループアドレス及び受信ポートを取得する(ステップS6101)。取得されたマルチキャストグループアドレス及び受信ポートは、エントリ生成部1130に通知される。
エントリ生成部1130は、取得されたマルチキャストグループアドレスをキーとしてエントリ管理表T1131を検索し(ステップS6102)、当該マルチキャストグループアドレスに一致するエントリが存在するか否かを判定する(ステップS6103)。
エントリ生成部1130は、取得されたマルチキャストグループアドレスに一致するエントリが存在した場合(ステップS6103:Yes)は、取得されたポートが当該エントリに既に登録済みか否かを判定する。(ステップS6105)。
当該ポートが既に登録済みであった場合(ステップS6105:Yes)は、エントリ生成部1130は、処理を終了する(ステップS6108)。当該ポートが登録済みでない場合は、エントリ生成部1130は、当該ポートを、当該エントリのポート情報フィールド11313に追加する(ステップS6106)。
一方、取得されたマルチキャストグループアドレスに一致するエントリが存在しなかった場合(ステップS6103:No)は、エントリ生成部1130は、取得されたマルチキャストグループのエントリをエントリ管理表T1131に新規作成し(ステップS6104)、取得されたポートをエントリ管理表1131のポート情報フィールド11313に登録する(ステップS6106)。
以上のようにしてエントリ管理表T1131が更新されると、エントリ生成部1130は、更新されたエントリを、マルチキャストパケット中継処理部1300に通知する(ステップS6107)。
図8は、マルチキャスト中継装置1000がIGMP離脱要求メッセージを受信した場合における処理を示すフローチャートである。マルチキャスト中継装置1000がマルチキャスト受信者からIGMP離脱要求メッセージを受信すると(ステップS6200)、制御パケット送受信処理部1120は、当該IGMP離脱要求メッセージを解析し、マルチキャストグループアドレス及び受信ポートを取得する(ステップS6201)。
エントリ生成部1130は、取得されたマルチキャストグループアドレスをキーとしてエントリ管理表T1131を検索し(ステップS6202)、当該されたマルチキャストグループアドレスに一致するエントリが存在するか否かを判定する(ステップS6203)。
取得されたマルチキャストグループアドレスに一致するエントリが存在しなかった場合(ステップS6203:No)は、エントリ生成部1130は、処理を終了する(ステップS6204)。一方、取得されたマルチキャストグループアドレスに一致するエントリが存在した場合(ステップS6203:Yes)は、エントリ生成部1130は、取得されたポートが登録されているか否かを判定する(ステップS6205)。当該ポートが登録されていなかった場合(ステップS6205:No)は、エントリ生成部1130は、処理を終了する(ステップS6206)。
一方、当該ポートが登録されていた場合(ステップS6205:Yes)は、エントリ生成部1130は、当該ポートが最後のポートか否かを判定する(ステップS6207)。当該ポートが最後のポートの場合(ステップS6207:Yes)は、エントリ管理表T1131から当該マルチキャストグループアドレスのエントリ自体を削除する(ステップS6208)。当該ポートが最後のポートでなかった場合(ステップS6207:No)は、当該エントリのポート情報フィールド11313から、当該ポートを削除する(ステップS6209)。
以上のようにしてエントリ管理表1131が更新されると、エントリ生成部1130は、更新されたエントリをマルチキャストパケット中継処理部1300に通知する(ステップS6210)。
以上説明したマルチキャスト中継装置1000におけるIGMP加入要求/離脱要求メッセージの受信処理について、具体例を挙げて説明する。
図9は、マルチキャスト中継装置1000がマルチキャスト受信者40からIGMP加入要求メッセージを受信した場合における処理の流れを示す説明図である。このとき、マルチキャスト受信者40が加入を要求するマルチキャストグループのマルチキャストグループアドレスは、「G1」とする。
マルチキャスト受信者40がIGMP加入要求メッセージを送信すると、マルチキャスト中継装置1000は、マルチキャスト受信者40が接続されているポート1004から当該IGMP加入要求メッセージを受信する(矢印F200)。マルチキャストパケット中継処理部1300のVLAN登録票T1310にはVLAN101が登録されているため、VLAN101から受信されたIGMP加入要求メッセージは、IGMPスヌーピング処理部1100内の制御パケット送受信処理部1120に通知される(矢印F200)。
制御パケット送受信処理部1120は、通知されたIGMP加入要求メッセージを解析し、マルチキャストグループアドレスと受信ポートを取得する。制御パケット送受信処理部1120は、取得したマルチキャストグループアドレスと、取得した受信ポートと、当該IGMP加入要求メッセージを受信したVLANのVLAN名称を、エントリ生成部1130に通知する(矢印F303)。
エントリ生成部1130は、通知されたマルチキャストグループアドレスと、受信ポートと、VLAN名称を、エントリ管理表T1131に登録する。エントリ生成部1130は、エントリ管理表T1131に登録されたVLAN名称と、マルチキャストグループアドレスと、受信ポートをマルチキャストパケット中継処理部1300に通知し(矢印F304)、通知した内容をマルチキャストパケット中継制御表T1320に登録する。
以上の処理により、マルチキャストパケット中継処理部1300は、マルチキャストパケット中継制御表T1320に登録されたVLANからマルチキャストパケットを受信すると、登録されたマルチキャストグループアドレスに一致するマルチキャストパケットを、マルチキャストパケット中継制御表T1320の当該エントリに登録されたポートのみに中継する(矢印F101)。
図10は、エントリ管理表T1131が更新される様子を示す説明図である。図10(A)は、マルチキャスト受信者40が接続されているポート1004から、IGMP加入要求メッセージを受信した場合におけるエントリ管理表T1131を示している。図10(A)に示すように、エントリ管理表T1131のVLAN名称フィールド11311には「VLAN101」が登録されており、マルチキャストグループアドレスフィールド11312には「G1」が登録されており、ポート情報フィールド11313にはマルチキャスト受信者40が接続されているポートである「1004」が登録されている。
図10(B)〜図10(D)は、マルチキャスト中継装置1000がIGMP加入要求メッセージ又はIGMP離脱要求メッセージをさらに受信した場合におけるエントリ管理表T1131を示している。詳細については後述する。
次に、マルチキャスト中継装置1000が、同じマルチキャストグループアドレス「G1」に対するIGMP加入要求メッセージを別のポートから受信した場合の処理について説明する。
図11は、マルチキャスト中継装置1000がマルチキャスト受信者30からIGMP加入要求メッセージを受信した場合における処理の流れを示す説明図である。マルチキャスト中継装置1000は、マルチキャスト受信者30が接続されているポート1003からIGMP加入要求メッセージを受信すると、上述した場合と同様に、受信したIGMP加入要求メッセージに基づいて、エントリ管理表T1131の更新を行う。
具体的には、制御パケット送受信処理部1120は、受信したIGMP加入要求メッセージを解析し、マルチキャストグループアドレスと、受信ポートを取得する(矢印F202)。制御パケット送受信処理部1120は、取得したマルチキャストグループアドレスと、取得した受信ポート番号と、当該IGMP加入要求メッセージを受信したVLANのVLAN名称を、エントリ生成部1130に通知する(矢印F305)。
エントリ生成部1130は、取得したマルチキャストグループアドレスをキーとしてエントリ管理表T1131を検索し、同じマルチキャストグループアドレスが当該VLANにおいて登録されているか判定する。この図11に示す例では、既にポート1004からのIGMP加入要求メッセージを受信した場合において当該マルチキャストグループアドレスがエントリ管理表T1131に登録されているので、エントリ生成部1130は、取得された受信ポートである「1003」を当該マルチキャストグループアドレスにおけるポート情報フィールド11313に追加する。
エントリ生成部1130は、更新されたエントリ管理表T1131のエントリを、マルチキャストパケット中継処理部1300に通知し、マルチキャストパケット中継制御表1320に登録する(矢印F306)。
以上のようにしてエントリ管理表T1131が更新されると、当該マルチキャストグループ宛のマルチキャストパケットは、ポート1003,1004に中継されることになる(矢印F101)。更新されたエントリ管理表T1131を図10(B)に示す。ポート情報フィールド11313には、取得した受信ポートである「1003」が追加されている。
次に、マルチキャスト中継装置1000がマルチキャスト受信者からIGMP離脱要求メッセージを受信した場合におけるエントリ管理表1131の更新処理について説明する。
図12は、マルチキャスト中継装置1000がマルチキャスト受信者30からIGMP離脱要求メッセージを受信した場合における処理の流れを示す説明図である。マルチキャスト中継装置1000がIGMP離脱要求メッセージを受信する前の状態では、ポート1003,1004にマルチキャスト受信者30,40が存在するので、マルチキャストパケットは、ポート1003,1004に中継される。
マルチキャスト中継装置1000は、マルチキャスト受信者30が接続されているポート1003からIGMP離脱要求メッセージを受信すると、IGMP加入要求メッセージを受信した場合と同様に、当該IGMP離脱要求メッセージを、制御パケット送受信処理部1120に通知する(矢印F203)。
制御パケット送受信処理部1120は、受信したIGMP離脱要求メッセージを解析し、マルチキャストグループアドレスと、受信ポートと、VLAN名称とを取得する。制御パケット送受信処理部1120は、取得したマルチキャストグループアドレスと、取得した受信ポートと、取得したVLAN名称をエントリ生成部1130に通知する(矢印F307)。
エントリ生成部1130は、エントリ管理表T1131を検索し、受信したVLANのエントリにおいて当該マルチキャストグループアドレスが登録済みか否かを判定し、登録済みの場合は、当該エントリのポート情報フィールドから、取得した受信ポートを削除する。そして、エントリ生成部1130は、更新されたエントリ管理表T1131のエントリを、マルチキャストパケット中継処理部1300に通知し、マルチキャストパケット中継制御表1320に登録する(矢印F308)。
以上の処理により、当該マルチキャストグループ宛のマルチキャストパケットは、ポート1004のみに中継されることになる(矢印F101)。更新されたエントリ管理表T1131を図10(C)に示す。ポート情報フィールド11313には、取得された受信ポートである「1003」が削除され、「1004」のみになっている。
次に、最後のマルチキャスト受信者からIGMP離脱要求メッセージを受信した場合の処理について説明する。
図13は、マルチキャスト中継装置1000がマルチキャスト受信者40からIGMP離脱要求メッセージを受信した場合における処理の流れを示す説明図である。IGMP離脱要求メッセージを受信する前の状態では、ポート1004にマルチキャスト受信者40が存在するので、マルチキャストパケットは、ポート1004に中継される。
マルチキャスト中継装置1000は、マルチキャスト受信者40が接続されているポート1004からIGMP離脱要求メッセージを受信すると、上述した場合と同様に、当該IGMP離脱要求メッセージを、制御パケット送受信処理部1120に通知する(矢印F204)。
制御パケット送受信処理部1120は、受信したIGMP離脱要求メッセージを解析し、マルチキャストグループアドレスと、受信ポートと、VLAN名称とを取得する。制御パケット送受信処理部1120は、取得したマルチキャストグループアドレスと、取得した受信ポート番号と、取得したVLAN名称をエントリ生成部1130に通知する(矢印F309)。
エントリ生成部1130は、エントリ管理表T1131を検索し、受信したVLANにおいて当該マルチキャストグループアドレスが登録済みか否かを判定する。登録済みの場合であり、かつ、当該ポートが最後のポートである場合は、エントリごと削除する。そして、エントリ生成部1130は、削除されたエントリを、マルチキャストパケット中継処理部1300に通知し、マルチキャストパケット中継制御表T1320からも当該エントリを削除する(矢印F310)。
以上の処理により、当該マルチキャストグループ宛のマルチキャストパケットは、マルチキャストパケット中継制御表T1320に登録されていないので、どこにも中継されない(矢印F101)。更新されたエントリ管理表T1131を図10(D)に示す。マルチキャスト受信者がいなくなったので、エントリ自体が削除されている。
A4.マルチキャスト中継装置1000におけるIGMP制御パケットの中継処理:
マルチキャスト中継装置1000は、IGMP加入要求/離脱要求メッセージを受信すると、上述したエントリ管理表T1131の更新処理を行うとともに、当該IGMP加入要求/離脱要求メッセージに付加情報を追加して、マルチキャストルータ2000に中継する。また、マルチキャスト中継装置1000は、IGMP問い合わせメッセージを受信すると、VLAN内のポートに対して当該問い合わせメッセージを中継(フラッディング)する。以下では、マルチキャスト中継装置1000におけるIGMP制御パケットの中継処理について説明する。
図14は、マルチキャスト中継装置1000における制御パケットの中継処理を示すフローチャートである。マルチキャストパケット中継処理部1300は、IGMP制御パケットをVLAN内のポートから受信すると(ステップS6300)、当該IGMP制御パケットに含まれる「種別」を参照し(ステップS6301)、パケットの種別を判定する(ステップS6302)。
受信した制御パケット種別がIGMP問い合わせメッセージであった場合は(ステップS6302:Yes)、制御パケット送受信処理部1120は、当該IGMP問い合わせメッセージを受信したVLANをVLAN管理表T1111から検索し、受信ポートを除くVLAN内の全ポート番号を取得する(ステップS6304)。制御パケット送受信処理部1120は、取得したポート番号に該当するポートに対して、IGMP問い合わせメッセージを中継する(ステップS6305)。
一方、受信した制御パケットの種別がIGMP加入要求メッセージまたはIGMP離脱要求メッセージであった場合は(ステップS6302:No)、制御パケット送受信処理部1120は、VLAN管理表T1111を参照し(ステップS6306)、当該IGMP加入要求メッセージまたはIGMP離脱要求メッセージを受信したVLANが複製エントリ対象か否かを判定する(ステップS6307)。
当該VLANが複製エントリ対象であった場合(ステップS6307:Yes)は、制御パケット送受信処理部1120は、当該制御パケットがIGMP加入要求メッセージであるか否かを判定する(ステップS6308)。当該制御パケットがIGMP加入要求メッセージである場合(ステップS6308:Yes)は、制御パケット送受信処理部1120は、IGMP加入要求メッセージの付加情報に含まれるVLAN_IPアドレスが、受信VLANのIPアドレスと一致するか否かを判定する(ステップS6309)。なお、付加情報のVLAN_IPアドレスについては、後述する。
IPアドレスが一致した場合(ステップS6309:Yes)は、後述する障害復旧時にマルチキャストルータ2000から配信されたパケットであり、本マルチキャスト中継装置でのみ有効なIGMP加入要求メッセージであるため、当該IGMP加入要求メッセーじをどこにも中継せずに、処理を終了する(ステップS6310)。
一方、IPアドレスが一致しないIGMP加入要求メッセージの場合(ステップS6309:No)、またはIGMP離脱要求メッセージの場合(ステップS6308:No)は、制御パケット送受信処理部1120は、当該パケットを解析し、受信ポート番号を取得する(ステップS6311)。付加情報処理部1121は、取得した受信ポート及び当該VLANのIPアドレスを、付加情報として、当該パケットに設定する(ステップS6312)。
一方、当該VLANが複製エントリ対象で無い場合(ステップS6307:No)は、付加情報処理部1121は、当該パケットに付加情報を設定しない。そして、制御パケット送受信処理部1120は、当該IGMP加入要求メッセージまたはIGMP離脱要求メッセージを受信したVLANをVLAN管理表1111から検索し、当該VLAN内のマルチキャストルータポート番号を取得する(ステップS6303)。制御パケット送受信処理部1120は、マルチキャストルータポート1001に対して、当該IGMP加入要求メッセージまたはIGMP離脱要求メッセージを送信する(ステップS6305)。
図15は、付加情報が追加されたIGMP加入要求/離脱要求メッセージのフォーマットを示す説明図である。付加情報処理部1121は、付加情報として、通常のIGMP加入要求/離脱要求メッセージのヘッダに、VLAN_IPアドレスと、ポート数と、ポート番号とを追加する。付加情報処理部1121は、VLAN_IPアドレスエリアには複製エントリ対象のVLANに設定されたIPアドレスを設定し、ポート数及びポート番号エリアには、当該マルチキャストグループに加入しているポート情報を設定する。ポート数が複数の場合は、ポート数エリアに当該ポート数を設定し、当該ポートの数だけポート番号を繰り返して設定することができる。なお、「Type」は、IGMP制御パケットの「種別」を表している。
図16は、マルチキャスト中継装置1000におけるIGMP加入要求メッセージの中継処理の流れを示す説明図である。マルチキャストパケット中継処理部1300は、ポート1004からIGMP加入要求メッセージを受信すると、当該IGMP加入要求メッセージを制御パケット送受信処理部1120に通知する(矢印F217)。制御パケット送受信処理部1120は、当該IGMP加入要求メッセージを受信したVLANをVLAN管理表1111から検索し、当該VLANのマルチキャストルータポート番号を取得するとともに、VLAN管理表T1111に含まれる複製エントリ情報D1116を検索して、当該IGMP加入要求メッセージを受信したVLANが複製エントリ対象となっているか否かを判定する(矢印F315)。
当該VLANが複製エントリの対象になっている場合には、制御パケット送受信処理部1120内の付加情報処理部1121は、マルチキャスト中継装置1000の当該VLANのIPアドレスである「IP_addr1」及びマルチキャスト中継装置1000における受信ポートである「1004」を当該IGMP加入要求メッセージに付加する。制御パケット送受信処理部1120は、付加情報が追加されたIGMP加入要求メッセージを、取得されたマルチキャストルータポート1001宛に中継する(矢印F220)。
なお、本実施例では、複製エントリ対象の装置(マルチキャスト中継装置1000)を判別するために、当該装置のVLANに設定されているIPアドレスを付加しているが、複製エントリ対象の装置を判別できるのであれば、当該装置のVLANに設定されているIPアドレスに限らず、VLAN名称等であってもよい。
図17は、マルチキャスト中継装置1000におけるIGMP離脱要求メッセージの中継処理の流れを示す説明図である。マルチキャストパケット中継処理部1300は、ポート1003からIGMP離脱要求メッセージ受信すると、IGMP加入要求メッセージを受信した場合と同様に、当該IGMP離脱要求メッセージを制御パケット送受信処理部1120に通知する(矢印F203)。制御パケット送受信処理部1120は、当該IGMP加入要求メッセージを受信したVLANをVLAN管理表1111から検索し、当該VLANのマルチキャストルータポート番号を取得するとともに、VLAN管理表T1111に含まれる複製エントリ情報D1116を検索して、当該IGMP離脱要求メッセージを受信したVLANが複製エントリ対象となっているか否かを判定する(矢印F312)。
当該VLANが複製エントリの対象になっている場合には、制御パケット送受信処理部1120内の付加情報処理部1121は、マルチキャスト中継装置1000の当該VLANのIPアドレスである「IP_addr1」及びマルチキャスト中継装置1000における受信ポートである「1003」を当該IGMP離脱要求メッセージに付加する。制御パケット送受信処理部1120は、付加情報が追加されたIGMP離脱要求メッセージを、取得されたマルチキャストルータポート1001宛に中継する(矢印F206)。
図18は、マルチキャスト中継装置1000におけるIGMP問い合わせメッセージの中継処理の流れを示す説明図である。前述したように、本実施例のマルチキャストルータ2000は、IGMPクエリアである。このため、マルチキャストルータ2000は、IGMP離脱要求メッセージを受信すると、当該マルチキャストグループに対して、IGMP問い合わせメッセージを送信する。マルチキャストパケット中継処理部1300は、マルチキャストルータ2000から受信したIGMP問い合わせメッセージを、IGMP加入要求/離脱要求メッセージと同様に、制御パケット送受信処理部1120に通知する(矢印F207)。
制御パケット送受信処理部1120は、IGMP問い合わせメッセージを受信したVLANをVLAN管理表1111から検索し、VLAN内の当該IGMP問い合わせメッセージを受信したポート以外の全ポート番号を取得する(矢印F313)。そして、制御パケット送受信処理部1120は、取得されたポートに対して、IGMP問い合わせメッセージを中継(フラッディング)する(矢印F208)。
このとき、マルチキャスト中継装置1000の当該VLAN内のポート1004に、当該マルチキャストグループに属するマルチキャスト受信者が存在する場合は、マルチキャスト受信者40からIGMP加入要求メッセージが応答される(矢印F209)。マルチキャスト受信者40から応答されたIGMP加入要求メッセージは、上記と同様の方法により、マルチキャストルータポート1001に中継される。これにより、マルチキャストルータ2000は、マルチキャスト受信者がまだ存在していることを認識できるので、上流からのマルチキャスト中継を停止しない。
一方、マルチキャスト中継装置1000のVLAN内のポートに、当該マルチキャストグループに属するマルチキャスト受信者が存在しない場合は、IGMP加入要求メッセージがいずれのマルチキャスト受信者からも応答されないので、マルチキャストルータ2000は、マルチキャスト受信者が存在しないと判定し、上流からのマルチキャスト中継を停止する。
A5.マルチキャストルータ2000における複製エントリ表T2430の更新処理:
上述したように、マルチキャスト中継装置1000は、加入要求/離脱要求メッセージに付加情報を追加して、当該加入要求/離脱要求メッセージをマルチキャストルータ2000に対して中継する。マルチキャストルータ2000は、付加情報が追加された加入要求/離脱要求メッセージに基づいて、複製エントリ表T2430の更新処理を行う。以下では、マルチキャストルータ2000における複製エントリ表T2430の更新処理について説明する。
図19は、マルチキャストルータ2000がIGMP加入要求メッセージを受信した場合における、複製エントリ表T2430の更新処理を示すフローチャートである。マルチキャストルータ2000内のマルチキャストパケット中継処理部2300がVLAN内のポートからIGMP加入要求メッセージを受信すると(ステップS6400)、当該IGMP加入要求メッセージは、制御パケット送受信処理部2420に通知される。制御パケット送受信処理部2420は、複製エントリ管理表T2410を検索し、受信したVLANが複製エントリ対象か否かを判定する(ステップS6401)。
検索した結果、複製エントリ対象でない場合(ステップS6402:No)は、制御パケット送受信処理部2420は、処理を終了する(ステップS6403)。一方、複製エントリ対象であった場合(ステップS6402:Yes)は、制御パケット送受信処理部2420は、当該IGMP加入要求メッセージを解析し、マルチキャストグループアドレス及び付加情報に含まれる複製対象装置(本実施例ではマルチキャスト中継装置1000)のポート番号を取得する(ステップS6404)。
制御パケット送受信処理部2420は、取得したマルチキャストグループアドレス及び受信したVLANの情報をキーとして複製エントリ表T2430を検索し、当該マルチキャストグループアドレスが複製エントリ表T2430に登録済みか否かを判定する(ステップS6405)。
検索した結果、当該マルチキャストグループアドレスが複製エントリ表T2430に登録されていなかった場合(ステップS6406:No)は、制御パケット送受信処理部2420は、当該マルチキャストグループアドレスのエントリを複製エントリ表T2430に新規作成し(ステップS6407)、付加情報から取得されたポート番号を当該エントリのポート情報フィールドに追加する(ステップS6410)。
一方、当該マルチキャストグループアドレスが複製エントリ表T2430に登録済みの場合(ステップS6406:Yes)は、制御パケット送受信処理部2420は、複製エントリ表T2430の当該マルチキャストグループアドレスに対応するポート情報フィールドに、IGMP加入要求メッセージの付加情報から取得したポートが登録されているか否かを判定する(ステップS6408)。
確認した結果、登録済みの場合(ステップS6409:Yes)は、制御パケット送受信処理部2420は、処理を終了する(ステップS6411)。未登録の場合(ステップS6409:No)は、制御パケット送受信処理部2420は、複製エントリ表T2430の当該マルチキャストグループのポート情報フィールドに、IGMP加入要求メッセージの付加情報から取得したポート番号を追加する(ステップS6410)。
図20は、マルチキャストルータ2000がIGMP離脱要求メッセージを受信した場合における、複製エントリ表T2430の更新処理を示すフローチャートである。マルチキャストルータ2000内のマルチキャストパケット中継処理部2300がVLAN内のポートからIGMP離脱要求メッセージを受信すると(ステップS6500)、当該IGMP離脱要求メッセージは、制御パケット送受信処理部2420に通知される。制御パケット送受信処理部2420は、複製エントリ管理表2410を検索し、受信したVLANが複製エントリ対象か否かを判定する(ステップS6501)。
検索した結果、複製エントリ対象でない場合(ステップS6502:No)は、制御パケット送受信処理部2420は、処理を終了する(ステップS6503)。一方、複製エントリ対象であった場合(ステップS6502:Yes)は、制御パケット送受信処理部2420は、当該IGMP離脱要求メッセージを解析し、マルチキャストグループアドレス及び付加情報に含まれる複製対象装置(本実施例ではマルチキャスト中継装置1000)のポート番号を取得する(ステップS6504)。
制御パケット送受信処理部2420は、取得したマルチキャストグループアドレス及び受信したVLANの情報をキーとして複製エントリ表T2430を検索し、当該マルチキャストグループアドレスが複製エントリ表T2430に登録済みか否かを判定する(ステップS6505)。
検索した結果、当該マルチキャストグループアドレスが複製エントリ表T2430に登録されていなかった場合(ステップS6506:No)は、制御パケット送受信処理部2420は、処理を終了する(ステップS6507)。
一方、当該マルチキャストグループアドレスが複製エントリ表T2430に登録済みの場合(ステップS6506:Yes)は、制御パケット送受信処理部2420は、複製エントリ表T2430の当該マルチキャストグループアドレスに対応するポート情報フィールドに、IGMP離脱要求メッセージの付加情報から取得されたポート番号が登録されているか否かを判定する(ステップS6508)。
判定した結果、当該ポート番号が登録されていない場合(ステップS6509:No)は、制御パケット送受信処理部2420は、処理を終了する(ステップS6510)。一方、当該ポート番号が登録済みの場合(ステップS6509:Yes)は、制御パケット送受信処理部2420は、当該ポートが最後のポートか否かを判定する。
当該ポートが最後のポートの場合(ステップS6511:Yes)は、複製エントリ表T2430から当該エントリ自体を削除する(ステップS6513)。当該ポートが最後のポートでない場合(ステップS6511:No)は、当該エントリのポート情報フィールドから当該ポートを削除する(ステップS6512)。
図21は、マルチキャストルータ2000がIGMP加入要求メッセージを受信した場合における、複製エントリ表T2430の更新処理の流れを示す説明図である。上述したように、マルチキャストパケット中継処理部2300は、VLAN登録表T2310に登録されているVLANから、IGMP加入要求メッセージを受信すると、当該IGMP加入要求メッセージを複製エントリ処理部2400に通知する(矢印F220)。
複製エントリ処理部2400内の制御パケット送受信処理部2420は、通知されたIGMP加入要求メッセージを解析し、付加情報に含まれるVLAN_IPアドレスを取得する。制御パケット送受信処理部2420は、受信したVLAN及び取得したVLAN_IPアドレスが複製エントリ管理表T2410に登録されている否かを判定する(矢印F318)。
受信したVLAN及び取得したVLAN_IPアドレスが登録されていると判定した場合には、制御パケット送受信処理部2420は、IGMP加入要求メッセージを受信したVLAN名称と、当該VLANのIPアドレスと、通知されたIGMP加入要求メッセージから取得したマルチキャストグループアドレスと、付加情報に含まれるポート情報とを複製エントリ表T2430に登録する(矢印F319)。
A6.障害発生前の状態:
図22(A)は、マルチキャスト中継装置1000に障害が発生する前におけるマルチキャスト通信の状況を示す説明図である。図22(B)は、マルチキャスト中継装置1000に障害が発生する前におけるエントリ管理表T1131の状態を示す説明図である。
マルチキャスト中継装置1000のVLAN101には、4つのポートが接続されており、ポート1002,1003,1004にはそれぞれマルチキャスト受信者20,30,40が接続されている。図22(B)に示すエントリ管理表T1131では、マルチキャスト受信者20はマルチキャストグループG1,G3,G4に加入しており、マルチキャスト受信者30はマルチキャストグループG2,G3に加入しており、マルチキャスト受信者40はマルチキャストグループG2,G4に加入している。
マルチキャスト中継装置1000は、エントリ管理表T1131と同じ内容であるマルチキャストパケット中継制御表T1320に従って中継処理を行うため、マルチキャスト送信者10から送信されるマルチキャストパケットは、エントリ管理表T1131のポート情報フィールドに登録されているポートにのみ中継される。
すなわち、マルチキャストグループG1のマルチキャストパケットはポート1002に中継され(矢印F102)、マルチキャストグループG2のマルチキャストパケットはポート1003,1004に中継され(矢印F103)、マルチキャストグループG3のマルチキャストパケットはポート1002,1003に中継され(矢印F104)、マルチキャストグループG4のマルチキャストパケットはポート1002,1004に中継される(矢印F105)。
A7.障害から復旧した直後の状態:
図23(A)は、マルチキャスト中継装置1000が障害から復旧した直後におけるマルチキャスト通信の状況を示す説明図である。図23(B)は、マルチキャスト中継装置1000が障害から復旧した直後におけるエントリ管理表T1131の状態を示す説明図である。
マルチキャスト中継装置1000が障害から復旧した直後では、エントリ管理表T1131は初期化されており、エントリ管理表T1131のエントリは何も登録されていない。マルチキャスト中継装置1000のマルチキャストパケット中継制御表T1320は、上述したとおり、エントリ管理表T1131と同じ状態であり、IGMPスヌーピングエントリが存在しない。したがって、当該VLANで受信された全てのマルチキャストパケットは、どのポートにも中継されない(矢印F102,矢印F103,矢印F104,矢印F105)。
A8.復旧方法:
図24は、マルチキャスト中継装置1000が障害から復旧した場合における複製エントリの配信を要求する処理を示すフローチャートである。IGMPスヌーピング処理部1100は、障害から復旧すると、装置構成定義部1200から、VLAN情報D1210及びIGMPスヌーピング情報D1220を取得する(ステップS6600)。
制御パケット送受信処理部1120は、取得されたIGMPスヌーピング情報D1220に含まれる複製エントリ情報D1116を参照し、複製エントリ対象のVLANが存在するか否かを判定する(ステップS6601)。複製エントリ対象のVLANが存在しなかった場合(ステップS6602:No)は、制御パケット送受信処理部1120は、処理を終了する(ステップS6603)。
一方、複製エントリ対象のVLANが存在する場合(ステップS6602:Yes)は、制御パケット送受信処理部1120は、VLAN管理表T1111から、当該VLANに設定されているIPアドレス及びマルチキャストルータポートを取得し、制御パケット送受信処理部1120に通知する(ステップS6604)。
制御パケット送受信処理部1120は、取得したIPアドレスをソースアドレスに設定したIGMP問い合わせメッセージを生成し、当該IGMP問い合わせメッセージを、取得したマルチキャストルータポート1001に送信する(ステップS6605)。
図25は、マルチキャストルータ2000における複製エントリの配信処理を示すフローチャートである。マルチキャストルータ2000内のマルチキャストパケット中継処理部2300は、マルチキャスト中継装置1000から送信されたIGMP問い合わせメッセージをVLAN内のポートから受信する(ステップS6700)。制御パケット送受信処理部2420は、当該IGMP問い合わせメッセージに含まれるソースアドレスからIPアドレスを取得し、複製エントリ管理表T2410に登録済みか否かを判定する(ステップS6701)。
判定の結果、未登録の場合(ステップS6702:No)は、制御パケット送受信処理部2420は、処理を終了する(ステップS6703)。一方、登録済みの場合(ステップS6702:Yes)は、制御パケット送受信処理部2420は、複製エントリ管理表T2410からポート情報を取得する(ステップS6704)。
制御パケット送受信処理部2420は、複製エントリ表T2430を検索し、取得したIPアドレスに該当するエントリが複製エントリ表T2430に存在するか否かを判定する(ステップS6705)。検索した結果、取得したIPアドレスに該当するエントリが存在しない場合(ステップS6706:No)は、制御パケット送受信処理部2420は、処理を終了する(ステップS6707)。
一方、取得したIPアドレスに該当するエントリが存在する場合(ステップS6706:Yes)は、制御パケット送受信処理部2420は、IGMP加入要求メッセージを生成し、付加情報として、当該エントリに登録されているVLANのIPアドレス及びポート情報を追加する(ステップS6708)。制御パケット送受信処理部2420は、生成したIGMP加入要求メッセージを、複製エントリ管理表T2410から取得したポート宛に送信する(ステップS6709)。なお、ここで生成されるIGMP加入要求メッセージのフォーマットは、図15に示されたフォーマットと同様である。
図26は、マルチキャストルータ2000から配信されたIGMP加入要求メッセージをマルチキャスト中継装置1000が受信し、障害発生前のエントリ管理表T1131を再製する処理を示すフローチャートである。マルチキャストパケット中継処理部1300がマルチキャストルータ2000からIGMP加入要求メッセージを受信すると(ステップS6100)、当該IGMP加入要求メッセージは、制御パケット送受信処理部1120に通知される。
制御パケット送受信処理部1120は、VLAN管理表T1111を参照し、当該VLANが複製エントリ対象か否かを判定する(ステップS6109)。
判定の結果、複製エントリ対象であった場合(ステップS6110:Yes)は、制御パケット送受信処理部1120は、当該IGMP加入要求メッセージの付加情報に含まれるVLAN_IPアドレスと当該VLANのアドレスが一致するか否かを判定する(ステップS6111)。
IPアドレスが一致しない場合(ステップS6111:No)は、複製エントリの配信要求に対する応答ではないので、制御パケット送受信処理部1120は、マルチキャスト受信者からIGMP加入要求メッセージを受信した場合における処理と同じ処理(ステップS6101以降の処理)に移行する。このステップS6101以降の処理については、図7に示された同一の番号が付されたステップと同一の処理であるため、説明を省略する。
一方、IPアドレスが一致した場合(ステップS6111:Yes)は、制御パケット送受信処理部1120は、当該IGMP加入要求メッセージが複製エントリの配信要求に対する応答であると判断し、当該IGMP加入要求メッセージの付加情報から、障害発生前のマルチキャストグループアドレス及びポート情報を取得する(ステップS6112)。取得された障害発生前のマルチキャストグループアドレス及びポート情報は、エントリ生成部1130に通知される。
エントリ生成部1130は、取得した障害発生前のマルチキャストグループアドレス及びポート情報に基づいて、ステップS6102以降の処理を行い、エントリ管理表T1131の更新処理を行う。
図27は、マルチキャスト中継装置1000が障害から復旧した場合における複製エントリの配信を要求する処理の流れを示す説明図である。障害からの復旧直後では、エントリ管理表T1131やマルチキャストパケット中継制御表T1320のエントリは初期化されており、何も登録されていない状態となる。したがって、マルチキャストパケット中継処理部1300は、ポート1001から受信したマルチキャストパケットをどこにも中継しない(矢印F107)。
IGMPスヌーピング処理部1100は、障害から復旧すると、装置構成定義部1200からVLAN情報D1210及びIGMPスヌーピング情報D1220を読み込み(矢印F320,矢印F321)、VLAN管理表T1111に登録する。
制御パケット送受信処理部1120は、「YES」をキーとして、VLAN管理表T1111の複製エントリ情報フィールド1116を検索する(矢印F322a)。すなわち、制御パケット送受信処理部1120は、エントリの複製処理が有効に設定されているVLANの存在を確認する。
制御パケット送受信処理部1120は、検索の結果、複製エントリ情報フィールド1116に「YES」が設定されているエントリのVLAN101に登録されているマルチキャストルータポートフィールド1115の「1001」及びIPアドレスフィールド1113の「IP_addr1」を取得する(矢印F322b)。
制御パケット送受信処理部1120は、IGMP問い合わせメッセージを生成し、当該IGMP問い合わせメッセージのソースアドレスに、取得したIPアドレスである「IP_addr1」を設定する。制御パケット送受信処理部1120は、生成したIGMP問い合わせメッセージを、取得した当該VLANのマルチキャストルータポート1001に送信する。このIGMP問い合わせメッセージは、複製エントリの配信要求として、隣接装置であるマルチキャストルータ2000へ送信される(矢印F221)。
図28は、マルチキャストルータ2000における複製エントリの配信処理の流れを示す説明図である。マルチキャストルータ2000内のマルチキャストパケット中継処理部2300は、マルチキャスト中継装置1000が接続されたポート2002からIGMP問い合わせメッセージを受信すると、当該IGMP問い合わせメッセージを複製エントリ処理部2400内の制御パケット送受信処理部2420に通知する(矢印F221)。
制御パケット送受信処理部2420は、通知されたIGMP問い合わせメッセージを解析し、IGMP問い合わせメッセージに含まれるソースアドレスからIPアドレスを取得する。制御パケット送受信処理部2420は、取得したIPアドレスと受信したVLAN名称をキーとして複製エントリ管理表T2410を検索する(矢印F323a)。なお、検索の結果、一致したエントリが存在すれば、当該IGMP問い合わせメッセージは、複製エントリ管理表T2410に登録されている複製対象装置(本実施例では、マルチキャスト中継装置1000)から送信されたIGMP問い合わせメッセージであることを意味する。
当該IGMP問い合わせメッセージが、マルチキャスト中継装置1000から送信されたIGMP問い合わせメッセージであった場合は、制御パケット送受信処理部2420は、複製エントリ管理表T2410からマルチキャスト中継装置1000が接続されているポートである「2002」を取得する(矢印F323b)。
制御パケット送受信処理部2420は、取得したIPアドレスをキーとして複製エントリ表T2430を検索する(矢印F324a)。制御パケット送受信処理部2420は、検索の結果、一致したエントリのマルチキャストグループアドレスフィールドの「G1」を取得する(矢印F324b)。
制御パケット送受信処理部2420は、取得した情報を付加情報として追加したIGMP加入要求メッセージを生成する。具体的には、制御パケット送受信処理部2420は、IGMP加入要求メッセージの付加情報として、複製対象のVLANのIPアドレス及び複製対象装置(マルチキャスト中継装置1000)のポート情報を追加する。制御パケット送受信処理部2420は、生成したIGMP加入要求メッセージを、マルチキャスト中継装置1000が接続されたポート2002宛に送信する(矢印F222)。
図29は、マルチキャストルータ2000から配信されたIGMP加入要求メッセージをマルチキャスト中継装置1000が受信し、障害発生前のエントリ管理表T1131を再製する処理の流れを示す説明図である。マルチキャスト中継装置1000内のマルチキャストパケット中継処理部1300は、マルチキャストルータ2000から送信された付加情報が追加されたIGMP加入要求メッセージを受信すると、制御パケット送受信処理部1120に通知する(矢印F222)。
制御パケット送受信処理部1120は、当該IGMP加入要求メッセージを受信したVLANが、複製エントリ対象であるか否かを、VLAN管理表T1111の複製エントリ情報フィールド1112より判定する(矢印F325)。
当該VLANが複製エントリ対象である場合は、制御パケット送受信処理部1120は、IGMP加入要求メッセージの付加情報を解析して当該付加情報に含まれるVLAN_IPアドレスを取得し、当該VLANのIPアドレスと比較する。
当該VLANのIPアドレスと付加情報に含まれるVLAN_IPアドレスとが一致した場合は、制御パケット送受信処理部1120は、受信したIGMP加入要求メッセージが配信要求に対する応答であると判断し、IGMP加入要求メッセージの付加情報に含まれるポート情報を解析し、障害発生前におけるマルチキャスト中継装置1000のポート情報を取得する。
制御パケット送受信処理部1120は、取得したマルチキャストグループアドレスと障害発生前のポート情報をエントリ生成部1130に通知する(矢印F326)。エントリ生成部1130は、通知されたマルチキャストグループアドレス及びポート情報を、エントリ管理表T1131に登録するとともに、マルチキャストパケット中継制御表T1320にも登録する(矢印F327)。
以上の処理により、障害発生前のエントリ管理表T1131及びマルチキャストパケット中継制御表T1320が再製され、マルチキャスト中継が再開される(矢印F107)。
なお、マルチキャストルータ2000が送信するIGMP加入要求メッセージには、付加情報として、複数のポートを設定することができる。したがって、1つのマルチキャストグループに複数のマルチキャスト受信者が存在する場合であっても、1つのIGMP加入要求メッセージに複数のポート情報を集約してマルチキャスト中継装置1000に通知することができる。
図30は、エントリの再製後の様子を示す説明図である。図30(A)に示した例では、マルチキャスト中継装置1000にVLAN101が設定され、VLAN101にマルチキャスト受信者20,30,40,50,60が接続されている。各マルチキャスト受信者は、同じマルチキャストグループG1に加入している。
マルチキャスト中継装置1000は、障害から復旧すると、マルチキャストルータ2000から配信されるIGMP加入要求メッセージの付加情報に基づいて、複数のポート情報(5つのポート番号)を設定することができる。この場合におけるマルチキャストルータ2000が配信するIGMP加入要求メッセージのフォーマットを図30(B)に示す。
このように、第1実施例では、マルチキャストルータ2000から配信されるIGMP加入要求メッセージの付加情報に基づいて、IGMPスヌーピング機能で利用されるエントリを再製するので、少ないパケットで迅速にエントリを再製することが可能である。すなわち、1パケットのIGMP加入要求メッセージによって、1つのマルチキャストグループのエントリを再製することができるとともに、マルチキャスト通信が復旧するまでの時間を大幅に短縮することができる。
また、VLANに設定しているポート数が多く、かつ、同じマルチキャストグループに加入しているマルチキャスト受信者が多いほど、少ないIGMP加入要求メッセージでエントリを再製することができる。
A9.比較例におけるエントリ管理表の復旧方法:
図31は、比較例におけるマルチキャスト中継装置1000のエントリ管理表の復旧方法を示す説明図である。エントリ管理表の復旧処理における制御パケットの流れを図31(A)として示した。この比較例では、マルチキャストルータ2000内に複製エントリ表は作成されていない。マルチキャスト中継装置1000が障害から復旧すると、マルチキャストルータ2000からIGMP問い合わせメッセージが送信され(矢印F210)、当該IGMP問い合わせメッセージがマルチキャスト中継装置1000のVLAN101内にフラッディングされる。
マルチキャスト中継装置1000に接続された各マルチキャスト受信者は、当該IGMP問い合わせメッセージに対してIGMP加入要求メッセージを応答する。具体的には、マルチキャスト受信者20は、マルチキャストグループG1,G3,G4へのIGMP加入要求メッセージを送信する(矢印F211,矢印F212,矢印F213)。マルチキャスト受信者30は、マルチキャストグループG2,G3へのIGMP加入要求メッセージを送信する(矢印F214,矢印F215)。マルチキャスト受信者40は、マルチキャストグループG2,G4へのIGMP加入要求メッセージを送信する(矢印F216,矢印F217)。
図31(B)は、各マルチキャスト受信者から送信されたIGMP加入要求メッセージに基づいて再製されたエントリ管理表を示す説明図である。IGMPスヌーピング処理部1100内のエントリ生成部1130は、受信したIGMP加入要求メッセージに基づいてエントリ管理表1131を作成し、マルチキャスト中継制御表に登録する。以上の処理により、マルチキャスト通信が再開される。
この比較例に示すエントリ管理表の再製方法では、マルチキャスト受信者が多数存在し、多数のマルチキャストグループに加入している場合には、膨大な数のIGMP加入要求メッセージがマルチキャスト中継装置1000に対して応答される。このため、IGMP問い合わせメッセージがVLAN内にフラッディングされてから、マルチキャスト通信が再開するまでには、多大な時間を要してしまう。すなわち、マルチキャスト中継装置1000がIGMP問い合わせメッセージを受信するまでの間と、IGMP問い合わせメッセージがフラッディングされ、IGMP加入要求メッセージの応答を受けてエントリが作成され、マルチキャストパケット中継処理部に設定されるまでの間、マルチキャスト通信が停止してしまう。
また、大量のIGMP問い合わせメッセージがマルチキャスト送信者から送信され、マルチキャスト中継装置1000が大量のIGMP加入要求メッセージを集中して受信するため、通信帯域が圧迫されるおそれもある。
B.第2実施例:
図32は、第2実施例におけるネットワーク構成を示す説明図である。このネットワーク構成では、1台のマルチキャストルータ2000に2台のマルチキャスト中継装置1000,3000が接続されている。本実施例におけるマルチキャスト中継装置1000,3000の内部構成及びマルチキャストルータ2000の内部構成は、第1実施例におけるマルチキャスト中継装置1000の内部構成及びマルチキャストルータ2000の内部構成とそれぞれ同じである。本実施例におけるマルチキャスト中継装置1000,3000は、第1実施例と同様に、IGMPスヌーピング機能を有している。
図33は、マルチキャスト中継装置1000の各種情報及びVLAN管理表T1111の内容を示す説明図である。図33(A)は、マルチキャスト中継装置1000のVLAN情報D1210の内容を示す説明図である。VLAN情報D1210のVLAN名称フィールド1211にはマルチキャスト中継装置1000に設定されているVLANである「VLAN101」が設定され、IPアドレスフィールド1212にはマルチキャスト中継装置1000のVLAN101に設定されたIPアドレスである「IP_addr1」が設定され、ポート情報フィールド1213にはVLAN101に属するポートである「1001,1002,1003」が設定されている。
図33(B)は、マルチキャスト中継装置1000のIGMPスヌーピング情報D1220の内容を示す説明図である。IGMPスヌーピング情報D1220のVLAN名称フィールド1221にはIGMPスヌーピング機能を使用するVLANである「VLAN101」が設定され、マルチキャストルータポートフィールド1222にはマルチキャストルータ2000が接続されたポートである「1001」が設定され、複製エントリ情報フィールド1223にはVLAN101が複製エントリ対象であることを示す「YES」が設定されている。
図33(C)は、マルチキャスト中継装置1000のVLAN管理表T1111の内容を示す説明図である。VLAN管理表T1111には、VLAN情報D1210及びIGMPスヌーピング情報D1220から取得された各情報が格納されている。
図34は、マルチキャスト中継装置3000の各種情報及びVLAN管理表T3111の内容を示す説明図である。図34(A)は、マルチキャスト中継装置3000のVLAN情報D3210の内容を示す説明図である。VLAN情報D3210のVLAN名称フィールド3211にはマルチキャスト中継装置3000に設定されているVLANである「VLAN102」が設定され、IPアドレスフィールド3212にはマルチキャスト中継装置3000のVLAN102に設定されたIPアドレスである「IP_addr2」が設定され、ポート情報フィールド3213にはマルチキャスト中継装置3000のVLAN102に属するポートである「3001,3002,3003」が設定されている。
図34(B)は、マルチキャスト中継装置3000のIGMPスヌーピング情報D3220の内容を示す説明図である。IGMPスヌーピング情報D3220のVLAN名称フィールド3221にはIGMPスヌーピング機能を使用するVLANである「VLAN102」が設定され、マルチキャストルータポートフィールド3222にはマルチキャストルータ2000が接続されたポートである「3001」が設定され、複製エントリ情報フィールド3223にはVLAN102が複製エントリ対象であることを示す「YES」が設定されている。
図34(C)は、マルチキャスト中継装置3000のVLAN管理表T3111の内容を示す説明図である。VLAN管理表T3111には、VLAN情報D3210及びIGMPスヌーピング情報D3220から取得された各情報が格納されている。
図35は、マルチキャストルータ2000の各種情報及び各種テーブルの内容を示す説明図である。図35(A)は、マルチキャストルータ2000の複製エントリ生成情報D2120の内容を示す説明図である。複製エントリ生成情報D2120には、複製エントリ対象の2つのVLAN101,102が設定されている。
VLAN101の設定として、VLAN名称フィールド2121には「VLAN101」が設定され、IPアドレスフィールド2122にはマルチキャスト中継装置1000のVLAN101に設定されているIPアドレスである「IP_addr1」が設定され、ポート情報フィールド2123にはマルチキャスト中継装置1000が接続されたポートである「2002」が設定されている。
また、VLAN102の設定として、VLAN名称フィールド2121には「VLAN102」が設定され、IPアドレスフィールド2122にはマルチキャスト中継装置3000のVLAN102に設定されているIPアドレスである「IP_addr2」が設定され、ポート情報フィールド2123にはマルチキャスト中継装置3000が接続されたポートである「2003」が設定されている。
図35(B)は、マルチキャストルータ2000の複製エントリ管理表T2410の内容を示す説明図である。複製エントリ管理表T2410は、複製エントリ生成情報D2120と同様の情報を格納している。
図36(A)は、VLAN101に属するマルチキャスト受信者20がマルチキャストグループG1に対するIGMP加入要求メッセージを送信し、VLAN102に属するマルチキャスト受信者50がマルチキャストグループG2に対するIGMP加入要求メッセージを送信した場合における複製エントリ表T2430の生成処理を示す説明図である。図36(B)は、マルチキャスト受信者20,50から送信されたIGMP加入要求メッセージに基づいて更新された複製エントリ表T2430を示す説明図である。
受信者20がマルチキャストグループG1に対するIGMP加入要求メッセージを送信すると(矢印F223)、マルチキャスト中継装置1000は、上述した第1実施例と同様の方法で、当該IGMP加入要求メッセージに付加情報を追加し、当該付加情報が追加されたIGMP加入要求メッセージをマルチキャストルータポート1001を介してマルチキャストルータ2000に中継する(矢印F224)。
同様に、受信者50がマルチキャストグループG2に対するIGMP加入要求メッセージを送信すると(矢印F225)、マルチキャスト中継装置3000は、当該IGMP加入要求メッセージに付加情報を追加し、当該付加情報が追加されたIGMP加入要求メッセージをマルチキャストルータポート3001を介してマルチキャストルータ2000に中継する(矢印F226)。
マルチキャストルータ2000にIGMP加入要求メッセージが中継されると(矢印F224,矢印F226)、マルチキャストルータ2000は、上述した第1実施例と同様の方法で、複製エントリ表T2430を生成する。図36(B)に示すように、マルチキャストルータ2000は、複製エントリ対象の各VLAN101,102から受信したIGMP加入要求メッセージに基づいて、複製エントリ表T2430を生成する。
マルチキャスト中継装置1000または3000は、障害から復旧すると、マルチキャストルータ2000に対して、第1実施例と同様の方法で、複製エントリの配信要求を行う。複製エントリの配信要求を受けたマルチキャストルータ2000は、複製エントリ表T2430の中から、配信要求を行なった装置の複製エントリを検索し、配信する。マルチキャスト中継装置1000または3000は、配信された複製エントリに基づいて、障害前のエントリを再製することができる。
このように、第2実施例では、1台のマルチキャストルータ2000が複数のマルチキャスト中継装置のエントリを複製している。そして、マルチキャストルータ2000は、マルチキャスト中継装置が障害から復旧すると、当該マルチキャスト中継装置に対して当該装置の複製エントリを配信する。すなわち、第2実施例では、1台のマルチキャストルータ2000によって、複数のマルチキャスト中継装置の障害前のエントリを速やかに再製することができる。この結果、複数のマルチキャスト中継装置は、迅速にマルチキャスト通信を再開することができる。
C.第3実施例:
図37は、第3実施例におけるネットワーク構成を示す説明図である。本実施例のネットワーク構成では、1台のマルチキャストルータに2台のマルチキャスト中継装置が直列に接続されている。換言すれば、マルチキャストルータにマルチキャスト中継装置が多段に設定されている。
マルチキャストルータ2000には、マルチキャスト中継装置1000が接続されており、マルチキャスト中継装置1000の下流にはさらに、マルチキャスト中継装置3000が接続されている。マルチキャスト中継装置3000及びマルチキャストルータ2000の内部構成は、それぞれ、第1実施例におけるマルチキャスト中継装置1000及びマルチキャストルータ2000の内部構成と同じである。本実施例におけるマルチキャスト中継装置1000は、マルチキャストルータ2000とマルチキャスト中継装置3000との中間に位置するため、自装置のエントリの複製を上流の装置(マルチキャストルータ2000)に依頼する機能と、下流の装置(マルチキャスト中継装置3000)の複製エントリを生成する機能の両方を実装している。
図38は、第3実施例におけるマルチキャスト中継装置1000の内部構成を示す説明図である。図3に示した第1実施例との違いは、複製エントリを生成する複製エントリ処理部1400をさらに備える点と、装置構成定義部1200内に、複製エントリ対象を設定する複製エントリ生成情報D1230が追加されている点であり、他の構成は第1実施例と同じである。また、複製エントリ生成情報D1230及び複製エントリ処理部1400の機能は、第1実施例のマルチキャストルータ2000が備えている各該当機能と同様である。
図39は、マルチキャスト中継装置3000の各種情報及びVLAN管理表T3111の内容を示す説明図である。図39(A)は、マルチキャスト中継装置3000のVLAN情報D3210の内容を示す説明図である。VLAN情報D3210のVLAN名称フィールド3211にはマルチキャスト中継装置3000に設定されているVLANである「VLAN101」が設定され、IPアドレスフィールド3212にはマルチキャスト中継装置3000のVLAN101に設定されたIPアドレスである「IP_addr2」が設定され、ポート情報フィールド3213にはマルチキャスト中継装置3000のVLAN101に属するポートである「3001,3002,3003」が設定されている。
図39(B)は、マルチキャスト中継装置3000のIGMPスヌーピング情報D3220の内容を示す説明図である。IGMPスヌーピング情報D3220のVLAN名称フィールド3221にはIGMPスヌーピング機能を使用するVLANである「VLAN101」が設定され、マルチキャストルータポートフィールド3222にはマルチキャストルータ2000が接続されている方向のポートである「3001」が設定され、複製エントリ情報フィールド3223にはVLAN101が複製エントリ対象であることを示す「YES」が設定されている。
図39(C)は、マルチキャスト中継装置3000のVLAN管理表T3111の内容を示す説明図である。VLAN管理表T3111には、VLAN情報D3210及びIGMPスヌーピング情報D3220から取得された各情報が格納されている。
図40は、マルチキャスト中継装置1000の各種情報及び各種テーブルの内容を示す説明図である。図40(A)は、マルチキャスト中継装置1000のVLAN情報D1210の内容を示す説明図である。VLAN情報1210DのVLAN名称フィールド1211にはマルチキャスト中継装置1000に設定されているVLANである「VLAN101」が設定され、IPアドレスフィールド1212にはマルチキャスト中継装置1000のVLAN101に設定されたIPアドレスである「IP_addr1」が設定され、ポート情報フィールド1213にはVLAN101に属するポートである「1001,1002,1003」が設定されている。
図40(B)は、マルチキャスト中継装置1000のIGMPスヌーピング情報D1220の内容を示す説明図である。IGMPスヌーピング情報D1220のVLAN名称フィールド1221にはIGMPスヌーピングを使用するVLANである「VLAN101」が設定され、マルチキャストルータポートフィールド1222にはマルチキャストルータ2000が接続されたポートである「1001」が設定され、複製エントリ情報フィールド1223にはVLAN101が複製エントリ対象であることを示す「YES」が設定されている。
図40(C)は、マルチキャスト中継装置1000のVLAN管理表T1111の内容を示す説明図である。VLAN管理表1111には、VLAN情報1210及びIGMPスヌーピング情報1220から取得された各情報が格納されている。
図40(D)は、マルチキャスト中継装置1000の複製エントリ生成情報D1230の内容を示す説明図である。複製エントリ生成情報D1230には、下流のマルチキャスト中継装置3000のVLAN101についての情報が設定される。複製エントリ生成情報D1230のVLAN名称フィールド1231には「VLAN101」が設定され、IPアドレスフィールド1232には下流のマルチキャスト中継装置3000のVLAN101に設定されたIPアドレスである「IP_addr2」が設定され、ポート情報フィールド1233には下流のマルチキャスト中継装置3000が接続されているポートである「1002」が設定されている。
図40(E)は、マルチキャスト中継装置1000の複製エントリ管理表T1410の内容を示す説明図である。複製エントリ管理表T1410には、複製エントリ生成情報D1230と同様の情報が格納されている。
図41は、マルチキャストルータ2000の複製エントリ生成情報D2120及び複製エントリ管理表T2410の内容を示す説明図である。図41(A)は、マルチキャストルータ2000の複製エントリ生成情報D2120の内容を示す説明図である。複製エントリ生成情報D2120には、下流のマルチキャスト中継装置1000のVLAN101についての情報が設定される。複製エントリ生成情報D2120のVLAN名称フィールド2121には「VLAN101」が設定され、IPアドレスフィールド2122にはマルチキャスト中継装置1000のVLAN101に設定されたIPアドレスである「IP_addr1」が設定され、ポート情報フィールド2123には下流のマルチキャスト中継装置1000が接続されているポートである「2002」が設定されている。
図41(B)は、マルチキャストルータ2000の複製エントリ管理表T2410の内容を示す説明図である。複製エントリ管理表T2410には、複製エントリ生成情報D1230と同様の情報が格納されている。
図42は、第3実施例のネットワーク構成における制御パケットの流れを示す説明図である。マルチキャスト受信者30がマルチキャストグループG1に対するIGMP加入要求メッセージを送信すると、マルチキャスト中継装置3000は、ポート3003から当該IGMP加入要求メッセージを受信する(矢印F227)。マルチキャスト中継装置3000は、当該IGMP加入要求メッセージに付加情報を追加して、マルチキャスト中継装置1000に中継する(矢印F228)。
図43は、付加情報が追加されたIGMP加入要求メッセージを示す説明図である。図43(A)は、マルチキャスト受信者30から送信された後に、マルチキャスト中継装置3000によって付加情報が追加され、マルチキャスト中継装置1000に中継されるIGMP加入要求メッセージのフォーマットを示す説明図である。付加情報のVLAN_IPアドレスにはマルチキャスト中継装置3000に設定されたIPアドレスである「IP_addr2」が設定されており、ポート数には「1」が設定されており、ポート番号にはマルチキャスト中継装置3000において受信者30が接続されているポートである「3003」が設定されている。
マルチキャスト中継装置1000(図42)は、付加情報が追加されたIGMP加入要求メッセージをマルチキャスト中継装置3000から受信すると、受信したIGMP加入要求メッセージを解析し、複製エントリを作成する。マルチキャスト中継装置1000は、さらに、当該IGMP加入要求メッセージに自装置の付加情報を上書きして、マルチキャストルータポート1001を介してマルチキャストルータ2000に中継する(矢印F229)。
図43(B)は、マルチキャスト中継装置3000から中継された後に、マルチキャスト中継装置1000によって付加情報が上書きされ、マルチキャストルータ2000に中継されるIGMP加入要求メッセージのフォーマットを示す説明図である。付加情報のVLAN_IPアドレスにはマルチキャスト中継装置1000に設定されたIPアドレスである「IP_addr1」が設定されており、ポート数には「1」が設定されており、ポート番号にはマルチキャスト中継装置1000においてマルチキャスト中継装置3000が接続されているポートである「1002」が設定されている。
また、マルチキャスト中継装置1000(図42)は、マルチキャストグループG2に対するIGMP加入要求メッセージをマルチキャスト受信者40から受信した場合には、当該IGMP加入要求メッセージに自装置の付加情報を追加して、マルチキャストルータポート1001を介してマルチキャストルータ2000に中継する(矢印F231)。なお、このときのIGMP加入要求メッセージは、マルチキャスト受信者40から直接送信されたIGMP加入要求メッセージであるため、当該IGMP加入要求メッセージに付加情報は設定されていない。したがって、マルチキャスト中継装置1000は、このIGMP加入要求メッセージについては、複製エントリを作成しない。
図43(C)は、マルチキャスト受信者40から送信された後に、マルチキャスト中継装置1000によって付加情報が追加され、マルチキャストルータ2000に中継されるIGMP加入要求メッセージのフォーマットを示す説明図である。付加情報のVLAN_IPアドレスにはマルチキャスト中継装置1000に設定されたIPアドレスである「IP_addr1」が設定されており、ポート数には「1」が設定されており、ポート番号にはマルチキャスト中継装置1000において受信者40が接続されているポートである「1003」が設定されている。
マルチキャストルータ2000は、付加情報が追加されたIGMP加入要求メッセージに基づいて(矢印F229,231)、複製エントリを作成する。
図44は、複製エントリ表を示す説明図である。図44(A)は、マルチキャスト中継装置1000において生成される複製エントリ表T1430を示す説明図である。マルチキャスト中継装置1000は、マルチキャスト中継装置3000から受信したIGMP加入要求メッセージに基づいて、複製エントリ表T1430を生成する。したがって、複製エントリ表T1430は、図43(A)に示されたIGMP加入要求メッセージに対応した内容となっている。
図44(B)は、マルチキャストルータ2000において生成される複製エントリ表T2430を示す説明図である。マルチキャストルータ2000は、マルチキャスト中継装置1000から受信したIGMP加入要求メッセージに基づいて、複製エントリ表T2430を生成する。したがって、複製エントリ表T2430は、図43(B)及び(C)に示されたIGMP加入要求メッセージに対応した内容となっている。
図45は、マルチキャスト中継装置3000によって付加情報が追加されたIGMP加入要求メッセージをマルチキャスト中継装置1000が受信した場合におけるの処理の流れを示す説明図である。マルチキャスト中継装置1000では、複製エントリ生成情報D1230に設定されたVLANがVLAN登録票1310に登録されている。このため、マルチキャストパケット中継処理部1300は、複製エントリ対象のVLANから受信したIGMP加入要求メッセージを、複製エントリ処理部1400の制御パケット送受信処理部1420に対して通知する(矢印F228)。
また、マルチキャスト中継装置1000では、IGMPスヌーピング情報D1220に設定されたVLANがVLAN登録表T1310に登録されている。このため、マルチキャストパケット中継処理部1300は、IGMPスヌーピング処理対象のVLANから受信したIGMP加入要求メッセージを、IGMPスヌーピング処理部1100の制御パケット送受信処理部1120に対しても通知する(矢印F228)。
複製エントリ処理部1400の制御パケット送受信処理部1420は、通知されたIGMP加入要求メッセージ228を解析し、付加情報に含まれるVLAN_IPアドレスを取得する。
複製エントリ処理部1400の制御パケット送受信処理部1420は、受信したVLAN及び取得したVLAN_IPアドレスが、複製エントリ管理表T1410に登録されているか否かを判定し(矢印F328)、登録されている場合には、複製エントリの生成を行う。複製エントリの生成は、具体的には、IGMP加入要求メッセージを受信したVLANのVLAN名称(VLAM101)、当該VLANのIPアドレス(IP_addr2)、通知されたIGMP加入要求メッセージから取得したマルチキャストグループアドレス(G1)、付加情報に含まれるポート情報(3003)を、複製エントリ表T1430に登録することにより行なわれる(矢印F329)。
IGMPスヌーピング処理部1100の制御パケット送受信処理部1120は、IGMP加入要求メッセージの通知を受けると、VLAN管理表T1111の複製エントリ情報D1116を検索して、当該IGMP加入要求メッセージを受信したVLANが複製エントリ対象となっているか否かを判定する(矢印F330)。
当該VLANが複製エントリ対象になっている場合には、制御パケット送受信処理部1120の付加情報処理部1121は、当該IGMP加入要求メッセージに当該VLANのIPアドレス(IP_addr1)及びマルチキャスト中継装置1000の受信ポート1002を付加情報として追加して、マルチキャストルータポート1001に中継する(矢印F229)。このとき、付加情報が既に追加されていた場合は、付加情報処理部1121は、追加されていた付加情報を削除して、新しく取得した付加情報を上書きする。
以上の処理により、マルチキャスト中継装置3000のエントリは、マルチキャスト中継装置1000に複製され、マルチキャスト中継装置1000のエントリは、マルチキャストルータ2000に複製される。マルチキャスト中継装置3000が障害から復旧した場合は、マルチキャスト中継装置1000に対して複製エントリの配信要求を行うことで、障害発生前のエントリを再製することができる。また、マルチキャスト中継装置1000が障害から復旧した場合は、マルチキャストルータ2000に対して複製エントリの配信要求を行うことで、障害発生前のエントリを再製することができる。
このように、第3実施例では、第1実施例と同様の効果を奏するとともに、隣接する上流の装置に複製エントリを生成させるので、マルチキャスト中継装置が多段の構成であっても、迅速に障害発生前のエントリを再製することが出来る。
また、上記第1ないし第3実施例では、IGMP加入要求/離脱要求メッセージの中継処理を利用して、上流に接続された装置に複製エントリを作成させるので、エントリの複製のためのIGMP制御パケットの通知処理が増加しないといった利点もある。
D.第4実施例:
図46は、第4実施例における冗長構成を採用したネットワーク構成を示す説明図である。本実施例では、冗長構成を採用したネットワーク構成において、運用状態の装置が障害となり、待機状態の装置が新たに運用状態となった場合におけるマルチキャスト通信の早期復旧を可能にする。
本実施例では、マルチキャスト中継装置4000Aとマルチキャスト中継装置4000Bとが冗長構成となっている。そして、図46に示した例では、マルチキャスト中継装置4000Aが運用状態であり、マルチキャスト中継装置4000Bが待機状態である。本実施例の構成では、マルチキャスト中継装置4000Aに障害が発生した場合に、マルチキャスト中継装置4000Bが運用状態に切り替わる仕組みである。本実施例では、マルチキャスト中継装置4000Aとマルチキャスト中継装置4000Bにおいて複製エントリの生成を行う。
マルチキャスト中継装置3000,4000A,4000Bは、IGMPスヌーピング機能を使用している。マルチキャスト中継装置3000は、上流の装置にIGMP加入要求/離脱要求メッセージを通知するため、上流のマルチキャスト中継装置が接続されているポートであるポート3002,3003がマルチキャストルータポートに設定されている。
マルチキャスト中継装置1000は、冗長構成となっているマルチキャスト中継装置4000A,4000Bのどちらかが運用状態になっても、即座にマルチキャスト通信が行えるように、マルチキャストパケットをマルチキャスト中継装置4000A,4000Bの両方に中継している。したがって、マルチキャスト中継装置1000は、IGMPスヌーピング機能を使用していない。
本実施例のネットワーク構成において、マルチキャスト受信者20からIGMP加入要求メッセージが送信される前の状態について説明する。マルチキャスト送信者10から送信されたマルチキャストパケットは、マルチキャスト中継装置1000に中継される。マルチキャスト中継装置1000はIGMPスヌーピング機能を使用していないため、マルチキャスト送信者10から送信されたマルチキャストパケットは、ポート1002,1003に中継される(矢印F109)。
このとき、マルチキャスト中継装置4000Bは、待機状態であるため、マルチキャストパケットを受信しても廃棄する。マルチキャスト中継装置4000Aは、マルチキャスト受信者からIGMP加入要求メッセージを受信していないので、受信したマルチキャストパケットをどこにも中継しない。
次に、マルチキャスト受信者20からIGMP加入要求メッセージが送信された場合の状態について説明する。マルチキャスト受信者20から送信されたIGMP加入要求メッセージは、マルチキャスト中継装置3000に中継される。マルチキャスト中継装置3000は、IGMPスヌーピング機能に従い、当該IGMP加入要求メッセージを、マルチキャストルータポート3002,3003に中継し、マルチキャスト中継装置4000A及び4000Bに中継する(矢印F232)。
このとき、マルチキャスト中継装置4000Bは、待機状態であるため、IGMP加入要求メッセージを受信しても廃棄する。マルチキャスト中継装置3000及び4000AにIGMP加入要求メッセージが中継されると、第1実施例と同様に、マルチキャスト中継装置3000及び4000Aは、それぞれIGMP加入要求メッセージに基づいてエントリ管理表を作成することで、マルチキャスト通信を開始する(矢印F110)。
図47は、運用状態のマルチキャスト中継装置4000Aに障害が発生した場合の状態を示す説明図である。マルチキャスト中継装置4000Aに障害が発生すると、待機状態のマルチキャスト中継装置4000Bが運用状態となる。このとき、マルチキャスト中継装置4000Bは初期状態であり、IGMP加入要求メッセージを受信していない状態なので、マルチキャストパケットを受信してもどこにも中継しない(矢印F111)。
図48は、運用状態のマルチキャスト中継装置4000Aの複製エントリ表を、待機状態のマルチキャスト中継装置4000B内に生成する様子を示す説明図である。本実施例では、任意のポートを指定することによって、マルチキャストルータ等の上流側に接続された装置に限らず、任意の装置に複製エントリを生成することが可能である。この複製エントリの生成処理は、マルチキャスト中継装置4000Aに障害が発生する前に実行されている。本実施例の構成では、マルチキャスト中継装置4000Aが運用状態、マルチキャスト中継装置4000Bが待機状態とする。
運用状態のマルチキャスト中継装置4000Aは、マルチキャスト受信者20から送信されたIGMP加入要求/離脱要求メッセージを受信すると(矢印F233)、当該IGMP加入要求/離脱要求メッセージに付加情報を追加し、任意のポートの中から指定されたポート4003Aに中継する(矢印F234)。マルチキャスト中継装置4000Bは、受信したIGMP加入要求/離脱要求メッセージの付加情報に基づいて複製エントリ表T4430を作成する。
マルチキャスト中継装置4000Aに障害が発生すると、マルチキャスト中継装置4000Bは、待機状態から運用状態となり、マルチキャスト中継装置4000Bに作成しておいた複製エントリ表4430を自装置のエントリとして学習する。このようにして、マルチキャスト中継装置4000Bは、即座に障害発生前のマルチキャスト通信を行なうことができる。
図49は、マルチキャスト中継装置4000Aの内部構成を示す説明図である。マルチキャスト中継装置4000Aは、マルチキャスト中継装置4000Bと冗長構成を取っており、互いの複製エントリを作成するために、装置構成定義部4200における複製エントリ情報D4223と、複製エントリ生成情報D4230と、IGMPスヌーピング処理部4100における複製エントリ情報D4116と、付加情報処理部4121と、複製エントリ処理部4400とを有する。また、マルチキャスト中継装置4000Aは、自装置が運用状態か待機状態かを判定する運用状態判定部4500を有する。なお、マルチキャスト中継装置4000Bの構成は、マルチキャスト中継装置4000Aの構成と同様である。
図50は、マルチキャスト中継装置4000Aにおける各種情報及び各種テーブルの内容を示す説明図である。図50(A)は、マルチキャスト中継装置4000AのVLAN情報D4210Aを示す説明図である。VLAN情報D4210AのVLAN名称フィールド4211Aには「VLAN100」が設定され、IPアドレスフィールド4212Aにはマルチキャスト中継装置4000AのVLAN100に設定されたIPアドレスである「IP_addr1」が設定され、ポート情報フィールド4213Aには「4001A,4002A,4003A」が設定されている。
図50(B)は、マルチキャスト中継装置4000AのIGMPスヌーピング情報D4220Aを示す説明図である。IGMPスヌーピング情報D4220Aの複製エントリ情報フィールド4223Aには、新たに、接続ポート情報が設けられている。この接続ポート情報には、複製エントリを生成するマルチキャスト中継装置が接続されているポートが設定される。本実施例では、マルチキャスト中継装置4000Bが接続されているポートである「4003A」が設定されている。
IGMPスヌーピング情報D4220Aのその他のフィールドについては、VLAN名称フィールド4221Aには「VLAN100」が設定され、複製エントリ情報フィールド4223Aには「YES」が設定されている。なお、マルチキャストルータポートフィールド4222Aには、本実施例では設定する必要がないため、何も設定されていない。
図50(C)は、マルチキャスト中継装置4000AのVLAN管理表T4111Aを示す説明図である。VLAN管理表T4111Aは、VLAN情報D4210Aと、IGMPスヌーピング情報D4220Aとに基づいて生成される。
図50(D)は、マルチキャスト中継装置4000Aの複製エントリ生成情報D4230Aを示す説明図である。複製エントリ生成情報D4230AのVLAN名称フィールド4231Aには「VLAN100」が設定され、IPアドレスフィールド4232Aにはマルチキャスト中継装置4000BのVLAN100に設定されたIPアドレスである「IP_addr1」が設定され、ポート情報フィールド4233Aにはマルチキャスト中継装置4000Bが接続されているポートである「4003A」が設定されている。なお、マルチキャスト中継装置4000Aとマルチキャスト中継装置4000Bは冗長構成を取っているため、マルチキャスト中継装置4000A,4000BのVLAN100に設定されるIPアドレスは同一である。
図50(E)は、マルチキャスト中継装置4000Aの複製エントリ管理表4410Aを示す説明図である。複製エントリ管理表4410Aの内容は、上述した複製エントリ生成情報D4230Aの内容と同じである。
図51は、マルチキャスト中継装置4000Bにおける各種情報及び各種テーブルの内容を示す説明図である。図51(A)は、マルチキャスト中継装置4000BのVLAN情報D4210Bを示す説明図である。VLAN情報D4210BのVLAN名称フィールド4211Bには「VLAN100」が設定され、IPアドレスフィールド4212Bにはマルチキャスト中継装置4000BのVLAN100に設定されたIPアドレスである「IP_addr1」が設定され、ポート情報フィールド4213Bには「4001B,4002B,4003B」が設定されている。
図51(B)は、マルチキャスト中継装置4000BのIGMPスヌーピング情報D4220Bを示す説明図である。IGMPスヌーピング情報D4220Bの複製エントリ情報フィールド4223Bには、新たに、接続ポート情報が設けられている。この接続ポート情報には、複製エントリを生成するマルチキャスト中継装置が接続されているポートが設定される。本実施例では、マルチキャスト中継装置4000Aが接続されているポートである「4003B」が設定されている。
IGMPスヌーピング情報D4220Bのその他のフィールドについては、VLAN名称フィールド4221Bには「VLAN100」が設定され、複製エントリ情報フィールド4223Bには「YES」が設定されている。なお、マルチキャストルータポートフィールド4222Bには、本実施例では設定する必要がないため、何も設定されていない。
図51(C)は、マルチキャスト中継装置4000BのVLAN管理表T4111Bを示す説明図である。VLAN管理表T4111Bは、VLAN情報D4210Bと、IGMPスヌーピング情報D4220Bとに基づいて生成される。
図51(D)は、マルチキャスト中継装置4000Bの複製エントリ生成情報D4230Bを示す説明図である。複製エントリ生成情報D4230BのVLAN名称フィールド4231Bには「VLAN100」が設定され、IPアドレスフィールド4232Bにはマルチキャスト中継装置4000AのVLAN100に設定されたIPアドレスである「IP_addr1」が設定され、ポート情報フィールド4233Bにはマルチキャスト中継装置4000Aが接続されているポートである「4003B」が設定されている。なお、上述したように、マルチキャスト中継装置4000Aとマルチキャスト中継装置4000Bは冗長構成を取っているため、マルチキャスト中継装置4000A,4000BのVLAN100に設定されるIPアドレスは同一である。
図51(E)は、マルチキャスト中継装置4000Bの複製エントリ管理表T4410Bを示す説明図である。複製エントリ管理表T4410Bの内容は、上述した複製エントリ生成情報D4230Bの内容と同じである。
図52は、運用状態であるマルチキャスト中継装置4000AがIGMP加入要求メッセージを受信した場合における処理の流れを示す説明図である。マルチキャスト中継装置4000Aは、IGMP加入要求メッセージを受信すると、当該IGMP加入要求メッセージに付加情報を追加すると共に、付加情報が追加されたIGMP加入要求メッセージをマルチキャスト中継装置4000Bへ中継する。以下、詳細について説明する。
本実施例では、IGMPスヌーピング情報D4220及び複製エントリ生成情報D4230に設定されているVLANが、マルチキャストパケット中継処理部4300のVLAN登録表T4310に登録されている。したがって、マルチキャスト中継装置4000Aがマルチキャスト中継装置3000からIGMP加入要求メッセージを受信すると、当該IGMP加入要求メッセージは、複製エントリ処理部4400及びIGMPスヌーピング処理部4100に通知される(矢印F233)。
このとき、マルチキャスト中継装置3000から中継されたIGMP加入要求メッセージには付加情報が追加されていないので、当該IGMP加入要求メッセージが複製エントリ処理部4400に通知されても、マルチキャスト中継装置3000のための複製エントリ表は作成されない。
一方、IGMP加入要求メッセージがIGMPスヌーピング処理部4100の制御パケット送受信処理部4120に通知されると、制御パケット送受信処理部4120は、第1実施例と同様に、当該IGMP加入要求メッセージを解析し、複製対象のIGMP加入要求メッセージか否かを判定する(矢印F331)。当該IGMP加入要求メッセージが複製対象であった場合は、付加情報処理部4121は、第1実施例と同様に、当該IGMP加入要求メッセージに付加情報を追加する。
次に、制御パケット送受信処理部4120は、VLAN管理表4111の複製エントリ情報D4116から接続ポート情報を取得し、取得したポートに対して、付加情報が追加されたIGMP加入要求メッセージを中継する。本実施例では、接続ポート情報は4003Aであるので、制御パケット送受信処理部4120は、ポート4003Aに対して、付加情報が追加されたIGMP加入要求メッセージを中継する(矢印F234)。なお、IGMP離脱要求メッセージに関しても、IGMP加入要求メッセージと同様の手法によって中継処理が行われる。
図53は、付加情報が追加されたIGMP加入要求メッセージを待機状態であるマルチキャスト中継装置4000Bが受信した場合における処理の流れを示す説明図である。マルチキャスト中継装置4000Bが待機状態の場合において、複製エントリ生成情報D4230が設定された場合、複製エントリ処理部4400は、複製エントリ生成情報D4230を取得して(矢印F332)、複製エントリ管理表T4410を生成し、複製エントリ表の生成対象となるVLANをVLAN登録表T4310に登録する(矢印F333)。また、複製エントリ処理部4400は、複製エントリ生成情報D4230に設定された接続ポート情報もVLAN登録表T4310に登録する。
以上の処理により、マルチキャスト中継装置4000Bが待機状態であっても、登録されたポートから受信されたIGMP加入要求/離脱要求メッセージは、複製エントリ処理部4400に通知される(矢印F234)。複製エントリ処理部4400は、通知されたIGMP加入要求メッセージを、第1実施例と同様の方法によって解析し(矢印F334)、複製エントリ表T4430を作成する(矢印F335)。
図54は、マルチキャスト中継装置4000Aに障害が発生し、マルチキャスト中継装置4000Bが運用状態になった場合における処理の流れを示す説明図である。マルチキャスト中継装置4000Bが運用状態になると、マルチキャスト中継装置4000Bの運用状態判定部4500は、複製エントリ生成情報D4230を確認し(矢印F336)、1つでも複製エントリ生成情報のエントリが設定されていると、複製エントリ処理部4400に対して運用状態が遷移した旨の通知(以下では、「運用状態遷移通知」ともいう)を行う(矢印F337)。
運用状態遷移通知を受けた複製エントリ処理部4400は、VLAN情報D4210を参照して(矢印F338a)、自装置に設定されているVLAN名称及びIPアドレスを取得する(矢印F338b)。複製エントリ処理部4400内の制御パケット送受信処理部4420は、取得したVLAN名称及びIPアドレスが複製エントリ管理表T4410に登録されているか否かを判定する(矢印F339)。
複製エントリ管理表T4410に当該VLAN情報が登録されている場合には、制御パケット送受信処理部4420は、作成しておいた複製エントリ表T4430から当該複製エントリを検索して(矢印F340)、IGMP加入要求メッセージを作成する。制御パケット送受信処理部4420は、作成したIGMP加入要求メッセージに、第1実施例と同様の方法で付加情報を追加し、IGMPスヌーピング処理部4100内の制御パケット送受信処理部4120に送信する(矢印F235)。
IGMPスヌーピング処理部4100内の制御パケット送受信処理部4120は、付加情報が追加されたIGMP加入要求メッセージを解析し(矢印F341)、第1実施例と同様の方法で、障害発生前の運用装置におけるマルチキャストグループアドレス及びポート情報を取得する。制御パケット送受信処理部4120は、取得したポート情報、マルチキャストグループアドレス、VLAN名称を、エントリ生成部4130に通知し(矢印F342)、エントリ管理表T4131に登録する。エントリ生成部4130は、エントリ管理表T4131に登録された情報を、マルチキャストパケット中継処理部4300に通知し、マルチキャストパケット中継制御表T4320に登録する(矢印F343)。このようにして、新しい運用装置となったマルチキャスト中継装置4000Bにおいて、マルチキャスト通信が再開される。
図55は、マルチキャスト中継装置4000Bが待機状態から運用状態に遷移した場合における運用状態判定部4500の処理の流れを示すフローチャートである。マルチキャスト中継装置4000Bにおける運用状態判定部4500は、自装置の運用状態を監視する(ステップS6800)。運用状態判定部4500は、監視中に自装置が運用状態に遷移したことを検知すると(ステップS6801:Yes)、複製エントリ生成情報D4230を確認する(ステップS6802)。
複製エントリ生成情報D4230に1つでも設定がされている場合(ステップS6803:Yes)は、運用状態判定部4500は、複製エントリ処理部4400に対して、運用状態遷移通知を行う(ステップS6805)。複製エントリ生成情報D4230に設定がされていない場合(ステップS6803:No)は、運用状態判定部4500は、処理を終了する(ステップS6804)。
図56は、マルチキャスト中継装置4000Bが運用状態判定部から運用状態遷移通知を受信してから、IGMP加入要求メッセージを送信するまでの処理の流れを示すフローチャートである。マルチキャスト中継装置4000Bにおける複製エントリ処理部4400は、運用状態遷移通知を監視している(ステップS6900)。複製エントリ処理部4400が運用状態遷移通知を検知すると(ステップS6901:Yes)、複製エントリ処理部4400内における制御パケット送受信処理部4420は、装置構成定義部4200内のVLAN情報4210から自装置のVLAN情報を取得する(ステップS6902)。制御パケット送受信処理部4420は、取得したVLAN情報が、複製エントリ管理表T4410に設定されているか否かを判定する(ステップS6903)。
当該VLANが設定されていない場合(ステップS6907:No)は、制御パケット送受信処理部4420は、処理を終了する(ステップS6908)。一方、当該VLANが設定されていた場合(ステップS6904:Yes)は、制御パケット送受信処理部4420は、複製エントリ表T4430を検索し、当該VLANに該当するエントリが存在するか否かを判定する(ステップS6906)。
当該VLANのエントリが存在した場合(ステップS6907:Yes)は、制御パケット送受信処理部4420は、複製エントリ表T4430の当該VLANのエントリから、マルチキャストグループ、ポート情報を取得し、付加情報を追加したIGMP加入要求メッセージを作成し、自装置のIGMPスヌーピング処理部4100に送信する(ステップS6909)。
一方、当該VLANのエントリが存在しない場合は、制御パケット送受信処理部4420は、処理を終了する(ステップS6908)。なお、マルチキャスト中継装置4000BのIGMPスヌーピング処理部4100内の制御パケット送受信処理部4120が、付加情報が追加されたIGMP加入要求メッセージを受信した後における自装置へのエントリ設定処理は、第1実施例において示された処理と同様であるため、説明を省略する。
このように、第4実施例では、マルチキャストルータに限らず、任意の装置にも複製エントリを作成することが可能である。また、本実施例では、冗長構成となった装置が互いの複製エントリを生成するための機能を実装し、待機状態のマルチキャスト中継装置に複製エントリを生成している。したがって、待機状態のマルチキャスト中継装置が運用状態に切り替わったときに、運用状態となったマルチキャスト中継装置が、自装置に生成された複製エントリに基づいて、迅速に、旧運用装置のエントリを自装置に設定することができる。
なお、冗長構成でない場合にも、複製エントリを生成する装置を任意の装置の中から選択し、当該装置が接続されているポートを指定し、当該ポートを用いて当該装置に複製エントリの生成処理を実行させ、障害復旧時には当該装置に対して複製エントリの配信を要求することで、障害発生前のエントリを迅速に再製することができる。
マルチキャスト中継装置4000Bが運用状態に遷移したあと、IGMPクエリアからIGMP問い合わせメッセージが送信される。マルチキャスト受信者20は、IGMP問い合わせメッセージに対してIGMP加入要求メッセージを応答すると、マルチキャスト中継装置4000Bは、当該IGMP加入要求メッセージを受信する。このようにして、マルチキャスト通信が再開される。
この比較例のように、マルチキャスト中継装置4000Bが待機状態から運用状態への遷移後にIGMP問い合わせメッセージが送信され、IGMP加入要求メッセージの応答を受信して、マルチキャスト通信を再開する手法では、マルチキャスト通信の再開までに時間を要し、さらに、IGMP加入要求メッセージの集中受信による通信帯域の圧迫及びIGMP加入要求メッセージの受信処理が高負荷となるといった影響が発生する。
E.変形例:
なお、この発明は上記の実施例や実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能であり、例えば次のような変形も可能である。
変形例1:
上記各実施例では、IGMPスヌーピング機能を有するマルチキャスト中継装置を例として説明したが、本発明は、MLDスヌーピング機能を有するマルチキャスト中継装置に対しても適用することができる。
変形例2:
上記各実施例では、付加情報処理部は、付加情報をIGMP加入要求/離脱要求メッセージに追加して送信しているが、この代わりに、付加情報を単独で送信することとしてもよい。また、付加情報の送信は、通信帯域の使用率が所定値より低い場合や付加情報の送信を指示するコマンドを受け付けた場合等に行なわれることとしてもよい。
変形例3:
上記各実施例では、マルチキャスト中継装置は、障害から復旧したタイミングで複製エントリの配信を要求しているが、この代わりに、マルチキャスト中継装置は、システムの起動時や通信エラーの検出時等の所定のタイミングで複製エントリの配信を要求することとしてもよい。
変形例4:
上記第2実施例では、1台のマルチキャスト中継装置が2台のマルチキャスト中継装置の複製エントリを作成しているが、この代わりに、1台のマルチキャスト中継装置が3以上の複数のマルチキャスト中継装置の複製エントリを作成することとしてもよい。
変形例5:
上記各実施例におけるマルチキャスト中継装置の構成の一部または全部を組み合わせて、マルチキャスト中継システムを構築することとしてもよい。
変形例6:
上記実施例においてソフトウェアで実現されている機能の一部をハードウェアで実現してもよく、あるいは、ハードウェアで実現されている機能の一部をソフトウェアで実現してもよい。