JP2014027598A - マルチキャスト中継装置、及び、マルチキャスト中継方法 - Google Patents

マルチキャスト中継装置、及び、マルチキャスト中継方法 Download PDF

Info

Publication number
JP2014027598A
JP2014027598A JP2012168383A JP2012168383A JP2014027598A JP 2014027598 A JP2014027598 A JP 2014027598A JP 2012168383 A JP2012168383 A JP 2012168383A JP 2012168383 A JP2012168383 A JP 2012168383A JP 2014027598 A JP2014027598 A JP 2014027598A
Authority
JP
Japan
Prior art keywords
multicast
relay
port
network
topology
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2012168383A
Other languages
English (en)
Inventor
Keisuke Kadowaki
圭介 門脇
Hidehiro Fukushima
英洋 福島
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alaxala Networks Corp
Original Assignee
Alaxala Networks Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alaxala Networks Corp filed Critical Alaxala Networks Corp
Priority to JP2012168383A priority Critical patent/JP2014027598A/ja
Publication of JP2014027598A publication Critical patent/JP2014027598A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】トラフィックの増加を抑制しつつ、速やかにマルチキャスト中継を回復する。
【解決手段】マルチキャスト中継装置は、マルチキャスト中継制御情報に従って、マルチキャストグループ宛てのマルチキャストパケットを出力し、ネットワークにおけるトポロジの変更が検出された場合、トポロジの変更が検出されたネットワークに属するマルチキャストグループ宛てのマルチキャストパケットを配信する要求と、所定の値と、を含む加入要求通知を出力し、所定の値を含む加入要求通知を受信した場合、エントリ管理情報に基づいて特定された所属ポートから、加入要求通知を出力し、加入要求通知を受信した所属ポートを、加入要求通知が示すマルチキャストグループ宛てのマルチキャストパケットを出力する学習ポートとして、マルチキャスト中継制御情報に格納する。
【選択図】図2

Description

本発明は、マルチキャスト中継装置に関し、特に、回線遮断時にマルチキャスト中継を回復させるマルチキャスト中継装置に関する。
マルチキャスト技術は、インターネットにおいてマルチキャスト受信者を収容するルータが、マルチキャスト受信者と接続する複数の回線へデータパケット(マルチキャストデータパケット)を複製出力することにより、送信した一つのデータパケットを同時に複数のマルチキャスト受信者へ送信する技術である。
マルチキャスト受信者のマルチキャストグループへの加入状況を管理する代表的なマルチキャストグループ管理プロトコルとして、IGMP、及び、MLDが知られている。マルチキャストグループ管理プロトコルは、IGMPクエリアが問い合わせメッセージを定期的に送信し、問い合わせメッセージを受信したマルチキャスト受信者が受信要求を応答することで、マルチキャストグループの加入状況を管理するプロトコルである。
マルチキャスト技術は、一般的にIPアドレスを付与したインタフェース単位でデータパケットの中継処理を行う。IPアドレスを付与したインタフェースが複数の回線を収容したVLAN(Virtual LAN)であった場合、前述したとおり、マルチキャストデータパケットは、VLANに属する全ての回線に複製されて中継されるため、受信要求を行っていない回線に対してもマルチキャストデータパケットは中継されてしまう。
すなわち、VLANに属する複数の回線のうち、一つでもマルチキャストデータパケットの受信要求を行ってしまうと、VLANに属する他の全ての回線にマルチキャストデータパケットが複製され中継されてしまう。このとき、受信要求を行っていない回線に中継されるマルチキャストデータパケットは、不要なトラフィックであり、通信帯域を無駄に使用してしまう。
マルチキャストデータパケットを効率よく中継する技術として、IGMP/MLDスヌーピング技術(IGMP/MLD snooping:例えば、非特許文献2参照)が知られている。IGMP/MLDスヌーピングでは、VLANに属する回線で受信した受信要求の中身を解析し、受信した回線情報を取得する。取得された回線情報とマルチキャストグループアドレスとを元にマルチキャストデータパケットの中継を制御することで、受信要求を行った回線にのみマルチキャストデータパケットを中継する。これにより、受信要求を行った回線以外へのマルチキャスト中継は抑制され、効率よくマルチキャスト中継が行われる。
IGMP/MLDスヌーピングにおいて、前述のマルチキャスト受信者から送信された受信要求(IGMP/MLD加入要求メッセージ)によって、中継制御情報が生成される。ネットワーク内に設定されるIGMP/MLD問い合わせメッセージ送信装置(IGMP/MLDクエリア)、又は、マルチキャストルータは、IGMP/MLD問い合わせメッセージを定期的に送信する。そして、各VLANに接続されるマルチキャスト受信者は、送信されたIGMP/MLD問い合わせメッセージに対して、IGMP/MLD加入要求メッセージを応答する。
IGMP/MLDスヌーピングを使用する場合、自装置とマルチキャストルータと、又は、自装置と上流装置とを接続するポートに、一般的にマルチキャストルータポートを設定する。マルチキャストルータポートの役割として、主に下記の二つが挙げられる。
マルチキャストルータポートの一つ目の役割として、下流のマルチキャスト受信者からの加入要求、及び、離脱要求メッセージを中継する役割がある。ネットワークに備わる各装置は、マルチキャスト受信者から送信された加入要求、及び、離脱要求メッセージをマルチキャストルータポートに中継することで、マルチキャストルータ、又は上流装置に、当該メッセージを送り届ける。これにより、マルチキャストルータ、又は上流装置は、下流のマルチキャストグループ加入状態を把握し、マルチキャストデータパケットの下流への中継可否を制御する。
マルチキャストルータポートの二つ目の役割として、ネットワーク内のマルチキャスト送信者が送信したマルチキャストデータパケットを中継する役割がある。
ネットワーク内のマルチキャスト送信者が送信したマルチキャストデータパケットを、マルチキャストルータポートに送信することで、マルチキャストルータに当該マルチキャストデータパケットを送り届ける。これにより、マルチキャスト送信者から送信されたマルチキャストデータパケットを、マルチキャストルータでマルチキャスト中継することが可能になる。
マルチキャストルータポートには、静的設定方式(例えば、非特許文献3参照)と動的設定方式(例えば、非特許文献4参照)が存在する。静的設定方式は装置の外部よりマルチキャストルータポートを静的に設定する方式である。
動的設定方式はIGMP/MLDクエリア、又は、マルチキャストルータから送信される制御パケット(IGMP/MLD問い合わせメッセージなど)を受信したポートを自動的にマルチキャストルータポートに設定する方式である。
スパニングツリー等を使用した冗長構成のネットワークでIGMP/MLDスヌーピングを使用し、静的設定方式を使用する場合、回線障害等でトポロジ変更が発生することを考慮して、マルチキャストルータポートになりうる全てのポートを、予め設定する必要がある。このため、トポロジ変更が発生した場合は、予めマルチキャストルータポートになりうるポートをマルチキャストルータポートとして設定しているので、トポロジ変更後マルチキャストルータポートを再設定する必要は無くマルチキャスト中継回復までの時間は短い。
一方、動的設定方式を使用する場合、IGMP/MLDクエリアから送信されたIGMP/MLD問い合わせメッセージを受信したポートをマルチキャストルータポートに設定するため、冗長構成のネットワークでもIGMP/MLDクエリア方向にのみIGMP/MLD加入要求メッセージ、IGMP/MLD離脱要求メッセージ、及び、マルチキャストデータパケットを中継する。
よって、不要なポートへの中継は抑止され、効率の良い中継を実現できる。さらに、自動でマルチキャストルータポートを学習するため、ネットワーク構成の変更が生じても、特に対応する必要は無い。
また、IGMP/MLD問い合わせメッセージを受信した場合におけるIGMP/MLD加入要求メッセージの応答は、IGMP/MLD加入要求メッセージの集中受信を考慮し、間隔を空けて実行される。最大応答時間はIGMP(例えば、非特許文献1参照)、及びMLD(例えば、非特許文献2参照)のプロトコル規格として通常は10秒である。最大応答時間は問い合わせメッセージ内に格納され、マルチキャスト受信者は応答時間を最大応答時間より無作為に決定する。
冗長構成のネットワークで回線障害が発生した場合に、迅速にマルチキャスト中継を回復する手法として、冗長ネットワークで回線障害が発生したあとに即座にIGMP/MLD問い合わせメッセージを送信することで、早急にマルチキャスト中継を回復する技術が考案されている(例えば、特許文献1参照)。
このIGMP/MLD問い合わせメッセージを早期に配信して、マルチキャスト中継を回復する方法の場合、IGMP/MLDクエリアからの定期的なIGMP/MLD問い合わせメッセージの送信を待たずに、IGMP/MLD問い合わせメッセージを送信するため、比較的早くマルチキャスト受信者からIGMP/MLD加入要求メッセージを受信して、マルチキャスト中継を回復することができる。
特開2007−324688号公報
IETF, "Internet Group Management Protocol, Version 2", RFC2236 IETF, "Multicast Listener Discovery (MLD) for IPv6", RFC2710 "AX3800S ソフトウェアマニュアル Ver.11.8 コンフィグレーションガイド Vol.1 26.3.3 マルチキャストルータとの接続"、[online]、アラクサラネットワークス株式会社、[平成24年6月13日検索]、インターネット<URL:http://www.alaxala.com/jp/techinfo/archive/manual/AX3800S/HTML/11_8/CFGUIDE/INDEX.HTM> "Catalyst 3560 スイッチ ソフトウェア コンフィギュレーション ガイド Cisco IOS Release 12.2(25)SED IPv6 MLDスヌーピングの設定"、[online]、Cisco Systems,Inc.、[平成24年6月13日検索]、インターネット<URL:http://www.cisco.com/cisco/web/support/JP/docs/SW/LANSWT-Access/CAT3560SWT/CG/001/16404_05_36.html?bid=0900e4b18252986e>
冗長構成のネットワークでIGMP/MLDスヌーピングを使用してマルチキャスト中継を行っているマルチキャスト中継装置において、マルチキャストルータポートを設定する場合、静的設定方式では、通常運用時に全てのマルチキャストルータポート(本来、中継の必要のないポート)に、IGMP/MLD加入要求メッセージ、IGMP/MLD離脱要求メッセージ、及び、マルチキャストデータパケットを中継してしまうことになり、無駄なトラフィックが多い。また、ネットワーク構成が変わるたびに、マルチキャストルータポートを設定しなおさなければいけないという煩わしさもある。このため、静的設定方式は、冗長構成のネットワークには適さない。
動的設定方式は通常運用時は効率よく中継できる。しかし、トポロジ変更が発生した場合は、IGMP/MLDクエリアからIGMP/MLD問い合わせメッセージが送信されて、マルチキャストルータポートを再学習し、マルチキャスト受信者よりIGMP/MLD加入要求メッセージが応答されるまでは中継が回復しない。例えば、IGMP/MLD問い合わせメッセージは一般的に125秒間隔で送信されるため、最大125秒中継が回復できない可能性がある。
さらに、IGMP/MLDクエリアからIGMP/MLD問い合わせメッセージが送信されたとしても、最大応答時間(例えば10秒)より応答時間を無作為に決定するため、IGMP/MLD問い合わせメッセージ受信から例えば、最大10秒間中継が回復しない可能性もある。
さらに、IGMP/MLD問い合わせメッセージは受信したVLAN内にフラッディングするため、膨大なマルチキャスト受信者を収容している場合、大量のIGMP/MLD加入要求メッセージが応答される可能性があり、加入要求メッセージ受信処理の高負荷によるマルチキャスト中継制御情報作成処理のさらなる遅延が生じる可能性もある。
前述したとおり、冗長構成のネットワークでIGMP/MLDスヌーピングを使用し、マルチキャストルータポートを設定する場合、静的設定方式は、トポロジ変更時に迅速にマルチキャスト中継を回復できるが、通常運用時に無駄なトラフィックが多すぎるため、冗長構成のネットワークに適さない。また、動的設定方式も、通常運用時は効率よくマルチキャスト中継を行えるが、トポロジ変更時に即座にマルチキャスト中継を回復できない。
また、特許文献1のように、トポロジ変更時にIGMP/MLD問い合わせメッセージを送信してIGMP/MLD加入要求メッセージを受信する場合、比較的早くマルチキャスト中継は回復するが、膨大なIGMP/MLD加入要求メッセージが応答される可能性があり、大量のIGMP/MLD加入要求メッセージの受信処理の高負荷により発生する中継制御情報作成処理の遅延については改善されない。この結果、迅速なマルチキャスト中継の回復とはならない。
本発明の目的は、通常運用時も効率よくマルチキャスト中継を行い、回線障害等でトポロジを変更した場合も、迅速にマルチキャスト中継を回復し、マルチキャスト中継回復までのIGMP/MLD加入要求メッセージの受信による高負荷状態を低減できる装置、及び、手法を提供するものである。
本発明の代表的な一形態によると、冗長構成を含むトポロジによって構成されるネットワークに備わり、受信装置にマルチキャストパケットを送信するマルチキャスト中継装置であって、前記受信装置には、マルチキャストグループが割り当てられ、前記マルチキャスト中継装置は、前記ネットワークに向けてパケットを出力する複数の所属ポートと、前記ネットワークと、当該ネットワークに属する前記マルチキャストグループと、当該マルチキャストグループ宛てのマルチキャストパケットを出力するために当該マルチキャストグループに割り当てられた前記所属ポートである学習ポートと、を示すマルチキャスト中継制御情報と、前記マルチキャストグループを示す値と、当該マルチキャストグループに割り当てられた前記学習ポートを示す値と、前記トポロジが変更される前に当該学習ポートが使用されるか否かを示す値とを含むエントリ管理情報と、前記マルチキャスト中継制御情報に従って、前記マルチキャストグループ宛てのマルチキャストパケットを出力するマルチキャストパケット中継処理部と、前記ネットワークにおける前記トポロジの変更を検出するトポロジ検出部と、前記トポロジの変更が検出された場合、前記トポロジの変更が検出されたネットワークに属するマルチキャストグループ宛てのマルチキャストパケットを配信する要求と、所定の値と、を含む加入要求通知を出力する中継回復処理部と、を有し、前記中継回復処理部は、前記所定の値を含む前記加入要求通知を受信した場合、前記エントリ管理情報に基づいて特定された所属ポートから、前記加入要求通知を出力し、前記加入要求通知を受信した所属ポートを、前記加入要求通知が示すマルチキャストグループ宛てのマルチキャストパケットを出力する前記学習ポートとして、前記マルチキャスト中継制御情報に格納する。
本発明の一実施形態によると、高負荷状態を低減しつつ、速やかにマルチキャスト中継を回復できる。
本実施例1のVLANを実装する物理的な構成を示すブロック図である。 本実施例1のマルチキャスト中継装置の構成を示すブロック図である。 本実施例1のエントリ管理表を示す説明図である。 本実施例1のマルチキャストパケット中継制御表を示す説明図である。 本実施例1の各マルチキャスト中継装置のマルチキャストパケット中継制御表を示す説明図である。 本実施例1のトポロジ変更が検出された後のマルチキャストパケットの中継回復処理を示すシーケンス図である。 本実施例1のトポロジ変更時の加入要求メッセージ自発処理を示すフローチャートである。 本実施例1の自発加入要求メッセージ中継処理を示すフローチャートである。 本実施例1のマルチキャスト中継装置が自発加入要求メッセージ学習処理を示すフローチャートである。 本実施例1の各マルチキャスト中継装置のマルチキャストパケット中継制御表1320を示す説明図である。 本実施例1の問い合わせメッセージ受信後のマルチキャスト中継装置のマルチキャストパケット中継制御表を示す説明図である。 本実施例2のVLANを実装する物理的な構成を示すブロック図である。 本実施例2のマルチキャスト中継装置の構造を示すブロック図である。 本実施例2の各マルチキャスト中継装置のマルチキャストパケット中継制御表を示す説明図である。 本実施例2のトポロジ変更が検出された後のマルチキャストパケットの中継回復処理、及びマルチキャスト中継回復処理を示すシーケンス図である。 本実施例2のマルチキャストルータポート設定処理を示すフローチャートである。 本実施例2のマルチキャストルータポート候補が追加された後の各マルチキャスト中継装置のマルチキャストパケット中継制御表を示す説明図である。 本実施例2の各マルチキャスト中継装置におけるマルチキャストルータポート設定処理後の、VLANにおける通信を示すブロック図である。 本実施例2の問い合わせメッセージ自発処理を示すフローチャートである。 本実施例2の問い合わせメッセージ(マルチキャストグループ指定)受信処理を示すフローチャートである。 本実施例2の不要なポートを削除した後のマルチキャストパケット中継制御表を示す説明図である。
実施例1における手段(以下、手段1)は、本発明のマルチキャスト中継装置が、通常運用時は動的設定方式でマルチキャストルータポートを設定し、回線障害等にトポロジ変更が生じた場合は、マルチキャスト中継装置自身が学習しているマルチキャストグループのIGMP/MLD加入要求メッセージを自発する方法である。
このとき、IGMP/MLD加入要求メッセージは、トポロジ変更前に学習しているマルチキャストグループのIGMP/MLD加入要求メッセージを、受信していないポートに送信される。送信されたIGMP/MLD加入要求メッセージは、ネットワーク内のマルチキャスト中継装置によって受信され、マルチキャスト中継装置は、受信されたIGMP/MLD加入要求メッセージを、ネットワーク内のマルチキャスト中継装置が自発したIGMP/MLD加入要求メッセージであることを認識する。
マルチキャスト中継装置は、IGMP/MLD加入要求メッセージを受信した場合、認識したIGMP/MLD加入要求メッセージに基づいてマルチキャストグループを取得し、取得されたマルチキャストグループのIGMP/MLD加入要求メッセージをトポロジ変更前に受信していないポートに中継する。
この処理をネットワーク内の各マルチキャスト中継装置において繰り返すことで、全マルチキャスト中継装置が学習しているマルチキャストグループのIGMP/MLD加入要求メッセージが、マルチキャストルータ、及び、上流装置に到達し、マルチキャスト中継を回復することができる。マルチキャスト受信装置からの応答ではなく、マルチキャスト中継装置が学習しているマルチキャストグループ分だけIGMP/MLD加入要求メッセージを自発することで、最小限のIGMP/MLD加入要求メッセージ送信で済むため、マルチキャスト中継回復までの中継制御情報生成処理の負荷を低減することができる。また、通常運用時は動的設定方式でマルチキャストルータポートを設定するため、効率の良いマルチキャスト中継を実現できる。
実施例1ではIGMPスヌーピングでの実施例について記述する。
前述したとおり、実施例1のマルチキャスト中継装置は、トポロジ変更時にマルチキャスト中継装置が自装置で学習しているマルチキャストグループの加入要求メッセージを自発し、各マルチキャスト中継装置がネットワーク内の他のマルチキャスト中継装置が自発した加入要求メッセージを判別して更に中継することで、マルチキャスト送信装置を収容するマルチキャスト中継装置に加入要求メッセージを到達させ、迅速なマルチキャスト中継の回復を実現する。
実施例1では、トポロジ変更時にマルチキャスト中継装置が自発する加入要求メッセージを判別するために、自発した加入要求メッセージのソースアドレスに(0.0.0.0)を設定している。なお、自発した加入要求メッセージをマルチキャスト中継装置が識別できれば、いかなる方法を用いてもよい。
図1は、本実施例1のVLAN100を実装する物理的な構成を示すブロック図である。
図1に示すVLAN100は、冗長構成を有する。また、図1に示すVLAN100は、複数のマルチキャスト中継装置(1000、2000、3000)によって実装される。マルチキャスト中継装置は、スイッチ又はルータ等のネットワーク装置であり、各々プロセッサ、及びメモリを備える計算機である。
実施例1において、マルチキャスト中継装置1000、2000、3000がVLAN100のみを実装するが、各マルチキャスト中継装置は、複数のVLANを実装してもよい。
マルチキャスト中継装置1000は、所属ポートとして、ポート1001、1002、1003、及び1004を備える。マルチキャスト中継装置2000は、所属ポートとして、ポート2001、2002、及び2003を備える。マルチキャスト中継装置3000は、所属ポートとして、ポート3001、3002、及び3003を備える。
実施例1における所属ポートとは、VLAN100においてパケットを送受信するポートを示す。
一般的にIGMPスヌーピングは、マルチキャスト受信装置を認識して、受信要求を行ったマルチキャスト受信装置のみにマルチキャスト通信を行う機能である。このため、マルチキャスト受信装置10、11に接続されるマルチキャスト中継装置1000、マルチキャスト受信装置12に接続されるマルチキャスト中継装置3000に、本実施例1の機能を設定するが、さらに、本構成では全てのマルチキャスト中継装置で効率よくマルチキャスト中継を行うために、マルチキャスト中継装置2000にも本実施例1の機能を設定する。
マルチキャスト中継装置2000にはマルチキャスト送信装置20が接続され、マルチキャスト送信装置20は、Group1_addr宛てのマルチキャストデータパケット110とGroup2_addr宛てのマルチキャストデータパケット150とを配信し続ける。
マルチキャスト受信装置10は、マルチキャストグループのGroup1_addrが割り当てられ、マルチキャストデータパケット110(Group1_addr宛)を受信する。また、マルチキャスト受信装置12は、マルチキャストグループのGroup2_addrが割り当てられ、マルチキャストデータパケット150(Group2_addr宛)を受信する。
本実施例1のVLAN100は冗長構成であるため、VLAN100におけるレイヤ2ネットワークがループしないように制御される必要がある。本実施例1のVLAN100において、ループを防止する機能としてスパニングツリー機能が使用される。
図1に示すVLAN100において、スパニングツリー機能でポート2003がブロッキング状態にされる。ポート2003をブロッキング状態にし、トラフィックを遮断することで、レイヤ2ネットワーク内のループが防止される。ブロッキングポートの選択方法等、スパニングツリー機能の詳細な動作は省略する。
VLAN100において、マルチキャスト送信装置20を収容するマルチキャスト中継装置2000は、実施例1のIGMPクエリアである。IGMPクエリアは、所属ポートの全ポートに問い合わせメッセージ(300、301)を送信する。しかし、ポート2003はブロッキング状態であるため、マルチキャスト中継装置2000はポート2003から問い合わせメッセージを送信できない。
各マルチキャスト中継装置は、受信した問い合わせメッセージを受信ポート以外の所属ポートに中継(フラッディング)する(問合せメッセージ302、303、304、305、306)。
本方式における各マルチキャスト中継装置は、通常運用時においてマルチキャストルータポートを動的設定方式で設定する。このため、マルチキャスト中継装置2000から送信された問い合わせメッセージ(301)を受信するポート、すなわちマルチキャスト中継装置1000のポート1001、及び、問い合わせメッセージ(302)を受信するマルチキャスト中継装置3000のポート3002がマルチキャストルータポートとして使用される。
次に通常運用時におけるIGMPスヌーピングの学習処理について述べる。
マルチキャスト中継装置1000に接続するマルチキャスト受信装置10が、マルチキャスト送信装置20より配信されるマルチキャストデータパケット110(Group1_addr宛)を受信する場合、マルチキャスト受信装置10は、加入要求メッセージ(Group1_addr宛)をマルチキャスト中継装置1000に送信する(200)。
マルチキャスト中継装置1000は、加入要求メッセージ(Group1_addr宛)を受信した場合、マルチキャスト中継装置1000において動作するIGMPスヌーピングによって、加入要求メッセージを解析する。そして、マルチキャスト受信装置10に対応するマルチキャストグループ(Group1_addr)と受信ポート情報とを取得し、それを元にマルチキャストデータパケット110のマルチキャスト中継制御情報を、マルチキャスト中継装置1000に設定する。
本実施例において、マルチキャストグループとポート情報とを組み合わせてマルチキャスト中継制御情報に設定することを、学習と記載する。また、加入要求メッセージによってマルチキャスト中継制御情報に設定されたポート(加入要求メッセージの受信ポート)を、学習ポートと記載する。
これにより、マルチキャスト中継装置1000がマルチキャストデータパケット110(Group1_addr宛)を受信した場合、加入要求メッセージ(Group1_addr宛)の受信ポートであるポート1002のみに、マルチキャストデータパケット110(Group1_addr宛)を中継する。
マルチキャスト中継装置1000で動作するIGMPスヌーピングは、受信した加入要求メッセージ(Group1_addr宛)をマルチキャストルータポート1001に中継する(201)。マルチキャスト中継装置2000のIGMPスヌーピングは、中継された加入要求メッセージ(Group1_addr宛)を解析して、マルチキャストグループ(Group1_addr)と受信ポート情報を取得し、それを元にマルチキャストデータパケット110のマルチキャスト中継制御情報を設定(学習)する。
これにより、マルチキャスト送信装置20から送信されたマルチキャストデータパケット(Group1_addr宛)は、加入要求メッセージ(Group1_addr宛)を受信したポート2001のみに中継される。
マルチキャスト中継装置2000は、加入要求メッセージ(Group1_addr宛)を受信した場合、マルチキャストルータポートの設定がされていないため、加入要求メッセージをどこにも中継しない。
マルチキャスト中継装置1000、及び、2000でマルチキャストデータパケット110のマルチキャスト中継制御情報を学習した結果、マルチキャストデータパケット(Group1_addr)はマルチキャスト中継装置2000からマルチキャスト中継装置1000に中継され、マルチキャスト中継装置1000のマルチキャスト中継制御情報に従ってポート1002のみに中継される。そして、マルチキャストデータパケット(Group1_addr宛)は、マルチキャスト受信装置10に送り届けられる。
マルチキャスト受信装置12がマルチキャスト送信装置20より配信されるマルチキャストデータパケット150(Group2_addr宛)を受信する場合も、マルチキャスト受信装置12は加入要求メッセージ(Group2_addr宛)をマルチキャスト中継装置3000に送信する(202)。
そして、マルチキャスト中継装置3000、1000は、加入要求メッセージ(Group2_addr宛)を、各々が有するマルチキャストルータポートに中継し(203、201)、各々の装置においてGroup2_addrのマルチキャスト中継制御情報を生成する。これによって、マルチキャスト送信装置20によって送信されるマルチキャストデータパケット150(Group2_addr宛)は、マルチキャスト中継装置2000、1000、3000を介して、マルチキャスト受信装置12に送り届けられる。
各マルチキャスト受信装置が加入要求メッセージを送信して以降、各マルチキャスト受信装置が、加入していたマルチキャストグループに継続して加入する意思がある間は、各マルチキャスト受信装置は、IGMPクエリアによって定期的に送信される問い合わせメッセージに対して当該マルチキャストグループの加入要求メッセージを応答することによって、加入していたマルチキャストグループへの加入状態を維持し続ける。
各マルチキャスト中継装置が、前述の加入要求メッセージによる学習処理を行うことにより、図1のネットワーク構成において、マルチキャスト送信装置20から送信されたマルチキャストデータパケット(Group1_addr宛)は、マルチキャスト中継装置2000、1000を経由してマルチキャスト受信装置10のみに中継される。また、マルチキャストデータパケット(Group2_addr宛)は、マルチキャスト中継装置2000、1000、3000を経由してマルチキャスト受信装置12のみに中継される。
図2は、本実施例1のマルチキャスト中継装置1000の構成を示すブロック図である。
図2は、マルチキャスト中継装置1000の内部構成を示すが、マルチキャスト中継装置2000、3000も、マルチキャスト中継装置1000と同じ構成を備える。
マルチキャスト中継装置1000は、IGMPスヌーピング処理部1100、装置構成定義部1200、マルチキャストパケット中継処理部1300、トポロジ変更検出部1400、及び、マルチキャスト中継回復処理部1500を備える。
装置構成定義部1200には、VLAN情報1210、及び、IGMPスヌーピング情報1220が、管理者、又は開発者等からの入力により設定される。管理者等は、図示しない入力装置によって、VLAN情報1210、及び、IGMPスヌーピング情報1220をマルチキャスト中継装置1000に入力する。
VLAN情報1210は、マルチキャスト中継装置1000に設定されるVLANを示すVLAN名称、及び、当該VLANにおいて用いられる所属ポート情報を保持する。VLAN名称とは、VLANを一意に識別するための識別子であり、VLAN番号、又は、VLANに割り当てられた名称等である。
IGMPスヌーピング情報1220は、IGMPスヌーピングを適用されるVLAN名称を保持する。
IGMPスヌーピング処理部1100は、IGMPスヌーピング機能を実現するための処理部である。IGMPスヌーピング処理部1100は、VLAN管理部1110、制御パケット送受信処理部1120、及び、IGMPスヌーピングのマルチキャスト中継制御情報を生成するエントリ生成部1130を備える。
VLAN管理部1110は、VLAN管理表1111を管理する。VLAN管理表1111は、装置構成定義部1200から取得された、IGMPスヌーピングを使用するVLAN名称、当該VLANの所属ポート情報、及び、マルチキャストルータポート情報を格納する。
エントリ生成部1130は、エントリ管理表1131を管理する。エントリ管理表1131は、各VLANにおいて学習された、マルチキャストグループのマルチキャストグループ情報、学習ポート情報、生存タイマ、及び、属性フラグを格納する。
生存タイマは、学習ポート情報のタイムアウトを管理するために用いるものである。属性フラグは、学習ポート情報が示すポートが学習されたタイミングが、トポロジ変更前(通常運用時)であるか、又は、トポロジ変更後であるかを示すフラグである。
制御パケット送受信処理部1120は、各VLANにおいて送受信されるマルチキャスト制御パケットの、送受信処理を行う処理部である。
マルチキャストパケット中継処理部1300は、マルチキャスト中継装置1000が受信するマルチキャストパケットの中継を制御する処理部である。マルチキャストパケット中継処理部1300は、VLAN登録表1310、及び、マルチキャストパケット中継制御表1320を管理する。
VLAN登録表1310は、IGMPスヌーピングを適用されるVLAN名称を格納する。マルチキャストパケット中継制御表1320は、VLAN登録表1310が示すVLANにおいて学習されたマルチキャスト中継エントリ情報(VLAN名称、マルチキャストグループ名称、及び、学習ポート情報)を格納する。
マルチキャストパケット中継制御表1320及びエントリ管理表1131は、実施例1のマルチキャスト中継制御情報を示す。
トポロジ変更検出部1400は、各マルチキャスト中継装置間のネットワークがトポロジ変更を行った場合、トポロジ変更を検知し、マルチキャスト中継回復処理部1500にトポロジ変更通知を送信する処理部である。
マルチキャスト中継回復処理部1500は、トポロジ変更通知が送信された場合、即座にマルチキャスト中継の回復処理を行う処理部である。マルチキャスト中継回復処理部1500は、回復処理制御部1510、加入要求自発処理部1520、及び、自発加入要求送受信処理部1530を備える。
回復処理制御部1510は、トポロジ変更通知を受信した場合、中継回復処理を制御する処理部である。加入要求自発処理部1520は、トポロジ変更通知を受信した場合、加入要求メッセージを自発的に送信する処理部である。自発加入要求送受信処理部1530は、トポロジ変更通知を受信した場合、他のマルチキャスト中継装置から送信された加入要求メッセージを送受信する処理部である。
なお、マルチキャスト中継装置1000が有する各処理部は、物理的なLSIによって各々実装されてもよいし、プログラムをプロセッサが実行することによって実装されてもよい。また、各処理部は、各処理部において実行する複数の処理を、複数の処理部を有することによって実行してもよい。また、複数の処理部が一つの処理部によって実装されてもよい。
図1に示すVLAN100の通常運用時において、マルチキャスト中継装置1000がIGMPスヌーピング機能を使用し、動的設定方式でマルチキャストルータポートを設定するための具体的な手順を以下に説明する。
マルチキャスト中継装置1000でIGMPスヌーピング機能を有効にする処理を、図2を用いて説明する。IGMPスヌーピングを有効にするということは、IGMPスヌーピングを有効にするVLANにおいて受信されるIGMP制御パケットを、IGMPスヌーピング制御部に通知するようにすることと同義である。また、IGMPスヌーピングを有効にするVLANにおいて受信した未学習のマルチキャストデータパケットの中継を抑止することと同義でもある。なお、マルチキャスト中継装置1000は、IGMPスヌーピング機能を有効にした直後において、なにも学習していない(加入要求メッセージを受信していない)ため、全てのマルチキャストデータパケットの中継を抑止する。
本装置のVLAN100においてIGMPスヌーピングを適用する場合、管理者、又は開発者(以下、ユーザ)は、マルチキャスト中継装置1000の装置構成定義部1200にVLAN情報1210、及び、IGMPスヌーピング情報1220を設定する。このとき、IGMPスヌーピング処理部1100は、VLAN情報1210、及び、IGMPスヌーピング情報1220を取得し、VLAN管理部1110内のVLAN管理表1111にマルチキャストを使用するVLANのVLAN名称、当該VLANの所属ポート情報を登録する。この段階において、マルチキャストルータポートは不明(未学習)であるため、VLAN管理表1111に、マルチキャストルータポートを示す値は登録されない。
次に、VLAN管理部1110は、VLAN管理表1111に登録されたVLAN情報をマルチキャストパケット中継処理部1300に通知する。マルチキャストパケット中継処理部1300は、VLAN登録表1310に通知されたVLAN情報に含まれるVLAN名称を登録する。
マルチキャストパケット中継処理部1300は、受信したIGMP制御パケット(IGMP加入要求/離脱要求/問い合わせメッセージ)を解析し、受信したIGMP制御パケットがいずれのVLANにおいて送信されたパケットであるかを取得する。そして、マルチキャストパケット中継処理部1300は、取得されたVLANのVLAN名称が、VLAN登録表1310に登録されている場合、IGMPスヌーピング処理部1100に通知する。これにより、マルチキャストパケット中継処理部1300は、IGMPスヌーピングが適用されるVLAN100によって、受信されたIGMP制御パケットを、IGMPスヌーピング処理部1100に通知できる。
マルチキャストパケット中継処理部1300は、VLAN登録表1310にVLAN情報を登録したあと、マルチキャストパケット中継制御表1320に未学習エントリを学習ポート無しで登録する。登録されたVLANにおいて受信された未学習のマルチキャストデータパケット(マルチキャスト受信装置の存在しないマルチキャストデータパケット)は、マルチキャストパケット中継制御表1320の未学習エントリに合致するため、どこにも中継されない(学習ポート無しのため)。
なお、本実施例において、マルチキャストパケット中継制御表1320に含まれるエントリのうち、マルチキャストグループ名称とポートとを対応付けて示すエントリを学習エントリと記載し、ポートに対応するマルチキャストグループ名称が格納されていないエントリを未学習エントリと記載する。
これにより、マルチキャストパケット中継処理部1300は、IGMPスヌーピングが適用されるVLANにおいて、受信装置の存在しないマルチキャストデータパケットの中継抑止を実現する。
次に図1に示すVLAN100において、マルチキャスト中継装置2000(IGMPクエリア)から送信された問い合わせメッセージをマルチキャスト中継装置1000が受信し、マルチキャスト中継装置1000がマルチキャストルータポートを学習する処理を、図2を用いて説明する。
IGMPクエリアと接続するためのポート1001によって、問い合わせメッセージが受信された場合、マルチキャストパケット中継処理部1300は、問い合わせメッセージが送信されたVLANと、VLAN登録表1310とに従って、問い合わせメッセージをIGMPスヌーピング処理部1100に通知する。受信した問い合わせメッセージは、IGMPスヌーピング処理部1100の制御パケット送受信処理部1120に通知される。制御パケット送受信処理部1120は、受信した問い合わせメッセージを解析し、問い合わせメッセージを受信したVLAN名称、及び、ポート(ポート1001)を取得する。
VLAN管理部1110は、取得された受信ポート1001を、マルチキャストルータポートとして学習し、VLAN管理表1111のマルチキャストルータポート情報に登録(学習)する。次に、VLAN管理部1110は、問い合わせメッセージを受信したVLAN情報と、学習したマルチキャストルータポート情報とを、マルチキャストパケット中継制御部1300に通知する。
マルチキャストパケット中継制御部1300は、すでにマルチキャストパケット中継制御表1320に設定されている未学習エントリ(問い合わせメッセージを受信したVLANに対応))の学習ポートに、マルチキャストルータポート情報(ポート1001を示す)を登録する。これにより、問い合わせメッセージを受信したVLANにおいて、以後受信される未学習のマルチキャストデータパケットは、未学習エントリに合致するため、マルチキャストルータポート(ポート1001)に中継される。
次に、問い合わせメッセージのフラッディング処理について図2を用いて説明する。マルチキャストパケット中継処理部1300は、問い合わせメッセージを受信し、マルチキャストルータポートの設定を行ったあと、問い合わせメッセージが送信されたVLANの所属ポート情報を、VLAN管理表1111から取得する。そして、マルチキャストパケット中継処理部1300は、取得された所属ポートのうち、問い合わせメッセージを受信したポート(ポート1001)以外の全ポートに問い合わせメッセージを中継する。これにより、図1に示す構成において、マルチキャスト中継装置1000によって受信された問い合わせメッセージを、マルチキャスト中継装置1000は、マルチキャスト中継装置3000にも中継できる。
次に、図1に示す構成での、マルチキャスト中継装置1000で中継した問い合わせメッセージをマルチキャスト中継装置3000のポート3002が受信した場合、マルチキャスト中継装置3000は、マルチキャスト中継装置1000と同じく、IGMPスヌーピング機能を使用する処理、及び、問い合わせメッセージを受信した場合の処理(マルチキャスト中継装置1000のVLAN管理表1111、及び、マルチキャストパケット中継制御表1320に各情報を登録する処理)を行う。
ポート3002によって問い合わせメッセージを受信した場合、マルチキャスト中継装置3000のVLAN管理表1111のマルチキャストルータポート情報には、ポート3002を示す値が登録され、マルチキャストパケット中継制御表3320の未学習エントリの学習ポートには、マルチキャストルータポートとしてポート3002を示す値が登録される。
そして、マルチキャスト中継装置3000も、マルチキャスト中継装置1000と同じく、問い合わせメッセージのフラッディング処理を実行する。
マルチキャスト中継装置2000は、IGMPクエリアであり、問い合わせメッセージを受信しないため、マルチキャストルータポートを、マルチキャスト中継装置2000のVLAN管理表1111、及び、マルチキャストパケット中継制御表1320に登録しない。具体的には、マルチキャスト中継装置2000において、マルチキャスト中継装置2000のVLAN管理表1111のマルチキャストルータポート情報には何も登録されず、マルチキャストパケット中継制御表1320の未学習エントリの学習ポートにも何も登録されない。
以上の処理で、マルチキャスト中継装置1000、2000、3000は、IGMPスヌーピング機能を実装する。
次に、図1に示す構成でマルチキャスト中継装置1000がマルチキャスト受信装置10から加入要求メッセージを受信したときのエントリ学習処理を、図2を用いて説明する。 このとき、加入するマルチキャストグループアドレスはGroup1_addr(VLAN100)とする。マルチキャスト受信装置10と接続するためのポート1002が加入要求メッセージを受信した場合、マルチキャスト中継装置1000のマルチキャストパケット中継処理部1300は、VLAN登録表1310において、加入要求メッセージが送信されたVLAN100が既に登録されているか否かを判定する。既に登録されている場合、マルチキャストパケット中継処理部1300は、加入要求メッセージをIGMPスヌーピング処理部1100の制御パケット送受信処理部1120に通知する。
制御パケット送受信処理部1120は、加入要求メッセージを解析して加入要求メッセージに含まれるソースアドレスを取得する。取得されたソースアドレスが、(0.0.0.0)以外である場合、実施例1の制御パケット送受信処理部1120は、受信した加入要求メッセージはマルチキャスト受信装置から送信された加入要求メッセージであると判定し、通常学習処理、及び、中継処理に移行する。
通常中継処理に移行した後、制御パケット送受信処理部1120は、VLAN管理表1111のマルチキャストルータポート情報より、学習したマルチキャストルータポートを取得し、取得したマルチキャストルータポートに対して、受信した加入要求メッセージを送信(中継)する。
通常学習処理に移行した後、制御パケット送受信処理部1120は、加入要求メッセージを解析して、受信したVLAN100のVLAN名称、マルチキャストグループアドレス(Group1_addr)、及び、受信ポート情報(ポート1002を示す値)を取得する。
制御パケット送受信処理部1120は、取得されたVLAN名称、マルチキャストグループアドレス、及び、受信ポート情報をエントリ生成部1130に通知する。そして、エントリ生成部1130は、通知された情報を、VLAN名称、マルチキャストグループ名称、及び、学習ポート情報としてエントリ管理表1131に登録する。このとき、エントリ生成部1130は、受信した加入要求メッセージがマルチキャスト受信装置からの加入要求メッセージであるとソースアドレスから判定できるため、属性フラグとして通常学習フラグを、エントリ管理表1131に登録する。
エントリ生成部1130は、エントリ管理表1131に登録したVLAN名称、マルチキャストグループアドレス、及び、受信ポート、並びに、マルチキャストルータポート情報を、マルチキャストパケット中継処理部1300に通知し、マルチキャストパケット中継処理部1300に、通知されたVLAN名称、及びマルチキャストグループアドレスを、VLAN名称、及び、マルチキャストグループ名称として、マルチキャストパケット中継制御表1320に登録させる。また、マルチキャストパケット中継処理部1300に、通知された受信ポート、及びマルチキャストルータポート情報を、学習ポート情報として、マルチキャストパケット中継制御表1320に登録させる。
これにより、マルチキャスト中継装置1000が受信したVLAN100のマルチキャストデータパケット(Group1_addr宛)は、マルチキャストパケット中継制御表1320に登録されたGroup1_addrと合致するため、加入要求メッセージを受信したポートである1002とマルチキャストルータポートのポート1001とに中継される。
ただし、前述の例ではGroup1_addr宛の学習ポートにマルチキャストルータポートであるポート1001が登録されるが、マルチキャストデータパケット(Group1_addr宛)の受信ポートがポート1001である場合、マルチキャストデータパケットをポート1001に中継しない。マルチキャスト中継装置1000は、受信ポートへの折り返し中継は行わないためである。
ポート1002から加入要求メッセージ(Group1_addr宛)を受信した場合の、エントリ管理表1131、及びマルチキャストパケット中継制御表1320を図3A、及び図3Bに示す。
図3Aは、本実施例1のエントリ管理表1131を示す説明図である。
エントリ管理表1131は、VLAN名称1142、マルチキャストグループ名称1143、学習ポート情報1144、生存タイマ1145、及び、属性フラグ1146を含む。
図3Aに示すVLAN名称1142は、VLAN100を示す値を含み、マルチキャストグループ名称1143は、Group1_addrを示す値を含む。また、学習ポート情報1144は、ポート1002を示す値を含み、属性フラグ1146は、通常学習フラグを示す値を含む。
また、エントリ管理表1131は、学習ポートごとに生存タイマ1145を保持する。エントリ生成部1130は、学習ポート情報1144が示すポートによって加入要求メッセージが受信された際、生存タイマ1145に、例えば、260秒を設定する。生存タイマの役割については後述する。
エントリ管理表1131のエントリのうち、マルチキャストグループ名称1143と学習ポート情報1144とに値が格納されるエントリを、学習エントリと記載する。
図3Bは、本実施例1のマルチキャストパケット中継制御表1320を示す説明図である。
マルチキャストパケット中継制御表1320は、VLAN名称1321、マルチキャストグループ名称1322、及び、学習ポート情報1323を含む。
図3Bに示すマルチキャストパケット中継制御表1320は、Group1_addrエントリ1320−1を含む。エントリ1320−1の学習ポート情報1323は、加入要求メッセージを受信した受信ポートであるポート1002を示す値と、マルチキャストルータポートであるポート1001を示す値とを含む。
また、エントリ生成部1130は、マルチキャストパケット中継制御表1320に未学習エントリ1320−2を生成する。未学習エントリ1320−2の学習ポート情報1323には、マルチキャストルータポートであるポート1001を示す値が格納される。
次に図1に示すVLAN100におけるマルチキャスト中継装置1000の、マルチキャストデータパケットの中継処理について、図3Bのマルチキャストパケット中継制御表1320を用いて説明する。
マルチキャストパケット中継制御表1320は、学習済のGroup1_addrエントリ1320−1と、未学習エントリ1320−2とを含む。マルチキャストデータパケットをマルチキャスト中継装置1000が受信した場合、マルチキャストパケット中継処理部1300は、受信したマルチキャストデータパケットのマルチキャストグループグループアドレスを、マルチキャストパケット中継制御表1320において検索する。
このとき、マルチキャストパケット中継処理部1300は、VLAN100の学習済みエントリ(未学習エントリ以外)から、マルチキャストグループグループアドレスを検索する。検索した結果、受信したマルチキャストデータパケットのマルチキャストグループアドレスと合致するマルチキャストグループ名称1322を有するエントリが特定された場合、マルチキャストパケット中継処理部1300は、特定されたエントリの学習ポート情報1323に登録されているポートに、受信したマルチキャストデータパケットを中継する。具体的には、加入要求メッセージの受信ポートと、マルチキャストルータポートとに中継する。
VLAN100の学習済みエントリに、受信したマルチキャストデータパケットのマルチキャストグループアドレスと合致するエントリがない場合、マルチキャストパケット中継処理部1300は、受信したマルチキャストデータパケットが未学習のマルチキャストグループ宛てのパケットであると判定する。そして、マルチキャストパケット中継処理部1300は、未学習エントリの学習ポート情報に登録されるポートに受信したマルチキャストデータパケットを中継する。すなわち、受信したマルチキャストデータパケットをマルチキャストルータポートのみに中継する。
なお、マルチキャストパケット中継制御表1320に格納される情報を、以下においてマルチキャスト中継制御情報と記載する。
次に、図1に示すVLAN100におけるマルチキャスト中継装置3000がマルチキャスト受信装置12から加入要求メッセージを受信した場合の処理を説明する。
マルチキャスト中継装置3000は、マルチキャスト受信装置12から加入要求メッセージを受信した場合、前述したマルチキャスト中継装置1000における加入要求メッセージ受信時の処理と同じく、マルチキャストグループ(Group2)に関するマルチキャスト中継制御情報を生成する。そして、受信した加入要求メッセージをマルチキャストルータポート3002に中継する(図1に示す203)。
また、マルチキャスト中継装置1000は、マルチキャスト中継装置3000から送信された加入要求メッセージ(Group2_addr宛)を受信することによって、Group2に関するマルチキャスト中継制御情報を生成する。そして、マルチキャスト中継装置1000は、受信した加入要求メッセージ(Group2_addr宛)をマルチキャストルータポート1001に中継する(図1に示す201)。
さらに、マルチキャスト中継装置2000は、加入要求メッセージ(Group2_addr宛)をマルチキャスト中継装置1000から受信し、Group2に関するマルチキャスト中継制御情報を生成する。
以上のように、マルチキャスト受信装置からの加入要求メッセージをマルチキャストルータポートに中継し、中継された各マルチキャスト中継装置においてマルチキャスト中継制御情報が生成されることによって、VLAN100は、マルチキャスト送信装置からのマルチキャストデータパケットをマルチキャスト受信装置に中継することができる。
次に図1に示すVLAN100において、各マルチキャスト中継装置が問い合わせメッセージ、及び加入要求メッセージの受信処理並びに中継処理を行った場合のマルチキャストパケット中継制御表1320を示す。
図4は、本実施例1の各マルチキャスト中継装置のマルチキャストパケット中継制御表1320を示す説明図である。
図4(a)は、本実施例1のマルチキャスト中継装置1000のマルチキャストパケット中継制御表1320を示す説明図である。
図4(a)に示すマルチキャストパケット中継制御表1320は、マルチキャスト中継装置1000がGroup1_addr、及びGroup2_addrの各ポートを学習した後の、マルチキャスト中継装置1000が有するマルチキャストパケット中継制御表1320である。
図4(a)に示すマルチキャストパケット中継制御表1320は、Group1_addrエントリ1320−1の学習ポート情報1323に加入要求メッセージの受信ポートであるポート1002と、マルチキャストルータポートであるポート1001とを示す値を含む。
また、図4(a)に示すマルチキャストパケット中継制御表1320は、Group2_addrエントリ1320−2の学習ポート情報1323に加入要求メッセージの受信ポートであるポート1004とマルチキャストルータポートであるポート1001とを示す値を含む。
さらに、図4(a)に示すマルチキャストパケット中継制御表1320は、未学習エントリのエントリ1320−3の学習ポート情報1323に、マルチキャストルータポートであるポート1001を示す値を含む。
図4(b)は、本実施例1のマルチキャスト中継装置2000におけるマルチキャストパケット中継制御表1320を示す説明図である。
図4(b)に示すマルチキャストパケット中継制御表1320は、マルチキャスト中継装置2000がGroup1_addr、及びGroup2_addrの各ポートを学習した後の、マルチキャスト中継装置2000が有するマルチキャストパケット中継制御表1320である。
図4(b)に示すマルチキャストパケット中継制御表1320は、Group1_addrエントリ2320−1の学習ポート情報1323に、加入要求メッセージの受信ポートであるポート2002を示す値を含む。また、Group2_addrエントリ2320−2の学習ポート情報1323に加入要求メッセージの受信ポートであるポート2002を示す値を含む。
また、マルチキャスト中継装置2000はIGMPクエリアであり、マルチキャストルータポートが設定されていないため、未学習エントリ2320−3の学習ポート情報1323にはいずれのポートも設定されていない。
図4(c)は、本実施例1のマルチキャスト中継装置3000におけるマルチキャストパケット中継制御表1320を示す説明図である。
図4(c)に示すマルチキャストパケット中継制御表1320は、マルチキャスト中継装置3000がGroup1_addr、及びGroup2_addrの各ポートを学習した後の、マルチキャスト中継装置3000が有するマルチキャストパケット中継制御表1320である。
図4(c)に示すマルチキャストパケット中継制御表1320は、Group2_addrエントリ3320−1の学習ポート情報1323に加入要求メッセージの受信ポートであるポート3003を示す値と、マルチキャストルータポートであるポート3002を示す値を含む。また、未学習エントリ3320−2の学習ポート情報1323にマルチキャストルータポートであるポート3002を含む。
以上の各マルチキャスト中継装置のマルチキャストパケット中継制御表1320によって、各マルチキャスト中継装置は、マルチキャスト受信装置が要求するマルチキャストデータパケットを、要求するマルチキャスト受信装置のみに中継することができる。
また、マルチキャスト受信装置が問い合わせメッセージに応答しない場合、エントリ生成部1130は、生存タイマ1145の値に基づいて、タイムアウトを検出する。そして、エントリ管理表1131の生存タイマ1145がタイムアウトを示す学習エントリを削除する。また、マルチキャストパケット中継処理部1300は、削除された学習エントリの内容をエントリ管理表1131から通知され、通知に基づいて、マルチキャストパケット中継制御表1320の学習エントリを削除する。
エントリ生成部1130は、加入要求メッセージを受信した場合、加入要求メッセージを受信したポートを学習ポート情報1144が示すエントリ管理表1131のエントリを特定し、特定されたエントリの生存タイマ1145に、一般的に260秒などあらかじめ与えられた所定値を設定する。
なお、問い合わせメッセージの送信周期が125秒である場合、タイムアウトをカウントするための所定値は、一般的に260秒に定められる。
その後、エントリ生成部1130は、経過時間ごとに生存タイマ1145の値を減算する。エントリ生成部1130が加入要求メッセージを再度受信した場合、生存タイマ1145に前述の所定値(例えば、260秒)を再度設定する。これによって、エントリ生成部1130は、各マルチキャスト受信装置の加入状態を維持し続ける。
また、問い合わせメッセージに応答がなく生存タイマ1145が0になった場合、マルチキャストパケット中継処理部1300は、マルチキャスト受信装置に加入意思がないとみなし、生存タイマ1145が0になったエントリ管理表1131のエントリの、学習ポート情報1144を削除し、削除した学習エントリの情報をマルチキャストパケット中継処理部1300に通知し、マルチキャスト中継制御表1320からも削除する。これにより、生存タイマ1145が0になったポートへの中継が停止する。
図5は、本実施例1のトポロジ変更が検出された後のマルチキャストパケットの中継回復処理を示すシーケンス図である。
図5は、実施例1においてトポロジ変更時に行われる処理の概要を示す。以下に示す概要は、マルチキャストグループ(Group1_addr)の中継を回復するための処理を示すが、トポロジ変更が発生したVLAN100に複数のマルチキャストグループが含まれる場合、マルチキャストグループ毎に、図5の処理が実行される。
図1に示すVLAN100の通常時において、マルチキャスト中継装置2000は、マルチキャストデータパケット(Group1_addr宛)を、マルチキャスト中継装置1000に送信する(401)。マルチキャスト中継装置1000は、マルチキャスト中継制御情報に従い、マルチキャストパケット(Group1_addr宛て)をマルチキャスト受信装置に送信する(402)。
VLAN100においてトポロジ変更が発生した場合(403)、マルチキャスト中継装置1000は、後述する加入要求メッセージ自発処理を実行する(404)。
実施例1におけるトポロジ変更とは、マルチキャスト中継装置2000とマルチキャスト中継装置1000との間が遮断され、マルチキャスト中継装置2000とマルチキャスト中継装置3000とのブロッキング状態が非ブロッキング状態に遷移した場合を示す。例えば、マルチキャスト中継装置2000において動作するスパニングツリー機能が、マルチキャスト中継装置1000との間の回線障害を検知し、通常運用状態ではブロッキング状態であったポート2003を非ブロッキング状態(運用状態)にする場合に、実施例1のトポロジ変更が発生する。
シーケンス404における加入要求メッセージ自発処理によって、マルチキャスト中継装置1000は、マルチキャスト中継装置3000に加入要求メッセージを送信する。マルチキャスト中継装置3000は、マルチキャスト中継装置1000によって自発された加入要求メッセージを受信した場合、自発加入要求メッセージ中継処理によって、さらに加入要求メッセージを中継する。また、自発加入要求メッセージ学習処理によって、VLAN100におけるマルチキャストグループ毎に新たなポートを学習し、マルチキャスト中継制御情報を更新する(405)。
マルチキャスト中継装置3000から中継された加入要求メッセージを受信した場合、マルチキャスト中継装置2000は、マルチキャスト中継装置3000と同じく、自発加入要求メッセージ中継処理、及び、自発加入要求メッセージ学習処理を実行する。そして、更新されたマルチキャスト中継制御情報に従って、マルチキャストデータパケット(Group1_addr宛)を中継する(406)。
マルチキャスト中継装置2000からマルチキャストデータパケット(Group1_addr宛)を受信した場合、マルチキャスト中継装置3000は、更新されたマルチキャスト中継制御情報に従って、マルチキャストデータパケット(Group1_addr宛)を中継する(407)。
マルチキャスト中継装置3000からマルチキャストデータパケット(Group1_addr宛)を受信した場合、マルチキャスト中継装置1000は、トポロジ変更前のマルチキャスト中継制御情報に従って、マルチキャストデータパケット(Group1_addr宛)を中継する(408)。
これによって、マルチキャスト中継装置2000とマルチキャスト中継装置1000との間において、マルチキャストデータパケット(Group1_addr宛)をマルチキャスト中継装置3000に中継させることによって、マルチキャスト中継装置2000とマルチキャスト中継装置1000との間の経路が回復する。
中継するための経路が回復した後の問い合わせメッセージの送信周期(例えば、125秒周期)において、マルチキャスト中継装置2000は、問い合わせメッセージをVLAN管理表1111の当該VLANの所属ポート情報に従って、全ての所属ポートに送信する(409)。マルチキャスト中継装置2000から問い合わせメッセージを受信した場合、マルチキャスト中継装置3000は、受信した問い合わせメッセージをフラッディング(後述)し、マルチキャストルータポートを再学習する(410)。
マルチキャスト中継装置3000から問い合わせメッセージを受信した場合、マルチキャスト中継装置1000は、マルチキャスト中継装置3000と同じく、受信した問い合わせメッセージをフラッディング(後述)し、マルチキャストルータポートを再学習する(411)。シーケンス409〜シーケンス411によって、マルチキャスト中継制御情報が最適化される。
図5に示す処理は、マルチキャスト中継装置1000が加入要求メッセージを自発したが、他のマルチキャスト中継装置(2000、3000)も、トポロジ変更の発生を検出した場合、同じく加入要求メッセージを自発する。また、トポロジ変更があったVLAN100にマルチキャストグループGroup2_addrが含まれる場合、前述の処理をGroup2_addrに対しても実行する。
以下に、図5に示す処理の詳細を示す。
図6は、本実施例1のトポロジ変更時の加入要求メッセージ自発処理を示すフローチャートである。
図6は、図5に示すシーケンス404に相当する。
なお、本実施例におけるトポロジ変更とは、ネットワーク障害、又は、冗長ネットワークへのテイクオーバー等を示す。
以下に示す図6に示す処理の例において、マルチキャストデータパケット(Group1_addr宛)、及び、マルチキャストデータパケット(Group2_addr宛)の中継は、回線障害により遮断されており、マルチキャスト受信装置10、及び、マルチキャスト受信装置12へのマルチキャスト中継は停止している。このような状態において、トポロジ変更検出部1400は、トポロジ変更を検出する。
トポロジ変更検出部1400がトポロジ変更を検知する手段として、スパニングツリー機能から通知を受ける方法が考えられる。冗長ネットワークでのループを防止するために、スパニングツリー機能を使用している場合、回線障害が発生するとスパニングツリー機能はブロッキングポートを再選択(ブロッキング状態にしていたポートを解除)して、障害発生後のネットワークでのトポロジを再構築する。トポロジ変更検出部1400は、スパニングツリー機能からトポロジ構築完了後に通知を受信することで、即座にトポロジ変更を検出する。トポロジ変更の検出方法は、これに限らず、トポロジ変更が検出できればいかなる方法を用いてもよい。
トポロジ変更検出部1400は、トポロジ変更を検出した場合、マルチキャスト中継回復処理部1500にトポロジ変更が発生したVLAN名称(本実施例において図1に示すVLAN100)を通知する。マルチキャスト中継回復処理部1500は、トポロジ変更検出部1400からトポロジ変更通知を受信した場合(8000)、回復処理制御部1510を起動する。
回復処理制御部1510は、VLAN管理部1110のVLAN管理表1111を参照し、トポロジ変更通知が示すVLANの所属ポートを取得する(8001)。
ステップ8001の後、回復処理制御部1510は、エントリ生成部1130のエントリ管理表1131から、トポロジ変更通知が示すVLANについて、マルチキャスト中継装置1000において既に学習されている学習エントリを取得する。具体的には、回復処理制御部1510は、エントリ管理表1131から、マルチキャストグループ名称1143に値を含み、属性フラグ1146に通常学習フラグを含む学習エントリを検索する(8002)。
ステップ8002の結果、学習エントリが取得されたか否かを判定し(8003)、学習エントリが取得されない場合、回復処理制御部1510は、図6に示す処理を終了する(8008)。学習エントリが取得された場合、回復処理制御部1510は、取得された学習エントリのマルチキャストグループ名称1143、及び学習ポート情報1144の値を取得する(8004)。
ステップ8004において取得される学習ポート情報1144の値は、複数でもよいが、回復処理制御部1510は、マルチキャストグループ名称1143の値と、学習ポート情報1144の各値との組合せを保持する。以下において、マルチキャストグループ名称1143の値を、単にマルチキャストグループ、学習ポート情報1144の値を、単に学習ポートと記載する。
ステップ8004の後、回復処理制御部1510は、ステップ8001において取得された所属ポートから、ステップ8004において取得された学習ポートを除くことによって、未学習ポートを、マルチキャストグループ毎に抽出する(8005)。
図1に示すマルチキャスト中継装置1000のVLAN100における所属ポートは、ポート1001、1002、1003、1004であり、図3Aに示すマルチキャストグループGroup1_addr(VLAN100におけるマルチキャストグループ)の学習ポートは1002である。このため、回復処理制御部1510は、未学習ポートとして、ポート1001、1003、1004を抽出する。
ステップ8005の後、回復処理制御部1510は、抽出された未学習ポートと、対応するマルチキャストグループとを、加入要求自発処理部1520に通知する。
加入要求自発処理部1520は、抽出された未学習ポートに送信する加入要求メッセージを、マルチキャストグループ毎に生成する。ここで生成される加入要求メッセージは、宛先アドレスとして、マルチキャストグループアドレスを、ソースアドレスとして、(0.0.0.0)を含む(8006)。また、生成される加入要求メッセージには、トポロジ変更通知が示すVLAN(VLAN100)のVLAN名称、及び、送信するポート情報が格納される。
ステップ8006の後、加入要求自発処理部1520は、生成された加入要求メッセージを、自発加入要求送受信処理部1530に送信し、自発加入要求送受信処理部1530は、受信した加入要求メッセージを、加入要求メッセージが示す未学習ポート(前述の例では、ポート1001、1003、1004)に向けて送信する(8007)。ステップ8007の後、回復処理制御部1420は、ステップ8003を実行する。そして、全ての学習エントリの加入要求メッセージ自発処理が終了した場合、マルチキャスト中継回復処理部1500は、図6に示す処理を終了する(8008)。
図7は、本実施例1の自発加入要求メッセージ中継処理を示すフローチャートである。
以下に示す例において、マルチキャスト中継装置1000が自発的に送信した加入要求メッセージを、マルチキャスト中継装置3000が受信する処理を示す。図7に示す処理は、図5のシーケンス405、406において実行される処理に相当する。なお、図7において示すマルチキャスト中継装置の要素の符号は、すべてマルチキャスト中継装置3000の要素の符号である。
マルチキャスト中継装置3000が、自らが有するポート(図1に示すポート3002)によって加入要求メッセージを受信した場合、マルチキャストパケット中継処理部1300は、VLAN登録表1310に従って、前述の通り、受信した加入要求メッセージを制御パケット送受信処理部1120に送信する。
制御パケット送受信処理部1120は、受信した加入要求メッセージを解析し、ソースアドレスを取得する(8100)。そして、取得されたソースアドレスが(0.0.0.0)であるか否かを判定し(8101)、取得されたソースアドレスが(0.0.0.0)でない場合、前述の通常時の加入要求メッセージの送受信手順によって、加入要求メッセージをマルチキャストルータポートへ中継する(8110)。
また、取得されたソースアドレスが(0.0.0.0)であると判定された場合、VLAN100においてトポロジ変更が発生したために、VLAN100内のいずれかのマルチキャスト中継装置が自発した加入要求メッセージであると判定し、受信した加入要求メッセージを自発加入要求送受信処理部1530に転送する。自発加入要求送受信処理部1530は、加入要求メッセージを解析し、VLAN名称、マルチキャストグループアドレス、及び、加入要求メッセージを受信した受信ポートを取得する(8102)。
ステップ8102の後、自発加入要求送受信処理部1530は、VLAN管理部1110のVLAN管理表1111を参照し、取得されたVLAN名称が示すVLAN(VLAN100)の所属ポート(3001、3002、3003)を取得する(8103)。
ステップ8103の後、自発加入要求送受信処理部1530は、エントリ生成部1130のエントリ管理表1131を参照し、取得されたマルチキャストグループアドレス(Group1_addr)と取得されたVLANとを検索する(8104)。
ステップ8104の検索の結果、自発加入要求送受信処理部1530は、取得されたVLAN名称をVLAN名称1142に含み、かつ、取得されたマルチキャストグループアドレスをマルチキャストグループ名称1143に含む学習エントリが、エントリ管理表1131に含まれるか否かを判定する(8105)。前述の学習エントリがエントリ管理表1131に含まれる場合、取得されたマルチキャストグループアドレスを、取得されたVLANで学習済みであると判定する。
取得されたマルチキャストグループアドレスを、取得されたVLANで学習済みである場合、自発加入要求送受信処理部1530は、取得されたVLAN名称をVLAN名称1142に含み、かつ、取得されたマルチキャストグループアドレスをマルチキャストグループ名称1143に含む学習エントリのうち、属性フラグ1146に通常学習フラグが含まれる学習エントリを特定する。そして、特定された学習エントリの学習ポート情報1144の値(学習ポート)を取得する(8106)。
取得されたマルチキャストグループアドレスを、取得されたVLANで学習済みでない場合、自発加入要求送受信処理部1530は、学習ポートはなしと判定する(8111)。図1に示すマルチキャスト中継装置3000は、マルチキャストグループGroup1_addrを学習していない。このため、ステップ8111において、学習ポートはなしと判定される。
ステップ8106、又はステップ8107の後、自発加入要求送受信処理部1530は、ステップ8103において取得された所属ポートから、取得された学習ポートを除くことによって、未学習ポートを抽出する(8107)。VLAN100の所属ポートは3001、3002、3003であり、マルチキャスト中継装置3000においてGroup1_addrは未学習のため、抽出される未学習ポートは3001、3002、3003である。
ステップ8107の後、自発加入要求送受信処理部1530は、受信した加入要求メッセージを抽出された未学習ポートのうち、加入要求メッセージを受信したポート以外の未学習ポート(ポート3001、3003)に中継する(8108)。また、ステップ8108の後、自発加入要求送受信処理部1530は、自発加入要求メッセージ学習処理へ移行する(8109)。
これにより、マルチキャスト中継装置1000が自発した加入要求メッセージをマルチキャスト中継装置3000が中継して、さらに、マルチキャスト中継装置2000が受信することができる。
図8は、本実施例1のマルチキャスト中継装置が自発加入要求メッセージ学習処理を示すフローチャートである。
図8において、マルチキャスト中継装置1000が自発した加入要求メッセージ(Group1_addr宛)によって、マルチキャスト中継装置3000が学習する処理を示す。図8に示す処理は、図7に示すステップ8109に相当する。また、図8に示す処理は、図5に示すシーケンス405、406において実行される処理に相当する。
自発加入要求送受信処理部1530は、自発送信の加入要求メッセージを中継した後(VLAN名称、マルチキャストグループアドレス、加入要求メッセージを受信した受信ポートに関する情報は取得済み)(8200)、自発加入要求送受信処理部1530は、取得された情報に基づいて、マルチキャストグループが、受信ポートにおいて学習済みか否か、エントリ管理表を検索する(8201)。
そして、検索の結果、マルチキャストグループが受信ポートにおいて学習済みか否かを判定する(8202)。具体的には、自発加入要求送受信処理部1530は、マルチキャストグループアドレスをマルチキャストグループ名称1143に含み、かつ、受信ポートを示す値を学習ポート1144に含むエントリが、エントリ管理表1131から取得できる場合、マルチキャストグループが受信ポートにおいて学習済みであると判定する。
マルチキャストグループが、受信ポートにおいて学習済みでない場合、自発加入要求送受信処理部1530は、エントリ管理表1131に、VLAN名称(VLAN名称1142)、マルチキャストグループアドレス(マルチキャストグループ名称1145)、学習ポート(学習ポート1144)、生存タイマ(生存タイマ1145)、トポロジ変更後フラグ(属性フラグ1146)を設定する(8203)。
なお、トポロジ変更後フラグとは、トポロジ変更によって学習されたことを示すフラグである。
そして、ステップ8203の後、自発加入要求送受信処理部1530は、マルチキャストパケット中継処理部1300のマルチキャストパケット中継制御表1320のエントリに、VLAN名称(VLAN名称1321)、マルチキャストグループアドレス(マルチキャストグループ名称)、学習ポート、及びマルチキャストルータポート(学習ポート情報)を設定する(8204)。
なお、ステップ3203、及びステップ3204において、生存タイマ1145に格納される値は、前述の所定値(例えば260秒)である。
マルチキャストグループが受信ポートにおいて学習済みであるとステップ8202において判定された場合、又は、ステップ8204の後、自発加入要求送受信処理部1530は、図8に示す処理を終了する。これは、通常学習フラグの方が優先度が高いため、トポロジ変更後フラグを設定する必要がないためである(8205)。
これにより、マルチキャストデータパケット(Group1_addr宛)を受信した場合は、マルチキャスト中継装置3000は、マルチキャストデータパケット(Group1_addr宛)をポート3002に中継する。
以上の処理により、マルチキャスト中継装置3000が中継した加入要求メッセージ(Group1_addr宛)がマルチキャスト送信装置20を収容しているマルチキャスト中継装置2000に到達する。マルチキャスト中継装置2000は加入要求メッセージ(Group1_addr宛)を受信し、マルチキャスト中継制御情報(マルチキャストパケット中継制御表1320)を生成する。そして、これによって、ポート2003にマルチキャストデータパケット(Group1_addr)が中継される。その結果、マルチキャストデータパケット(Group1_addr)は、マルチキャスト中継装置3000、1000を経由し、マルチキャスト受信装置10に中継される。
他のマルチキャスト中継装置2000、及び、マルチキャスト中継装置3000も、マルチキャスト中継装置1000と同じく、自装置で学習されるマルチキャストグループについて、加入要求メッセージを生成することが可能である。ここで生成される加入要求メッセージには、ソースアドレスとして(0.0.0.0)が格納され、トポロジ変更前の未学習ポートに自発する。自発された加入要求メッセージを受信したマルチキャスト中継装置は、ソースアドレスに(0.0.0.0)が設定されていることによって、受信した加入要求メッセージは、マルチキャスト中継措置が自発した加入要求メッセージであることを判定し、トポロジ変更前の当該マルチキャストグループの未学習のポートに中継する。
また、他のマルチキャスト中継装置によって自発された加入要求メッセージを受信した場合、マルチキャスト中継装置は、通常の加入要求メッセージと同様にマルチキャスト中継制御情報を生成し、当該加入要求メッセージを受信したポートへのマルチキャスト中継を開始する。
以上の処理をVLAN100内の全てのマルチキャスト中継装置が行うことによって、マルチキャスト送信装置を収容しているマルチキャスト中継装置にネットワーク内で学習している全てのマルチキャストグループの加入要求メッセージを到達させ、且つ、加入要求メッセージ中継経路の各マルチキャスト中継装置でマルチキャスト中継制御情報を作成することで、マルチキャスト送信装置から受信装置までのマルチキャスト中継を回復することができる。
なお、各マルチキャスト中継装置におけるトポロジ変更通知は、各マルチキャスト中継装置において、非同期で行われる可能性がある。図1に示すネットワーク構成で、マルチキャスト中継装置2000がマルチキャスト中継装置1000より加入要求メッセージの自発処理を早く行った場合、マルチキャスト中継装置3000のエントリ管理表1131には、Group1_addrエントリの学習ポート情報に3001が登録され、マルチキャスト中継装置2000から自発した加入要求メッセージによる学習であるため属性フラグにトポロジ変更後フラグが設定される。
この状態で、マルチキャスト中継装置3000が、マルチキャスト中継装置1000によって自発された加入要求メッセージ(Group1_addr宛)を受信し、マルチキャスト中継装置3000のポート3001がGroup1_addrを示すエントリ管理部1131のエントリの学習済みポートに示されるポートであった場合、属性フラグより当該ポートはトポロジ変更後の学習であることが判別される。このため、マルチキャスト中継処理3000は、マルチキャスト中継装置1000によって自発された加入要求メッセージ(Group1_addr宛)をポート3001にも中継することができる。以上の処理により、ネットワーク内の各装置が非同期で加入要求メッセージを自発したとしても、トポロジ変更前の未学習ポートを判別し、当該未学習ポートに加入要求メッセージを中継することができる。
トポロジ変更後、各マルチキャスト中継装置で加入要求メッセージを自発し、各マルチキャスト中継装置で中継、及び、学習をし終えた際の、各マルチキャスト中継装置におけるマルチキャストパケット中継制御表を以下に示す。
図9は、本実施例1の各マルチキャスト中継装置のマルチキャストパケット中継制御表1320を示す説明図である。
図9(a)は、本実施例1のマルチキャスト中継装置1000のマルチキャストパケット中継制御表1320を示す説明図である。
図4(a)がトポロジ変更を検出する前におけるマルチキャスト中継装置1000のマルチキャストパケット中継制御表1320である場合、図9(a)は、トポロジ変更が検出され、マルチキャストパケットの中継が回復された直後のマルチキャストパケット中継制御表1320である。
マルチキャスト中継装置2000によって自発された加入要求メッセージ(Group1_addr宛)を、マルチキャスト中継装置3000を介して受信した場合、図9(a)に示すマルチキャストパケット中継制御表1320のように、Group1_addrエントリ1320−1の学習ポート情報にポート1004が追加される。
図9(b)は、本実施例1のマルチキャスト中継装置2000のマルチキャストパケット中継制御表1320を示す説明図である。
図4(b)がトポロジ変更を検出する前におけるマルチキャスト中継装置2000のマルチキャストパケット中継制御表1320である場合、図9(b)は、トポロジ変更が検出され、マルチキャストパケットの中継が回復された直後のマルチキャストパケット中継制御表1320である。
図9(b)は、マルチキャスト中継装置2000が、図7に示す自発加入要求メッセージ中継処理、及び、図8に示す自発加入要求メッセージ学習処理を実行した後のマルチキャストパケット中継制御表1320を示す。
マルチキャスト中継装置2000のマルチキャストパケット中継制御表1320は、マルチキャスト中継装置2000における図7、及び図8に示す処理によって、Group1_addrエントリ2320−1の学習ポート情報1323にポート2003が追加される。また、Group2_addrエントリ2320−2の学習ポート情報1323にポート2003が追加される。
図9(c)は、本実施例1のマルチキャスト中継装置3000のマルチキャストパケット中継制御表1320を示す説明図である。
図4(c)がトポロジ変更を検出する前におけるマルチキャスト中継装置3000のマルチキャストパケット中継制御表1320である場合、図9(c)は、トポロジ変更が検出され、マルチキャストパケットの中継が回復された直後のマルチキャストパケット中継制御表1320である。
図9(c)は、マルチキャスト中継装置3000が、図7に示す自発加入要求メッセージ中継処理、及び、図8に示す自発加入要求メッセージ学習処理を実行した後のマルチキャストパケット中継制御表1320を示す。
マルチキャスト中継装置3000のマルチキャストパケット中継制御表1320は、マルチキャスト中継装置3000における図7、及び図8に示す処理によって、Group1_addrエントリ3320−2の学習ポート情報1323にポート3001、3002が追加される。
各マルチキャスト中継装置は、マルチキャストパケット中継制御表1320を、トポロジ変更時に前述の図6〜図8に示す手順によって即座に作成することにより、マルチキャスト受信装置へのマルチキャスト中継を迅速に回復する。
以下に、図5に示すシーケンス409、410の処理の詳細を示す。
トポロジ変更時のマルチキャスト中継回復処理(図6〜図8)において、ネットワーク内のマルチキャスト中継が回復した後、IGMPクエリア(マルチキャスト中継装置2000)から所定時間の周期(例えば、125秒周期)において問い合わせメッセージが送信される。
この問い合わせメッセージを受信した場合、各マルチキャスト中継装置は、マルチキャストルータポートを再学習し、問い合わせメッセージの受信ポート以外のマルチキャストルータポートを削除する。これによって、各マルチキャスト中継装置は、マルチキャストパケット中継制御表1320の学習ポート情報1323に含まれる不要なポートを削除することができる。
また、各マルチキャスト中継装置は、受信した問い合わせメッセージをVLAN内(マルチキャスト受信装置を含む)にフラッディングする。そして、マルチキャスト受信装置は、受信した問い合わせメッセージに応答するため、加入要求メッセージを送信する。
さらに、各マルチキャスト中継装置は、マルチキャスト受信装置から加入要求メッセージを受信した場合、受信した加入要求メッセージが示すエントリ管理表1131のエントリを特定する。具体的には、前述のとおり、加入要求メッセージが示すVLAN名称1142、マルチキャストグループ名称1143、学習ポート情報1144(受信ポート)によって、エントリ管理表1131のエントリを特定する。
そして、各マルチキャスト中継装置は、特定されたエントリの生存タイマを更新することによって、マルチキャスト受信装置の加入状態を維持し続ける。また、特定されたエントリの属性フラグ1146に、通常学習フラグを設定する。
エントリ管理表1131が、マルチキャスト中継装置が自発した加入要求メッセージ受信によって設定された、本来不要な学習ポートを含む場合においても、所定時間(例えば、260秒)経過した後、不要な学習ポートは削除される。これは、不要な学習ポートは、マルチキャスト受信装置からの加入要求メッセージ応答を受信しないためである。これにより、トポロジ変更後、本ネットワークはIGMPクエリアからの問い合わせメッセージを受信し、所定の時間経過することによって効率的なマルチキャスト中継状態に移行する。
トポロジ変更後IGMPクエリアから問い合わせメッセージが送信され再学習したあとの各マルチキャスト中継装置のマルチキャストパケット中継制御表1320を図10に示す。
図10(a)は、本実施例1の問い合わせメッセージ受信後のマルチキャスト中継装置1000のマルチキャストパケット中継制御表1320を示す説明図である。
マルチキャスト中継装置1000のマルチキャストパケット中継処理部1300は、問い合わせメッセージ(Group1_addr宛て)を受信し、さらに、問い合わせメッセージに対する応答である加入要求メッセージ(Group1_addr宛て)を受信した場合、図10(a)に示すエントリ1320−1の学習ポート情報1323に値を設定する。具体的には、マルチキャストパケット中継制御表1320は、図10(a)に示すエントリ1320−1の学習ポート情報1323に、加入要求メッセージの受信ポートであるポート1002と、問い合わせメッセージによって新たに学習されたマルチキャストルータポートであるポート1004とを示す値を設定する。
また、マルチキャスト中継装置1000のマルチキャストパケット中継制御表1320は、未学習エントリ1320−2の学習ポート情報に新たに学習されたマルチキャストルータポート1004を設定する。
さらに、エントリ生成部1130は、一定期間が経過した後、不要となる(生存タイマ1145によってタイムアウトと判定される)ポートをエントリ管理表1131から削除し、マルチキャストパケット中継制御表1320の学習ポート情報1323からも削除する。具体的には、エントリ1320−1の学習ポート情報1323からポート1001を削除し、図9(a)でのエントリ1320−2(Group2_addrのエントリ)を削除する。
図10(b)は、本実施例1の問い合わせメッセージ受信後のマルチキャスト中継装置2000のマルチキャストパケット中継制御表1320を示す説明図である。
マルチキャストパケット中継装置2000のマルチキャストパケット中継処理部1300は、マルチキャストパケット中継装置2000における図8に示す処理の後、時間が所定の時間経過した場合、マルチキャスト中継装置2000のマルチキャストパケット中継制御表1320のGroup1_addrエントリ2320−1の学習ポート情報には、加入要求メッセージ受信ポートである2003が設定され、Group2_addrエントリ2320−2の学習ポート情報には加入要求メッセージ受信ポートである2003が設定される。なお、未学習エントリ2320−3の学習ポート情報には、マルチキャスト中継装置2000がIGMPクエリアでありマルチキャストルータポートを有さないため、何も設定されない。
図10(c)は、本実施例1の問い合わせメッセージ受信後のマルチキャスト中継装置3000のマルチキャストパケット中継制御表1320を示す説明図である。
マルチキャストパケット中継装置3000における図8に示す処理の後、時間が所定の時間経過した場合、マルチキャスト中継装置3000のマルチキャストパケット中継制御表1320のGroup2_addrエントリ3320−1の学習ポート情報には加入要求メッセージの受信ポートであるポート3003と、新たに学習されたマルチキャストルータポートのポート3001とが設定される。また、Group1_addrエントリ3320−2の学習ポート情報には加入要求メッセージの受信ポートであるポート3002と、新たに学習されたマルチキャストルータポート3001とが設定される。また、未学習エントリ3320−3の学習ポート情報には新たに学習されたマルチキャストルータポート3001が設定される。
トポロジ変更後IGMPクエリアから問い合わせメッセージが送信されマルチキャスト中継を最適化したあとの説明を、図1を用いて説明する。マルチキャストデータパケット(Group1_addr宛)がマルチキャスト中継装置2000、3000、及び1000を経由してマルチキャスト受信装置10のみに中継され、マルチキャストデータパケット(Group2_addr宛)がマルチキャスト中継装置2000、3000を経由してマルチキャスト受信装置12のみに中継される。また、マルチキャストルータポートもIGMPクエリア装置方向のみに設定される(ポート1004、3001)。
なお、実施例1において、マルチキャスト中継装置が加入要求メッセージを自発するため、送信する加入要求メッセージの数を最小限に抑えることができる。その事例を、図1を用いて説明する。図1ではマルチキャスト中継装置1000に、マルチキャスト受信装置が2台(10、11)接続される。マルチキャスト受信装置10は、Group1_addr、Group2_addrに加入しており、マルチキャスト受信装置11は、Group1_addr、Group2_addr、及び、Group3_addrに加入しているとする。
この状態で、マルチキャスト中継装置1000が問い合わせメッセージをフラッディングした場合、マルチキャスト受信装置10はGroup1_addr、Group2_addrの加入要求メッセージを応答する必要があり、また、マルチキャスト受信装置11はGroup1_addr、Group2_addr、Group3_addrの加入要求メッセージをマルチキャスト中継装置に応答する必要がある(計5メッセージ)。
前述の実施例1の場合、マルチキャスト中継装置1000が自装置で学習するマルチキャストグループの加入要求メッセージを自発するため、最小限であるGroup1_addr、Group2_addr、Group3_addrの三つの加入要求メッセージを、マルチキャスト中継装置1000が送信すれば、マルチキャスト中継が回復する。このため、収容しているマルチキャスト受信装置が多く、学習されているマルチキャストグループ数が少ないほど、本実施例が有効になるといえる。
さらに、実施例1では、トポロジ変更時にIGMPクエリアからの問い合わせメッセージを待つことなくネットワーク内の各マルチキャスト中継装置が、自装置で学習しているマルチキャストグループの加入要求メッセージを自発し、各マルチキャスト中継装置で中継しあうことで迅速にマルチキャスト中継を回復する。マルチキャスト中継回復に要する加入要求メッセージもマルチキャスト中継装置が自発することで最小限に抑えられ、マルチキャスト中継回復処理の負荷も低減することができる。
なお、実施例1はIGMPスヌーピングで説明したが、MLDスヌーピングも同様の処理で実現可能である。
実施例2における手段(以降、手段2)は、管理者、又は開発者等が、予めマルチキャストルータポートの候補(当該ネットワークの冗長となる回線を接続するポート)をネットワーク内のマルチキャスト中継装置に設定しておき、通常運用時において、各マルチキャスト中継装置が動的設定方式でマルチキャストルータポートを設定する方法である。
回線障害等でトポロジが変更になった場合、予め設定しておいたマルチキャストルータポート候補を、即座に正式なマルチキャストルータポートとして設定する。これにより、マルチキャストルータポートになるべき全てのポートにマルチキャストデータパケットが中継されるので、迅速にマルチキャスト中継を回復することができる。
更に、マルチキャスト中継回復後に発生する不要なマルチキャスト中継も、ネットワーク内のマルチキャスト中継装置よりIGMP/MLD問い合わせメッセージ(グループ指定)を送信することにより、無駄なトラフィックを抑制し、最適なマルチキャスト中継状態に迅速に移行することができる。
手段2では、マルチキャスト中継の回復にIGMP/MLD加入要求メッセージを必要としないので、大量のIGMP/MLD加入要求メッセージ受信を起因とする、処理の高負荷は発生しない。また、通常運用時は動的設定方式でマルチキャストルータポートを設定するため、効率の良いマルチキャスト中継を実現できる。
手段1では、回線障害等でトポロジ変更が発生した場合、マルチキャスト中継装置自身が学習しているマルチキャストグループのIGMP/MLD加入要求メッセージを自発し、ネットワーク内の各マルチキャスト中継装置が、当該IGMP/MLD加入要求メッセージを判別し、適切なポートに中継しあうことで、より迅速にマルチキャスト中継を回復できる。また、IGMP/MLD問い合わせメッセージをVLAN内にフラッディングして、全マルチキャスト受信装置からのIGMP/MLD加入要求メッセージ応答を受信する方式ではなく、各マルチキャスト中継装置が学習しているマルチキャストグループのIGMP/MLD加入要求メッセージを自発する方式であるため、全マルチキャスト受信装置の応答を必要としないことにより、膨大なIGMP/MLD加入要求メッセージの集中受信による高負荷状態も低減できる。通常運用時においても、本方式は動的設定方式でマルチキャストルータポートを設定するため、効率よくマルチキャスト中継を行うことができる。
実施例2ではIGMPスヌーピングでの実施例について記述する。
手段2は、予めマルチキャストルータポート候補を設定しておき、トポロジ変更時にマルチキャストルータポート候補を即座に正式なマルチキャストルータポートとしてマルチキャスト中継制御情報に設定する。これによって、マルチキャスト受信装置、及び、マルチキャスト中継装置からの加入要求メッセージの送受信無しで、迅速なマルチキャスト中継の回復を実現する技術である。
図11は、本実施例2のVLAN100を実装する物理的な構成を示すブロック図である。
実施例2では図11に示す4台のマルチキャスト中継装置4000、5000、6000、7000におけるレイヤ2ネットワーク構成を例として説明する。マルチキャスト中継装置4000、5000、6000、7000は、スイッチ又はルータ等のネットワーク装置であり、プロセッサ、及び、メモリを各々備える計算機である。
マルチキャスト中継装置4000、5000、6000、7000は、相互に接続される。なお、実施例2において、マルチキャスト中継装置4000、5000、6000、7000がVLAN100のみを実装するものとして説明するが、各マルチキャスト中継装置は、複数のVLANを実装してもよい。
マルチキャスト中継装置4000の所属ポートは、ポート4001〜ポート4005である。マルチキャスト中継装置5000の所属ポートは、ポート5001〜ポート5004である。マルチキャスト中継装置6000の所属ポートは、ポート6001〜ポート6003である。マルチキャスト中継装置7000の所属ポートは、ポート7001〜ポート7005である。
実施例2における所属ポートとは、VLAN100においてパケットを送受信するポートを示す。
実施例2のVLAN100では、実施例1と同様にループを防止する機能としてスパニングツリー機能を使用している。具体的には、図11に示す構成において、レイヤ2ネットワークのループを防止するために、スパニングツリー機能でポート4004、4005、5004をブロッキング状態にしている。ポート4004、4005、5004をブロッキング状態にし、当該ポートでトラフィックを遮断することで、本レイヤ2ネットワーク内のループを防止している。
マルチキャスト中継装置4000は、マルチキャスト送信装置20、及びマルチキャスト受信装置10と接続し、マルチキャスト中継装置5000はマルチキャスト受信装置11と接続し、マルチキャスト中継装置7000はマルチキャスト送信装置21、及び、マルチキャスト受信装置12と接続する。
マルチキャスト送信装置21は、マルチキャストデータパケット(Group1_addr宛)を配信し続けており、マルチキャスト受信装置10、11はGroup1_addr(マルチキャストグループ)に加入意思がある。マルチキャスト送信装置20はマルチキャストデータパケット(Group2_addr宛)を配信し続けており、マルチキャスト受信装置12は、Group2_addr(マルチキャストグループ)に加入意思がある。
実施例2におけるIGMPクエリアは、マルチキャスト中継装置4000である。本方式では通常運用時はマルチキャストルータポートを動的設定方式で設定する。このため、マルチキャスト中継装置4000から送信される問い合わせメッセージ(300、301、302)を受信するポート、すなわちマルチキャスト中継装置5000のポート5002、マルチキャスト中継装置6000のポート6002、及び、マルチキャスト中継装置7000のポート7003が、マルチキャストルータポートとして使用される(マルチキャスト中継装置4000から送信される問い合わせメッセージは、各マルチキャスト中継装置でフラッディングされるが、図11では300、301、302以外の問い合わせメッセージを省略する)。
マルチキャスト受信装置12がマルチキャスト送信装置20から配信されるマルチキャストデータパケット(Group2_addr宛)(150)を受信する場合、当該マルチキャストグループ(Group2_addr宛)に対して加入要求メッセージを送信する(200)。
加入要求メッセージを受信したマルチキャスト中継装置7000は、実施例1と同じく、マルチキャストルータポートへの中継(201)と、マルチキャスト中継制御情報の生成とを行う。この処理を加入要求メッセージ中継経路の各マルチキャスト中継装置が行うことで(202、203)、マルチキャスト送信装置20からのマルチキャストデータパケット(Group2_addr宛)がマルチキャスト受信装置12まで中継される。
一方、マルチキャスト受信装置10が受信するマルチキャストデータパケット(Group1_addr宛)は、マルチキャスト送信装置21から配信される(110)。マルチキャスト受信装置10から送信された加入要求メッセージ(204)は、マルチキャスト中継装置4000によって受信される。マルチキャスト中継装置4000は、加入要求メッセージ(204)受信した場合、マルチキャスト中継制御情報を生成する。マルチキャスト中継装置4000は、IGMPクエリアであり、マルチキャストルータポートが設定されていないため、加入要求メッセージをどこにも中継しない。
マルチキャスト送信装置21から送信されたマルチキャストデータパケット(Group1_addr宛)は、マルチキャスト中継装置7000によって受信される。マルチキャスト中継装置7000は、受信したマルチキャストデータパケット(Group1_addr宛)を、実施例1と同様に未学習エントリの学習ポート情報に登録されたマルチキャストルータポートに中継する処理によって、マルチキャストルータポート7003に中継する。この処理をマルチキャスト中継装置6000、5000で行うことによって、マルチキャストデータパケット(Group1_addr宛)は、マルチキャスト中継装置4000に到達する。
マルチキャスト中継装置4000に到達したマルチキャストデータパケット(Group1_addr宛)は、マルチキャスト中継装置4000のマルチキャスト中継制御情報により、マルチキャスト受信装置10に中継される。
マルチキャスト受信装置11に向けて送信されたマルチキャストデータパケット(Group1_addr宛)を受信した場合、マルチキャスト中継装置5000は、マルチキャスト受信装置11の加入要求メッセージ(205)を受信した際に生成されたマルチキャスト中継制御情報を用いることによって、受信したマルチキャストデータパケットをマルチキャスト受信装置11に中継する。
各マルチキャスト受信装置が加入要求メッセージを送信して以降は、実施例1と同様にIGMPクエリアが定期的に送信する問い合わせメッセージに加入要求メッセージを応答することで、各マルチキャスト受信装置は、マルチキャストグループへの加入状態を維持し続ける。
図11でマルチキャスト送信装置10、11、12からの加入要求メッセージを受信したあとの、マルチキャスト中継状態を説明する。マルチキャスト送信装置20が送信するマルチキャストデータパケット(Group2_addr宛)は、マルチキャスト中継装置4000、5000、6000、7000を経由してマルチキャスト受信装置12のみに中継される。また、マルチキャスト送信装置21が送信するマルチキャストデータパケット(Group1_addr宛)は、マルチキャスト中継装置7000、6000、5000、4000を経由してマルチキャスト受信装置10、11に中継される。
図12は、本実施例2のマルチキャスト中継装置4000の構造を示すブロック図である。
マルチキャスト中継装置4000は、IGMPスヌーピング処理部4100、装置構成定義部4200、マルチキャストパケット中継処理部4300、トポロジ変更検出部4400、及び、マルチキャスト中継回復処理部4500を備える。
装置構成定義部4200は、VLAN情報4210、及び、IGMPスヌーピング情報4220を管理者等の外部から設定される装置である。VLAN情報4210は、実施例1のVLAN情報1210と同じである。IGMPスヌーピング情報4220は、IGMPスヌーピングを適用されるVLAN名称、及び、マルチキャストルータポート候補を示す値を含む。
マルチキャストルータポート候補には、VLAN100の冗長となる回線を接続するポートが設定される。マルチキャスト中継装置4000の場合、ポート4003、4004、4005が冗長回線であるため、マルチキャスト中継装置4000のマルチキャストルータポート候補には、ポート4003、4004、4005が設定される。
IGMPスヌーピング処理部4100は、IGMPスヌーピング機能を実現するための処理部であり、VLAN管理部4110、制御パケット送受信処理部4120、及び、エントリ生成部4130を備える。エントリ生成部4130は、IGMPスヌーピングの中継制御情報を生成する。
VLAN管理部4110は、VLAN管理表4111を管理する。VLAN管理表4111は、装置構成定義部4200から取得された、IGMPスヌーピングが適用されるVLANのVLAN名称、当該VLANの所属ポート情報、マルチキャストルータポート情報、及び、マルチキャストルータポート候補を格納する。
エントリ生成部4130は、エントリ管理表4131を管理する。エントリ管理表4131は、各VLANにおいて学習した(加入要求メッセージを受信した)、マルチキャストグループ情報、学習ポート情報、及び、生存タイマを格納する。実施例2のエントリ管理表4131の各エントリのフィールドには、実施例1のエントリ管理表1131と同様な、VLAN名称1142、マルチキャストグループ名称1143、学習ポート情報1144、及び、生存タイマ1145を含む。
制御パケット送受信処理部4120は、実施例1の、制御パケット送受信処理部1120と同じであるため説明を省略する。
マルチキャストパケット中継処理部4300、及び、トポロジ変更検出部4400は、実施例1のマルチキャストパケット中継処理部1300、及び、トポロジ変更検出部1400と同じである。
また、マルチキャスト中継制御表4320は、実施例1のマルチキャスト中継制御表1320と同様な内容を含む。マルチキャスト中継制御表4320の各エントリのフィールドに含まれるVLAN名称4321、マルチキャストグループ名称4322、及び学習ポート情報4323は、実施例1のVLAN名称1321、マルチキャストグループ名称1322、及び学習ポート情報1323と同じである。
また、マルチキャストパケット中継制御表4320及びエントリ管理表4131は、実施例2のマルチキャスト中継制御情報を示す。
マルチキャスト中継回復処理部4500は、トポロジ変更時に、即座にマルチキャスト中継の回復処理を行う処理部である。マルチキャスト中継回復処理部4500は、回復処理制御部4510、マルチキャストルータポート設定部4520、及び、問い合わせメッセージ送信部4530を備える。回復処理制御部4510は、トポロジ変更を検知しマルチキャスト中継回復処理を制御する処理部である。
マルチキャストルータポート設定部4520は、トポロジ変更時にマルチキャストルータポート候補を正式なマルチキャストルータポートとして設定する処理部である。問い合わせメッセージ送信部4530は、マルチキャストルータポート候補が正式なマルチキャストルータポートとして設定されたあと、不要なトラフィックを抑止するための問い合わせメッセージ(マルチキャストグループ指定)を送信する処理部である。
マルチキャスト中継装置5000、6000、7000は、マルチキャスト中継装置4000と同じ構成である。
なお、マルチキャスト中継装置1000が有する各処理部は、物理的なLSIによって各々実装されてもよいし、プログラムをプロセッサが実行することによって実装されてもよい。また、各処理部は、各処理部において実行する複数の処理を、複数の処理部を有することによって実行してもよい。また、複数の処理部が一つの処理部によって実装されてもよい。
マルチキャスト中継装置4000が加入要求メッセージを受信した場合の、マルチキャスト中継制御情報の生成処理、及び、マルチキャストパケットの中継処理は、実施例1と同じである。また、IGMPクエリアが送信した問い合わせメッセージを各マルチキャスト中継装置が受信した場合の、マルチキャストルータポートを学習する処理、及び問い合わせメッセージのフラッディング処理も実施例1と同様である。
図11に示すネットワーク構成における各マルチキャスト中継装置で加入要求メッセージ、及び問い合わせメッセージを受信、及び、中継した場合の、各マルチキャスト装置のマルチキャストパケット中継制御表を図13に示す。
図13は、本実施例2の各マルチキャスト中継装置のマルチキャストパケット中継制御表4320を示す説明図である。
図13(a)は、本実施例2のマルチキャスト中継装置4000のマルチキャストパケット中継制御表4320を示す説明図である。
Group1_addrエントリ4320−1の学習ポート情報4323に加入要求メッセージ受信ポートである4002、4003が設定され、Group2_addrエントリ4320−2の学習ポート情報4323に加入要求メッセージ受信ポートである4002が設定される。マルチキャスト中継装置4000は、IGMPクエリアであり、マルチキャストルータポートが設定されていないので、未学習エントリ4320−3の学習ポート情報4323には何も設定されない。
図13(b)は、本実施例2のマルチキャスト中継装置5000のマルチキャストパケット中継制御表4320を示す説明図である。
Group1_addrエントリ5320−1の学習ポート情報4323に加入要求メッセージの受信ポートであるポート5001とマルチキャストルータポートであるポート5002が設定される。Group2_addrエントリ5320−2の学習ポート情報4323に加入要求メッセージの受信ポートであるポート5003とマルチキャストルータポートであるポート5002が設定される。未学習エントリ5320−3の学習ポート情報にはマルチキャストルータポートであるポート5002が設定される。
図13(c)は、本実施例2のマルチキャスト中継装置6000のマルチキャストパケット中継制御表4320を示す説明図である。
Group1_addrエントリ6320−1の学習ポート情報4323に加入要求メッセージの受信ポートであるポート6003とマルチキャストルータポートであるポート6002とが設定される。未学習エントリ6320−2の学習ポート情報4323にはマルチキャストルータポートであるポート6002が設定される。
図13(d)は、本実施例2のマルチキャスト中継装置7000のマルチキャストパケット中継制御表7320を示す説明図である。
Group1_addrエントリ7320−1の学習ポート情報4323に加入要求メッセージの受信ポートであるポート7005とマルチキャストルータポートであるポート7003とが設定される。未学習エントリ7320−2の学習ポート情報には、マルチキャストルータポートであるポート7003が設定される。
各マルチキャスト中継装置のマルチキャストパケット中継制御表4320を用いたマルチキャストデータパケットの中継方法は、実施例1と同じである。各マルチキャスト中継装置は、受信したマルチキャストデータパケットのグループアドレスをマルチキャストパケット中継制御表4320と比較し、合致したマルチキャストグループの学習ポートに中継する。合致しなかった場合は、未学習エントリの学習ポート(マルチキャストルータポート)に中継する。未学習エントリの学習ポートに何も設定されていない場合は中継を抑止する。
各マルチキャスト中継装置が図13(a)〜図13(d)のマルチキャストパケット中継制御表4320を生成することにより、図11に示すネットワーク構成において、マルチキャスト送信装置21からのマルチキャストデータパケット(Group1_addr)は各マルチキャスト中継装置のマルチキャスト中継制御情報に従って、マルチキャスト中継装置7000、6000、5000、4000を順に経由し、マルチキャスト受信装置10、11に中継される。マルチキャスト送信装置20からのGroup2_addrのマルチキャストパケットも、マルチキャスト中継装置4000、5000、6000、7000を順に経由し、マルチキャスト中継装置12に中継される。
図14は、本実施例2のトポロジ変更が検出された後のマルチキャストパケットの中継回復処理、及びマルチキャスト中継回復処理を示すシーケンス図である。
図14は、実施例2においてトポロジ変更時に行われる処理の概要を示す。以下に示す概要は、マルチキャストグループ(Group1_addr)の中継を回復するための処理を示すが、トポロジ変更が発生したVLAN100に複数のマルチキャストグループが含まれる場合、マルチキャストグループ毎に、図14の処理が実行される。
図11に示すVLAN100の通常時において、マルチキャスト中継装置4000は、マルチキャストデータパケット(Group1_addr宛)を、マルチキャスト中継装置5000、及び6000を介して、マルチキャスト中継装置7000に送信する。
VLAN100においてトポロジ変更が発生した場合(502)、マルチキャスト中継装置4000、5000、6000、7000は、後述するマルチキャストルータポート設定処理を、各々非同期で実行する(503)。この結果、マルチキャストルータポート候補によって、各マルチキャスト中継制御情報が更新される。
実施例2におけるトポロジ変更とは、マルチキャスト中継装置5000とマルチキャスト中継装置6000との間が遮断され、マルチキャスト中継装置4000とマルチキャスト中継装置6000とのブロッキング状態が非ブロッキング状態に遷移した場合を示す。例えば、マルチキャスト中継装置4000において動作するスパニングツリー機能が、マルチキャスト中継装置5000とマルチキャスト中継装置6000との間の回線障害を検知し、通常運用状態ではブロッキング状態であったポート4005を非ブロッキング状態(運用状態)にする場合に、実施例2のトポロジ変更が発生する。
また、マルチキャスト中継装置4000、5000、6000、7000は、各々が有するスパニングツリー機能によって、トポロジ変更を検出する。このときの、各マルチキャスト中継装置のトポロジ変更検出部が、トポロジ変更を検知する手段は実施例1と同様である。
シーケンス503の後、マルチキャスト中継装置4000は、更新されたマルチキャスト中継制御情報に従い、マルチキャストパケット(Group1_addr宛て)を送信する。マルチキャスト中継装置4000によって送信されたマルチキャストパケット(Group1_addr宛て)のうち、トポロジ変更によって遮断された経路に送信されたパケットは、送信途中で廃棄される。
しかし、マルチキャスト中継装置6000が、マルチキャストパケット(Group1_addr宛て)を受信した場合、マルチキャスト中継装置6000がマルチキャスト中継装置4000と同じく、更新されたマルチキャスト中継制御情報に従い、マルチキャストパケットを送信する(506)。これによって、マルチキャスト中継装置7000がマルチキャストパケットを受信する。
そして、マルチキャスト中継装置7000は、マルチキャストパケット(Group1_addr宛て)を受信した場合、マルチキャスト中継制御情報に従い、マルチキャストパケット(Group1_addr宛て)をマルチキャスト受信装置に送信する(507)。これによって、トポロジ変更後のマルチキャスト中継回復処理が終了する。
マルチキャスト中継装置4000は、シーケンス503の後、後述の問い合わせメッセージ(マルチキャストグループ指定)自発処理によって、問い合わせメッセージ(Group1_addr宛て)を、マルチキャスト中継装置5000、6000に送信する(508)。なお、マルチキャスト中継装置7000は、マルチキャスト中継装置6000を介してマルチキャスト中継装置4000から送信された問い合わせメッセージを受信する。
マルチキャスト中継装置5000、6000、7000は、問い合わせメッセージ(Group1_addr宛て)を受信した場合、後述の問い合わせメッセージ(マルチキャストグループ指定)受信処理を実行する(509、510、511)。ここでマルチキャスト中継装置7000は、マルチキャスト受信装置に問い合わせメッセージを中継する。
マルチキャスト中継装置7000は、問い合わせメッセージの応答としてマルチキャスト受信装置から送信された加入要求メッセージを受信し、マルチキャスト中継装置4000に向けて受信した加入要求メッセージを中継する(512、513、514)。
シーケンス508〜シーケンス514が実行されることによって、マルチキャスト中継装置4000においては、シーケンス508から所定時間(最大応答時間)経過後、マルチキャスト中継装置5000、6000、7000においては、問い合わせメッセージ(マルチキャストグループ指定)受信処理から所定時間(最大応答時間)経過後に、加入要求メッセージを受信しないポートが、各マルチキャスト中継装置のマルチキャスト中継制御情報から削除される。
シーケンス508〜515によって、マルチキャスト中継最適化処理が実行される。
トポロジ変更があったVLAN100にマルチキャストグループGroup2_addrが含まれる場合、各マルチキャスト中継装置は、前述の処理をGroup2_addrに対しても実行する。
図15は、本実施例2のマルチキャストルータポート設定処理を示すフローチャートである。
図15に示す処理は、マルチキャスト中継装置がマルチキャストルータポート候補を正式なマルチキャストルータポートとして設定する処理である。図15に示す処理は、図14のシーケンス503に相当する。
トポロジ変更検出部4400からトポロジ変更通知(トポロジ変更が発生したVLANを示す)を受信した場合(8300)、各マルチキャスト中継装置の回復処理制御部4510は、VLAN管理表4111より、トポロジ変更通知が示すVLANのマルチキャストルータポート候補を示す情報を取得する(8301)。
ステップ8301の後、回復処理制御部4510は、取得されたマルチキャストルータポート候補と、トポロジ変更通知が示すVLANとをマルチキャストルータポート設定部4520に通知する。
マルチキャストルータポート設定部4520は、トポロジ変更通知が示すVLANと、取得されたマルチキャストルータポート候補との組合せを、VLAN管理表4111に追加する(8302)。ステップ8302の後、マルチキャストルータポート設定部4520は、トポロジ変更通知が示すVLANと、取得されたマルチキャストルータポート候補とを、マルチキャストパケット中継処理部4300に通知する。
そして、マルチキャストパケット中継処理部4300は、マルチキャストパケット中継制御表4320の未学習エントリのうち、VLAN名称4321が、トポロジ変更通知が示すVLANである未学習エントリの学習ポート情報4323に、マルチキャストルータポート候補を追加する(8303)。
ステップ8303の後、マルチキャストルータポート設定部4520は、エントリ管理表4131を検索し(8304)、トポロジ変更通知が示すVLANにおいて既に学習済みの学習エントリを一つ抽出できるか否かを判定する(8305)。ここで抽出される学習エントリは、トポロジ変更通知が示すVLANにおけるすべてのマルチキャストグループについての学習エントリである。
ステップ8305において、トポロジ変更通知が示すVLANにおいて既に学習済みの学習エントリを一つ抽出できる場合、マルチキャストルータポート設定部4520は、抽出された学習エントリの学習ポート情報1144に、マルチキャストルータポート候補を追加する(8306)。そして、マルチキャストルータポート設定部4520は、トポロジ変更通知が示すVLANと、抽出された学習エントリのマルチキャストグループ名称1143が示すマルチキャストグループと、学習エントリに追加したマルチキャストルータポート候補を、マルチキャストパケット中継処理部4300に通知する。
マルチキャストパケット中継処理部4300は、マルチキャストルータポート設定部4520から通知された情報に従って、マルチキャストパケット中継制御4320の学習エントリを抽出する。そして、抽出されたマルチキャストパケット中継制御4320の学習エントリの学習ポート情報4323に、さらに、マルチキャストルータポート設定部4520から通知されたマルチキャストルータポート候補を追加する(8307)。
ステップ8307の後、マルチキャストルータポート設定部4520は、他に既に学習済みの学習エントリを一つ抽出できるか否かを判定する(8305)。そして、ステップ8305において、抽出されていない学習エントリがない場合、又は、学習エントリを抽出できない場合、図15に示す処理は終了する(8308)。
以上によって、マルチキャスト中継装置は、マルチキャストパケット中継制御表4320の学習エントリが示す学習ポート情報1144、及び、エントリ管理表4131の学習ポート情報4323に、マルチキャストルータポート候補を追加することができる。また、VLAN管理表にマルチキャストルータポート候補を追加できる。
そして、これによって、マルチキャスト中継装置は、あらかじめ保持しておいたマルチキャストルータポート候補を、正式なマルチキャストルータポートとして動作させることができる。
図15に示す処理をマルチキャスト中継装置5000、6000、7000も行う。その結果、更新された各マルチキャスト中継装置のマルチキャストパケット中継制御表4320を図16に示す。
図16は、本実施例2のマルチキャストルータポート候補が追加された後の各マルチキャスト中継装置のマルチキャストパケット中継制御表4320を示す説明図である。
図16(a)は、本実施例2のマルチキャストルータポート候補が追加された後のマルチキャスト中継装置4000のマルチキャストパケット中継制御表4320を示す。
マルチキャスト中継装置4000のマルチキャストパケット中継制御表4320において、Group1_addrエントリ4320−1、及び、Group2_addrエントリ4320−2の学習ポート情報4323には、マルチキャストルータポート候補であったポート4004、4005が追加される。また、未学習エントリ4320−3の学習ポート情報4323にも、マルチキャストルータポート候補であったポート4003、4004、4005が追加される。
図16(b)は、本実施例2のマルチキャストルータポート候補が追加された後のマルチキャスト中継装置5000のマルチキャストパケット中継制御表4320を示す。
マルチキャスト中継装置5000のマルチキャストパケット中継制御表4320において、Group1_addrエントリ5320−1、及び、Group2_addrエントリ5320−2の学習ポート情報4323には、マルチキャストルータポート候補であったポート5003、5004が追加される。また、未学習エントリ5320−3の学習ポート情報4323にもマルチキャストルータポート候補であったポート5003、5004が追加される。
図16(c)は、本実施例2のマルチキャストルータポート候補が追加された後のマルチキャスト中継装置6000のマルチキャストパケット中継制御表4320を示す。
マルチキャスト中継装置6000のマルチキャストパケット中継制御表4320において、Group2_addrエントリ6320−1の学習ポート情報4323には、マルチキャストルータポート候補であったポート6001、6003が追加される。また、未学習エントリ6320−2の学習ポート情報4323には、マルチキャストルータポート候補であったポート6001、6003が追加される。
図16(d)は、本実施例2のマルチキャストルータポート候補が追加された後のマルチキャスト中継装置7000のマルチキャストパケット中継制御表4320を示す。
マルチキャスト中継装置7000のマルチキャストパケット中継制御表4320において、Group2_addrエントリ7320−1の学習ポート情報4323には、マルチキャストルータポート候補であったポート7001、7002が追加される。また、未学習エントリ7320−2の学習ポート情報4323にもマルチキャストルータポート候補であったポート7001、7002が追加される。
図17は、本実施例2の各マルチキャスト中継装置におけるマルチキャストルータポート設定処理後の、VLAN100における通信を示すブロック図である。
図17は、各マルチキャスト中継装置においてマルチキャストルータポート候補が正式なマルチキャストルータポートとして設定された後の、VLAN100における通信を示す。
マルチキャスト送信装置(20、21)から配信されたマルチキャストデータパケットが、マルチキャストルータポート候補を追加されたマルチキャストパケット中継制御表4320を用いて、ネットワーク内の全マルチキャスト中継装置に行き渡ることにより、即座にマルチキャスト中継が回復される。ただし、この状態では、無駄な中継も多く(通信101、102、103、104、151、152、153、154)、通信帯域を圧迫する恐れもあり適切なマルチキャスト中継とは言えない。この無駄なマルチキャスト中継を速やかに抑制するために以下の処理を行う。
マルチキャストルータポート候補を追加後の無駄なマルチキャスト中継を抑止するため、VLAN100内のマルチキャスト中継装置は、ネットワーク内で学習している全マルチキャストグループの問い合わせメッセージ(マルチキャストグループ指定)を送信する。実施例2では、IGMPクエリアより全マルチキャストグループの問い合わせメッセージ(マルチキャストグループ指定)を送信する。
実施例2におけるIGMPクエリアであるマルチキャスト中継装置4000は、VLAN100内の加入要求メッセージをすべて保持するため(各マルチキャスト中継装置に予め設定されたマルチキャストルータポートによって、各マルチキャスト受信装置が送信した加入要求メッセージがIGMPクエリアに集められるため)、ネットワーク内のすべてのマルチキャストグループを学習している。このため、マルチキャスト中継装置4000は、マルチキャストルータポート候補が、正式なマルチキャストルータポートとして設定された後、全マルチキャストグループの問い合わせメッセージ(マルチキャストグループ指定)を全ポートに対して送信できる。
このとき、実施例2におけるマルチキャスト中継装置4000は、問い合わせメッセージ(マルチキャストグループ指定)の最大応答時間を予め与えられた一定時間(例えば、2秒)に設定して送信する。送信された問い合わせメッセージ(マルチキャストグループ指定)は、実施例1で説明した問い合わせメッセージと同じく各マルチキャスト中継装置によってフラッディングされるため、全マルチキャスト中継装置、及び、全マルチキャスト受信装置に到達する。
マルチキャスト受信装置は、当該マルチキャスト受信装置が加入しているマルチキャストグループに対しての問い合わせメッセージ(マルチキャストグループ指定)を受信した場合、2秒以内(前述の最大応答時間内で無作為に決定)に加入要求メッセージを応答する。マルチキャスト受信装置は、当該マルチキャスト受信装置が加入していないマルチキャストグループに対しての問い合わせメッセージ(マルチキャストグループ指定)を受信した場合、何も応答しない。
一方で、マルチキャスト中継装置は、当該マルチキャスト中継装置において学習されているマルチキャストグループに対しての問い合わせメッセージ(マルチキャストグループ指定)を受信した場合、エントリ管理表4131における学習エントリの全学習ポートの生存タイマ1145を、前述の問い合わせメッセージの最大応答時間に対応する時間(前述の例では2秒)に設定する。
ここで設定される最大応答時間は、通常の問い合わせメッセージによる応答時間よりも十分に短い時間とする。十分に短い時間を生存タイマ1145に設定することによって、不必要な学習ポートを短時間で削除することができる。
マルチキャスト受信装置に接続されるポートは、2秒以内に加入要求メッセージの応答を受信し、生存タイマ1145は更新されるため、マルチキャスト受信装置に接続されるポートのマルチキャストグループへの加入状態は維持される。
しかし、マルチキャスト受信装置に接続されないポートは、加入要求メッセージが応答されない。このため、マルチキャスト受信装置に接続されないポートを示すエントリ管理表4131の学習エントリの生存タイマ1145は、問い合わせメッセージを受信してから2秒後に0になり、マルチキャスト受信装置に接続されないポートを示すエントリ管理表4131の学習エントリは、削除される(当該ポートへのマルチキャスト中継も停止する)。
また、トポロジ変更時にマルチキャストルータポート候補に基づいて正式に設定されたマルチキャストルータポートのうち、無駄なマルチキャストルータポートも、前述の方法によって削除される。具体的には、IGMPクエリアからの問い合わせメッセージ(マルチキャストグループ指定)を受信した際、各マルチキャスト中継装置は、問い合わせメッセージ(マルチキャストグループ指定)を受信したポート以外のポートをマルチキャストルータポートから削除する。これによって、無駄なマルチキャストルータポートへの中継が抑止される。
これら問い合わせメッセージ(マルチキャストグループ指定)を受信したときの、マルチキャスト中継装置で実施するマルチキャストグループ、及び、マルチキャストルータポートの維持、削除処理は、IGMPプロトコル機能の一般的な処理である。なお、本実施例では問い合わせメッセージ(マルチキャストグループ指定)の最大応答時間を2秒に設定したが、2秒に限らない。
IGMPクエリア(マルチキャスト中継装置4000)が問い合わせメッセージ(マルチキャストグループ指定)を自発する処理、及び、マルチキャスト中継制御情報からマルチキャストルータポートを削除する処理のフローを図18に示す。
図18は、本実施例2の問い合わせメッセージ自発処理を示すフローチャートである。
図18に示す処理は、図14に示すシーケンス508に相当する。
トポロジ変更を検知し、マルチキャスト中継装置4000がマルチキャストルータポート候補を正式なマルチキャストルータポートとして設定した後、回復処理制御部4510は、VLAN管理表4111を参照する。そして、トポロジ変更が発生したVLANの全ての所属ポートを取得する(8400)。
ステップ8400の後、回復処理制御部4510は、エントリ管理表4131を参照し、マルチキャスト中継装置4000において、トポロジ変更が発生したVLANの学習エントリを検索する(8401)。
回復処理制御部4510は、エントリ管理表4131において、トポロジ変更が発生したVLANの学習エントリが一つ特定されるか否かを判定する(8402)。そして、学習エントリが一つ特定された場合、特定された学習エントリのマルチキャストグループ名称1143より、マルチキャストグループアドレスを取得する(8403)。また、回復処理制御部4510は、ステップ8403において取得されたマルチキャストグループアドレスと、ステップ8400において取得された所属ポートとを、問い合わせメッセージ送信部4530に通知する。
ステップ8403の後、問い合わせメッセージ送信部4530は、取得されたマルチキャストグループアドレスを示す問い合わせメッセージ(マルチキャストグループ指定)を生成する(8404)。
ここで生成される問い合わせメッセージ(マルチキャストグループ指定)には、最大応答時間として一定時間を示す値(例えば、2秒)が格納される。また、トポロジ変更が発生したVLANを示す値が格納される。
ステップ8404の後、問い合わせメッセージ送信部4530は、ステップ8400において取得された全所属ポートに、生成された問い合わせメッセージ(マルチキャストグループ指定)を送信する(8405)。
IGMPクエリアであるマルチキャスト中継装置4000は、問い合わせメッセージ(マルチキャストグループ指定)を受信しないため、ステップ8406〜ステップ8410によって、マルチキャスト受信装置から加入要求メッセージを受信しないポートを、マルチキャストルータポートから削除する処理を行う。
ステップ8405の後、問い合わせメッセージ送信部4530は、ステップ8402において特定された学習エントリのすべての生存タイマ1145を、問い合わせメッセージ(マルチキャストグループ指定)に格納された最大応答時間(例えば2秒)に設定する(8406)。
ここで、IGMPクエリアであるマルチキャスト中継装置4000は、本来マルチキャストルータポートの設定は不要であるため、マルチキャストルータポート候補より設定したマルチキャストルータポートを削除しなければいけない。このため、ステップ8407〜ステップ8410によって、マルチキャスト中継装置4000は、マルチキャストルータポートをすべて削除する処理を行う。
ステップ8406の後、問い合わせメッセージ送信部4530は、ステップ8402に戻る。そして、エントリ管理表4131において、トポロジ変更が発生したVLANのすべての学習エントリを特定した場合、VLAN管理表4111を参照する。そして、VLAN管理表4111において、トポロジ変更が発生したVLANに設定されるマルチキャストルータポートを検索する(8407)。
VLAN管理表4111に、トポロジ変更が発生したVLANに設定されるマルチキャストルータポートが格納されるか否かを判定し(8408)、マルチキャストルータポートが格納されない場合、回復処理制御部4510は、図18に示す処理を終了する(8411)。また、マルチキャストルータポートが格納される場合、回復処理制御部4510は、VLAN管理表4111からトポロジ変更が発生したVLANのマルチキャストルータポートを全削除する(8409)。
ステップ8409の後、回復処理制御部4510は、マルチキャストパケット中継制御表4320におけるトポロジ変更が発生したVLANの未学習エントリの学習ポート情報1323からマルチキャストルータポートを全削除する(8410)。マルチキャストパケット中継制御表4320の未学習エントリの学習ポート情報1323からマルチキャストルータポートを削除することで、不要なマルチキャストルータポートへの中継を抑止することができる。
ステップ8410の後、回復処理制御部4510は、図18に示す処理を終了する(8411)。
ステップ8405において問い合わせメッセージ(マルチキャストグループ指定)を送信した結果、ポート4002は、マルチキャスト受信装置10から問い合わせメッセージが示すマルチキャストグループへの加入要求メッセージを最大応答時間(例えば2秒)以内に受信する。また、ポート4003は、マルチキャスト受信装置11からGroup1_addrへの加入要求メッセージを最大応答時間以内に受信する。
この場合、制御パケット送受信処理部4120は、送信された加入要求メッセージのマルチキャストグループ(Group1_addr)をエントリ管理表4131から検索し、Group1_addrエントリのうち学習ポート情報1144がポート4002を示すエントリとポート4003を示すエントリとの生存タイマ1145を一定時間(例えば、260秒)に更新する。
これにより、ポート4002、及び4003に接続されるマルチキャスト受信装置の加入状態は維持される。一方で、ポート4002、及び4003以外のポートにはGroup1_addrのマルチキャスト受信装置が存在しないため加入要求メッセージの応答がされない。よって、問い合わせメッセージの最大応答時間(2秒)後に、加入要求メッセージを受信しないポートの生存タイマ1145は0になり、エントリ生成部4130は、生存タイマ1145が0となったエントリをエントリ管理表4131から削除する。
そして、エントリ生成部4130は、エントリ管理表4131から削除されたエントリの情報を、マルチキャストパケット中継処理部4300に通知する。マルチキャストパケット中継処理部4300は、通知された情報に従い、マルチキャストパケット中継制御表4320の学習エントリの学習ポートから不要なポートを削除する。
これによって、加入要求メッセージを受信しないポートは、最大応答時間経過後に、エントリ管理表4131、及びマルチキャストパケット中継制御表4320から削除され、マルチキャストパケットを中継しなくなる。
次にトポロジ変更が発生し、マルチキャスト中継装置が問い合わせメッセージ(マルチキャストグループ指定)を受信した場合の、マルチキャスト中継制御情報からマルチキャストルータポートを削除する処理を以下に示す。
図19は、本実施例2の問い合わせメッセージ(マルチキャストグループ指定)受信処理を示すフローチャートである。
図19に示す処理は、図14に示すシーケンス509、510、511において実行される処理に相当する。
トポロジ変更が発生し、マルチキャスト中継装置5000が問い合わせメッセージ(マルチキャストグループ指定、以下において、Group1_addr指定)を受信した場合の、マルチキャスト中継装置5000における処理を以下に示す。なお、以下に示すマルチキャスト中継装置の構成は、図12に示すマルチキャスト中継装置4000の構成と同じ符号によって示されるが、すべてマルチキャスト中継装置5000が有する構成である。
マルチキャスト中継装置5000のポート5002が、問い合わせメッセージ(Group1_addr指定)を受信した場合、マルチキャストパケット中継処理部4300は、実施例1と同じく、VLAN登録表4310に従って制御パケット送受信処理部4120に問い合わせメッセージ(Group1_addr指定)を通知する。
制御パケット送受信処理部4120は、受信した通知を解析し、通知が問い合わせメッセージ(Group1_addr指定)であった場合、問い合わせメッセージを解析してVLAN(トポロジ変更が発生したVLAN)、問い合わせメッセージを受信した受信ポート(ポート5002)、及び、マルチキャストグループ(Group1_addr)を取得する(8500)。
ステップ8500の後、制御パケット送受信処理部4120は、取得されたVLANの全所属ポートをVLAN管理表4131から取得する(8501)。
そして、制御パケット送受信処理部4120は、取得された所属ポートから受信ポートを除いたポートに、問い合わせメッセージ(Group1_addr指定)を中継する(フラッディング)(8502)。なお、実施例2における問い合わせメッセージ(Group1_addr指定)のフラッディング処理は、実施例1におけるフラッディング処理と同様である。
ステップ8502の後、制御パケット送受信処理部4120は、エントリ管理表4131を検索し、問い合わせメッセージ(Group1_addr指定)で指定されたマルチキャストグループを示す学習エントリを検索する(8503)。
そして、制御パケット送受信処理部4120は、エントリ管理表4131において、Group1_addrのマルチキャストグループを示す学習エントリを特定できるか否かを判定する(8504)。Group1_addrのマルチキャストグループを示す学習エントリを特定できない場合、制御パケット送受信処理部4120は、ステップ8506を実行する。
Group1_addrのマルチキャストグループを示す学習エントリを特定できた場合、制御パケット送受信処理部4120は、特定された学習エントリの全学習ポートの生存タイマ1145を、問い合わせメッセージの最大応答時間(例えば、2秒)に設定する(8505)。
ステップ8505、又は、ステップ8504の後、制御パケット送受信処理部4120は、VLAN管理表4111を参照し、トポロジ変更が発生したVLANに設定されるマルチキャストルータポートを取得する(8506)。
ステップ8506の後、制御パケット送受信処理部4120は、取得されたマルチキャストルータポートに問い合わせメッセージの受信ポート以外のポートが設定されているか否かを判定する(8507)。そして、設定されている場合、制御パケット送受信処理部4120は、VLAN管理表4111におけるトポロジ変更が発生したVLANに対応する、問い合わせメッセージを受信した受信ポート以外のポートをすべて削除する(8508)。これによって、不要なマルチキャストルータポートが削除される。
また、制御パケット送受信処理部4120は、VLAN管理表4111から削除したポートを、マルチキャストパケット中継処理部4300に通知する。そして、マルチキャストパケット中継処理部4300は、通知されたポートを、マルチキャストパケット中継制御表の未学習エントリの学習ポート情報1323から削除する(8509)。
ステップ8507において、取得されたマルチキャストルータポートに問い合わせメッセージの受信ポート以外のポートが設定されていないと判定された場合、制御パケット送受信処理部4120は、図19に示す処理を終了する。
以上の処理をIGMPクエリアで学習している全てのマルチキャストグループに対して実行することによって、当該ネットワーク内で学習している全てのマルチキャストグループの問い合わせメッセージ(マルチキャストグループ指定)をVLAN内の全ポートに送信することができる。
ステップ8502において問い合わせメッセージ(Group1_addr指定)をフラッディングした結果、ポート5001に接続されるマルチキャスト受信装置11は、Group1_addrへの加入要求メッセージを問い合わせメッセージの最大応答時間(2秒)以内に応答する。この場合、制御パケット送受信処理部4120は、送信された加入要求メッセージのマルチキャストグループ(Group1_addr)をエントリ管理表4131から検索し、Group1_addrエントリのうち学習ポート情報1144がポート5001を示すエントリの生存タイマ1145を一定時間(例えば、260秒)に更新する。
これにより、ポート5001に接続されるマルチキャスト受信装置の加入状態は維持される。一方で、ポート5001以外のポートにはGroup1_addrのマルチキャスト受信装置が存在しないため加入要求メッセージの応答がされない。よって、問い合わせメッセージの最大応答時間(2秒)後に、加入要求メッセージを受信しないポートの生存タイマ1145は0になり、エントリ生成部4130は、生存タイマ1145が0となったエントリをエントリ管理表4131から削除する。
そして、エントリ生成部4130は、エントリ管理表4131から削除されたエントリの情報を、マルチキャストパケット中継処理部4300に通知する。マルチキャストパケット中継処理部4300は、通知された情報に従い、マルチキャストパケット中継制御表4320の学習エントリの学習ポートから不要なポートを削除する。
以上のトポロジ変更後の不要なポートを削除する処理によって、無駄なトラフィックを迅速に抑止することができる。また、IGMPクエリアから全マルチキャストグループの問い合わせメッセージ(マルチキャストグループ指定)を送信することによって、全マルチキャスト受信装置から大量の加入要求メッセージが応答される可能性があるが、本処理はマルチキャスト中継が回復したあとの処理であるため、大量の加入要求メッセージが応答されても、マルチキャスト中継回復時間の遅延にはならない。
図15、及び図18をIGMPクエリアが実行し、図19に示す処理をVLAN100内のIGMPクエリア以外の全てのマルチキャスト中継装置が行う。この結果、更新された各マルチキャスト中継装置のマルチキャストパケット中継制御表4320を図20(a)〜(d)に示す。
図20は、本実施例2の不要なポートを削除した後のマルチキャストパケット中継制御表4320を示す説明図である。
図20(a)は、本実施例2の不要なポートを削除した後のマルチキャスト中継装置4000のマルチキャストパケット中継制御表4320を示す説明図である。
図20(a)に示すマルチキャストパケット中継制御表4320において、Group1_addrエントリ4320−1の学習ポート情報4323には、加入要求メッセージ(Group1_addr指定)の受信ポートであるポート4002、4003が設定される。Group2_addrエントリ4320−2の学習ポート情報4323には、加入要求メッセージ(Group2_addr宛)受信ポートである4005が設定される。未学習エントリ4320−3の学習ポート情報4323には、マルチキャスト中継装置4000がIGMPクエリアであるため、何も設定されない。
図20(b)は、本実施例2の不要なポートを削除した後のマルチキャスト中継装置5000のマルチキャストパケット中継制御表4320を示す説明図である。
マルチキャスト中継装置5000のマルチキャストパケット中継制御表4320において、Group1_addrエントリ5320−1の学習ポート情報4323には、加入要求メッセージ(Group1_addr宛)の受信ポートであるポート5001とマルチキャストルータポートであるポート5002が設定される。未学習エントリ5320−2の学習ポート情報4323には、マルチキャストルータポートであるポート5002が設定される。Group2_addrエントリは、トポロジ変更後、加入要求メッセージの応答が無いため削除される。
図20(c)は、本実施例2の不要なポートを削除した後のマルチキャスト中継装置6000のマルチキャストパケット中継制御表4320を示す説明図である。
マルチキャスト中継装置6000のマルチキャストパケット中継制御表4320において、Group2_addrエントリ6320−1の学習ポート情報4323には、加入要求メッセージ(Group2_addr宛)の受信ポートであるポート6003とマルチキャストルータポートであるポート6001が設定される。未学習エントリ6320−2の学習ポート情報4323には、マルチキャストルータポートであるポート6001が設定される。
図20(d)は、本実施例2の不要なポートを削除した後のマルチキャスト中継装置7000のマルチキャストパケット中継制御表4320を示す説明図である。
マルチキャスト中継装置7000のマルチキャストパケット中継制御表4320において、Group2_addrエントリ7320−1の学習ポート情報4323には、加入要求メッセージ(Group2_addr宛)の受信ポートであるポート7005とマルチキャストルータポートであるポート7003が設定される。未学習エントリ7320−2の学習ポート情報4323には、マルチキャストルータポートであるポート7003が設定される。
図20に示すマルチキャストパケット中継制御情報を、各マルチキャスト中継装置が生成することにより、マルチキャスト受信装置に接続されないポートへのマルチキャスト中継、及び、不要なマルチキャストルータポート設定による無駄なマルチキャスト中継を、抑止することができる。
マルチキャスト中継を最適化したあとのマルチキャスト中継状況を図17で説明する。
マルチキャスト送信装置21から送信されたマルチキャストデータパケット(Group1_addr宛)は、マルチキャスト中継装置7000、6000、4000、5000を順に経由し、マルチキャスト受信装置10、11に中継される。マルチキャスト送信装置20から送信されたマルチキャストデータパケット(Group2_addr宛)は、マルチキャスト中継装置4000、6000、7000を順に経由し、マルチキャスト受信装置12に中継される。
各マルチキャスト中継装置におけるマルチキャストルータポートがIGMPクエリア方向である、5002、6001、7003のみに設定されるため、各マルチキャスト中継装置は、不要なマルチキャストルータポートにマルチキャストパケットを中継することはない。
実施例2では、予め設定しておいたマルチキャストルータポート候補を、トポロジ変更時に即座に正式なマルチキャストルータポートとして設定することで、迅速にマルチキャスト中継を回復できる。また、マルチキャストルータポート候補を正式なマルチキャストルータポートとして設定することで、無駄なマルチキャスト中継が生じるが、IGMPクエリアから問い合わせメッセージ(マルチキャストグループ指定)を自発することで、無駄なマルチキャスト中継も速やかに抑止することができる。
また、中継の回復にIGMP/MLD加入要求メッセージを要しないので、IGMP/MLD加入要求メッセージの集中受信による高負荷状態も発生しない。通常運用時においても、本方式は動的設定方式でマルチキャストルータポートを設定するため、効率よくマルチキャスト中継を行うことができる。
なお、実施例2はIGMPスヌーピングで説明したが、MLDスヌーピングも同様の処理で実現可能である。
本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明をわかりやすく説明するために簡易な実施例を用いて処理を詳細に説明したものであり、前述した全ての処理部以外の別の処理部を含んでもよい。また、本実施例のネットワークにおけるマルチキャスト中継装置は、いくつ備えられてもよい。
また、制御線や情報線は説明上必要と考えられるものを図示しており、実際のマルチキャスト中継装置におけるすべての制御線や情報線を示していない。実際には殆どすべての処理部が相互に接続されている。
10、11、12 マルチキャスト受信装置
20、21 マルチキャスト送信装置
100 VLAN
1000、2000、3000、4000、5000、6000、7000 マルチキャスト中継装置
1100 IGMPスヌーピング処理部
1110 VLAN管理部
1120 制御パケット送受信処理部
1130 エントリ生成部
1200 装置構成定義部
1210 VLAN情報
1220 IGMPスヌーピング情報
1300 マルチキャストパケット中継処理部
1310 VLAN登録表
1320 マルチキャストパケット中継制御表
1400 トポロジ変更検出部
1500 マルチキャスト中継回復処理部
1510 回復処理制御部
1520 加入要求自発処理部
1530 自発加入要求送受信処理部

Claims (11)

  1. 冗長構成を含むトポロジによって構成されるネットワークに備わり、受信装置にマルチキャストパケットを送信するマルチキャスト中継装置であって、
    前記受信装置には、マルチキャストグループが割り当てられ、
    前記マルチキャスト中継装置は、
    前記ネットワークに向けてパケットを出力する複数の所属ポートと、
    前記ネットワークと、当該ネットワークに属する前記マルチキャストグループと、当該マルチキャストグループ宛てのマルチキャストパケットを出力するために当該マルチキャストグループに割り当てられた前記所属ポートである学習ポートと、を示すマルチキャスト中継制御情報と、
    前記マルチキャストグループを示す値と、当該マルチキャストグループに割り当てられた前記学習ポートを示す値と、前記トポロジが変更される前に当該学習ポートが使用されるか否かを示す値とを含むエントリ管理情報と、
    前記マルチキャスト中継制御情報に従って、前記マルチキャストグループ宛てのマルチキャストパケットを出力するマルチキャストパケット中継処理部と、
    前記ネットワークにおける前記トポロジの変更を検出するトポロジ検出部と、
    前記トポロジの変更が検出された場合、前記トポロジの変更が検出されたネットワークに属するマルチキャストグループ宛てのマルチキャストパケットを配信する要求と、所定の値と、を含む加入要求通知を出力する中継回復処理部と、を有し、
    前記中継回復処理部は、
    前記所定の値を含む前記加入要求通知を受信した場合、
    前記エントリ管理情報に基づいて特定された所属ポートから、前記加入要求通知を出力し、
    前記加入要求通知を受信した所属ポートを、前記加入要求通知が示すマルチキャストグループ宛てのマルチキャストパケットを出力する前記学習ポートとして、前記マルチキャスト中継制御情報に格納することを特徴とするマルチキャスト中継装置。
  2. 請求項1に記載されたマルチキャスト中継装置であって、
    前記中継回復処理部は、
    前記トポロジの変更が検出された場合、
    前記トポロジの変更が検出されたネットワークに属するマルチキャストグループ宛てのマルチキャストパケットを出力する学習ポートであり、かつ、前記トポロジが変更される前に使用される学習ポートを、前記エントリ管理情報に基づいて抽出し、
    前記抽出された学習ポート以外の、前記マルチキャスト中継装置が有する所属ポートを特定し、
    前記特定された所属ポートから前記加入要求通知を出力することを特徴とするマルチキャスト中継装置。
  3. 請求項1、又は2に記載されたマルチキャスト中継装置であって、
    前記中継回復処理部は、
    前記所定の値を含む加入要求通知を受信した場合、前記加入要求通知を受信した所属ポートが、前記トポロジが変更された後に使用される学習ポートであることを示す値を、前記エントリ管理情報に格納することを特徴とするマルチキャスト中継装置。
  4. 請求項3に記載されたマルチキャスト中継装置であって、
    前記中継回復処理部は、
    前記所定の値を含む加入要求通知を受信した場合、前記加入要求通知が示すマルチキャストグループを示す値が、前記エントリ管理情報に含まれるか否かを判定し、
    前記判定の結果、前記加入要求通知が示すマルチキャストグループが、前記エントリ管理情報に含まれない場合、前記トポロジ変更が検出されたネットワークに向けてパケットを出力し、かつ、前記中継回復処理部が有する所属ポートを特定し、
    前記特定された所属ポートから、前記加入要求通知を出力することを特徴とするマルチキャスト中継装置。
  5. 冗長構成を含むトポロジによって構成されるネットワークに備わり、受信装置にマルチキャストパケットを送信するマルチキャスト中継装置であって、
    前記受信装置には、マルチキャストグループが割り当てられ、
    前記マルチキャスト中継装置は、
    前記ネットワークに向けてパケットを出力する複数の所属ポートと、
    前記ネットワークと、当該ネットワークに属する前記マルチキャストグループと、当該マルチキャストグループ宛てのマルチキャストパケットを出力するために当該マルチキャストグループに割り当てられた前記所属ポートである学習ポートと、を示すマルチキャスト中継制御情報と、
    前記マルチキャストグループを示す値と、当該マルチキャストグループに割り当てられた前記学習ポートを示す値と、を含むエントリ管理情報と、
    前記マルチキャスト中継制御情報に従って、前記マルチキャストグループ宛てのマルチキャストパケットを出力するマルチキャストパケット中継処理部と、
    前記ネットワークにおける前記トポロジの変更を検出するトポロジ検出部と、
    前記トポロジの変更が検出された場合、前記トポロジの変更が検出されたネットワークに属するマルチキャストグループに対応してあらかじめ保持されたマルチキャストルータポート候補を、前記マルチキャスト中継制御情報に追加する中継回復処理部と、を有し、
    前記中継回復処理部は、前記トポロジの変更が検出された場合、前記トポロジの変更が検出されたネットワークに属するマルチキャストグループの参加を問い合わせる問い合わせ通知を出力することを特徴とするマルチキャスト中継装置。
  6. 請求項5に記載されたマルチキャスト中継装置であって、
    前記マルチキャスト中継制御情報は、前記ネットワークと、当該ネットワークに属するマルチキャストグループに割り当てられていない前記所属ポートである未学習ポートを示す値を、さらに含み、
    前記中継回復処理部は、前記トポロジの変更が検出された場合、
    前記トポロジの変更が検出されたネットワークに属するマルチキャストグループに割り当てられた前記学習ポート、及び、前記トポロジの変更が検出されたネットワークに属するマルチキャストグループに割り当てられていない前記未学習ポートとして、前記あらかじめ保持されたマルチキャストルータポート候補を、前記マルチキャスト中継制御情報に追加することを特徴とするマルチキャスト中継装置。
  7. 請求項5、又は6に記載されたマルチキャスト中継装置であって、
    前記中継回復処理部は、前記トポロジの変更が検出された場合、前記トポロジの変更が検出されたネットワークに属するマルチキャストグループのうち、前記マルチキャスト中継制御情報に示される前記マルチキャストグループを特定し、
    前記特定されたマルチキャストグループの参加を問い合わせる問い合わせ通知を出力することを特徴とするマルチキャスト中継装置。
  8. 請求項7に記載されたマルチキャスト中継装置であって、
    前記エントリ管理情報は、前記学習ポートの生存タイマを、さらに含み、
    前記中継回復処理部は、
    前記問い合わせ通知に応答するための所定の最大時間を、前記問い合わせ通知に含め、
    前記問い合わせ通知が参加を問い合わせるマルチキャストグループに割り当てられた前記学習ポートの生存タイマを、前記所定の最大時間に更新することによって、前記エントリ管理情報を更新し、
    前記所定の最大時間以内に、前記問い合わせ通知が参加を問い合わせるマルチキャストグループに割り当てられた学習ポートが、前記トポロジの変更が検出されたネットワークに属するマルチキャストグループ宛てのマルチキャストパケットを配信する要求を含む加入要求を受信しない場合、当該学習ポートを、前記エントリ管理情報、及び、前記マルチキャスト制御情報から削除することを特徴とするマルチキャスト中継装置。
  9. 請求項8に記載されたマルチキャスト中継装置であって、
    前記問い合わせ通知を出力したマルチキャスト中継装置が、IGMPクエリアである場合、前記中継回復処理部は、前記問い合わせ通知を出力した後、前記マルチキャスト中継制御情報から、マルチキャストルータポートを削除することを特徴とするマルチキャスト中継装置。
  10. 冗長構成を含むトポロジによって構成されるネットワークに備わり、受信装置にマルチキャストパケットを送信するマルチキャスト中継装置によるマルチキャスト中継方法であって、
    前記受信装置には、マルチキャストグループが割り当てられ、
    前記マルチキャスト中継装置は、
    前記ネットワークに向けてパケットを出力する複数の所属ポートと、
    前記ネットワークと、当該ネットワークに属する前記マルチキャストグループと、当該マルチキャストグループ宛てのマルチキャストパケットを出力するために当該マルチキャストグループに割り当てられた前記所属ポートである学習ポートと、を示すマルチキャスト中継制御情報と、
    前記マルチキャストグループを示す値と、当該マルチキャストグループに割り当てられた前記学習ポートを示す値と、前記トポロジが変更される前に当該学習ポートが使用されるか否かを示す値とを含むエントリ管理情報と、を有し、
    前記方法は、
    前記マルチキャスト中継装置が、前記マルチキャスト中継制御情報に従って、前記マルチキャストグループ宛てのマルチキャストパケットを出力するマルチキャストパケット中継処理手順と、
    前記マルチキャスト中継装置が、前記ネットワークにおける前記トポロジの変更を検出するトポロジ検出手順と、
    前記マルチキャスト中継装置が、前記トポロジの変更が検出された場合、前記トポロジの変更が検出されたネットワークに属するマルチキャストグループ宛てのマルチキャストパケットを配信する要求と、所定の値と、を含む加入要求通知を出力する中継回復処理手順と、を含み、
    前記中継回復処理手順は、
    前記所定の値を含む前記加入要求通知を受信した場合、
    前記エントリ管理情報に基づいて特定された所属ポートから、前記加入要求通知を出力する手順と、
    前記加入要求通知を受信した所属ポートを、前記加入要求通知が示すマルチキャストグループ宛てのマルチキャストパケットを出力する前記学習ポートとして、前記マルチキャスト中継制御情報に格納する手順とを含むことを特徴とするマルチキャスト中継方法。
  11. 冗長構成を含むトポロジによって構成されるネットワークに備わり、受信装置にマルチキャストパケットを送信するマルチキャスト中継装置によるマルチキャスト中継方法であって、
    前記受信装置には、マルチキャストグループが割り当てられ、
    前記マルチキャスト中継装置は、
    前記ネットワークに向けてパケットを出力する複数の所属ポートと、
    前記ネットワークと、当該ネットワークに属する前記マルチキャストグループと、当該マルチキャストグループ宛てのマルチキャストパケットを出力するために当該マルチキャストグループに割り当てられた前記所属ポートである学習ポートと、を示すマルチキャスト中継制御情報と、
    前記マルチキャストグループを示す値と、当該マルチキャストグループに割り当てられた前記学習ポートを示す値と、を含むエントリ管理情報と、を有し、
    前記方法は、
    前記マルチキャスト中継装置が、前記マルチキャスト中継制御情報に従って、前記マルチキャストグループ宛てのマルチキャストパケットを出力するマルチキャストパケット中継処理手順と、
    前記マルチキャスト中継装置が、前記ネットワークにおける前記トポロジの変更を検出するトポロジ検出手順と、
    前記マルチキャスト中継装置が、前記トポロジの変更が検出された場合、前記トポロジの変更が検出されたネットワークに属するマルチキャストグループに対応してあらかじめ保持されたマルチキャストルータポート候補を、前記マルチキャスト中継制御情報に追加する中継回復処理手順と、を含み、
    前記中継回復処理手順は、前記トポロジの変更が検出された場合、前記トポロジの変更が検出されたネットワークに属するマルチキャストグループの参加を問い合わせる問い合わせ通知を出力する手順を含むことを特徴とするマルチキャスト中継方法。
JP2012168383A 2012-07-30 2012-07-30 マルチキャスト中継装置、及び、マルチキャスト中継方法 Pending JP2014027598A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012168383A JP2014027598A (ja) 2012-07-30 2012-07-30 マルチキャスト中継装置、及び、マルチキャスト中継方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012168383A JP2014027598A (ja) 2012-07-30 2012-07-30 マルチキャスト中継装置、及び、マルチキャスト中継方法

Publications (1)

Publication Number Publication Date
JP2014027598A true JP2014027598A (ja) 2014-02-06

Family

ID=50200831

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012168383A Pending JP2014027598A (ja) 2012-07-30 2012-07-30 マルチキャスト中継装置、及び、マルチキャスト中継方法

Country Status (1)

Country Link
JP (1) JP2014027598A (ja)

Similar Documents

Publication Publication Date Title
US11606312B2 (en) Fast fail-over using tunnels
CN108512739B (zh) 以太网虚拟专用网络中的多宿主路由器之间的组播状态
JP5691703B2 (ja) マルチキャストネットワークシステム
TWI393401B (zh) 用以管理多播路由之系統、裝置、方法及具有電腦程式收錄其中之記憶體
CN101420362B (zh) 组播流量切换的方法、系统及路由器
US9838303B2 (en) PIM source discovery by last hop router
CN109981308B (zh) 报文传输方法及装置
WO2000064100A1 (en) Method and apparatus for forwarding multicast data
CN101521927A (zh) 一种组播转发路径收敛的方法和系统
WO2018068588A1 (zh) 提供组播业务的方法和软件定义网络控制器
US10020952B1 (en) PIM relay mode in computer networks
CN102185776B (zh) 以太网二层组播快速收敛的方法及以太网系统
US20140226464A1 (en) PORT Based Redundant Link Protection
US10742431B2 (en) Centralized database based multicast converging
US20180062966A1 (en) Selective transmission of bidirectional forwarding detection (bfd) messages for verifying multicast connectivity
EP2736204B1 (en) Rendezvous Point Convergence Method and Apparatus
CN105553857B (zh) 一种ip组播路由转发方法和系统
JP2003032299A (ja) マルチキャストネットワークにおけるランデブーポイントの制御方法及び装置
Bartczak et al. Lightweight PIM—a new multicast routing protocol
US9948474B2 (en) Network system, packet transmission apparatus, packet transmission method, and recording medium recording information processing program
CN103780503A (zh) 一种负载均衡的实现方法和设备
JP2014027598A (ja) マルチキャスト中継装置、及び、マルチキャスト中継方法
US10091103B2 (en) Efficient synchronization of stored information using a parallel ring network topology
US11991076B1 (en) Optimized MVPN route exchange in SD-WAN environments
JP2013179445A (ja) ネットワーク設定装置およびネットワーク設定方法