通信システム、ルータ位置算出装置、およびルータ位置算出プログラム
【課題】disjointな(経路上に共通ルータを持たない独立な)マルチキャストツリーを動的に構築することができる通信システム、ルータ位置算出装置、およびルータ位置算出プログラムを提供する。
【解決手段】ルータ論理位置計算部21は、配信サーバによって送信されるマルチキャストパケットを転送する、階層構造を有する複数のルータの論理的な位置関係を示すネットワークトポロジ情報と、新たに追加される追加ルータと接続される、配信サーバ側に設けられた上流ルータと追加ルータの論理的な位置関係を示す追加ルータ接続情報と、複数のルータの各々に対して、各ルータの論理的な位置に対応して付与された識別値であって、同一階層内でルータの配置方向に沿って値が増加するように付与された識別値とに基づいて追加ルータの論理的な位置を算出する。
【解決手段】ルータ論理位置計算部21は、配信サーバによって送信されるマルチキャストパケットを転送する、階層構造を有する複数のルータの論理的な位置関係を示すネットワークトポロジ情報と、新たに追加される追加ルータと接続される、配信サーバ側に設けられた上流ルータと追加ルータの論理的な位置関係を示す追加ルータ接続情報と、複数のルータの各々に対して、各ルータの論理的な位置に対応して付与された識別値であって、同一階層内でルータの配置方向に沿って値が増加するように付与された識別値とに基づいて追加ルータの論理的な位置を算出する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、配信サーバによって送信される放送用のメインマルチキャストパケットと、バックアップサーバによって送信されるバックアップマルチキャストパケットとを転送する複数のルータを備えた通信システムに関する。また、本発明は、本通信システムを構成するルータの論理的な位置関係に係る処理を行うルータ位置算出装置およびルータ位置算出プログラムにも関する。
【背景技術】
【0002】
動画配信等のサービスを実現するために、OSI(Open Systems Interconnection) Layer3層のIP(Internet Protocol)においてマルチキャスト(非特許文献1参照)が定義され、これに対応した各種プロトコル(非特許文献2および3参照)が実装・運用されている。しかし、IP層における(IP経路制御プロトコルに基づく)ネットワーク障害の検出・復旧に数秒〜数10秒の通信断を伴うことが問題となる。そこで、冗長構成を持つIPネットワークを対象として、この通信断時間を補償し、サービスを無瞬断化するために、本発明者は特願2004−060528、特願2004−349665、および特願2005−062293に記載の技術を提案している。
【0003】
マルチキャスト配信経路の決定は、マルチキャスト受信者から発信者(またはランデブーポイント(RP)と呼ばれる特別なノード)に向かうユニキャスト経路情報に基づいて、PIM-SMマルチキャスト経路制御プロトコル(非特許文献2参照)が行う。ユニキャスト経路情報は、OSPF(Open Shortest Path First)(非特許文献3参照)等のユニキャスト経路制御プロトコルによって生成される。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】Beau Williamson著,「IPマルチキャストネットワーク開発ガイドVo1.1」,ソフトバンクパブリッシング株式会社,2001年7月3日
【非特許文献2】D.Estrin,他9名,RFC2362-Protocol Independent Multicast-Sparse Mode(PIM-SM):Protocol Specification,[online],1998年,The Internet Society,[2010年5月26日検索],インターネット<URL: http://www.faqs.org/rfcs/rfc2362.html>
【非特許文献3】J.Moy,RFC2328-OSPF Version 2,[online],1998年,The Internet Society,[2010年5月26日検索],インターネット<URL: http://www.faqs.org/rfcs/rfc2328.html>
【発明の概要】
【発明が解決しようとする課題】
【0005】
図10は、本発明者が提案した技術による通信ネットワークの構成を示している。放送配信サーバ101は、配信対象のストリームデータが格納されたマルチキャストパケットを送信する。送信されたマルチキャストパケットは、通常配信用(メイン)マルチキャストGmとして、L2スイッチ102および各通信装置(ルータ104b,105b,106b,107およびL2スイッチ109)を経由してクライアント端末110へ転送される。また、L2スイッチ102によってマルチキャストパケットが複製され、バックアップサーバ103へ送信される。バックアップサーバ103は、受信したマルチキャストパケットを複製し、2つの予備配信用(バックアップ)マルチキャストGb1およびGb2として送信する。
【0006】
バックアップマルチキャストGb2には、バックアップサーバ103によって一定の遅延が付加される。バックアップマルチキャストGb1およびGb2は、定常時にはルータ104aで破棄される。クライアント端末110に最も近いエッジのルータ107の近傍には通信制御装置108が設けられている。通信制御装置108は、メインマルチキャストGmの配信断を検出した場合、バックアップマルチキャストGb1およびGb2の受信に参加する。バックアップマルチキャストGb1およびGb2はルータ104aから、ルータ105a,106a,107を経由して、通信制御装置108によって受信される。
【0007】
通信制御装置108は、受信したバックアップマルチキャストGb1およびGb2をメインマルチキャストに変換して代理出力する(図10のマルチキャストGm’)。この際、障害点(ルータ・リンク)を避けるために、メインマルチキャストとバックアップマルチキャストの配信経路はdisjoint(互いに疎 = 同一ルータ・リンクを経由しない)である必要がある。
【0008】
非特許文献2によれば、マルチキャストツリーは、受信者から発信者(またはRP)に向かって、各ルータがユニキャスト経路情報に従い、ホップバイホップで構築する。したがって、ある受信者から同一(あるいはネットワークトポロジ的に隣接する)発信者へ複数のマルチキャストツリーを設定しようとすると、同一ルータ・リンク経由となる傾向にある。すなわち、通常の運用では図11のように、メインマルチキャストとバックアップマルチキャストで同一ルータを経由することになる。
【0009】
本技術が対象とする冗長構成を持つネットワークトポロジでは、等コストのユニキャスト経路(equal-costのRPF(Reverse Path Forwarding)経路)が複数存在するため、本来、disjointなマルチキャストツリーを少なくとも2種類以上構築し得る環境である。しかしながら、一般的なPIM-SM実装では、複数のequal-cost RPF 経路(i.e. 上流ルータ)が存在する場合、最も大きなアドレスを持つ上流ルータが一意に選択されるため(非特許文献1)、ツリーが重複するという問題がある(図11参照)。
【0010】
これに対して負荷分散の観点から、ソースIPアドレスをkeyとするハッシュ計算により、異なる上流ルータを選択するPIM-SMの実装も存在する。しかしながら、本機能はdisjointなツリー設定を保証するものではない。
【0011】
本発明は、上述した問題点に鑑みてなされたものであって、disjointな(経路上に共通ルータを持たない独立な)マルチキャストツリーを動的に構築することができる通信システム、ルータ位置算出装置、およびルータ位置算出プログラムを提供することを目的とする。
【課題を解決するための手段】
【0012】
本発明は、上記の課題を解決するためになされたもので、第1の配信サーバおよび第2の配信サーバによって送信されるマルチキャストパケットを転送する、階層構造を有する複数のルータを備えた通信システムであって、前記複数のルータを構成する各ルータのハッシュ処理によって、前記第1の配信サーバによって送信されるマルチキャストパケットが、前記第1の配信サーバ側に設けられた第1の上流ルータから転送されるように前記第1の配信サーバのIPアドレスが決定されており、前記複数のルータを構成する各ルータのハッシュ処理によって、前記第2の配信サーバによって送信されるマルチキャストパケットが、前記第2の配信サーバ側に設けられた第2の上流ルータから転送されるように前記第2の配信サーバのIPアドレスが決定されており、前記第1の配信サーバおよび前記第2の配信サーバに最も近いルータを除く任意のルータが追加された際の論理的な追加位置は、階層構造を有する前記複数のルータの論理的な位置関係を示すネットワークトポロジ情報と、新たに追加される追加ルータと接続される、前記第1の配信サーバおよび前記第2の配信サーバ側に設けられた上流ルータと前記追加ルータの論理的な位置関係を示す追加ルータ接続情報と、前記複数のルータの各々に対して、各ルータの論理的な位置に対応して付与された識別値であって、同一階層内でルータの配置方向に沿って値が増加するように付与された識別値と、に基づいて算出されたことを特徴とする通信システムである。
【0013】
また、本発明は、第1の配信サーバおよび第2の配信サーバによって送信されるマルチキャストパケットを転送する、階層構造を有する複数のルータを備えた通信システムであって、前記複数のルータを構成する各ルータのハッシュ処理によって、前記第1の配信サーバによって送信されるマルチキャストパケットが、前記第1の配信サーバ側に設けられた第1の上流ルータから転送されるように前記第1の配信サーバのIPアドレスが決定されており、前記複数のルータを構成する各ルータのハッシュ処理によって、前記第2の配信サーバによって送信されるマルチキャストパケットが、前記第2の配信サーバ側に設けられた第2の上流ルータから転送されるように前記第2の配信サーバのIPアドレスが決定されている通信システムに対して新たに追加ルータを追加する際の論理的な位置を算出するルータ位置算出装置であって、前記配信サーバによって送信されるマルチキャストパケットを転送する、階層構造を有する複数のルータの論理的な位置関係を示すネットワークトポロジ情報と、新たに追加される追加ルータと接続される、前記配信サーバ側に設けられた上流ルータと前記追加ルータの論理的な位置関係を示す追加ルータ接続情報と、前記複数のルータの各々に対して、各ルータの論理的な位置に対応して付与された識別値であって、同一階層内でルータの配置方向に沿って値が増加するように付与された識別値と、を記憶する記憶部と、前記ネットワークトポロジ情報、前記追加ルータ接続情報、および前記識別値に基づいて前記追加ルータの論理的な位置を算出する位置算出部と、を有することを特徴とするルータ位置算出装置である。
【0014】
また、本発明のルータ位置算出装置において、前記位置算出部は、前記追加ルータ接続情報に基づいて、前記追加ルータと接続される前記第1の上流ルータおよび前記第2の上流ルータを選択し、前記ネットワークトポロジ情報に基づいて、当該選択した第2の上流ルータの下流ルータを選択すると共に当該選択した下流ルータの前記第1の上流ルータを選択し、当該選択した下流ルータの前記第1の上流ルータの識別値と、前記追加ルータと接続される前記第1の上流ルータの識別値とを比較した結果に基づいて前記追加ルータの論理的な位置を算出することを特徴とする。
【0015】
また、本発明のルータ位置算出装置において、前記位置算出部は、前記追加ルータ接続情報に基づいて、前記追加ルータと接続される前記第2の上流ルータを選択し、前記ネットワークトポロジ情報に基づいて、当該選択した第2の上流ルータと同一階層であって隣りのルータを選択すると共に当該選択した隣りのルータの下流ルータを選択し、当該選択した下流ルータの識別値に基づいて前記追加ルータの論理的な位置を算出することを特徴とする。
【0016】
また、本発明のルータ位置算出装置において、前記位置算出部は、階層lにおける前記配置方向の位置がj番目であって、当該位置に対応する前記識別値R[l,j]を有する前記追加ルータと接続される前記第1の上流ルータ、前記第2の上流ルータの前記識別値をそれぞれR[l-1,j”]、R[l-1,j’]とし、前記追加ルータと同一階層のi番目のルータの前記第1の上流ルータ、前記第2の上流ルータの前記識別値をそれぞれR[l-1,i”]、R[l-1,i’]とした場合に、(i’<j’)または(i’=j’かつi”≦j”)であればi<jが成り立つように、かつ、(i’>j’)または(i’=j’かつi”>j”)であればi>jが成り立つようにjを決定することを特徴とする。
【0017】
また、本発明のルータ位置算出装置は、前記位置算出部によって算出された前記追加ルータの論理的な位置に基づいて前記追加ルータの前記識別値を算出する識別値算出部をさらに有することを特徴とする。
【0018】
また、本発明は、第1の配信サーバおよび第2の配信サーバによって送信されるマルチキャストパケットを転送する、階層構造を有する複数のルータを備えた通信システムであって、前記複数のルータを構成する各ルータのハッシュ処理によって、前記第1の配信サーバによって送信されるマルチキャストパケットが、前記第1の配信サーバ側に設けられた第1の上流ルータから転送されるように前記第1の配信サーバのIPアドレスが決定されており、前記複数のルータを構成する各ルータのハッシュ処理によって、前記第2の配信サーバによって送信されるマルチキャストパケットが、前記第2の配信サーバ側に設けられた第2の上流ルータから転送されるように前記第2の配信サーバのIPアドレスが決定されている通信システムに対して新たに追加ルータを追加する際の論理的な位置を算出する処理をコンピュータに実行させるためのルータ位置算出プログラムであって、前記配信サーバによって送信されるマルチキャストパケットを転送する、階層構造を有する複数のルータの論理的な位置関係を示すネットワークトポロジ情報と、新たに追加される追加ルータと接続される、前記配信サーバ側に設けられた上流ルータと前記追加ルータの論理的な位置関係を示す追加ルータ接続情報と、前記複数のルータの各々に対して、各ルータの論理的な位置に対応して付与された識別値であって、同一階層内でルータの配置方向に沿って値が増加するように付与された識別値と、を記憶する記憶部と、前記ネットワークトポロジ情報、前記追加ルータ接続情報、および前記識別値に基づいて前記追加ルータの論理的な位置を算出する位置算出部と、としてコンピュータを機能させるためのルータ位置算出プログラムである。
【発明の効果】
【0019】
本発明によれば、disjointなマルチキャストツリーを動的に構築することができるという効果が得られる。
【図面の簡単な説明】
【0020】
【図1】本発明の一実施形態によるルータ位置算出装置の構成を示すブロック図である。
【図2】本発明の一実施形態における別上流ルータ選択手法を説明するための参考図である。
【図3】本発明の一実施形態における下流ルータ選択手法を説明するための参考図である。
【図4】本発明の一実施形態におけるデータ構造を説明するための参考図である。
【図5】本発明の一実施形態におけるルータの追加例を説明するための参考図である。
【図6】本発明の一実施形態におけるルータの追加例を説明するための参考図である。
【図7】本発明の一実施形態におけるルータの追加例を説明するための参考図である。
【図8】本発明の一実施形態におけるネットワーク構成例を示す参考図である。
【図9】本発明の一実施形態における下流ルータ選択手法の手順を示すフローチャートである。
【図10】従来の通信ネットワークの構成を示す構成図である。
【図11】従来技術の問題点を説明するための説明図である。
【発明を実施するための形態】
【0021】
以下、図面を参照し、本発明の実施形態を説明する。まず、前提条件として以下を仮定する。ネットワーク構成例は図10と同様であり、配信サーバによって送信される放送用のマルチキャストパケットと、バックアップサーバによって送信されるバックアップマルチキャストパケットとを転送する複数のルータを備えた通信システムとなっている。また、本通信システムは、マルチキャストソース(ソースホストあるいはRP(Rendezvous Point)、DC(Data Center)エッジルータ、コアルータ、顧客側エッジルータのように階層化されたネットワークトポロジを有している。メインマルチキャストソース(根)およびバックアップマルチキャストソース(根)は、それぞれ固定された1ノードのみとする。任意のルータ(節)から根に向かって、2つのequal-costな上流ルータが存在する。下流ルータは、最も大きなインタフェースアドレスを持つ上流ルータに向けてjoin(マルチキャストパケット受信へ参加)する(前述した非特許文献1参照)。
【0022】
(別上流ルータ選択手法)
上記を満たす環境において、各下流ルータでは、2つの上流ルータにそれぞれ複数の論理的接続を設定し、メインマルチキャストおよびバックアップマルチキャストを別々の上流ルータから取得できるようにする。以下、図2を参照しながら、設定方法の原理を説明する。本通信システムを構成するルータに対して、ネットワーク管理者によって、以下の手順で設定がなされるものとする。
【0023】
1.下流ルータXと上流ルータAを接続する物理リンクに対して2つの(論理的な)サブネット(ネットワークアドレス:NA1とNA2)を設定する。
2.下流ルータXと上流ルータBを接続する物理リンクに対して2つの(論理的な)サブネット(ネットワークアドレス:NB1とNB2)を設定する。
3.ユニキャスト経路計算対象となるサブネットを2つのグループに分類する。NA1とNB1はグループ1に、NA2とNB2はグループ2に所属させる。
4.メインマルチキャストソースが属するサブネットはグループ1に、バックアップマルチキャストソースが属するサブネットはグループ2に所属させる。
【0024】
5.グループ1とグループ2は独立にユニキャスト経路計算を行う。これにより、ルータXからメインマルチキャストソースに向かうユニキャスト経路はNA1とNB1、バックアップマルチキャストソースに向かうユニキャスト経路はNA2とNB2となる。このように、NA1およびNB1は、メインマルチキャストパケットの転送用として割り当てられ、NA2およびNB2は、バックアップマルチキャストパケットの転送用として割り当てられることになる。
【0025】
6.NA1とNB1ならびにNA2とNB2について、アドレスの大小関係を逆にする(e.g. NA1>NB1,NA2<NB2)。これにより、メインとバックアップでjoin(マルチキャストパケット受信への参加)対象の上流ルータを別(e.g. メインは上流ルータA(NA1),バックアップは上流ルータB(NB2))にする。以下、メインマルチキャストソースに向かうツリー(第1ツリー)が設定される物理リンクを第1リンク、バックアップマルチキャストソースに向かうツリー(第2ツリー)が設定される物理リンクを第2リンクと定義する。2つのマルチキャストソースに対して等コストとなる2つの上流ルータ候補が存在する場合に、上記の手法によって、各々のマルチキャストソースへ向かう経路を分岐することができる。
【0026】
なお、上述の手法の他に、「マルチキャストソースIPアドレスをkeyとするハッシュ計算に基づく上流ルータ選択手法」を用いて、第1リンクおよび第2リンクを設定してもよい。すなわち、ルータで使用されるハッシュ関数は一意であるものとして、以下のようにすることによって、図2と同じ効果を得ることができる。
1.各ルータのハッシュ処理によって、メインマルチキャストソース(第1の配信サーバ)に向かうツリーが第1の上流ルータ(第1リンク)を選択するように(メインマルチキャストソースによって送信されるマルチキャストパケットが、各ルータの第1の上流ルータから各ルータに転送されるように)、メインマルチキャストソースのIPアドレスを決定する。
2.各ルータのハッシュ処理によって、バックアップマルチキャストソース(第2の配信サーバ)に向かうツリーが第2の上流ルータ(第2リンク)を選択するように(バックアップマルチキャストソースによって送信されるマルチキャストパケットが、各ルータの第2の上流ルータから各ルータに転送されるように)、バックアップマルチキャストソースのIPアドレスを決定する。
【0027】
別上流ルータ選択手法として、上述した2つの方式のうちのいずれかの方式を適用した上で、下記の下流ルータ配置手法を導入することによって、マルチキャストソースに直接接続されたルータを除き、任意のルータから2つのマルチキャストソースに向けて、disjointなマルチキャストツリーを構成することが可能となる。
【0028】
(下流ルータ配置手法)
さらに、全ての下流ルータで上流ルータの選択方針を一致させる。その上で、追加する下流ルータの(ネットワークトポロジ上の論理的な)位置を、下記の方針に従い適切に決定することにより、冒頭で述べた前提条件を満たすネットワークトポロジで、メインマルチキャストツリーとバックアップマルチキャストツリーをdisjointに設定することができる。以下、図3を参照しながら、下流ルータの追加アルゴリズムを説明する。
【0029】
1.各階層l(l≧0)において、各ルータは3.以降に示す方針に基づき、ネットワークトポロジ上で左側より順番に並んでいるものとする。
2.初期状態として、マルチキャストソースに接続された最上流(l=0)のルータが2台存在するものとする。
3.追加する下流ルータに対して、図2を用いて説明した設定方法に従い、メインマルチキャストを右側の上流ルータ(第1上流ルータ)から、バックアップマルチキャストを左側の上流ルータ(第2上流ルータ)から取得する設定を行う。
【0030】
4.各ルータを一意に表すために、該ルータの位置する階層l、ならびに該階層lにおける左からの順序jを使用する。すなわち、階層lにおける左からj(j≧0)番目のルータをR[l,j]のように記述する。
5.階層0(l=0)におけるルータについては、メインマルチキャストソースを収容するルータをR[0,1]、バックアップマルチキャストソースを収容するルータをR[0,0]と規定する。
6.ある階層l(l≧1)に下流ルータR[l,j]を新たに追加する場合を考える。まず新たな下流ルータR[l,j]と同一階層に属する他のルータをR[l,i]と記述する。ここで、i(i≧0)は、該階層l上で左側から数えたルータの順序(R[l,j]の追加前の順序)を表す。ただしi=0を最も左側とする。
【0031】
7.jの値(階層lにおいて左からj番目を意味する)を、以下の条件を満たすように決定する。ただしj=0を最も左側とする。R[l,j]の第2・第1上流ルータをそれぞれR[l-1,j’]およびR[l-1,j”]とし、R[l,i]の第2・第1上流ルータをそれぞれR[l-1,i’]およびR[l-1,i”]とすると、階層lの全てのi、ならびにこれに付随する階層l-1のi', i"について、下記の条件に従ってjを決定する。
(i’<j’)または(i’=j’かつi”≦j”) ⇒ i<j
(i’>j’)または(i’=j’かつi”>j”) ⇒ i>j
【0032】
図3に示される例では、ルータ群301を構成する各ルータについてはi’<j’が満たされており、ルータ群302を構成する各ルータについてはi’=j’かつi”≦j”が満たされている。したがって、階層lに追加されるルータR[l,j]はネットワークトポロジ上で、ルータ群301および302よりも右側に追加されることになる。また、ルータ群303を構成する各ルータについてはi’=j’かつi”>j”が満たされており、ルータ群304を構成する各ルータについてはi’>j’が満たされている。したがって、階層lに追加されるルータR[l,j]はネットワークトポロジ上で、ルータ群303および304よりも左側に追加されることになる。上記のことから、ルータR[l,j]は、図3に示される位置に追加される。
【0033】
図1は、本実施形態によるルータ位置算出装置の構成を示している。本ルータ位置算出装置は、階層構造を有する複数のルータを備えた通信システムに追加する新たなルータのネットワークトポロジ上の論理的な位置を、上記の下流ルータ配置手法を用いて算出する。図1において、記憶部1は各種の情報およびデータを記憶する。記憶部1によって記憶される情報およびデータには、各種パラメタや、初期NWトポロジ情報、追加ルータ接続情報、論理NWトポロジ情報等が含まれる。
【0034】
各種パラメタには、既に構築されている通信システムで設定されているVLAN ID・IPアドレス/プレフィックス情報(各ルータのID値を含む)が含まれる。初期NWトポロジ情報は、現在の通信システムを構成する複数のルータの論理的な位置関係(ネットワークトポロジ)を示している。追加ルータ接続情報は、新たに追加される追加ルータと接続される、配信サーバまたはバックアップサーバ側に設けられた上流ルータと新たな追加ルータの論理的な位置関係を示している。追加ルータの上流ルータは、前述した別上流ルータ選択手法に従って、ネットワーク管理者によって予め各種の設定がなされているものとする。論理NWトポロジ情報は、前述した方法によって算出された位置に新たな追加ルータが配置された状態で、通信システムを構成する複数のルータの論理的な位置関係(ネットワークトポロジ)やVLAN ID・IPアドレス/プレフィックス等を示している。
【0035】
記憶部1は演算部2に接続されている。演算部2は、初期NWトポロジ情報、追加ルータ接続情報、およびVLAN ID・IPアドレス/プレフィックス情報等を入力として演算を行い、論理NWトポロジ情報を出力する。演算部2は、ルータ論理位置計算部21、ルータID計算部22、VLAN ID・IPアドレス/プレフィックス生成部23、およびNWトポロジ出力表示部24を備えている。
【0036】
ルータ論理位置計算部21は、初期NWトポロジ情報と追加ルータ接続情報を用いて、前述した「下流ルータ配置手法」に従って追加ルータの論理位置を計算する。ルータID計算部22は、論理位置を計算された各ルータに対してVLAN ID・IPアドレス/プレフィックス情報の範囲内で32bitのID値(Router ID)を計算し、付与する。VLAN ID・IPアドレス/プレフィックス生成部23は、前述した「別上流ルータ選択手法」に従うネットワーク管理者の指示に基づいて、各ルータのインタフェースに設定すべきVLANのVLAN ID・IPアドレス/プレフィックスを生成し、付与する。これらの結果は、出力データ(論理NWトポロジ情報)として記憶部1に格納される。出力データは、NWトポロジ出力表示部24を通じて、ルータの論理位置あるいは物理位置を基準とした可視化が可能である。
【0037】
次に、上述した「別上流ルータ選択手法」および「下流ルータ配置手法」の実現例を説明する。
(別上流ルータ選択手法の実現例)
1.下流ルータXと上流ルータAを接続する物理リンクに対して、2つの802.1q tagged VLAN(VLAN A1とVLAN A2)を設定する。VLAN A1にネットワークアドレスNA1を、VLAN A2にネットワークアドレスNA2を割り当てる。
2.下流ルータXと上流ルータBを接続する物理リンクに対して、2つの802.1q tagged VLAN (VLAN B1とVLAN B2) を設定する。VLAN B1にネットワークアドレスNB1を、VLAN B2にネットワークアドレスNB2を割り当てる。
【0038】
3.OSPFのプロセス(インスタンス)を2つ(プロセス1とプロセス2)起動する。各プロセスは、対象となるサブネットグループ毎にユニキャスト経路計算を独立して行う。
4.対象となるサブネットを2つのグループに分類し、それぞれOSPFプロセス1とOSPFプロセス2に所属させる。NA1とNB1はOSPFプロセス1に、NA2とNB2はOSPFプロセス2に所属させる。このように、NA1およびNB1は、メインマルチキャストパケットの転送用として割り当てられ、NA2およびNB2は、バックアップマルチキャストパケットの転送用として割り当てられることになる。
【0039】
5.メインマルチキャストソースの属するサブネットはOSPFプロセス1に所属させる。バックアップマルチキャストソースの属するサブネットはOSPFプロセス2に所属させる。
6.NA1とNB1ならびにNA2とNB2について、アドレスの大小関係を逆にする(e.g. NA1>NB1,NA2<NB2)。これにより、メインとバックアップでjoin(マルチキャストパケット受信への参加)対象の上流ルータが別(e.g. メインは上流ルータA(NA1),バックアップは上流ルータB(NB2))になる。
【0040】
(下流ルータ配置手法の実現例)
1.図4に示されるようなデータ構造を作成する。特徴を以下に示す。
(a)各ルータ(図4において丸印で示されている)には、互いを識別するために、(少なくとも)階層内で一意であるID値が付与されている。以降、階層lのルータR[l,i]のID値をID[l,i]のように記述する。任意のi,j(i<j)についてID[l,i]<ID[l,j]とする(左側のルータが小さなID値を有する)。なお、ID値の保持方法については、明示的にルータID等として各ルータに割り当ててもよいし、暗黙の値としてネットワーク運用者が一元管理してもよい。
【0041】
(b)各ルータは、同一階層の前後(左側と右側)のルータを指し示すポインタ情報(図4の*prev と*next)を有する。
(c)各ルータは、1つ上流の階層について、第1上流ルータ(1個)を指し示すポインタ情報(あるいはID値)を有する(図4の*ru)。
(d)各ルータは、1つ上流の階層について、第2上流ルータ(1個)を指し示すポインタ情報(あるいはID値)を有する(図4の*bu)。
【0042】
(e)各ルータは、1つ下流の階層について、第1下流ルータ(メインマルチキャスト配信経路の下流ルータ)(0〜複数個)を指し示すポインタ情報を有する(図4の**rdh,**rdt,*rd0〜*rdm)。
(f)各ルータは、1つ下流の階層について、第2下流ルータ(バックアップマルチキャスト配信経路の下流ルータ)(0〜複数個)を指し示すポインタ情報を有する(図4の**bdh,**bdt,*bd0〜*bdm)。
(g)各階層のルータ群を管理するための管理情報(e.g. 各階層の先頭ルータを指し示すポインタ)を保持する(図4の*L_0〜)。
【0043】
2.階層0(最上流)にマルチキャストソース(メイン・バックアップ)を収容する2台のルータR[0,0]、R[0,1]が設置された状態を初期状態とする。
【0044】
3.図4に対して、階層lにルータを追加した例を図5〜図7に示す。図5〜図7を用いてルータ追加アルゴリズムを説明する。図5〜図7において、下流ルータと第1上流ルータは実線で結ばれており、下流ルータと第2上流ルータは1点鎖線で結ばれている。すなわち、実線がメインマルチキャストの配信経路となり、1点鎖線がバックアップマルチキャストの配信経路となる。なお、以下の(A)〜(H)の処理は、主にルータ論理位置計算部21によって行われ、最終的に追加ルータに付与するID値の算出は、ルータID計算部22によって行われる。以下の処理を行うためルータ論理位置計算部21は、追加ルータの第1上流ルータおよび第2上流ルータを選択する機能、第2上流ルータの第2下流ルータを選択する機能、第2下流ルータの第1上流ルータを選択する機能、第2上流ルータの隣(本実現例では左側)の上流ルータを選択する機能、および選択したルータ同士のID値を比較する機能等を備えている。
【0045】
(A)追加ルータR[l,j]は、第2上流ルータR[l-1,j’]と第1上流ルータR[l-1,j”]へのポインタおよびID値(ID[l-1,j’],ID[l-1,j”]を有するもの(あるいは取得可能)とする。
(B)第2上流ルータR[l-1,j’]の第2下流ルータR[l,b(k)](k=0〜mの自然数であり、b(k)はbdk=bd0〜bdmに対応する。該第2下流ルータ(i.e. R[l,b(k)]) の階層lにおける左からの順序を関数b(k)により表す)の存在有無をチェックし、存在する場合には(C)へ進む。R[l-1,j’]に対してR[l,b(k)]が1つも存在しない場合は(F)へ進む。
【0046】
(C)第2上流ルータR[l-1,j’]の第2下流ルータR[l,b(k)]をID値の小さい順に(i.e. k = 0より昇順に)選択し、順次(D)を実行する。ID値最大(k=m)のルータR[l,b(m)]まで(D)が実行された場合(i.e. ID[l-1,{b(m)}”]≦ID[l-1,j”])は(H)へ進む。
(D)R[l,b(k)]の第1上流ルータR[l-1,{b(k)}”]のID値(ID[l-1,{b(k)}”])を取得し、ID[l-1,j”]と比較する。比較の結果、ID[l-1,{b(k)}”]≦ID[l-1,j”]であれば(C)に戻る。また、ID[l-1,{b(k)}”]>ID[l-1,j”]であれば(E)へ進む。
【0047】
(E)R[l,b(k)-1]とR[l,b(k)]の間にR[l,j]を挿入する(追加ルータの論理位置の決定)。ID[l,b(k)-1]<ID[l,j]<ID[l,b(k)]を満たすID[l,j]を付与して処理を終了する(e.g. ID[l,j]=(ID[l,b(k)-1]+ID[l,b(k)])/2)。
(F)第2上流ルータR[l-1,j’]の左側の上流ルータR[l-1,j’-1]を選択し、(G)へ進む。R[l-1,j’-1]が無い場合(j’=0:R[l-1,j’]は階層l-1の先頭ルータ)は、R[l,j]を階層lの先頭ルータ(j=0)として挿入する(追加ルータの論理位置の決定)。この場合、適切なID[l,0]を付与して処理を終了する(e.g. ID[l,0]=0,ID[l,1]=ID[l,2]/2)。
【0048】
(G)R[l-1,j’-1]の第2下流ルータの中からR[l,b(m)](ID値最大のルータ)を選択し、(H)へ進む。第2下流ルータが無い場合はj’=j’-1として(F)へ戻る。
(H)R[l,b(m)]とR[l,b(m)+1]の間にR[l,j]を挿入する(追加ルータの論理位置の決定)。ID[l,b(m)]<ID[l,j]<ID[l,b(m)+1]を満たすID[l,j]を付与して処理を終了する(e.g. ID[l,j]=(ID[l,b(m)]+ID[l,b(m)+1])/2)。
【0049】
例えば図5では、(B)→(C)→(D)→(C)→(D)→(E)で配置が終了する。まず(B)において第2上流ルータR[l-1,0]の第2下流ルータの存在有無がチェックされる。第2下流ルータが存在しているため、(C)へ進む。(C)において、R[l-1,0]の第2下流ルータR[l,0]が選択され、(D)へ進む。(D)において、R[l,0]の第1上流ルータR[l-1,1]のID値(ID[l-1,1])とR[l,j]の第1上流ルータR[l-1,2]のID値(ID[l-1,2])が比較される。ID[l-1,1]<ID[l-1,2]であるため、(C)に戻る。
【0050】
(C)においてR[l-1,0]の次の第2下流ルータR[l,1]が選択され、(D)へ進む。(D)においてR[l,1]の第1上流ルータR[l-1,3]のID値(ID[l-1,3])とR[l,j]の第1上流ルータR[l-1,2]のID値(ID[l-1,2])が比較される。ID[l-1,3]>ID[l-1,2]であるため、(E)へ進む。(E)において、R[l,0]とR[l,1]の間にR[l,j]を挿入することが決定され、ID値が算出される。
【0051】
また、図6では、(B)→(C)→(D)→(C)→(D)→(C)→(H)で配置が終了する。まず(B)において第2上流ルータR[l-1,1]の第2下流ルータの存在有無がチェックされる。第2下流ルータが存在しているため、(C)へ進む。(C)において、R[l-1,1]の第2下流ルータR[l,3]が選択され、(D)へ進む。(D)において、R[l,3]の第1上流ルータR[l-1,2]のID値(ID[l-1,2])とR[l,j]の第1上流ルータR[l-1,4]のID値(ID[l-1,4])が比較される。ID[l-1,2]<ID[l-1,4]であるため、(C)に戻る。
【0052】
(C)においてR[l-1,1]の次の第2下流ルータR[l,4]が選択され、(D)へ進む。(D)においてR[l,4]の第1上流ルータR[l-1,4]のID値(ID[l-1,4])とR[l,j]の第1上流ルータR[l-1,4]のID値(ID[l-1,4])が比較される。同一のID値であるため、(C)に戻る。(C)において、R[l-1,1]のID値最大の第2下流ルータR[l,4]まで(D)が実行されたので、(H)へ進む。(H)において、R[l,4]とR[l,5]の間にR[l,j]を挿入することが決定され、ID値が算出される。
【0053】
また、図7では、(B)→(F)→(G)→(H)で配置が終了する。まず(B)において第2上流ルータR[l-1,3]の第2下流ルータの存在有無がチェックされる。第2下流ルータが存在しないため、(F)へ進む。(F)において、R[l-1,3]の左側のルータR[l-1,2]が選択され、(G)へ進む。(G)において、R[l-1,2]の第2下流ルータの中からID値が最大のルータR[l,6]が選択され、(H)へ進む。(H)において、R[l,6]とR[l,7]の間にR[l,j]を挿入することが決定され、ID値が算出される。
【0054】
上述した追加工程を繰り返した例を図8に示す。l≧1以上の階層における任意のルータで、2種類のdisjointなマルチキャスト配信木が設定できていることが分かる。どのルータを起点にしてメインおよびバックアップのマルチキャスト配信経路を設定する場合でも、双方の配信経路が重ならないようにすることができる。
【0055】
図9は、上述した下流ルータ配置手法の手順を示している。以下、上記の処理と対応させながら、図9に示される処理を説明する。まず、引数kに0を設定し、第2上流ルータの引数R[l-1,j’]に追加ルータR[l,j]の第2上流ルータを設定すると共に、第1上流ルータの引数R[l-1,j”]に追加ルータR[l,j]の第1上流ルータを設定する(ステップS901)。
【0056】
続いて、R[l-1,j’]に第2下流ルータが存在するか否かを判定する(ステップS902)。このステップは(B)に対応する。第2下流ルータが存在する場合にはステップS903へ進み、存在しなかった場合にはステップS908へ進む。ステップS903においては、第2下流ルータの引数R[l,b(k)]にR[l-1,j’]の第2下流ルータを設定すると共に、第1上流ルータの引数R[l-1,{b(k)}”]にR[l,b(k)]の第1上流ルータを設定する。このステップは(C)に対応する。
【0057】
続いて、ID[l-1,{b(k)}”]≦ID[l-1,j”]であるか否かを判定する(ステップS904)。このステップは(D)に対応する。ID[l-1,{b(k)}”]≦ID[l-1,j”]であった場合にはステップS906へ進み、ID[l-1,{b(k)}”]>ID[l-1,j”]であった場合にはステップS905へ進む。ステップS905においては、ID[l,b(k)-1]<ID[l,j]<ID[l,b(k)]を満たすID[l,j]を付与して処理を終了する。このステップは(E)に対応する。
【0058】
また、ステップS906においては、R[l-1,j’]の第2下流ルータのうち、ID値が最大のルータまでID値の比較を行ったか否かを判定する。このステップは(C)に対応する。ID値が最大のルータまでID値の比較を行っていない場合には、次の第2下流ルータの処理を行うためkの値を1増加し(ステップS907)、ステップS903に戻る。また、ID値が最大のルータまでID値の比較を行った場合には、ID値最大の第2下流ルータの引数R[l,b(m)]の設定を行い(ステップS910)、ID[l,b(m)]<ID[l,j]<ID[l,b(m)+1]を満たすID[l,j]を付与して処理を終了する(ステップS911)。ステップS910〜S911は(H)に対応する。
【0059】
一方、ステップS908においては、第2上流ルータR[l-1,j’]に左側のルータが存在するか否かを判定する。このステップは(F)に対応する。左側のルータが存在しない、すなわちR[l-1,j’]が階層l-1の先頭のルータである場合、R[l,j]を階層lの先頭ルータとし、適切なID[l,0]を付与して処理を終了する(ステップS912)。このステップは(F)に対応する。また、左側のルータが存在した場合、R[l-1,j’]に第2下流ルータが存在するか否かを判定する(ステップS909)。第2下流ルータが存在した場合にはステップS910へ進み、第2下流ルータが存在しなかった場合には、左側のルータについてステップS908の処理を再度行う。
【0060】
上述したように、本実施形態の別上流ルータ選択手法では、配信サーバまたはバックアップサーバに最も近いルータを除く任意のルータにおいて、2つの上流ルータと接続する各物理リンクに対してそれぞれ2つずつサブネットが設定されると共に、各サブネットがメインマルチキャスト用およびバックアップマルチキャスト用に適切にグループ化され、各サブネットのネットワークアドレスが、所定の関係を満たすように設定される。これによって、2つのマルチキャストソースに対して等コストとなる2つの上流ルータ候補が存在する場合に、各々のマルチキャストソースへ向かう経路を分岐することができる。
【0061】
また、本実施形態の下流ルータ配置手法では、階層構造を有する複数のルータの論理的な位置関係を示す初期NWトポロジ情報(ネットワークトポロジ情報)と、追加ルータと接続される上流ルータと追加ルータの論理的な位置関係を示す追加ルータ接続情報と、複数のルータの各々に対して、各ルータの論理的な位置に対応して付与された識別値(ID値)とに基づいて、追加ルータの論理的な位置を算出することによって、全てのルータにおいて、disjointなマルチキャスト配信経路の確立が保証される。
【0062】
よって、本実施形態によれば、別上流ルータ選択手法および下流ルータ配置手法を組み合わせることによって、disjointなマルチキャストツリーを動的に構築することができる。したがって、ネットワーク管理者の意思により、マルチキャストソースあるいはグループ単位で、2つのdisjointな配信経路に分離してマルチキャスト配信を行うことが可能となる。
【0063】
また、既存ルータの持つOSPF機能、PIM-SM機能のみを用いて、disjointなマルチキャスト配信経路を確保することができる。静的にマルチキャスト配信経路を固定するのではなく、従来と同様、配信経路はOSPF/PIM-SMにより動的に決定されるため、ネットワーク障害時にはOSPF/PIM-SMによる配信経路切り替えが機能する。
【0064】
以上、図面を参照して本発明の実施形態について詳述してきたが、具体的な構成はこれらの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計変更等も含まれる。例えば、別上流ルータ選択手法において、経路を分岐するためにはNA1<NB1,NA2>NB2としてもよく、その場合にはネットワークトポロジ上でメインマルチキャストソースとバックアップマルチキャストソースの位置が逆となる。
【0065】
また、上述した実施形態によるルータ位置算出装置は、その動作および機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータに読み込ませ、実行させることにより実現してもよい。
【0066】
ここで、「コンピュータ」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(RAM)のように、一定時間プログラムを保持しているものも含むものとする。
【0067】
また、上述したプログラムは、このプログラムを記憶装置等に格納したコンピュータから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。また、上述したプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、前述した機能をコンピュータに既に記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
【符号の説明】
【0068】
1・・・記憶部、2・・・演算部、21・・・ルータ論理位置計算部、22・・・ルータID計算部、23・・・VLAN ID・IPアドレス/プレフィックス生成部、24・・・NWトポロジ出力表示部、101・・・放送配信サーバ、102,109・・・L2スイッチ、103・・・バックアップサーバ、104a,104b,105a,105b,106a,106b,107・・・ルータ、108・・・通信制御装置、110・・・クライアント端末
【技術分野】
【0001】
本発明は、配信サーバによって送信される放送用のメインマルチキャストパケットと、バックアップサーバによって送信されるバックアップマルチキャストパケットとを転送する複数のルータを備えた通信システムに関する。また、本発明は、本通信システムを構成するルータの論理的な位置関係に係る処理を行うルータ位置算出装置およびルータ位置算出プログラムにも関する。
【背景技術】
【0002】
動画配信等のサービスを実現するために、OSI(Open Systems Interconnection) Layer3層のIP(Internet Protocol)においてマルチキャスト(非特許文献1参照)が定義され、これに対応した各種プロトコル(非特許文献2および3参照)が実装・運用されている。しかし、IP層における(IP経路制御プロトコルに基づく)ネットワーク障害の検出・復旧に数秒〜数10秒の通信断を伴うことが問題となる。そこで、冗長構成を持つIPネットワークを対象として、この通信断時間を補償し、サービスを無瞬断化するために、本発明者は特願2004−060528、特願2004−349665、および特願2005−062293に記載の技術を提案している。
【0003】
マルチキャスト配信経路の決定は、マルチキャスト受信者から発信者(またはランデブーポイント(RP)と呼ばれる特別なノード)に向かうユニキャスト経路情報に基づいて、PIM-SMマルチキャスト経路制御プロトコル(非特許文献2参照)が行う。ユニキャスト経路情報は、OSPF(Open Shortest Path First)(非特許文献3参照)等のユニキャスト経路制御プロトコルによって生成される。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】Beau Williamson著,「IPマルチキャストネットワーク開発ガイドVo1.1」,ソフトバンクパブリッシング株式会社,2001年7月3日
【非特許文献2】D.Estrin,他9名,RFC2362-Protocol Independent Multicast-Sparse Mode(PIM-SM):Protocol Specification,[online],1998年,The Internet Society,[2010年5月26日検索],インターネット<URL: http://www.faqs.org/rfcs/rfc2362.html>
【非特許文献3】J.Moy,RFC2328-OSPF Version 2,[online],1998年,The Internet Society,[2010年5月26日検索],インターネット<URL: http://www.faqs.org/rfcs/rfc2328.html>
【発明の概要】
【発明が解決しようとする課題】
【0005】
図10は、本発明者が提案した技術による通信ネットワークの構成を示している。放送配信サーバ101は、配信対象のストリームデータが格納されたマルチキャストパケットを送信する。送信されたマルチキャストパケットは、通常配信用(メイン)マルチキャストGmとして、L2スイッチ102および各通信装置(ルータ104b,105b,106b,107およびL2スイッチ109)を経由してクライアント端末110へ転送される。また、L2スイッチ102によってマルチキャストパケットが複製され、バックアップサーバ103へ送信される。バックアップサーバ103は、受信したマルチキャストパケットを複製し、2つの予備配信用(バックアップ)マルチキャストGb1およびGb2として送信する。
【0006】
バックアップマルチキャストGb2には、バックアップサーバ103によって一定の遅延が付加される。バックアップマルチキャストGb1およびGb2は、定常時にはルータ104aで破棄される。クライアント端末110に最も近いエッジのルータ107の近傍には通信制御装置108が設けられている。通信制御装置108は、メインマルチキャストGmの配信断を検出した場合、バックアップマルチキャストGb1およびGb2の受信に参加する。バックアップマルチキャストGb1およびGb2はルータ104aから、ルータ105a,106a,107を経由して、通信制御装置108によって受信される。
【0007】
通信制御装置108は、受信したバックアップマルチキャストGb1およびGb2をメインマルチキャストに変換して代理出力する(図10のマルチキャストGm’)。この際、障害点(ルータ・リンク)を避けるために、メインマルチキャストとバックアップマルチキャストの配信経路はdisjoint(互いに疎 = 同一ルータ・リンクを経由しない)である必要がある。
【0008】
非特許文献2によれば、マルチキャストツリーは、受信者から発信者(またはRP)に向かって、各ルータがユニキャスト経路情報に従い、ホップバイホップで構築する。したがって、ある受信者から同一(あるいはネットワークトポロジ的に隣接する)発信者へ複数のマルチキャストツリーを設定しようとすると、同一ルータ・リンク経由となる傾向にある。すなわち、通常の運用では図11のように、メインマルチキャストとバックアップマルチキャストで同一ルータを経由することになる。
【0009】
本技術が対象とする冗長構成を持つネットワークトポロジでは、等コストのユニキャスト経路(equal-costのRPF(Reverse Path Forwarding)経路)が複数存在するため、本来、disjointなマルチキャストツリーを少なくとも2種類以上構築し得る環境である。しかしながら、一般的なPIM-SM実装では、複数のequal-cost RPF 経路(i.e. 上流ルータ)が存在する場合、最も大きなアドレスを持つ上流ルータが一意に選択されるため(非特許文献1)、ツリーが重複するという問題がある(図11参照)。
【0010】
これに対して負荷分散の観点から、ソースIPアドレスをkeyとするハッシュ計算により、異なる上流ルータを選択するPIM-SMの実装も存在する。しかしながら、本機能はdisjointなツリー設定を保証するものではない。
【0011】
本発明は、上述した問題点に鑑みてなされたものであって、disjointな(経路上に共通ルータを持たない独立な)マルチキャストツリーを動的に構築することができる通信システム、ルータ位置算出装置、およびルータ位置算出プログラムを提供することを目的とする。
【課題を解決するための手段】
【0012】
本発明は、上記の課題を解決するためになされたもので、第1の配信サーバおよび第2の配信サーバによって送信されるマルチキャストパケットを転送する、階層構造を有する複数のルータを備えた通信システムであって、前記複数のルータを構成する各ルータのハッシュ処理によって、前記第1の配信サーバによって送信されるマルチキャストパケットが、前記第1の配信サーバ側に設けられた第1の上流ルータから転送されるように前記第1の配信サーバのIPアドレスが決定されており、前記複数のルータを構成する各ルータのハッシュ処理によって、前記第2の配信サーバによって送信されるマルチキャストパケットが、前記第2の配信サーバ側に設けられた第2の上流ルータから転送されるように前記第2の配信サーバのIPアドレスが決定されており、前記第1の配信サーバおよび前記第2の配信サーバに最も近いルータを除く任意のルータが追加された際の論理的な追加位置は、階層構造を有する前記複数のルータの論理的な位置関係を示すネットワークトポロジ情報と、新たに追加される追加ルータと接続される、前記第1の配信サーバおよび前記第2の配信サーバ側に設けられた上流ルータと前記追加ルータの論理的な位置関係を示す追加ルータ接続情報と、前記複数のルータの各々に対して、各ルータの論理的な位置に対応して付与された識別値であって、同一階層内でルータの配置方向に沿って値が増加するように付与された識別値と、に基づいて算出されたことを特徴とする通信システムである。
【0013】
また、本発明は、第1の配信サーバおよび第2の配信サーバによって送信されるマルチキャストパケットを転送する、階層構造を有する複数のルータを備えた通信システムであって、前記複数のルータを構成する各ルータのハッシュ処理によって、前記第1の配信サーバによって送信されるマルチキャストパケットが、前記第1の配信サーバ側に設けられた第1の上流ルータから転送されるように前記第1の配信サーバのIPアドレスが決定されており、前記複数のルータを構成する各ルータのハッシュ処理によって、前記第2の配信サーバによって送信されるマルチキャストパケットが、前記第2の配信サーバ側に設けられた第2の上流ルータから転送されるように前記第2の配信サーバのIPアドレスが決定されている通信システムに対して新たに追加ルータを追加する際の論理的な位置を算出するルータ位置算出装置であって、前記配信サーバによって送信されるマルチキャストパケットを転送する、階層構造を有する複数のルータの論理的な位置関係を示すネットワークトポロジ情報と、新たに追加される追加ルータと接続される、前記配信サーバ側に設けられた上流ルータと前記追加ルータの論理的な位置関係を示す追加ルータ接続情報と、前記複数のルータの各々に対して、各ルータの論理的な位置に対応して付与された識別値であって、同一階層内でルータの配置方向に沿って値が増加するように付与された識別値と、を記憶する記憶部と、前記ネットワークトポロジ情報、前記追加ルータ接続情報、および前記識別値に基づいて前記追加ルータの論理的な位置を算出する位置算出部と、を有することを特徴とするルータ位置算出装置である。
【0014】
また、本発明のルータ位置算出装置において、前記位置算出部は、前記追加ルータ接続情報に基づいて、前記追加ルータと接続される前記第1の上流ルータおよび前記第2の上流ルータを選択し、前記ネットワークトポロジ情報に基づいて、当該選択した第2の上流ルータの下流ルータを選択すると共に当該選択した下流ルータの前記第1の上流ルータを選択し、当該選択した下流ルータの前記第1の上流ルータの識別値と、前記追加ルータと接続される前記第1の上流ルータの識別値とを比較した結果に基づいて前記追加ルータの論理的な位置を算出することを特徴とする。
【0015】
また、本発明のルータ位置算出装置において、前記位置算出部は、前記追加ルータ接続情報に基づいて、前記追加ルータと接続される前記第2の上流ルータを選択し、前記ネットワークトポロジ情報に基づいて、当該選択した第2の上流ルータと同一階層であって隣りのルータを選択すると共に当該選択した隣りのルータの下流ルータを選択し、当該選択した下流ルータの識別値に基づいて前記追加ルータの論理的な位置を算出することを特徴とする。
【0016】
また、本発明のルータ位置算出装置において、前記位置算出部は、階層lにおける前記配置方向の位置がj番目であって、当該位置に対応する前記識別値R[l,j]を有する前記追加ルータと接続される前記第1の上流ルータ、前記第2の上流ルータの前記識別値をそれぞれR[l-1,j”]、R[l-1,j’]とし、前記追加ルータと同一階層のi番目のルータの前記第1の上流ルータ、前記第2の上流ルータの前記識別値をそれぞれR[l-1,i”]、R[l-1,i’]とした場合に、(i’<j’)または(i’=j’かつi”≦j”)であればi<jが成り立つように、かつ、(i’>j’)または(i’=j’かつi”>j”)であればi>jが成り立つようにjを決定することを特徴とする。
【0017】
また、本発明のルータ位置算出装置は、前記位置算出部によって算出された前記追加ルータの論理的な位置に基づいて前記追加ルータの前記識別値を算出する識別値算出部をさらに有することを特徴とする。
【0018】
また、本発明は、第1の配信サーバおよび第2の配信サーバによって送信されるマルチキャストパケットを転送する、階層構造を有する複数のルータを備えた通信システムであって、前記複数のルータを構成する各ルータのハッシュ処理によって、前記第1の配信サーバによって送信されるマルチキャストパケットが、前記第1の配信サーバ側に設けられた第1の上流ルータから転送されるように前記第1の配信サーバのIPアドレスが決定されており、前記複数のルータを構成する各ルータのハッシュ処理によって、前記第2の配信サーバによって送信されるマルチキャストパケットが、前記第2の配信サーバ側に設けられた第2の上流ルータから転送されるように前記第2の配信サーバのIPアドレスが決定されている通信システムに対して新たに追加ルータを追加する際の論理的な位置を算出する処理をコンピュータに実行させるためのルータ位置算出プログラムであって、前記配信サーバによって送信されるマルチキャストパケットを転送する、階層構造を有する複数のルータの論理的な位置関係を示すネットワークトポロジ情報と、新たに追加される追加ルータと接続される、前記配信サーバ側に設けられた上流ルータと前記追加ルータの論理的な位置関係を示す追加ルータ接続情報と、前記複数のルータの各々に対して、各ルータの論理的な位置に対応して付与された識別値であって、同一階層内でルータの配置方向に沿って値が増加するように付与された識別値と、を記憶する記憶部と、前記ネットワークトポロジ情報、前記追加ルータ接続情報、および前記識別値に基づいて前記追加ルータの論理的な位置を算出する位置算出部と、としてコンピュータを機能させるためのルータ位置算出プログラムである。
【発明の効果】
【0019】
本発明によれば、disjointなマルチキャストツリーを動的に構築することができるという効果が得られる。
【図面の簡単な説明】
【0020】
【図1】本発明の一実施形態によるルータ位置算出装置の構成を示すブロック図である。
【図2】本発明の一実施形態における別上流ルータ選択手法を説明するための参考図である。
【図3】本発明の一実施形態における下流ルータ選択手法を説明するための参考図である。
【図4】本発明の一実施形態におけるデータ構造を説明するための参考図である。
【図5】本発明の一実施形態におけるルータの追加例を説明するための参考図である。
【図6】本発明の一実施形態におけるルータの追加例を説明するための参考図である。
【図7】本発明の一実施形態におけるルータの追加例を説明するための参考図である。
【図8】本発明の一実施形態におけるネットワーク構成例を示す参考図である。
【図9】本発明の一実施形態における下流ルータ選択手法の手順を示すフローチャートである。
【図10】従来の通信ネットワークの構成を示す構成図である。
【図11】従来技術の問題点を説明するための説明図である。
【発明を実施するための形態】
【0021】
以下、図面を参照し、本発明の実施形態を説明する。まず、前提条件として以下を仮定する。ネットワーク構成例は図10と同様であり、配信サーバによって送信される放送用のマルチキャストパケットと、バックアップサーバによって送信されるバックアップマルチキャストパケットとを転送する複数のルータを備えた通信システムとなっている。また、本通信システムは、マルチキャストソース(ソースホストあるいはRP(Rendezvous Point)、DC(Data Center)エッジルータ、コアルータ、顧客側エッジルータのように階層化されたネットワークトポロジを有している。メインマルチキャストソース(根)およびバックアップマルチキャストソース(根)は、それぞれ固定された1ノードのみとする。任意のルータ(節)から根に向かって、2つのequal-costな上流ルータが存在する。下流ルータは、最も大きなインタフェースアドレスを持つ上流ルータに向けてjoin(マルチキャストパケット受信へ参加)する(前述した非特許文献1参照)。
【0022】
(別上流ルータ選択手法)
上記を満たす環境において、各下流ルータでは、2つの上流ルータにそれぞれ複数の論理的接続を設定し、メインマルチキャストおよびバックアップマルチキャストを別々の上流ルータから取得できるようにする。以下、図2を参照しながら、設定方法の原理を説明する。本通信システムを構成するルータに対して、ネットワーク管理者によって、以下の手順で設定がなされるものとする。
【0023】
1.下流ルータXと上流ルータAを接続する物理リンクに対して2つの(論理的な)サブネット(ネットワークアドレス:NA1とNA2)を設定する。
2.下流ルータXと上流ルータBを接続する物理リンクに対して2つの(論理的な)サブネット(ネットワークアドレス:NB1とNB2)を設定する。
3.ユニキャスト経路計算対象となるサブネットを2つのグループに分類する。NA1とNB1はグループ1に、NA2とNB2はグループ2に所属させる。
4.メインマルチキャストソースが属するサブネットはグループ1に、バックアップマルチキャストソースが属するサブネットはグループ2に所属させる。
【0024】
5.グループ1とグループ2は独立にユニキャスト経路計算を行う。これにより、ルータXからメインマルチキャストソースに向かうユニキャスト経路はNA1とNB1、バックアップマルチキャストソースに向かうユニキャスト経路はNA2とNB2となる。このように、NA1およびNB1は、メインマルチキャストパケットの転送用として割り当てられ、NA2およびNB2は、バックアップマルチキャストパケットの転送用として割り当てられることになる。
【0025】
6.NA1とNB1ならびにNA2とNB2について、アドレスの大小関係を逆にする(e.g. NA1>NB1,NA2<NB2)。これにより、メインとバックアップでjoin(マルチキャストパケット受信への参加)対象の上流ルータを別(e.g. メインは上流ルータA(NA1),バックアップは上流ルータB(NB2))にする。以下、メインマルチキャストソースに向かうツリー(第1ツリー)が設定される物理リンクを第1リンク、バックアップマルチキャストソースに向かうツリー(第2ツリー)が設定される物理リンクを第2リンクと定義する。2つのマルチキャストソースに対して等コストとなる2つの上流ルータ候補が存在する場合に、上記の手法によって、各々のマルチキャストソースへ向かう経路を分岐することができる。
【0026】
なお、上述の手法の他に、「マルチキャストソースIPアドレスをkeyとするハッシュ計算に基づく上流ルータ選択手法」を用いて、第1リンクおよび第2リンクを設定してもよい。すなわち、ルータで使用されるハッシュ関数は一意であるものとして、以下のようにすることによって、図2と同じ効果を得ることができる。
1.各ルータのハッシュ処理によって、メインマルチキャストソース(第1の配信サーバ)に向かうツリーが第1の上流ルータ(第1リンク)を選択するように(メインマルチキャストソースによって送信されるマルチキャストパケットが、各ルータの第1の上流ルータから各ルータに転送されるように)、メインマルチキャストソースのIPアドレスを決定する。
2.各ルータのハッシュ処理によって、バックアップマルチキャストソース(第2の配信サーバ)に向かうツリーが第2の上流ルータ(第2リンク)を選択するように(バックアップマルチキャストソースによって送信されるマルチキャストパケットが、各ルータの第2の上流ルータから各ルータに転送されるように)、バックアップマルチキャストソースのIPアドレスを決定する。
【0027】
別上流ルータ選択手法として、上述した2つの方式のうちのいずれかの方式を適用した上で、下記の下流ルータ配置手法を導入することによって、マルチキャストソースに直接接続されたルータを除き、任意のルータから2つのマルチキャストソースに向けて、disjointなマルチキャストツリーを構成することが可能となる。
【0028】
(下流ルータ配置手法)
さらに、全ての下流ルータで上流ルータの選択方針を一致させる。その上で、追加する下流ルータの(ネットワークトポロジ上の論理的な)位置を、下記の方針に従い適切に決定することにより、冒頭で述べた前提条件を満たすネットワークトポロジで、メインマルチキャストツリーとバックアップマルチキャストツリーをdisjointに設定することができる。以下、図3を参照しながら、下流ルータの追加アルゴリズムを説明する。
【0029】
1.各階層l(l≧0)において、各ルータは3.以降に示す方針に基づき、ネットワークトポロジ上で左側より順番に並んでいるものとする。
2.初期状態として、マルチキャストソースに接続された最上流(l=0)のルータが2台存在するものとする。
3.追加する下流ルータに対して、図2を用いて説明した設定方法に従い、メインマルチキャストを右側の上流ルータ(第1上流ルータ)から、バックアップマルチキャストを左側の上流ルータ(第2上流ルータ)から取得する設定を行う。
【0030】
4.各ルータを一意に表すために、該ルータの位置する階層l、ならびに該階層lにおける左からの順序jを使用する。すなわち、階層lにおける左からj(j≧0)番目のルータをR[l,j]のように記述する。
5.階層0(l=0)におけるルータについては、メインマルチキャストソースを収容するルータをR[0,1]、バックアップマルチキャストソースを収容するルータをR[0,0]と規定する。
6.ある階層l(l≧1)に下流ルータR[l,j]を新たに追加する場合を考える。まず新たな下流ルータR[l,j]と同一階層に属する他のルータをR[l,i]と記述する。ここで、i(i≧0)は、該階層l上で左側から数えたルータの順序(R[l,j]の追加前の順序)を表す。ただしi=0を最も左側とする。
【0031】
7.jの値(階層lにおいて左からj番目を意味する)を、以下の条件を満たすように決定する。ただしj=0を最も左側とする。R[l,j]の第2・第1上流ルータをそれぞれR[l-1,j’]およびR[l-1,j”]とし、R[l,i]の第2・第1上流ルータをそれぞれR[l-1,i’]およびR[l-1,i”]とすると、階層lの全てのi、ならびにこれに付随する階層l-1のi', i"について、下記の条件に従ってjを決定する。
(i’<j’)または(i’=j’かつi”≦j”) ⇒ i<j
(i’>j’)または(i’=j’かつi”>j”) ⇒ i>j
【0032】
図3に示される例では、ルータ群301を構成する各ルータについてはi’<j’が満たされており、ルータ群302を構成する各ルータについてはi’=j’かつi”≦j”が満たされている。したがって、階層lに追加されるルータR[l,j]はネットワークトポロジ上で、ルータ群301および302よりも右側に追加されることになる。また、ルータ群303を構成する各ルータについてはi’=j’かつi”>j”が満たされており、ルータ群304を構成する各ルータについてはi’>j’が満たされている。したがって、階層lに追加されるルータR[l,j]はネットワークトポロジ上で、ルータ群303および304よりも左側に追加されることになる。上記のことから、ルータR[l,j]は、図3に示される位置に追加される。
【0033】
図1は、本実施形態によるルータ位置算出装置の構成を示している。本ルータ位置算出装置は、階層構造を有する複数のルータを備えた通信システムに追加する新たなルータのネットワークトポロジ上の論理的な位置を、上記の下流ルータ配置手法を用いて算出する。図1において、記憶部1は各種の情報およびデータを記憶する。記憶部1によって記憶される情報およびデータには、各種パラメタや、初期NWトポロジ情報、追加ルータ接続情報、論理NWトポロジ情報等が含まれる。
【0034】
各種パラメタには、既に構築されている通信システムで設定されているVLAN ID・IPアドレス/プレフィックス情報(各ルータのID値を含む)が含まれる。初期NWトポロジ情報は、現在の通信システムを構成する複数のルータの論理的な位置関係(ネットワークトポロジ)を示している。追加ルータ接続情報は、新たに追加される追加ルータと接続される、配信サーバまたはバックアップサーバ側に設けられた上流ルータと新たな追加ルータの論理的な位置関係を示している。追加ルータの上流ルータは、前述した別上流ルータ選択手法に従って、ネットワーク管理者によって予め各種の設定がなされているものとする。論理NWトポロジ情報は、前述した方法によって算出された位置に新たな追加ルータが配置された状態で、通信システムを構成する複数のルータの論理的な位置関係(ネットワークトポロジ)やVLAN ID・IPアドレス/プレフィックス等を示している。
【0035】
記憶部1は演算部2に接続されている。演算部2は、初期NWトポロジ情報、追加ルータ接続情報、およびVLAN ID・IPアドレス/プレフィックス情報等を入力として演算を行い、論理NWトポロジ情報を出力する。演算部2は、ルータ論理位置計算部21、ルータID計算部22、VLAN ID・IPアドレス/プレフィックス生成部23、およびNWトポロジ出力表示部24を備えている。
【0036】
ルータ論理位置計算部21は、初期NWトポロジ情報と追加ルータ接続情報を用いて、前述した「下流ルータ配置手法」に従って追加ルータの論理位置を計算する。ルータID計算部22は、論理位置を計算された各ルータに対してVLAN ID・IPアドレス/プレフィックス情報の範囲内で32bitのID値(Router ID)を計算し、付与する。VLAN ID・IPアドレス/プレフィックス生成部23は、前述した「別上流ルータ選択手法」に従うネットワーク管理者の指示に基づいて、各ルータのインタフェースに設定すべきVLANのVLAN ID・IPアドレス/プレフィックスを生成し、付与する。これらの結果は、出力データ(論理NWトポロジ情報)として記憶部1に格納される。出力データは、NWトポロジ出力表示部24を通じて、ルータの論理位置あるいは物理位置を基準とした可視化が可能である。
【0037】
次に、上述した「別上流ルータ選択手法」および「下流ルータ配置手法」の実現例を説明する。
(別上流ルータ選択手法の実現例)
1.下流ルータXと上流ルータAを接続する物理リンクに対して、2つの802.1q tagged VLAN(VLAN A1とVLAN A2)を設定する。VLAN A1にネットワークアドレスNA1を、VLAN A2にネットワークアドレスNA2を割り当てる。
2.下流ルータXと上流ルータBを接続する物理リンクに対して、2つの802.1q tagged VLAN (VLAN B1とVLAN B2) を設定する。VLAN B1にネットワークアドレスNB1を、VLAN B2にネットワークアドレスNB2を割り当てる。
【0038】
3.OSPFのプロセス(インスタンス)を2つ(プロセス1とプロセス2)起動する。各プロセスは、対象となるサブネットグループ毎にユニキャスト経路計算を独立して行う。
4.対象となるサブネットを2つのグループに分類し、それぞれOSPFプロセス1とOSPFプロセス2に所属させる。NA1とNB1はOSPFプロセス1に、NA2とNB2はOSPFプロセス2に所属させる。このように、NA1およびNB1は、メインマルチキャストパケットの転送用として割り当てられ、NA2およびNB2は、バックアップマルチキャストパケットの転送用として割り当てられることになる。
【0039】
5.メインマルチキャストソースの属するサブネットはOSPFプロセス1に所属させる。バックアップマルチキャストソースの属するサブネットはOSPFプロセス2に所属させる。
6.NA1とNB1ならびにNA2とNB2について、アドレスの大小関係を逆にする(e.g. NA1>NB1,NA2<NB2)。これにより、メインとバックアップでjoin(マルチキャストパケット受信への参加)対象の上流ルータが別(e.g. メインは上流ルータA(NA1),バックアップは上流ルータB(NB2))になる。
【0040】
(下流ルータ配置手法の実現例)
1.図4に示されるようなデータ構造を作成する。特徴を以下に示す。
(a)各ルータ(図4において丸印で示されている)には、互いを識別するために、(少なくとも)階層内で一意であるID値が付与されている。以降、階層lのルータR[l,i]のID値をID[l,i]のように記述する。任意のi,j(i<j)についてID[l,i]<ID[l,j]とする(左側のルータが小さなID値を有する)。なお、ID値の保持方法については、明示的にルータID等として各ルータに割り当ててもよいし、暗黙の値としてネットワーク運用者が一元管理してもよい。
【0041】
(b)各ルータは、同一階層の前後(左側と右側)のルータを指し示すポインタ情報(図4の*prev と*next)を有する。
(c)各ルータは、1つ上流の階層について、第1上流ルータ(1個)を指し示すポインタ情報(あるいはID値)を有する(図4の*ru)。
(d)各ルータは、1つ上流の階層について、第2上流ルータ(1個)を指し示すポインタ情報(あるいはID値)を有する(図4の*bu)。
【0042】
(e)各ルータは、1つ下流の階層について、第1下流ルータ(メインマルチキャスト配信経路の下流ルータ)(0〜複数個)を指し示すポインタ情報を有する(図4の**rdh,**rdt,*rd0〜*rdm)。
(f)各ルータは、1つ下流の階層について、第2下流ルータ(バックアップマルチキャスト配信経路の下流ルータ)(0〜複数個)を指し示すポインタ情報を有する(図4の**bdh,**bdt,*bd0〜*bdm)。
(g)各階層のルータ群を管理するための管理情報(e.g. 各階層の先頭ルータを指し示すポインタ)を保持する(図4の*L_0〜)。
【0043】
2.階層0(最上流)にマルチキャストソース(メイン・バックアップ)を収容する2台のルータR[0,0]、R[0,1]が設置された状態を初期状態とする。
【0044】
3.図4に対して、階層lにルータを追加した例を図5〜図7に示す。図5〜図7を用いてルータ追加アルゴリズムを説明する。図5〜図7において、下流ルータと第1上流ルータは実線で結ばれており、下流ルータと第2上流ルータは1点鎖線で結ばれている。すなわち、実線がメインマルチキャストの配信経路となり、1点鎖線がバックアップマルチキャストの配信経路となる。なお、以下の(A)〜(H)の処理は、主にルータ論理位置計算部21によって行われ、最終的に追加ルータに付与するID値の算出は、ルータID計算部22によって行われる。以下の処理を行うためルータ論理位置計算部21は、追加ルータの第1上流ルータおよび第2上流ルータを選択する機能、第2上流ルータの第2下流ルータを選択する機能、第2下流ルータの第1上流ルータを選択する機能、第2上流ルータの隣(本実現例では左側)の上流ルータを選択する機能、および選択したルータ同士のID値を比較する機能等を備えている。
【0045】
(A)追加ルータR[l,j]は、第2上流ルータR[l-1,j’]と第1上流ルータR[l-1,j”]へのポインタおよびID値(ID[l-1,j’],ID[l-1,j”]を有するもの(あるいは取得可能)とする。
(B)第2上流ルータR[l-1,j’]の第2下流ルータR[l,b(k)](k=0〜mの自然数であり、b(k)はbdk=bd0〜bdmに対応する。該第2下流ルータ(i.e. R[l,b(k)]) の階層lにおける左からの順序を関数b(k)により表す)の存在有無をチェックし、存在する場合には(C)へ進む。R[l-1,j’]に対してR[l,b(k)]が1つも存在しない場合は(F)へ進む。
【0046】
(C)第2上流ルータR[l-1,j’]の第2下流ルータR[l,b(k)]をID値の小さい順に(i.e. k = 0より昇順に)選択し、順次(D)を実行する。ID値最大(k=m)のルータR[l,b(m)]まで(D)が実行された場合(i.e. ID[l-1,{b(m)}”]≦ID[l-1,j”])は(H)へ進む。
(D)R[l,b(k)]の第1上流ルータR[l-1,{b(k)}”]のID値(ID[l-1,{b(k)}”])を取得し、ID[l-1,j”]と比較する。比較の結果、ID[l-1,{b(k)}”]≦ID[l-1,j”]であれば(C)に戻る。また、ID[l-1,{b(k)}”]>ID[l-1,j”]であれば(E)へ進む。
【0047】
(E)R[l,b(k)-1]とR[l,b(k)]の間にR[l,j]を挿入する(追加ルータの論理位置の決定)。ID[l,b(k)-1]<ID[l,j]<ID[l,b(k)]を満たすID[l,j]を付与して処理を終了する(e.g. ID[l,j]=(ID[l,b(k)-1]+ID[l,b(k)])/2)。
(F)第2上流ルータR[l-1,j’]の左側の上流ルータR[l-1,j’-1]を選択し、(G)へ進む。R[l-1,j’-1]が無い場合(j’=0:R[l-1,j’]は階層l-1の先頭ルータ)は、R[l,j]を階層lの先頭ルータ(j=0)として挿入する(追加ルータの論理位置の決定)。この場合、適切なID[l,0]を付与して処理を終了する(e.g. ID[l,0]=0,ID[l,1]=ID[l,2]/2)。
【0048】
(G)R[l-1,j’-1]の第2下流ルータの中からR[l,b(m)](ID値最大のルータ)を選択し、(H)へ進む。第2下流ルータが無い場合はj’=j’-1として(F)へ戻る。
(H)R[l,b(m)]とR[l,b(m)+1]の間にR[l,j]を挿入する(追加ルータの論理位置の決定)。ID[l,b(m)]<ID[l,j]<ID[l,b(m)+1]を満たすID[l,j]を付与して処理を終了する(e.g. ID[l,j]=(ID[l,b(m)]+ID[l,b(m)+1])/2)。
【0049】
例えば図5では、(B)→(C)→(D)→(C)→(D)→(E)で配置が終了する。まず(B)において第2上流ルータR[l-1,0]の第2下流ルータの存在有無がチェックされる。第2下流ルータが存在しているため、(C)へ進む。(C)において、R[l-1,0]の第2下流ルータR[l,0]が選択され、(D)へ進む。(D)において、R[l,0]の第1上流ルータR[l-1,1]のID値(ID[l-1,1])とR[l,j]の第1上流ルータR[l-1,2]のID値(ID[l-1,2])が比較される。ID[l-1,1]<ID[l-1,2]であるため、(C)に戻る。
【0050】
(C)においてR[l-1,0]の次の第2下流ルータR[l,1]が選択され、(D)へ進む。(D)においてR[l,1]の第1上流ルータR[l-1,3]のID値(ID[l-1,3])とR[l,j]の第1上流ルータR[l-1,2]のID値(ID[l-1,2])が比較される。ID[l-1,3]>ID[l-1,2]であるため、(E)へ進む。(E)において、R[l,0]とR[l,1]の間にR[l,j]を挿入することが決定され、ID値が算出される。
【0051】
また、図6では、(B)→(C)→(D)→(C)→(D)→(C)→(H)で配置が終了する。まず(B)において第2上流ルータR[l-1,1]の第2下流ルータの存在有無がチェックされる。第2下流ルータが存在しているため、(C)へ進む。(C)において、R[l-1,1]の第2下流ルータR[l,3]が選択され、(D)へ進む。(D)において、R[l,3]の第1上流ルータR[l-1,2]のID値(ID[l-1,2])とR[l,j]の第1上流ルータR[l-1,4]のID値(ID[l-1,4])が比較される。ID[l-1,2]<ID[l-1,4]であるため、(C)に戻る。
【0052】
(C)においてR[l-1,1]の次の第2下流ルータR[l,4]が選択され、(D)へ進む。(D)においてR[l,4]の第1上流ルータR[l-1,4]のID値(ID[l-1,4])とR[l,j]の第1上流ルータR[l-1,4]のID値(ID[l-1,4])が比較される。同一のID値であるため、(C)に戻る。(C)において、R[l-1,1]のID値最大の第2下流ルータR[l,4]まで(D)が実行されたので、(H)へ進む。(H)において、R[l,4]とR[l,5]の間にR[l,j]を挿入することが決定され、ID値が算出される。
【0053】
また、図7では、(B)→(F)→(G)→(H)で配置が終了する。まず(B)において第2上流ルータR[l-1,3]の第2下流ルータの存在有無がチェックされる。第2下流ルータが存在しないため、(F)へ進む。(F)において、R[l-1,3]の左側のルータR[l-1,2]が選択され、(G)へ進む。(G)において、R[l-1,2]の第2下流ルータの中からID値が最大のルータR[l,6]が選択され、(H)へ進む。(H)において、R[l,6]とR[l,7]の間にR[l,j]を挿入することが決定され、ID値が算出される。
【0054】
上述した追加工程を繰り返した例を図8に示す。l≧1以上の階層における任意のルータで、2種類のdisjointなマルチキャスト配信木が設定できていることが分かる。どのルータを起点にしてメインおよびバックアップのマルチキャスト配信経路を設定する場合でも、双方の配信経路が重ならないようにすることができる。
【0055】
図9は、上述した下流ルータ配置手法の手順を示している。以下、上記の処理と対応させながら、図9に示される処理を説明する。まず、引数kに0を設定し、第2上流ルータの引数R[l-1,j’]に追加ルータR[l,j]の第2上流ルータを設定すると共に、第1上流ルータの引数R[l-1,j”]に追加ルータR[l,j]の第1上流ルータを設定する(ステップS901)。
【0056】
続いて、R[l-1,j’]に第2下流ルータが存在するか否かを判定する(ステップS902)。このステップは(B)に対応する。第2下流ルータが存在する場合にはステップS903へ進み、存在しなかった場合にはステップS908へ進む。ステップS903においては、第2下流ルータの引数R[l,b(k)]にR[l-1,j’]の第2下流ルータを設定すると共に、第1上流ルータの引数R[l-1,{b(k)}”]にR[l,b(k)]の第1上流ルータを設定する。このステップは(C)に対応する。
【0057】
続いて、ID[l-1,{b(k)}”]≦ID[l-1,j”]であるか否かを判定する(ステップS904)。このステップは(D)に対応する。ID[l-1,{b(k)}”]≦ID[l-1,j”]であった場合にはステップS906へ進み、ID[l-1,{b(k)}”]>ID[l-1,j”]であった場合にはステップS905へ進む。ステップS905においては、ID[l,b(k)-1]<ID[l,j]<ID[l,b(k)]を満たすID[l,j]を付与して処理を終了する。このステップは(E)に対応する。
【0058】
また、ステップS906においては、R[l-1,j’]の第2下流ルータのうち、ID値が最大のルータまでID値の比較を行ったか否かを判定する。このステップは(C)に対応する。ID値が最大のルータまでID値の比較を行っていない場合には、次の第2下流ルータの処理を行うためkの値を1増加し(ステップS907)、ステップS903に戻る。また、ID値が最大のルータまでID値の比較を行った場合には、ID値最大の第2下流ルータの引数R[l,b(m)]の設定を行い(ステップS910)、ID[l,b(m)]<ID[l,j]<ID[l,b(m)+1]を満たすID[l,j]を付与して処理を終了する(ステップS911)。ステップS910〜S911は(H)に対応する。
【0059】
一方、ステップS908においては、第2上流ルータR[l-1,j’]に左側のルータが存在するか否かを判定する。このステップは(F)に対応する。左側のルータが存在しない、すなわちR[l-1,j’]が階層l-1の先頭のルータである場合、R[l,j]を階層lの先頭ルータとし、適切なID[l,0]を付与して処理を終了する(ステップS912)。このステップは(F)に対応する。また、左側のルータが存在した場合、R[l-1,j’]に第2下流ルータが存在するか否かを判定する(ステップS909)。第2下流ルータが存在した場合にはステップS910へ進み、第2下流ルータが存在しなかった場合には、左側のルータについてステップS908の処理を再度行う。
【0060】
上述したように、本実施形態の別上流ルータ選択手法では、配信サーバまたはバックアップサーバに最も近いルータを除く任意のルータにおいて、2つの上流ルータと接続する各物理リンクに対してそれぞれ2つずつサブネットが設定されると共に、各サブネットがメインマルチキャスト用およびバックアップマルチキャスト用に適切にグループ化され、各サブネットのネットワークアドレスが、所定の関係を満たすように設定される。これによって、2つのマルチキャストソースに対して等コストとなる2つの上流ルータ候補が存在する場合に、各々のマルチキャストソースへ向かう経路を分岐することができる。
【0061】
また、本実施形態の下流ルータ配置手法では、階層構造を有する複数のルータの論理的な位置関係を示す初期NWトポロジ情報(ネットワークトポロジ情報)と、追加ルータと接続される上流ルータと追加ルータの論理的な位置関係を示す追加ルータ接続情報と、複数のルータの各々に対して、各ルータの論理的な位置に対応して付与された識別値(ID値)とに基づいて、追加ルータの論理的な位置を算出することによって、全てのルータにおいて、disjointなマルチキャスト配信経路の確立が保証される。
【0062】
よって、本実施形態によれば、別上流ルータ選択手法および下流ルータ配置手法を組み合わせることによって、disjointなマルチキャストツリーを動的に構築することができる。したがって、ネットワーク管理者の意思により、マルチキャストソースあるいはグループ単位で、2つのdisjointな配信経路に分離してマルチキャスト配信を行うことが可能となる。
【0063】
また、既存ルータの持つOSPF機能、PIM-SM機能のみを用いて、disjointなマルチキャスト配信経路を確保することができる。静的にマルチキャスト配信経路を固定するのではなく、従来と同様、配信経路はOSPF/PIM-SMにより動的に決定されるため、ネットワーク障害時にはOSPF/PIM-SMによる配信経路切り替えが機能する。
【0064】
以上、図面を参照して本発明の実施形態について詳述してきたが、具体的な構成はこれらの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計変更等も含まれる。例えば、別上流ルータ選択手法において、経路を分岐するためにはNA1<NB1,NA2>NB2としてもよく、その場合にはネットワークトポロジ上でメインマルチキャストソースとバックアップマルチキャストソースの位置が逆となる。
【0065】
また、上述した実施形態によるルータ位置算出装置は、その動作および機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータに読み込ませ、実行させることにより実現してもよい。
【0066】
ここで、「コンピュータ」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(RAM)のように、一定時間プログラムを保持しているものも含むものとする。
【0067】
また、上述したプログラムは、このプログラムを記憶装置等に格納したコンピュータから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。また、上述したプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、前述した機能をコンピュータに既に記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
【符号の説明】
【0068】
1・・・記憶部、2・・・演算部、21・・・ルータ論理位置計算部、22・・・ルータID計算部、23・・・VLAN ID・IPアドレス/プレフィックス生成部、24・・・NWトポロジ出力表示部、101・・・放送配信サーバ、102,109・・・L2スイッチ、103・・・バックアップサーバ、104a,104b,105a,105b,106a,106b,107・・・ルータ、108・・・通信制御装置、110・・・クライアント端末
【特許請求の範囲】
【請求項1】
第1の配信サーバおよび第2の配信サーバによって送信されるマルチキャストパケットを転送する、階層構造を有する複数のルータを備えた通信システムであって、
前記複数のルータを構成する各ルータのハッシュ処理によって、前記第1の配信サーバによって送信されるマルチキャストパケットが、前記第1の配信サーバ側に設けられた第1の上流ルータから転送されるように前記第1の配信サーバのIPアドレスが決定されており、
前記複数のルータを構成する各ルータのハッシュ処理によって、前記第2の配信サーバによって送信されるマルチキャストパケットが、前記第2の配信サーバ側に設けられた第2の上流ルータから転送されるように前記第2の配信サーバのIPアドレスが決定されており、
前記第1の配信サーバおよび前記第2の配信サーバに最も近いルータを除く任意のルータが追加された際の論理的な追加位置は、
階層構造を有する前記複数のルータの論理的な位置関係を示すネットワークトポロジ情報と、
新たに追加される追加ルータと接続される、前記第1の配信サーバおよび前記第2の配信サーバ側に設けられた上流ルータと前記追加ルータの論理的な位置関係を示す追加ルータ接続情報と、
前記複数のルータの各々に対して、各ルータの論理的な位置に対応して付与された識別値であって、同一階層内でルータの配置方向に沿って値が増加するように付与された識別値と、
に基づいて算出されたことを特徴とする通信システム。
【請求項2】
第1の配信サーバおよび第2の配信サーバによって送信されるマルチキャストパケットを転送する、階層構造を有する複数のルータを備えた通信システムであって、前記複数のルータを構成する各ルータのハッシュ処理によって、前記第1の配信サーバによって送信されるマルチキャストパケットが、前記第1の配信サーバ側に設けられた第1の上流ルータから転送されるように前記第1の配信サーバのIPアドレスが決定されており、前記複数のルータを構成する各ルータのハッシュ処理によって、前記第2の配信サーバによって送信されるマルチキャストパケットが、前記第2の配信サーバ側に設けられた第2の上流ルータから転送されるように前記第2の配信サーバのIPアドレスが決定されている通信システムに対して新たに追加ルータを追加する際の論理的な位置を算出するルータ位置算出装置であって、
前記配信サーバによって送信されるマルチキャストパケットを転送する、階層構造を有する複数のルータの論理的な位置関係を示すネットワークトポロジ情報と、
新たに追加される追加ルータと接続される、前記配信サーバ側に設けられた上流ルータと前記追加ルータの論理的な位置関係を示す追加ルータ接続情報と、
前記複数のルータの各々に対して、各ルータの論理的な位置に対応して付与された識別値であって、同一階層内でルータの配置方向に沿って値が増加するように付与された識別値と、
を記憶する記憶部と、
前記ネットワークトポロジ情報、前記追加ルータ接続情報、および前記識別値に基づいて前記追加ルータの論理的な位置を算出する位置算出部と、
を有することを特徴とするルータ位置算出装置。
【請求項3】
前記位置算出部は、前記追加ルータ接続情報に基づいて、前記追加ルータと接続される前記第1の上流ルータおよび前記第2の上流ルータを選択し、前記ネットワークトポロジ情報に基づいて、当該選択した第2の上流ルータの下流ルータを選択すると共に当該選択した下流ルータの前記第1の上流ルータを選択し、当該選択した下流ルータの前記第1の上流ルータの識別値と、前記追加ルータと接続される前記第1の上流ルータの識別値とを比較した結果に基づいて前記追加ルータの論理的な位置を算出することを特徴とする請求項2に記載のルータ位置算出装置。
【請求項4】
前記位置算出部は、前記追加ルータ接続情報に基づいて、前記追加ルータと接続される前記第2の上流ルータを選択し、前記ネットワークトポロジ情報に基づいて、当該選択した第2の上流ルータと同一階層であって隣りのルータを選択すると共に当該選択した隣りのルータの下流ルータを選択し、当該選択した下流ルータの識別値に基づいて前記追加ルータの論理的な位置を算出することを特徴とする請求項2に記載のルータ位置算出装置。
【請求項5】
前記位置算出部は、階層lにおける前記配置方向の位置がj番目であって、当該位置に対応する前記識別値R[l,j]を有する前記追加ルータと接続される前記第1の上流ルータ、前記第2の上流ルータの前記識別値をそれぞれR[l-1,j”]、R[l-1,j’]とし、前記追加ルータと同一階層のi番目のルータの前記第1の上流ルータ、前記第2の上流ルータの前記識別値をそれぞれR[l-1,i”]、R[l-1,i’]とした場合に、(i’<j’)または(i’=j’かつi”≦j”)であればi<jが成り立つように、かつ、(i’>j’)または(i’=j’かつi”>j”)であればi>jが成り立つようにjを決定することを特徴とする請求項2〜請求項4のいずれか一項に記載のルータ位置算出装置。
【請求項6】
前記位置算出部によって算出された前記追加ルータの論理的な位置に基づいて前記追加ルータの前記識別値を算出する識別値算出部をさらに有することを特徴とする請求項2〜請求項5のいずれか一項に記載のルータ位置算出装置。
【請求項7】
第1の配信サーバおよび第2の配信サーバによって送信されるマルチキャストパケットを転送する、階層構造を有する複数のルータを備えた通信システムであって、前記複数のルータを構成する各ルータのハッシュ処理によって、前記第1の配信サーバによって送信されるマルチキャストパケットが、前記第1の配信サーバ側に設けられた第1の上流ルータから転送されるように前記第1の配信サーバのIPアドレスが決定されており、前記複数のルータを構成する各ルータのハッシュ処理によって、前記第2の配信サーバによって送信されるマルチキャストパケットが、前記第2の配信サーバ側に設けられた第2の上流ルータから転送されるように前記第2の配信サーバのIPアドレスが決定されている通信システムに対して新たに追加ルータを追加する際の論理的な位置を算出する処理をコンピュータに実行させるためのルータ位置算出プログラムであって、
前記配信サーバによって送信されるマルチキャストパケットを転送する、階層構造を有する複数のルータの論理的な位置関係を示すネットワークトポロジ情報と、
新たに追加される追加ルータと接続される、前記配信サーバ側に設けられた上流ルータと前記追加ルータの論理的な位置関係を示す追加ルータ接続情報と、
前記複数のルータの各々に対して、各ルータの論理的な位置に対応して付与された識別値であって、同一階層内でルータの配置方向に沿って値が増加するように付与された識別値と、
を記憶する記憶部と、
前記ネットワークトポロジ情報、前記追加ルータ接続情報、および前記識別値に基づいて前記追加ルータの論理的な位置を算出する位置算出部と、
としてコンピュータを機能させるためのルータ位置算出プログラム。
【請求項1】
第1の配信サーバおよび第2の配信サーバによって送信されるマルチキャストパケットを転送する、階層構造を有する複数のルータを備えた通信システムであって、
前記複数のルータを構成する各ルータのハッシュ処理によって、前記第1の配信サーバによって送信されるマルチキャストパケットが、前記第1の配信サーバ側に設けられた第1の上流ルータから転送されるように前記第1の配信サーバのIPアドレスが決定されており、
前記複数のルータを構成する各ルータのハッシュ処理によって、前記第2の配信サーバによって送信されるマルチキャストパケットが、前記第2の配信サーバ側に設けられた第2の上流ルータから転送されるように前記第2の配信サーバのIPアドレスが決定されており、
前記第1の配信サーバおよび前記第2の配信サーバに最も近いルータを除く任意のルータが追加された際の論理的な追加位置は、
階層構造を有する前記複数のルータの論理的な位置関係を示すネットワークトポロジ情報と、
新たに追加される追加ルータと接続される、前記第1の配信サーバおよび前記第2の配信サーバ側に設けられた上流ルータと前記追加ルータの論理的な位置関係を示す追加ルータ接続情報と、
前記複数のルータの各々に対して、各ルータの論理的な位置に対応して付与された識別値であって、同一階層内でルータの配置方向に沿って値が増加するように付与された識別値と、
に基づいて算出されたことを特徴とする通信システム。
【請求項2】
第1の配信サーバおよび第2の配信サーバによって送信されるマルチキャストパケットを転送する、階層構造を有する複数のルータを備えた通信システムであって、前記複数のルータを構成する各ルータのハッシュ処理によって、前記第1の配信サーバによって送信されるマルチキャストパケットが、前記第1の配信サーバ側に設けられた第1の上流ルータから転送されるように前記第1の配信サーバのIPアドレスが決定されており、前記複数のルータを構成する各ルータのハッシュ処理によって、前記第2の配信サーバによって送信されるマルチキャストパケットが、前記第2の配信サーバ側に設けられた第2の上流ルータから転送されるように前記第2の配信サーバのIPアドレスが決定されている通信システムに対して新たに追加ルータを追加する際の論理的な位置を算出するルータ位置算出装置であって、
前記配信サーバによって送信されるマルチキャストパケットを転送する、階層構造を有する複数のルータの論理的な位置関係を示すネットワークトポロジ情報と、
新たに追加される追加ルータと接続される、前記配信サーバ側に設けられた上流ルータと前記追加ルータの論理的な位置関係を示す追加ルータ接続情報と、
前記複数のルータの各々に対して、各ルータの論理的な位置に対応して付与された識別値であって、同一階層内でルータの配置方向に沿って値が増加するように付与された識別値と、
を記憶する記憶部と、
前記ネットワークトポロジ情報、前記追加ルータ接続情報、および前記識別値に基づいて前記追加ルータの論理的な位置を算出する位置算出部と、
を有することを特徴とするルータ位置算出装置。
【請求項3】
前記位置算出部は、前記追加ルータ接続情報に基づいて、前記追加ルータと接続される前記第1の上流ルータおよび前記第2の上流ルータを選択し、前記ネットワークトポロジ情報に基づいて、当該選択した第2の上流ルータの下流ルータを選択すると共に当該選択した下流ルータの前記第1の上流ルータを選択し、当該選択した下流ルータの前記第1の上流ルータの識別値と、前記追加ルータと接続される前記第1の上流ルータの識別値とを比較した結果に基づいて前記追加ルータの論理的な位置を算出することを特徴とする請求項2に記載のルータ位置算出装置。
【請求項4】
前記位置算出部は、前記追加ルータ接続情報に基づいて、前記追加ルータと接続される前記第2の上流ルータを選択し、前記ネットワークトポロジ情報に基づいて、当該選択した第2の上流ルータと同一階層であって隣りのルータを選択すると共に当該選択した隣りのルータの下流ルータを選択し、当該選択した下流ルータの識別値に基づいて前記追加ルータの論理的な位置を算出することを特徴とする請求項2に記載のルータ位置算出装置。
【請求項5】
前記位置算出部は、階層lにおける前記配置方向の位置がj番目であって、当該位置に対応する前記識別値R[l,j]を有する前記追加ルータと接続される前記第1の上流ルータ、前記第2の上流ルータの前記識別値をそれぞれR[l-1,j”]、R[l-1,j’]とし、前記追加ルータと同一階層のi番目のルータの前記第1の上流ルータ、前記第2の上流ルータの前記識別値をそれぞれR[l-1,i”]、R[l-1,i’]とした場合に、(i’<j’)または(i’=j’かつi”≦j”)であればi<jが成り立つように、かつ、(i’>j’)または(i’=j’かつi”>j”)であればi>jが成り立つようにjを決定することを特徴とする請求項2〜請求項4のいずれか一項に記載のルータ位置算出装置。
【請求項6】
前記位置算出部によって算出された前記追加ルータの論理的な位置に基づいて前記追加ルータの前記識別値を算出する識別値算出部をさらに有することを特徴とする請求項2〜請求項5のいずれか一項に記載のルータ位置算出装置。
【請求項7】
第1の配信サーバおよび第2の配信サーバによって送信されるマルチキャストパケットを転送する、階層構造を有する複数のルータを備えた通信システムであって、前記複数のルータを構成する各ルータのハッシュ処理によって、前記第1の配信サーバによって送信されるマルチキャストパケットが、前記第1の配信サーバ側に設けられた第1の上流ルータから転送されるように前記第1の配信サーバのIPアドレスが決定されており、前記複数のルータを構成する各ルータのハッシュ処理によって、前記第2の配信サーバによって送信されるマルチキャストパケットが、前記第2の配信サーバ側に設けられた第2の上流ルータから転送されるように前記第2の配信サーバのIPアドレスが決定されている通信システムに対して新たに追加ルータを追加する際の論理的な位置を算出する処理をコンピュータに実行させるためのルータ位置算出プログラムであって、
前記配信サーバによって送信されるマルチキャストパケットを転送する、階層構造を有する複数のルータの論理的な位置関係を示すネットワークトポロジ情報と、
新たに追加される追加ルータと接続される、前記配信サーバ側に設けられた上流ルータと前記追加ルータの論理的な位置関係を示す追加ルータ接続情報と、
前記複数のルータの各々に対して、各ルータの論理的な位置に対応して付与された識別値であって、同一階層内でルータの配置方向に沿って値が増加するように付与された識別値と、
を記憶する記憶部と、
前記ネットワークトポロジ情報、前記追加ルータ接続情報、および前記識別値に基づいて前記追加ルータの論理的な位置を算出する位置算出部と、
としてコンピュータを機能させるためのルータ位置算出プログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公開番号】特開2010−187415(P2010−187415A)
【公開日】平成22年8月26日(2010.8.26)
【国際特許分類】
【出願番号】特願2010−124912(P2010−124912)
【出願日】平成22年5月31日(2010.5.31)
【分割の表示】特願2005−235699(P2005−235699)の分割
【原出願日】平成17年8月16日(2005.8.16)
【出願人】(000208891)KDDI株式会社 (2,700)
【Fターム(参考)】
【公開日】平成22年8月26日(2010.8.26)
【国際特許分類】
【出願日】平成22年5月31日(2010.5.31)
【分割の表示】特願2005−235699(P2005−235699)の分割
【原出願日】平成17年8月16日(2005.8.16)
【出願人】(000208891)KDDI株式会社 (2,700)
【Fターム(参考)】
[ Back to top ]