(57)【要約】【課題】ＢＧＰルータートポロジーを正確且つ効率的に自動検出する技法を提供する。【解決手段】本発明は、対象ドメイン内のルーティングトポロジーを検出するためのシステム及び方法に関するものである。更に詳しくは、対象のドメインに関して、特定のプロトコル（例：ＢＧＰ）によって通信するルーターのトポロジーを検出することができる。特定の実施例によれば、指定した対象ドメイン内のＢＧＰルーターを自動的に検出可能なＢＧＰ検出エンジンが提供される。このＢＧＰ検出エンジンは、入力として、対象ドメインとその対象ドメイン内のシードＢＧＰルーターの識別名を受け取り、対象ドメイン内において識別されたＢＧＰルーターに対して、その対象ドメイン内のＢＧＰルーターのトポロジーを作成するための情報に関して再帰的な問合せを行うことができる。【選択図】図３
2005080291.tif 000002
【特許請求の範囲】
【請求項１】
検出エンジンにおいて、対象ドメインの識別名と前記対象ドメイン内のシードルーターの識別名を受け取るステップと、
前記検出エンジンが、前記シードルーターと接続する各ピアルーターの識別名を含む情報について、該シードルーターに問合せを行うステップと、
前記検出エンジンにおいて、前記シードルーターから前記情報を受信するステップと、
前記シードルーターから受信した情報から、前記検出エンジンが、前記シードルーターの少なくとも１つのピアルーターを判定するステップと、
前記検出エンジンが、前記少なくとも１つのピアルーターに、該ピアルーターと接続する各ピアルーターの識別名を含む情報について問合せを行うステップと、
前記検出エンジンが、前記対象ドメイン内の前記ルーターのトポロジー情報を作成するステップと、
を有する方法。
【請求項２】
前記ルーターが、該ルーターと接続する各ピアルーターの識別名を含む前記情報を有する、請求項１記載の方法。
【請求項３】
前記ルーターが、共通プロトコルによって通信可能なルーターである、請求項２記載の方法。
【請求項４】
前記共通プロトコルがＢＧＰを有する、請求項３記載の方法。
【請求項５】
前記検出エンジンにおいて、前記シードルーターのアクセス情報を受け取るステップを更に有する、請求項１記載の方法。
【請求項６】
ＢＧＰルーター検出エンジンであって、
対象ドメイン内のシードＢＧＰルーターにピアテーブルの情報について問合せを行うコードと、前記シードＢＧＰルーターから前記ピアテーブル情報を受信するコードと、前記シードＢＧＰルーターから受信した前記ピアテーブル情報から前記シードルーターの各ピアルーターを判定するコードと、前記シードルーターの各ピアルーターにピアテーブルの情報について問合せを行うコードと、を有し、コンピュータ可読媒体に保存される、コンピュータ実行可能ソフトウェアコードと、
前記コンピュータ実行可能ソフトウェアコードを実行するプロセッサと、
を有するＢＧＰルーター検出エンジン。
【請求項７】
前記問合せ先のルーターから受信した前記ピアテーブル情報を使用し、前記対象ドメイン内の前記ＢＧＰルーターのトポロジー情報を作成するコードを有する、請求項６記載のＢＧＰルーター検出エンジン。
【請求項８】
前記トポロジー情報が、前記対象ドメイン内の各ＢＧＰルーターのインターフェイスの識別名と、前記対象ドメイン内の各ＢＧＰルーターのすべてのピアルーターの識別名と、前記対象ドメイン内の各ＢＧＰルーターの状態の表示と、を含む、請求項７記載のＢＧＰルーター検出エンジン。
【請求項９】
前記問合せ先のＢＧＰルーターから受信した前記ピアテーブル情報から、該ピアテーブル情報についてまだ問合せが実行されていない新規に検出されたピアルーターを識別するコードと、
前記新規に検出されたピアルーターに、該ピアルーターのピアテーブル情報について問合せを行うコードと、
を更に有する請求項６記載のＢＧＰルーター検出エンジン。
【請求項１０】
対象ドメイン内において識別された複数のＢＧＰルーターに、ピアテーブルについて再帰的な問合せを行い、該ピアテーブルから前記対象ドメイン内の各ピアＢＧＰルーターを識別する手段と、
前記問合せ先のＢＧＰルーターから受信した情報から、前記対象ドメイン内の前記ＢＧＰルーターのトポロジーを作成する手段と、
を有するシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、選択した対象ドメイン内におけるイントラドメインルーター及びインタードメインルーターの検出に関し、更に詳しくは、対象ドメイン内のＢＧＰ（Border Gateway Protocol、境界ゲートウェイプロトコル）ルータートポロジーを検出するシステム及び方法に関するものである。
【背景技術】
【０００２】
インターネットは、いまや、協調性を有しつつ競合するインターネットサービスプロバイダ（ＩＳＰ）の緩やかな連合体に発展している。それぞれのＩＳＰがアクセス可能なネットワークに関する情報は、通常、ＢＧＰ（Border Gateway Protocol）を使用して伝達される。このプロトコルは、ＩＳＰによる相互間のルーティング情報の交換を実現するべく設計されたものである。それぞれのＩＳＰは、相互接続されると共に、通常、ＩＳＰのネットワークの論理的境界においてその他のＩＳＰのルーターと相互接続されているルーター（ネットワーク間でパケットを転送する専用装置）の組を維持管理している。
【０００３】
相互接続されたコンピュータネットワークの大規模システムを管理することは困難なことであるため、１つの企業内で、コンピュータネットワークの小さなグループをＡＳ（Autonomous System、自律システム）又はルーティングドメインとして維持管理することができる。一般的には、それぞれの企業ごとに１つのＡＳを維持管理している。ルーティングドメイン内のルーターは、通常、「イントラドメイン」ルーターとルーティングプロトコルによってルートを伝達する。そして、「インタードメイン」ルーティングプロトコルを実行する「インタードメイン」ルーターを使用し、様々なルーティングドメインのノードを相互接続する。インタードメインルーティングプロトコルの一例がＢＧＰであり、これは、システムのインタードメインルーター間においてルーティング及びアクセス可能性情報を交換することにより、ＡＳ間におけるルーティングを実行する。ＢＧＰルーターと呼ばれるＢＧＰプロトコルを実行するべく構成されたインタードメインルーターは、ルーティングテーブルを維持管理し、ルーティング更新メッセージを伝送すると共に、ルーティング基準に基づいてルーティングの決定を行う。
【０００４】
それぞれのＢＧＰルーターは、特定のネットワークに対するすべての実現可能な経路を列挙した（ＢＧＰに関連する）ルーティングテーブルを維持管理している。１つ又は複数のＡＳの内と外の両方に存在するＢＧＰピアルーターは、特定の状況においてルーティング情報を交換する。通常、ルーティングテーブルには、追加的な更新が加えられる。例えば、ＢＧＰルーターが初めてピアルーターに接続する際には、それらは、それぞれのルーティングテーブルの内容の全体を交換することができる。そして、その後、それらの内容に変更が生じた場合には、それらのルーターは、それぞれのピアのテーブルを更新するべく、変化したそれぞれのルーティングテーブルの該当部分のみを交換する。尚、このＢＧＰルーティングプロトコルについては、周知であり、例えば非特許文献１および非特許文献２に更に詳しく記述されている。
【０００５】
残念ながら、ネットワークに障害はつきものである。情報に基づいた現代の経済は通信ネットワークに大きく依存しており、ネットワークに障害が発生すると、情報の主なチャネルをそれらのネットワークに依存している組織に深刻な影響が及ぶことになる。通常、ネットワーク管理とは、ネットワークの完全性を維持管理するプロセスを意味している。これには、通常、ネットワーク要素及びサービスの状態の観察、ネットワークトラフィックの監視、ネットワークのトラブルシューティング、ネットワークに対する変更の実施、及びネットワークに加えた変更が望ましい効果を発揮するようにすることなどの機能が必要とされる。インターネットなどの通信ネットワークのサイズ、多様性、及びこれに対する依存性の拡大に伴い、ネットワーク管理は、益々その重要性を増している。従って、高品質なネットワーク管理が益々重要になっているのである。
【０００６】
ネットワーク管理者は、数多くの複雑な技術的難問に直面している。例えば、ネットワークコンポーネントは、多種多様であって、物理的に分散しており、多くの環境において、ネットワークは、ルーターなどの装置の追加又は除去に伴うほとんど絶え間のない変化に晒されている。従って、ネットワーク管理者は、通常、ネットワーク内における様々な装置とそれぞれの装置の状態を追跡し、問題が発生した場合には、ネットワークに対する被害を極小化するべく、それらの問題を検出し、トラブルシュートするという困難なタスクを有している。
【０００７】
ネットワーク管理者を支援するべく、既に様々なネットワーク管理ツール（例：コンピュータプログラム）が開発されている。例えば、ネットワーク要素及びネットワークサービスを管理するためのツールが提供されている。構成管理ツールは、ルーティング装置の構成に対する変更履歴を示す監査証跡を生成可能であり、ネットワークプローブから情報を収集し、ネットワーク管理者にネットワークの状態を表すデータを提示するべく、ネットワーク管理ステーションを実装することも可能である
【非特許文献１】Y. Rekhter and T. Li, “Request For Comments (RFC) 1771”, 1995
【非特許文献２】R. Perlman, “Interconnections, Bridges and Routers”, pp. 323-329, Addison Wesley Publishing Company, 1992
【発明の開示】
【発明が解決しようとする課題】
【０００８】
ネットワーク内におけるＢＧＰルーターとそれらの間の関係などのルーティングトポロジーを検出するための技法に対するニーズが存在している。従来のネットワーク管理技法／システムを使用すれば、ネットワーク管理者は、ＢＧＰとはまったく関係のないホスト及びルーターを含むネットワーク内のすべての装置を検出することは可能である。しかしながら、その検出範囲をＢＧＰルーターのみに限定する（焦点を絞る）ことが望ましい場合がしばしば存在する。例えば、ネットワーク管理者がＢＧＰルーター及びＢＧＰルーターのみを監視及び観察することを所望する場合がある（例えば、ＢＧＰトポロジーを観察するべく、ネットワーク管理システム内に特定のトリガ又はルールを実装する場合）。従来、ネットワーク管理者には、監視対象のそれぞれのＢＧＰ装置ごとに多数の情報を入力することが要求されている。
【０００９】
従来の技法を使用し、ネットワーク管理者がネットワーク内のＢＧＰルーターに対してモニタを設定しようとする場合には、ネットワーク管理者は、ネットワークに対して問合せを行い、ネットワーク上のすべての装置を検出し、次いで、その情報を手作業でフィルタリングしてＢＧＰルーターを検出している。多くの場合、ネットワーク管理者は、ネットワーク内における様々な装置に関する情報を含むネットワーク用のデータベースを維持管理している。ネットワーク管理者は、このデータベースを検索し、ネットワーク内のどのルーターがＢＧＰルーターであるかを識別し、次いで、それらのＢＧＰルーターとそれらの間の関係（例：そのピアが誰であるのか）を列挙するフラットファイルを生成することができる。この技法を使用すれば、ネットワーク管理システムに、ＢＧＰルータートポロジーデータを供給することができる。しかしながら、この技法は、ネットワーク管理者によるデータベースの生成及び管理が必要とされるという点において、非効率的であり、ネットワーク管理者による手作業のデータ入力が必要とされるため、誤りが発生する可能性が極めて大きい。
【００１０】
従来のネットワーク管理システムにおいては、一例として、ネットワーク内のすべてのＢＧＰルーターを監視するには、ユーザーが外部及び内部ピアの両方を含むそれぞれのルーターごとの特定のピアリングマップと共に、監視対象のそれぞれのＢＧＰルーターのＩＰ（Internet Protocol、インターネットプロトコル）アドレス又はルーター名、並びにＳＮＭＰ（Simple Network Management Protocol、簡易ネットワーク管理プロトコル）アクセス情報を手作業で入力する必要がある。これには、中規模サイズのネットワークの場合でも、大量の時間を所要し、データ入力に誤りが発生しやすく、且つ、ネットワーク内におけるＢＧＰルーター及びピアのトポロジーに関する先見的な知識が必要とされる。
【００１１】
従って、ＢＧＰルータートポロジーを正確且つ効率的に検出する技法に対するニーズが存在している。具体的には、このようなトポロジーをユーザーが手作業で（例：データベースの検索やネットワーク内の全装置のリストのフィルタリングによって）識別する必要のないＢＧＰルータートポロジーを検出する技法に対するニーズが存在しているのである。
【課題を解決するための手段】
【００１２】
本発明は、対象ドメイン内のルーティングトポロジーを検出するためのシステム及び方法に関するものである。更に詳しくは、特定の実施例によれば、対象のドメインに関して、特定のプロトコル（例：ＢＧＰ）によって通信するルーターのトポロジーを検出することができる。特定の実施例によれば、指定した対象ドメイン内のＢＧＰルーターを自動的に検出可能なＢＧＰ検出エンジンが提供される。例えば、このＢＧＰ検出エンジンは、入力として、対象ドメインとその対象ドメイン内の「シード（seed）」ＢＧＰルーターの識別名（identification）を受け取り、対象ドメイン内において識別されたＢＧＰルーターに対して、その対象ドメイン内のＢＧＰルーターのトポロジーを作成するための情報に関して再帰的な問合せを行うことができる。例えば、このＢＧＰ検出エンジンは、まず、シードＢＧＰルーターに対して、そのピア（peer）テーブルに関して問合せを行い、次いで、そのピアテーブルにおいて識別されたそれぞれのピアルーターに対し、それらの個々のピアルーターに関して問合せを行い、ＢＧＰ検出エンジンが、対象ドメイン内のすべてのＢＧＰルーターに対して問合せを行い、それらから受信した情報を使用してその対象ドメイン内のＢＧＰルーターのトポロジーを作成する作業を完了する時点まで、これを継続することができる。
【００１３】
一実施例によれば、後述するように、オペレータ（例：ネットワーク管理者）は、この検出エンジンに対して、１つのＢＧＰルーターの識別名（例：ＢＧＰルーターの名称又はＩＰアドレス）、対象の１つ又は複数のＡＳ（Autonomous System）の識別名（例：対象ドメインを形成する１つ又は複数のＡＳのＡＳ番号）、及びＳＮＭＰアクセス情報を供給する。検出エンジンは、この情報を使用し、対象ドメイン内において検出されたＢＧＰルーターに対して再帰的な問合せを行い、対象ドメイン内におけるすべてのＢＧＰ対応ルーターのＩＰアドレス、名称、及びピアリストを作成する。
【００１４】
この結果、本発明の実施例によれば、オペレータ（例：ネットワーク管理者）に要求される作業量を最小限に抑えつつ、対象ドメイン内のルーター（例：ＢＧＰルーター）のトポロジーを正確且つ効率的に作成することができる。このＢＧＰ検出エンジンの実施例は、ネットワーク管理システム、ルーティング管理ソフトウェア、ネットワークマッピングツール、ルーター構成ツール、及び／又はＢＧＰピアトポロジーの知識が求められるその他のアプリケーションを含む（但し、これらに限定されない）対象ドメイン内におけるＢＧＰルーターのトポロジーに関する情報をアプリケーション内で自己供給する様々なアプリケーションに使用可能である。
【００１５】
特定の実施例によれば、方法は、検出エンジンにおいて、対象ドメインの識別名とこの対象ドメイン内のシードルーターの識別名を受け取るステップを有している。検出エンジンは、シードルーターに対して、そのピアルーターの識別名を含む情報に関して問合せを行い、検出エンジンは、シードルーターから情報を受信する。そして、このシードルーターから受信した情報から、検出エンジンは、シードルーターの少なくとも１つのピアルーターを判定する。次いで、検出エンジンは、この判定されたシードルーターの少なくとも１つのピアルーターに対して、そのピアルーターの識別名を含む情報に関して問合せを行う。そして、検出エンジンは、対象ドメイン内におけるルーターのトポロジー情報を作成する。
【００１６】
特定の実施例によれば、ＢＧＰルーター検出エンジンは、コンピュータ可読媒体に保存されたコンピュータ実行可能ソフトウェアコードを有しており、このコンピュータ実行可能ソフトウェアコードは、対象ドメイン内のシードＢＧＰルーターに対して、そのピアテーブルの情報に関して問合せを行うコードを有している。更に、このコンピュータ実行可能ソフトウェアコードは、シードＢＧＰルーターからピアテーブル情報を受信するコードと、シードＢＧＰルーターから受信したピアテーブル情報からシードルーターのそれぞれのピアルーターを判定するコードと、シードルーターのそれぞれのピアルーターに対して、その個々のピアテーブルの情報に関して問合せを行うコードと、を有している。又、ＢＧＰルーター検出エンジンは、コンピュータ実行可能ソフトウェアコードを実行するためのプロセッサをも有している。
【００１７】
特定の実施例によれば、システムは、対象ドメイン内の識別されたＢＧＰルーターに対して、それらの個々のピアテーブルに関して再帰的な問合せを行い、それらの個々のピアテーブルから、対象ドメイン内のそれらの個々のピアＢＧＰルーターを識別する手段を有している。又、このシステムは、問合せ先のＢＧＰルーターから受信した情報から対象ドメイン内のＢＧＰルーターのトポロジーを作成する手段をも有している。
【００１８】
以上の説明は、以下の本発明に関する詳細な説明を十分に理解できるように、本発明の特徴と技術的な利点に関して、かなり広範に概説したものであり、本発明の請求項の主題を構成する本発明の更なる特徴及び利点については後述する。尚、開示される概念及び特定の実施例は、本発明と同一の目的を実現するべく、その他の構造を変更又は設計するための基礎として容易に利用可能であることを理解されたい。又、その等価構造は、添付の請求項に記述されている本発明を逸脱するものではないことについても理解されたい。その組織及び動作方法の両方の観点において本発明の特徴を表すと考えられる新しい特徴については、更なる目的及び利点と共に、添付の図面との関連で以下の説明を参照することにより、十分に理解されよう。しかしながら、それぞれの図面は、例示及び説明を目的として提供されているに過ぎず、本発明の範囲を定義することを意図するものではないことを明確に理解されたい。
【発明を実施するための最良の形態】
【００１９】
図１は、本発明の実施例を利用可能な代表的なコンピュータネットワーク１００の概略ブロックダイアグラムを示している。コンピュータネットワーク１００は、インタードメインルーター１０２と呼ばれる中間ノードによって相互接続された複数のＡＳ（Autonomous System）又はルーティングドメインを有している。この図１の例に示されているように、インターネットサービスプロバイダ（ＩＳＰ）のドメインには、インタードメインルーター１０２によって相互接続された複数のルーティングドメイン（ＡＳ４、ＡＳ３）を含むことができる。インタードメインルーター１０２は、ローカルエリアネットワーク（ＬＡＮ）などの共有媒体ネットワーク１０３やフレームリレーリンクなどのポイントツーポイントリンク１０４、非同期転送モードリンクやその他のシリアルリンクによって相互接続可能である。ルーター１０１及び１０２は、ＢＧＰルーターを構成することができる。ＢＧＰを使用する単一のＡＳ内のルーターは、ＩＢＧＰ（Interior BGP、内部ＢＧＰ）を使用して互いにルートを交換し、ＢＧＰを使用するＡＳを横断して通信するルーターは、ＥＢＧＰ（Exterior BGP、外部ＢＧＰ）を使用する。周知のように、ＢＧＰは、例えば、インターネット内のルーターに共通的に使用されるＥＧＰ（Exterior Gateway Protocol、外部ゲートウェイプロトコル）であり、サブタイプであるＥＢＧＰ及びＩＢＧＰは、このプロトコル仕様によって定義されている。
【００２０】
それぞれのルーターは、通常、プロセッサ、メモリ、及びネットワークインターフェイスアダプタなどの複数の相互接続された要素を有している。図２は、バス２０３を介してメモリ２０２と複数のネットワークインターフェイスアダプタ２０４Ａ、２０４Ｂ、及び２０４Ｃに接続されたルートプロセッサ２０１を有する代表的なＢＧＰ対応インタードメインルーター１０２又はイントラドメインルーター１０１の概略ブロックダイアグラムを示している。ネットワークインターフェイス２０４Ａ〜２０４Ｃは、その他のＢＧＰ対応ルーターＲＡ〜Ｃに接続可能である。メモリ２０２は、当技術分野において周知のように、ソフトウェアプログラムとデータ構造を保存するべく、プロセッサ２０１によってアドレス指定可能なストレージ位置とインターフェイスアダプタ２０４Ａ〜２０４Ｃを有することができる。例えば、メモリ２０２は、ピアテーブル２０２Ａ及びルーティングテーブル２０２Ｂなどのデータ構造を保存することができる。
【００２１】
ルートプロセッサ２０１は、ソフトウェアプログラムを実行しデータ構造を操作するための処理要素又はロジックを有することができる。一般に、その一部が通常メモリ２０２内に存在しルートプロセッサ２０１によって実行されるオペレーティングシステム（ＯＳ）が、特に、ルーター上で稼働するソフトウェアプロセスをサポートするネットワーク動作を起動することにより、ルータが機能的に組織化される。当業者には、プログラム命令を保存及び実行するべく、ルーター１０２内において、様々なコンピュータ可読媒体を含むその他のプロセッサ及びメモリ手段を使用可能であることは明らかであろう。
【００２２】
ＢＧＰプロトコルに従ってルーティング操作を実行するべく、それぞれのＢＧＰ対応インタードメインルーター１０２及びイントラドメインルーター１０１は、一般に、ルーターのピアルーター（当該ルーターがＢＧＰセッションを有する相手のルーター）を識別するピアテーブル２０２Ａと、特定のネットワークに対するすべての実現可能な経路を列挙したルーティングテーブル２０２Ｂを維持管理している。又、ルーターは、それぞれのルーティングテーブルが変更された場合に、ルーティング更新メッセージを使用し、ルーティング情報を交換する。このルーティング更新メッセージは、コンピュータネットワーク全体において、その隣接するピア（受信）ルーターのそれぞれに対する最適な経路を通知する更新（送信）ルーターによって生成される。このようなルーティング更新により、ＢＧＰルーターは、首尾一貫した最新のネットワークトポロジーのビューを構築することができる。
【００２３】
後述するように、本発明の実施例によれば、対象ドメイン内におけるルーティングトポロジーを検出するシステム及び方法が提供される。具体的には、特定の実施例によれば、対象のドメインに関して、特定のプロトコル（例：ＢＧＰ）によって通信するルーターのトポロジーを検出することができる。特定の実施例においては、特定の対象ドメイン内のＢＧＰルーターを自動的に検出可能なＢＧＰ検出エンジンが提供される。例えば、このＢＧＰ検出エンジンは、入力として、対象ドメインとその対象ドメイン内の「シード」ＢＧＰルーターの識別名を受け取り、対象ドメイン内において識別されたＢＧＰルーターに対し、その対象ドメイン内のＢＧＰルーターのトポロジーを作成するための情報に関して再帰的な問合せを行うことができる。例えば、ＢＧＰ検出エンジンは、まず、シードＢＧＰルーターに対して、そのピアテーブルに関して問合せを行い、次いで、ピアテーブル内において識別されたそれぞれのピアルーターに対して、それらの個々のピアルーターに関して問合せを行い、ＢＧＰ検出エンジンが、対象ドメイン内のそれぞれのＢＧＰルーターに対して問合せを行い、それらから受信した情報を使用してその対象ドメイン内のＢＧＰルーターのトポロジーを作成する作業を完了する時点まで、これを継続することができる。
【００２４】
後述する一実施例によれば、オペレータ（例：ネットワーク管理者）は、検出エンジンに対して、１つのＢＧＰルーターの識別名（例：ＢＧＰルーターの名称又はＩＰアドレス）、対象の１つ又は複数のＡＳ（Autonomous System）の識別名（例：対象ドメインを形成する１つ又は複数のＡＳのＡＳ番号）、及びＳＮＭＰアクセス情報を供給する。ＳＮＭＰを使用して装置との間で情報の読み取り／書き込みが可能であるため、その使用法には制限が課されている。最も基本的な読み取りアクセスの場合にも、パスワード又はその他のアクセス情報又は構成が必要とされる。この検出エンジンが受け取った情報を使用し、対象ドメイン内のすべてのＢＧＰ対応ルーターのＩＰアドレス及びピアリストを検出することができる。尚、対象ドメインを１つのＡＳに限定する必要がないことを認識されたい。例えば、いくつかのＡＳが１つの管理ドメインの下に存在している場合には、検出エンジンに対してこれらのＡＳ番号を供給することにより、これらのＡＳに跨った検出が同様に可能である。
【００２５】
本発明の実施例は、「ルートの同期を維持するべく、ＡＳ内のすべてのＢＧＰルーターは、ルートサーバーに対して完全に統合又は接続されていることを必要とする」というＢＧＰの属性を活用するものである。１つのＢＧＰルーターのシードアドレスを取得し、標準的なＢＧＰのＭＩＢ（Management Information Base、管理情報ベース）のＳＭＮＰ問合せを実行することにより、検出エンジンは、シードルーターのピアテーブルを判定することができる。ピアテーブルには、シードルーターがピアとなるべく構成されたそれぞれのルーターのＩＰアドレス及びＡＳ番号などの情報が含まれている。そして、シードテーブル内のＡＳと一致するＡＳ（即ち、対象ドメイン内のＡＳ）を有するピアテーブル内のすべてのルーターに対して、同様に、それらの個々のピアテーブルに関して問合せが行われる。一方、ＡＳがＡＳシードリスト内に含まれていない（即ち、対象ドメインに含まれていない）ものに対しては、問合せは行われず、外部ピアというラベルが付加される（これも重要なトポロジー情報である）。ピアテーブルには、それぞれのピアリングセッションの状態も含まれている。この状態情報により、検出エンジンは、無効ピアリングセッションの調査をスキップすることができるが、この情報を使用してトポロジーデータベース（又は「検出テーブル」）に記入することも可能である。尚、無効ピアリングセッションは、ルーターにＴＣＰ以外の接続が存在しているか、或いはルーターがピアとして構成されていないことを示すものである。
【００２６】
この結果、本発明の実施例によれば、オペレータ（例：ネットワーク管理者）側に要求される作業量を最小限に抑えつつ、対象ドメイン内のルーター（例：ＢＧＰルーター）のトポロジーを正確且つ効率的に作成することができる。このＢＧＰ検出エンジンの実施例は、ネットワーク管理システム、ルーティング管理ソフトウェア、ネットワークマッピングツール、ルーター構成ツール、及び／又はＢＧＰピアトポロジーの知識が求められるその他のアプリケーションを含む（但し、これらに限定されない）対象ドメイン内におけるＢＧＰルーターのトポロジーに関する情報をアプリケーション内で自己供給する様々なアプリケーションにおいて使用可能である。
【００２７】
図３は、本発明の実施例のＢＧＰ検出エンジン３０１を実装可能なシステム３００のブロックダイアグラムの例を示している。図示のごとく、システム３００は、ＡＳ１、ＡＳ２、ＡＳ３、及びＡＳ４を有している。ＡＳ１は、インタードメインＢＧＰルーターＡ及びＢとイントラドメインＢＧＰルーターＣを含んでいる。ＡＳ２は、インタードメインＢＧＰルーターＤ及びＦとイントラドメインＢＧＰルーターＥを含んでいる。ＡＳ３は、インタードメインＢＧＰルーターＧとイントラドメインＢＧＰルーターＨを含み、ＡＳ４は、インタードメインＢＧＰルーターＩとイントラドメインＢＧＰルーターＪ及びＫを含んでいる。ＢＧＰ検出エンジン３０１は、データストレージ３０３と通信可能に接続されており、このデータストレージは、メモリ（例：ランダムアセクスメモリ（ＲＡＭ））、光ディスク、フロッピーディスクなどを含む適切なデータストレージ装置を有することができる。後述するように、ＢＧＰ検出エンジン３０１は、情報をシードテーブル３０４及びＢＧＰ検出テーブル３０５に保存することができる。
【００２８】
本発明の実施例によれば、ＢＧＰ検出エンジン３０１は、ＢＧＰ検出テーブル３０５に特定の対象ドメインのピアＢＧＰルーターに関する情報を記入するべく動作可能である。例えば、ＢＧＰ検出エンジン３０１には、図３の例のＡＳ１やＡＳ２などの対象のドメイン（例：ＡＳ）を指定する入力３０２を（例えば、ユーザー又は別のアプリケーションから）供給することができる。この入力３０２には、図３の例のＢＧＰルーターＡなどの対象ドメイン内の「シード」ＢＧＰルーターが更に指定されている。ＢＧＰ検出エンジン３０１は、この入力情報から対象ドメイン内のピアＢＧＰルーターを検出するべく動作可能であり、特定の実装例においては、ＢＧＰ検出テーブル３０５内に、ピアＢＧＰルーターの識別名と共に、それら検出されたＢＧＰルーターに関するその他の望ましい情報（例：それらの関係）を含むことができる。
【００２９】
図３の例においては、ＢＧＰ検出エンジン３０１が受け取った入力３０２には、対象ドメインとしてＡＳ１及びＡＳ２が指定され、対象ドメイン内の「シード」ＢＧＰルーターとしてＢＧＰルーターＡが指定されている。この実施例においては、ＢＧＰ検出エンジン３０１は、対象ドメイン（ＡＳ１及びＡＳ２）の識別名をシードテーブル３０４に保存する。そして、このＢＧＰルーターＡの識別名（例：そのＩＰアドレス）の受領に応答し、ＢＧＰ検出エンジン３０１は、ＢＧＰルーターＡに対して通信可能に接続し、このルーターに対して、そのピアＢＧＰルーターの識別名、並びにそれぞれのピアＢＧＰルーターのＡＳの識別名に関して問合せを行う。この問合せにより、ＢＧＰルーターから、それらピアＢＧＰルーターのそれぞれの現在の状態に関する識別名などのその他の情報を返すことも可能である。後述する一実施例においては、シードＢＧＰルーターに対して、そのピアテーブルに関する問合せが行われ、その結果、ピアテーブルの様々な情報をＢＧＰ検出エンジン３０１に返すことができる。尚、この例においては、図３内のそれぞれのルーターは、ＥＢＧＰ、ＩＢＧＰ、又はこれらの両方に対応していると仮定していることに留意されたい。これらのネットワークには、ＢＧＰに対応していないその他のルーターやノードも接続されていると仮定しているが、これらは、ＢＧＰ検出エンジン３０１によって無視されることになる（これが主な利点である）。
【００３０】
シードＢＧＰルーターＡに対するＢＧＰ検出エンジン３０１からの問い合わせに応答し、図３の例においては、ＢＧＰ検出エンジン３０１に、次の表１の情報が返されることになる。
【表１】
2005080291.tif 000003
【００３１】
ＢＧＰ検出エンジン３０１は、この受信した情報を使用し、ＢＧＰ検出テーブル３０５の記入を開始する。この時点において、シードルーターであったことから、ＢＧＰ検出エンジン３０１は、ＢＧＰルーターＡが対象ドメイン内に含まれていると判定することができる。そして、このシードルーターに対する問合せ結果から、ＢＧＰ検出エンジン３０１は、対象ドメイン内には、シードＢＧＰルーターＡのピアとして、ＢＧＰルーターＢ、Ｃ、及びＤも含まれていると判定することができる。具体的には、ＢＧＰ検出テーブル３０５は、次の表２に示されているように記入されることになる。
【表２】
2005080291.tif 000004
【００３２】
従って、この時点において、対象ドメイン（ＡＳ１及びＡＳ２）内には、４つのＢＧＰルーターＡ〜Ｄが存在していることが判明する。更に、表２に示されているように、ＢＧＰルーターＡはＡＳ１内に存在しており、これは、ピアＢＧＰルーターＢ及びＣを有すると共に（これらも同様にＡＳ１内に存在している）、ＡＳ２に含まれるピアＢＧＰルーターＤをも有していることがわかる。このようにして、ＢＧＰ検出テーブル３０５内において、対象ドメイン内のＢＧＰルーターのトポロジーの作成が開始される。
【００３３】
本発明の実施例によれば、次いで、ＢＧＰ検出エンジン３０１は、対象ドメイン内に存在する検出されたピアＢＧＰのそれぞれに対して問合せを行い、それら自身のピアＢＧＰルーターの検出を行う。例えば、ＢＧＰ検出エンジン３０１は、次いで、シードＢＧＰルータＡに対して問合せを行ったのと同様の方法により、検出済みのＢＧＰルーターＢに対して問合せを行うことができる。このＢＧＰルーターＢに対するＢＧＰ検出エンジン３０１からの問合せに応答し、図３の例の場合には、ＢＧＰ検出エンジン３０１に、次の表３の情報が返されることになる。
【表３】
2005080291.tif 000005
【００３４】
ＢＧＰ検出エンジン３０１は、この受信した情報を使用し、ＢＧＰ検出テーブル３０５の記入を継続する。この時点で、ＢＧＰ検出エンジン３０１は、ＡＳ１内のＢＧＰルーターＢは、ピアＢＧＰルーターＡ（これは既に判明している）と、ＡＳ１内のＣ及びＡＳ３内のピアＢＧＰルーターＧを有していると更に判定することができる。但し、ＡＳ３は、対象ドメインに含まれていないため、ＢＧＰルーターＧは、ＢＧＰ検出テーブル３０５には含まれない。しかしながら、図４の例に関連して後述するように、特定の実施例においては、ＢＧＰ検出テーブル３０５において、対象ドメイン外の別のＢＧＰルーターに対するＢＧＰルーターＢのインターフェイスを識別することができる。このようにして、ＢＧＰ検出テーブル３０５は、更に更新され、次の表４に示されているように、ＢＧＰルーターＢに関する新たに検出された情報（例：ピアとしてＢＧＰルーターＣを有し、ＢＧＰルーターＣは、ピアとしてＢＧＰルーターＢを有している）を反映することができる。
【表４】
2005080291.tif 000006
【００３５】
次に、ＢＧＰ検出エンジン３０１は、シードＢＧＰルーターＡに対して問合せを行ったのと同様の方法により、検出済みのＢＧＰルーターＣに対して問合せを行うことができる。このＢＧＰルーターＣに対するＢＧＰ検出エンジン３０１からの問合せに応答し、図３の例の場合には、ＢＧＰ検出エンジン３０１に、次の表５の情報が返されることになる。
【表５】
2005080291.tif 000007
【００３６】
ＢＧＰ検出エンジン３０１は、この受信した情報を使用し、ＢＧＰ検出テーブル３０５の記入を継続する。この時点で、ＢＧＰ検出エンジン３０１は、ＡＳ１内のＢＧＰルーターＣは、前述の検出結果からいずれも既に判明しているピアＢＧＰルーターＡ及びＢを有していると更に判定することができる。そして、ＢＧＰルーターＣは、更なるピアＢＧＰルーターを有していないため、ＢＧＰ検出テーブル３０５には、なにも追加されない。
【００３７】
次に、ＢＧＰ検出エンジン３０１は、シードＢＧＰルーターＡに対して問合せを行ったのと同様の方法により、ＡＳ２の検出済みのＢＧＰルーターＤに対して問合せを行うことができる。このＢＧＰルーターＤに対するＢＧＰ検出エンジン３０１からの問合せに応答し、図３の例の場合には、ＢＧＰ検出エンジン３０１に、次の表６の情報が返されることになる。
【表６】
2005080291.tif 000008
【００３８】
ＢＧＰ検出エンジン３０１は、この受信した情報を使用し、ＢＧＰ検出テーブル３０５の記入を継続する。この時点で、ＢＧＰ検出エンジン３０１は、ＡＳ２内のＢＧＰルーターＤは、ＡＳ１内のピアＢＧＰルーターＡ（これは、既に判明している）と、ＡＳ２内のピアＢＧＰルーターＥ及びＦを有していると更に判定することができる。このようにして、ＢＧＰ検出テーブル３０５は、更に更新され、次の表７に示されているように、ＢＧＰルーターＤに関して新しく検出された情報を反映することができる。
【表７】
2005080291.tif 000009
【００３９】
従って、この時点において、対象ドメイン（ＡＳ１及びＡＳ２）内には、６つのＢＧＰルーターＡ〜Ｆが存在することが判明している。更に、表７に示されているように、ＢＧＰルーターＡ〜Ｃは、ＡＳ１内に存在しており、それぞれが互いをピアＢＧＰルーターとして有していることがわかる。更に、表７からは、ＢＧＰルーターＡが、ＡＳ２のＢＧＰルーターＤをピアＢＧＰルーターとして有しており、ＢＧＰルーターＤは、ＡＳ２内にピアとしてＢＧＰルーターＥ及びＦを有していることがわかる。このようにして、ＢＧＰ検出テーブル３０５内において、対象ドメイン内のＢＧＰルーターのトポロジーが更に詳細に作成される。
【００４０】
次に、ＢＧＰ検出エンジン３０１は、シードＢＧＰルーターＡに対して問合せを行ったのと同様の方法により、検出済みのＢＧＰルーターＦに対して問合せを行うことができる。このＢＧＰルーターＦに対するＢＧＰ検出エンジン３０１からの問合せに応答し、図３の例の場合には、ＢＧＰ検出エンジン３０１に、次の表８の情報が返されることになる。
【表８】
2005080291.tif 000010
【００４１】
ＢＧＰ検出エンジン３０１は、この受信した情報を使用し、ＢＧＰ検出テーブル３０５の記入を継続する。この時点において、ＢＧＰ検出エンジン３０１は、ＡＳ２内のＢＧＰルーターＦは、ＡＳ２内のピアＢＧＰルーターＤ（これは、既に判明している）及びＥと、ＡＳ４内のピアＢＧＰルーターＩを有していると更に判定することができる。但し、ＡＳ４は、対象ドメインに含まれていないため、ＢＧＰ検出テーブル３０５内にＢＧＰルーターＩは含まれない。しかしながら、図４の例に関して後述するように、特定の実施例においては、ＢＧＰ検出テーブル３０５内において、対象ドメイン外の別のＢＧＰルーターに対するＢＧＰルーターＦのインターフェイスを識別することができる。このようにして、ＢＧＰ検出テーブル３０５は、更に更新され、次の表９に示されているように、ＢＧＰルーターＦに関する新たに検出された情報（例：ピアとしてＢＧＰルーターＥを有し、ＢＧＰルーターＥは、ピアとしてＢＧＰルーターＦを有している）を反映することができる。
【表９】
2005080291.tif 000011
【００４２】
次に、ＢＧＰ検出エンジン３０１は、シードＢＧＰルーターＡに対して問合せを行ったのと同様の方法により、検出済みのＢＧＰルーターＥに対して問合せを行うことができる。このＢＧＰルーターＥに対するＢＧＰ検出エンジン３０１からの問合せに応答し、図３の例の場合には、ＢＧＰ検出エンジン３０１に、次の表１０の情報が返されることになる。
【表１０】
2005080291.tif 000012
【００４３】
ＢＧＰ検出エンジン３０１は、この受信した情報を使用し、ＢＧＰ検出テーブル３０５の記入を継続する。この時点において、ＢＧＰ検出エンジン３０１は、ＡＳ１内のＢＧＰルーターＥは、いずれも前述の検出結果から既に判明しているピアＢＧＰルーターＡ及びＢを有していると判定することができる。そして、ＢＧＰルーターＥは、更なるピアＢＧＰルーターを有していないため、ＢＧＰ検出テーブル３０５には、なにも追加されない。このようにして、この時点で、ＢＧＰ検出テーブル３０５により、対象ドメイン（ＡＳ１及びＡＳ２）内のＢＧＰルーターの完全なトポロジーが提供されており、このトポロジーは、対象ドメイン（ＡＳ１及びＡＳ２）と、この指定された対象ドメイン内のシードＢＧＰルーター（ＢＧＰルーターＡ）を指定する入力３０２に応答し、ＢＧＰ検出エンジン３０１によって独自に構築されたものである。
【００４４】
次に図４を参照し、図示されている例示用のシステム４００との関連で、ＢＧＰ検出エンジン３０１の一実施例の更に具体的な動作例について説明する。この例において、ＢＧＰ検出エンジン３０１は、ワークステーションＷＳ１上に存在している。本発明の一実施例の動作の一例として、ＢＧＰ検出エンジン３０１には、対象ドメインとしてＡＳ１が、そして、この対象ドメイン内のＢＧＰルーター（この例においては、ＢＧＰルーターＡ）の識別子としてＩＰアドレス10.2.1.1が供給されるものと仮定しており、この場合に、ＳＮＭＰバージョン１が使用され、ＢＧＰ検出エンジン３０１には、更に、ＡＳ１内のルーターの読み出し専用アクセス用のコミュニティストリングが入力され、これらのルーターは、すべて同一のコミュニティストリングを有するものと仮定している。尚、この例においては、ユーザー（例：ネットワーク管理者）は、ＩＰアドレス10.2.1.1を入力しているが、ユーザーは、シードＢＧＰルーターとして供給するために、ＡＳ１内の３つのルーターの６つのインターフェイスのどれでも選択可能であることを認識されたい。
【００４５】
次いで、ＢＧＰ検出エンジン３０１は、（受け取ったＩＰアドレス10.2.1.1により）ＢＧＰルーターＡに対してＳＮＭＰ問合せを実行し、bgpPeerTableのＭＩＢを要求する。そして、これに応答し、次の表１１に類似したテーブルが返される。
【表１１】
2005080291.tif 000013
【００４６】
この実施例においては、ＢＧＰ検出エンジン３０１は、このテーブルから、更なる処理のために、次の情報を選択する。
【表１２】
2005080291.tif 000014
【００４７】
この表１２の情報を使用し、ＢＧＰ検出エンジン３０１は、ＢＧＰ検出テーブル３０５（これは、「トポロジーマップ」と呼ぶことができる）に対して、そのリモートアドレス及びＡＳ番号によって識別される２つの内部ピア（ＢＧＰルーターＢ及びＣ）と１つの外部ピア（ＡＳ５のＢＧＰルーター）を記入する。この結果、ＢＧＰ検出エンジン３０１は、シードルーターＡに対する第２のインターフェイスを識別することになる。即ち、ＢＧＰ検出エンジン３０１は、シードルーターＡが、インターフェイス10.2.1.1（これは、この例において、検出エンジンに入力されたシードアドレスであった）のみならず、ルーターＢ及びＣとのＩＢＧＰピアリングに使用される10.102.1.1というアドレスのインターフェイスをも有していることを識別する。表１２内の最初の２つのエントリは、ＡＳ１に関するものであり（これは、シードＡＳ（即ち、「対象ドメイン」）である）、第３のエントリは、ＢＧＰ検出エンジン３０１がＳＮＭＰアクセスを有していない外部ピアであることから、エンジンは、新しい問合せを、まず、10.101.1.1（ＢＧＰルーターＢ）に対して、次いで、10.100.1.1（ＢＧＰルーターＣ）に対して送信し、再度、これらのＢＧＰルーターのそれぞれに対して、bgpPeerTableのＭＩＢテーブルを要求する。
【００４８】
この例においては、10.101.1.1（ＢＧＰルーターＢ）からの応答により、前述の表１１と類似した表が生成され、ＢＧＰ検出エンジン３０１は、これから次の表１３の情報を抽出することができる。
【表１３】
2005080291.tif 000015
【００４９】
この表１３の情報を使用し、ＢＧＰ検出エンジン３０１は、ＢＧＰ検出テーブル３０５（又は「トポロジーマップ」）に、そのリモートアドレス及びＡＳ番号（10.3.1.6におけるＡＳ６と10.3.1.7におけるＡＳ７）によって識別される２つの新しい外部ピアを記入する。又、インターフェイス10.3.1.1がＡＳ７及びＡＳ６とのピアリング用のローカルインターフェイスとして列挙されているため、このインターフェイス10.3.1.1をルーターＢに追加する
10.2.1.1は、シードアドレスであり、ＡＳ６及びＡＳ７は、外部ピアであるため、ＢＧＰ検出エンジン３０１は、更に10.100.1.1に対してのみ、bgpPeerTableに関する問合せを行うことにより、次の簡略化された表１４が生成される。
【表１４】
2005080291.tif 000016
【００５０】
ＢＧＰ検出エンジン３０１は、ＢＧＰ検出テーブル３０５（又は、「トポロジーマップ」）に、そのリモートアドレス及びＡＳ番号（10.1.1.2におけるＡＳ２、10.1.1.3におけるＡＳ３、及び10.1.1.4におけるＡＳ４）によって識別される３つの新しい外部ピアを記入する。又、インターフェイス10.1.1.1が、ＡＳ２、ＡＳ３、及びＡＳ４とのピアリングのために列挙されたローカルアドレスであるため、インターフェイス10.1.1.1をルーターＣに追加する。この結果、最終的に、ＢＧＰ検出エンジンにより、次の表１５に類似したＢＧＰ検出テーブル３０５（即ち、「トポロジーマップ」）が生成される。
【表１５】
2005080291.tif 000017
【００５１】
従って、この表１５内に作成された情報は、対象ドメイン（即ち、上述の例においては、ＡＳ１）におけるＢＧＰルーターのトポロジーを表している。この表１５の情報を使用し、図４に示されているものに類似したグラフィカルなマップを描くことが可能であると共に／或いは、対象ドメインにおけるＢＧＰルーターのトポロジーを記述するテキスト情報を出力することもできる。従って、対象ドメイン（例：ＡＳ１）、その対象ドメイン内の１つのＢＧＰルーター上の１つのインターフェイスアドレス、及びＳＮＭＰ読み出し専用コミュニティストリングのみを知ることにより、検出エンジン３０１は、対象ドメイン内のすべてのＢＧＰルーターのトポロジーを作成することができる。尚、前述の例においては、１つのＡＳを検出エンジン３０１に供給しているが、（図３の例におけるＡＳ１及びＡＳ２と同様に）ドメイン内で管理されているすべてのＡＳを検出エンジン３０１に供給することにより、検出エンジン３０１によって、複数ＡＳのドメインのトポロジーマップを生成することができる。
【００５２】
図５を参照すれば、本発明の一実施例によるＢＧＰ検出エンジン３０１の動作フローダイアグラムの例が示されている。図示のごとく、ＢＧＰ検出エンジン３０１は、操作ブロック５０１において、対象ドメイン（例：１つ又は複数のＡＳ）、この対象ドメイン内のシードＢＧＰルーター、及びこのシードルーターに対するアクセスを可能にする装置アクセス情報（例：ＳＮＭＰコミュニティストリング）を指定する入力（例：図３の例における入力３０２）を受け取る。操作ブロック５０２において、ＢＧＰ検出エンジン３０１は、シードＢＧＰルーターと通信を確立し、ブロック５０３において、ＢＧＰ検出エンジン３０１は、（例えば、ＳＮＭＰ問合せを使用して）シードＢＧＰルーターに対し、そのピアテーブルに関して問合せを行う。そして、ＢＧＰ検出エンジン３０１は、この要求したピアテーブルを受信し（図示されてはいない）、ブロック５０４において、このピアテーブルから、対象ドメイン内に存在するシードルーターのピアルーターを識別する。操作ブロック５０５において、ＢＧＰ検出エンジン３０１は、対象ドメイン内に存在しているシードルーターのピアルーターをＢＧＰ検出テーブ３０５に追加する。即ち、検出エンジン３０１は、シードルーターのピアテーブルから判定された対象ドメイン内のＢＧＰルーターのトポロジーに関する情報をＢＧＰ検出テーブル３０５に記入するのである。
【００５３】
特定の実施例においては、ＢＧＰ検出エンジン３０１は、操作ブロック５０６及び５０７を実行することができる（この実装例においては、これらは、任意選択であり、図５には、点線で示されている）。具体的には、操作ブロック５０６において、ＢＧＰ検出エンジン３０１は、対象ドメイン外に存在しているルーターに対するシードルーターのインターフェイスをシードルーターのピアテーブルから判定し、操作ブロック５０７において、図４の例に関して前述したように、それらのシードルーターのインターフェイス識別名をＢＧＰ検出テーブル３０５に追加する。
【００５４】
操作ブロック５０８において、ＢＧＰ検出エンジン３０１は、（例えば、ＳＮＭＰ問合せを使用して）対象ドメイン内に存在するものとして識別されたピアルーターの最初のものと通信を確立し（図示されてはいない）、このルーターに対して、そのピアテーブルに関する問合せを行う。そして、ＢＧＰ検出エンジン３０１は、要求したピアテーブルを受信し（図示されてはいない）、ブロック５０９において、そのピアテーブルから、対象ドメイン内に存在する問合せ先のピアルーターのピアルーターを識別する。操作ブロック５１０において、ＢＧＰ検出エンジン３０１は、それらの対象ドメイン内に存在する問合せ先のルーターのピアルーターをＢＧＰ検出テーブル３０５に追加する。即ち、検出エンジン３０１は、対象ドメイン内のＢＧＰルーターのトポロジーに関する問合せ先のルーターのピアテーブルから判定された更なる情報をＢＧＰ検出テーブル３０５に記入するのである。
【００５５】
特定の実施例においては、ＢＧＰ検出エンジン３０１は、操作ブロック５１１及び５１２を実行することができる（この実装例においては、これらは、任意選択であり、図５には、点線で示されている）。具体的には、操作ブロック５１１において、ＢＧＰ検出エンジン３０１は、問合せ先のルーターのピアテーブルから、対象ドメイン外に存在するルーターに対する問合せ先のルーターのインターフェイスを判定し、操作ブロック５１２において、図４の例に関して前述したように、問合せ先のルーターのそれらのインターフェイス識別名をＢＧＰ検出テーブル３０５に追加する。
【００５６】
次いで、ＢＧＰ検出エンジン３０１は、ブロック５１３において、そのピアテーブルに関してまだ問合せが行われていない対象ドメイン内に存在するものとして識別されている（例：ＢＧＰ検出テーブル３０５に書き込まれている）更なるピアルーターが存在するかどうかを判定する。そして、そのピアテーブルに関してまだ問合せが行われていないピアルーターが対象ドメイン内に少なくとも１つ以上存在する場合には、操作は、ブロック５１４に進み、ＢＧＰ検出エンジン３０１は、対象ドメイン内に存在するものとして識別されたピアルーターの次のものと通信を確立し（図示されてはいない）、このルーターに対して、そのピアテーブルに関する問合せを行う。次いで、操作は、ブロック５０９に戻る。
【００５７】
一方、ブロック５１３において、対象ドメイン内に存在するものとして識別されたピアルーターのすべてのその個々のピアテーブルに関する問合せが完了したとＢＧＰ検出エンジン３０１が判定した場合には、特定の実施例において、操作は、操作ブロック５１５に進む（この実装例においては、これは、任意選択であり、図５には、点線で示されている）。操作ブロック５１５において、ＢＧＰ検出エンジン３０１は、指定された対象ドメイン内のＢＧＰルーターのトポロジーの表示物を構築し、出力することができる。この表示物は、例えば、テキスト出力（例：表、フラットファイルなど）から構成すると共に／又は、判定されたトポロジーのグラフィカルな表現から構成することができる。そして、操作は、ブロック５１６において終了する。
【００５８】
コンピュータ実行可能命令によって実装する場合には、本発明の実施例のＢＧＰ検出エンジンの様々な要素は、本質的に、その操作を定義するソフトウェアコードである。実行可能な命令又はソフトウェアコードは、可読媒体（例：ハードドライブ媒体、光媒体、ＥＰＲＯＭ、ＥＥＰＲＯＭ、テープ媒体、カートリッジ媒体、フラッシュメモリ、ＲＯＭ、メモリスティック、及び／又はこれらに類似のもの）から取得可能であり、或いは、通信媒体（例：インターネット）からデータ信号によって伝達することも可能である。実際に、可読媒体には、情報を保存又は転送可能なあらゆる媒体が含まれる。
【００５９】
図６は、前述のＢＧＰ検出エンジンを実装するべく本発明の実施例に従って適合されたコンピュータシステムの例６００を示している。即ち、コンピュータシステム６００は、本発明の（ＢＧＰ検出エンジン３０１などの）実施例を実装可能なシステムの例を構成している。中央処理装置（ＣＰＵ）６０１は、システムバス６０２に結合されている。ＣＰＵ６０１は、どのような汎用ＣＰＵであってもよく、ＣＰＵ６０１が前述の本発明による操作をサポートしている限り、本発明は、ＣＰＵ６０１のアーキテクチャによって限定されるものではない。ＣＰＵ６０１は、本発明の実施例による様々な論理命令を実行することができる。例えば、ＣＰＵ６０１は、図３及び４に関連して前述した操作例に従うと共に／又は図５との関連で前述した模範的な操作フローに従って機械レベルの命令を実行することができる。
【００６０】
又、コンピュータシステム６００は、好ましくは、ランダムアクセスメモリ（ＲＡＭ）６０３を含んでおり、これは、ＳＲＡＭ、ＤＲＡＭ、ＳＤＲＡＭ、又はこれらに類似するものであってよい。コンピュータ６００は、好ましくは、読み出し専用メモリ（ＲＯＭ）６０４をも含んでおり、これは、ＰＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、又はこれらに類似するものであってよい。ＲＡＭ６０３及びＲＯＭ６０４は、当技術分野において周知のように、ＢＧＰ検出エンジン３０１に関連するデータ（例：シードテーブル３０４及び／又はＢＧＰ検出テーブル３０５）などのユーザー及びシステムのデータ及びプログラムを保持するものである。
【００６１】
又、コンピュータシステム６００は、好ましくは、入出力（Ｉ／Ｏ）アダプタ６０５、通信アダプタ６１１、ユーザーインターフェイスアダプタ６０８、及びディスプレイアダプタ６０９を含んでいる。Ｉ／Ｏアダプタ６０５、ユーザーインターフェイスアダプタ６０８、及び／又は通信アダプタ６１１は、特定の実施例においては、図３の例における入力３０２などの情報を入力するべく、ユーザーがコンピュータシステム６００とやり取りすることを可能にするものである。
【００６２】
Ｉ／Ｏアダプタ６０５は、好ましくは、１つ又は複数のハードドライブ、コンパクトディスク（ＣＤ）ドライブ、フロッピーディスクドライブ、テープドライブなどのストレージ装置６０６をコンピュータシステム６００に接続している。このストレージ装置は、ＢＧＰ検出エンジン３０１のデータ保存と関連するメモリ要件の観点で、ＲＡＭ６０３が不足している場合に、利用することができる。通信アダプタ６１１は、好ましくは、コンピュータシステム６００をネットワーク６１２（例：対象のＡＳ）に接続するべく適合されている。ユーザーインターフェイス６０８は、キーボード６１３、ポインティング装置６０７、及びマイクロフォン６１４などのユーザー入力装置及び／又はスピーカ６１５などの出力装置をコンピュータシステム６００に接続するものである。ディスプレイアダプタ６０９は、ディスプレイ装置６１０上の表示を制御し、例えば、ユーザーインターフェイスを表示するべく（例：ユーザーからの入力情報の受領及び／又はユーザーに対するＢＧＰトポロジー情報の出力用）、ＣＰＵ６０１によって駆動可能である。
【００６３】
尚、本発明は、このシステム６００のアーキテクチャに限定されるものではないことを理解されたい。例えば、パーソナルコンピュータ、ラップトップコンピュータ、コンピュータワークステーション、マルチプロセッササーバーを含む（但し、これらに限定されない）あらゆる適切なプロセッサに基づいた装置を利用することができる。更には、特定用途向け集積回路（ＡＳＩＣ）や超大規模集積回路（ＶＬＳＩ）上に、本発明の実施例を実装することも可能である。実際に、当業者であれば、本発明の実施例による論理的な操作を実行する能力を有する好適な構造をいくらでも利用することができよう。
【００６４】
又、前述の例は、ＢＧＰルータートポロジーを検出するためのものであるが、本発明の実施例は、その他のタイプのルーターのトポロジーを検出するためにも同様に使用可能であることを理解されたい。例えば、その個々のピアルーターのリストを維持管理するものであれば、どのようなルーターのトポロジーであっても、前述の方法により、検出エンジンによって検出可能である。従って、本発明の実施例は、特に、ＢＧＰルータートポロジーを検出するために適用可能なものではあるが、当業者であれば、これらの実施例を使用して対象ドメイン内の識別されたあらゆるタイプのルーターに対して再帰的な問合せを実行し、それらのトポロジーを作成可能であることを理解するであろう。
【００６５】
以上、本発明とその利点について詳細に説明したが、添付の請求項によって定義される本発明を逸脱することなしに、これらに対して様々な変更、置換、及び変形を加えることが可能であることを理解されたい。又、本発明は、本明細書に記述されたプロセス、機械、製造、事物の組成、手段、方法、及びステップの特定の実施例に限定されるものではない。この開示内容から容易に理解できるように、現存する或いは将来開発されるであろう本明細書に記述された対応する実施例と実質的に同一の機能を実行或いは実質的に同一の結果を実現するプロセス、機械、製造、事物の組成、手段、方法、又はステップを利用することができる。従って、添付の請求項は、これらのプロセス、機械、製造、事物の組成、手段、方法、又はステップをも、その範囲内に含むことを意図するものである。
【図面の簡単な説明】
【００６６】
【図１】本発明の実施例を利用可能な代表的なコンピュータの概略ブロックダイアグラムを示している。
【図２】代表的なインタードメインルーターの概略ブロックダイアグラムを示している。
【図３】本発明の実施例のＢＧＰ検出エンジンを実装可能なシステムのブロックダイアグラムの例を示している。
【図４】本発明の実施例のＢＧＰ検出エンジンを実装可能な別のシステムの例を示している。
【図５】本発明の一実施例によるＢＧＰ検出エンジンの動作フローチャートの例を示している。
【図６】本発明の実施例のＢＧＰ検出エンジンを実装可能なコンピュータシステムの例を示している。
【符号の説明】
【００６７】
３０１  ＢＧＰ検出エンジン
３０５  ＢＧＰ検出テーブル
６０１  プロセッサ
６０３、６０４、６０６  コンピュータ可読媒体
【図１】
2005080291.tif 000018
【図２】
2005080291.tif 000019
【図３】
2005080291.tif 000020
【図４】
2005080291.tif 000021
【図５】
2005080291.tif 000022
【図６】
2005080291.tif 000023