(57)【特許請求の範囲】
【請求項１】
ポリシーサーバから配布されるポリシーによって制御される複数のネットワークノードによって構成されるネットワークにおけるポリシーベースネットワーク制御方法であって、ネットワークポリシーサーバ内で確立される第１のポリシーが第１の機能と第２の機能とを含み、前記第１のポリシーを少なくとも前記第１の機能に関する第２のポリシーと前記第２の機能に関する第３のポリシーとに変換し、前記第２のポリシーと前記第３のポリシーとを前記複数のネットワークノードのうちの少なくとも１個のネットワークノードに配布し、前記第２のポリシーと前記第３のポリシーとを配布されたネットワークノードを前記第２のポリシーおよび前記第３のポリシーを使用して制御し、
前記第１のポリシーが少なくとも前記第１の機能および前記第２の機能を含む第１のポリシールールを含み、前記第２のポリシーが少なくとも前記第１の機能を含む第２のポリシールールを含み、前記第３のポリシーが少なくとも前記第２の機能を含む第３のポリシールールを含み、
前記第２のポリシールールが第１の仮想フローラベル値を定義し、前記第３のポリシールールが前記第１の仮想フローラベル値を参照することを特徴とするポリシーベースネットワーク制御方法。
【請求項２】
ポリシーサーバから配布されるポリシーによって制御される複数のネットワークノードによって構成されるネットワークにおけるポリシーベースネットワーク制御方法であって、ネットワークポリシーサーバ内で確立される第１のポリシーが第１の機能と第２の機能とを含み、前記第１のポリシーを少なくとも前記第１の機能に関する第２のポリシーと前記第２の機能に関する第３のポリシーとに変換し、前記第２のポリシーと前記第３のポリシーとを前記複数のネットワークノードのうちの少なくとも１個のネットワークノードに配布し、前記第２のポリシーと前記第３のポリシーとを配布されたネットワークノードを前記第２のポリシーおよび前記第３のポリシーを使用して制御し、
前記第１のポリシーが少なくとも動作部に前記第１の機能を含む第１のポリシールールと、第１の参照を含みかつ前記第２の機能を含む第２のポリシールールとを含み、前記第１の機能が複数のデータパケットのそれぞれの特定のフィールドの内容を変更し、前記第１の参照が前記第１の機能によって変更される前記特定のフィールドの値を参照し、前記第２のポリシーが少なくとも前記第１の機能を含みかつ動作部に第１の仮想フローラベルを含む第３のポリシールールと、前記第１の参照を条件部に含む第４のポリシールールとを含み、前記第３のポリシーが少なくとも第５のポリシールールを含み、前記第５のポリシールールが前記第５のポリシールールの条件部に前記仮想フローラベルへの参照を含み、かつ前記第５のポリシールールが前記第２の機能を含むことを特徴とするポリシーベースネットワーク制御方法。
【請求項３】
少なくとも第１の機能をもつ第１のポリシーおよび少なくとも第２の機能をもつ第２のポリシーをネットワークのポリシーサーバ内において確立し、前記第１のポリシーと前記第２のポリシーとを第３のポリシーに変換し、前記第３のポリシーは前記第１の機能および第２の機能に関連づけられ、前記第３のポリシーをネットワーク内の少なくとも１個のノードに配布し、前記第３のポリシーを配布されたネットワークノードを前記第３のポリシーを使用して制御し、
前記第１のポリシーが少なくとも第１のポリシールールを含み、前記第１のポリシールールが第１の条件を前記第１のポリシールールの条件部に含み、前記第１のポリシールールの動作部において複数のデータパケットのそれぞれの特定のフィールドに第１の値をマーキングし、
前記第２のポリシーが少なくとも第２のポリシールールを含み、前記第２のポリシールールの条件部において複数のデータパケットのそれぞれの前記特定のフィールドが前記第１の値をもつかどうかを決定し、前記第２のポリシールールの動作部に前記第１の機能をもち、前記第３のポリシーが少なくとも第３のポリシールールと第４のポリシールールをもち、
前記第３のポリシールールが前記第１の条件を条件部にもち、前記第１の機能を動作部にもち、
前記第４のポリシールールが複数のデータ・パケットのそれぞれの前記特定のフィールドが前記第１の値を含むかどうかを決定し、前記第１の機能を動作部に含むことを特徴とするポリシーベースネットワーク制御方法。
【請求項４】
少なくとも第１の機能をもつ第１のポリシーおよび少なくとも第２の機能をもつ第２のポリシーをネットワークのポリシーサーバ内において確立し、前記第１のポリシーと前記第２のポリシーとを第３のポリシーに変換し、前記第３のポリシーは前記第１の機能および第２の機能に関連づけられ、前記第３のポリシーをネットワーク内の少なくとも１個のノードに配布し、前記第３のポリシーを配布されたネットワークノードを前記第３のポリシーを使用して制御し、
前記第１のポリシーが少なくとも第１のポリシールールと第２のポリシールールとを含み、前記第１のポリシールールは前記第１のポリシールールの条件部に第１の条件を含み、前記第１のポリシールールの動作部に複数のデータパケットのそれぞれの特定のフィールドに第１の値をマーキングする動作を含み、
前記第２のポリシールールは前記第２のポリシールールの条件部に第２の条件を含み、
前記第２のポリシーは第３のポリシールールを含み、前記第３のポリシールールは複数のデータパケットのそれぞれの前記特定のフィールドが前記第１の値を含んでいるかどうかを決定する条件部をもち、かつ前記第２の機能を含む第３のポリシールールを少なくとも含み、
前記第３のポリシーは少なくとも第４のポリシールールと第５のポリシールールとを含み、
前記第４のポリシールールは前記第４のポリシールールの条件部に前記第１の条件を含み、かつ前記第４のポリシールールの動作部に前記第２の機能を含み、
前記第５のポリシールールは前記第２の条件を含み、かつ複数のデータパケットの前記特定のフィールドが前記第１の値を含むかどうかを決定する条件部を含み、前記第５のポリシールールの動作部に前記第２の機能を含むことを特徴とするポリシーベースネットワーク制御方法。
【請求項５】
請求項３又は４記載のポリシーベースネットワーク制御方法であって、少なくとも前記第１のポリシーが前記第１の機能を前記第１のポリシールールの動作部にもち、少なくとも前記第２のポリシーが前記第２の機能を前記第２のポリシールールの動作部にもち、前記第３のポリシーが少なくとも前記第１の機能を前記第３のポリシールールの動作部にもち、前記第２の機能を前記第４のポリシールールの動作部にもつことを特徴とするポリシーベースネットワーク制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ポリシーにもとづく制御が可能なネットワーク・ノードによって構成されたインターネット等のネットワークの制御、とくに QoS の制御に関する。
【０００２】
【従来の技術】
本発明に関連する第 1 の従来技術としてネットワークのポリシー制御方式がある。ネットワークのポリシー制御方式に関しては IETF (Internet Engineering Task Force) 等において議論されているが、その概説としてはつぎの文献がある。
「製品化始まったポリシー・サーバー」、日経インターネットテクノロジー、1999 年 6 月号、pp.144- 151。
特に、ポリシーにもとづく QoS (Quality of Service) 制御法についてはつぎの文献がある。
「White Paper - Introduction to QoS Policies」、 http://www.stardust.com/、1998 年。
【０００３】
ポリシー制御のないネットワーク・システムにおいては、ネットワーク機器の QoS 管理機能 (サービス品質管理機能) やセキュリティ管理機能などを制御する際に、ネットワーク機器ごとに設定をおこなう必要がある。しかし、ポリシー制御ネットワーク・システムにおいては、ポリシーサーバとよばれるコンピュータにポリシーを入力することによって、少量の情報を入力するだけでネットワーク全体への設定ができるようにしている。また、時刻によってポリシーを変更したり、アプリケーション・プログラムからの要求に応じて動的にポリシーを変更するなど、人間のオペレータでは実現困難なネットワーク制御を可能にしている。
【０００４】
ポリシーは、ポリシールールとよばれる規則のならびまたは集合である。ポリシールールは条件-動作型の規則である。すなわち、ある条件がなりたつときにとるべき動作を記述する規則である。ポリシー内でポリシールールに順序が指定されているときには、ポリシーの使用時に、条件がなりたつルールがみつかるまで順にポリシールールが検索される。ポリシーサーバにおいては高水準のポリシールールを操作するが、ルータ等のネットワーク機器の設定においても、低水準の条件-動作型の規則を使用することがおおい。たとえば、Cisco や日立のルータは QoS の制御、アクセス制御等において条件-動作型の規則を使用する。したがって、このようなネットワーク機器は低水準のポリシールールによって制御されるということができる。この場合、ポリシーサーバまたはポリシーサーバとネットワーク機器とを仲介するプロキシーサーバが高水準のポリシーから低水準のポリシーへの変換をおこなう。
【０００５】
本発明に関連する第 2 の従来技術として、Differentiated Services 技術 (以下 DiffServ 技術とよぶ) がある。DiffServ 技術はインターネット上での QoS (Quality of Service) すなわちサービス品質を保証するための技術である。DiffServ 技術に関してはつぎのような文献がある。
S. Blake 他著、An Architecture for Differentiated Services, RFC 2475, IETF, 1998 年。
K. Nichols 他著、A Two-bit Differentiated Services Architecture for the Internet, RFC 2638, IETF, 1999 年。
【０００６】
DiffServ 技術においては、第 1 のネットワーク・アプリケーションからネットワークを介して第 2 のネットワーク・アプリケーションとの間で一連のパケットが通信されるとき、これらが 1 個の「フロー」すなわち一連のパケットの流れに属しているとかんがえる。ある IP パケットがあるフローに属しているかどうかは、IP パケット上の始点と終点の IP アドレス、プロトコル、さらにそのプロトコルが TCP または UDP であるときはそのポートを識別することによって判定することができる。
【０００７】
第 1 のネットワーク・アプリケーションから第 2 のネットワーク・アプリケーションへのパス上には、まずネットワークへの入口のエッジ・ルータがあり、0 個またはそれ以上のコア・ルータがあって、ネットワークからの出口のエッジ・ルータがある。
【０００８】
このとき、DiffServ 技術においては、入口のエッジ・ルータにおいて複数のフローをまとめてパケット上の DS フィールド (Differentiated Services フィールド) に特定の値によってマーキングし、それ以降はその値をもつパケットをまとめてひとつのフロー (集成フロー aggregated flow と呼ぶ) としてあつかう。DS フィールドにふくまれる値は DSCP (Differentiated Services Code Point) とよばれる。集成フローをつくることによって、コア・ルータにおいては、DSCP だけを判定することによって集成フローごとに帯域幅やパケット転送の優先度などの QoS 条件を制御することができる。DiffServ 技術を使用することによって、フローを集成し DSCP だけで判定できるようになり、QoS 条件の制御のためのコア・ルータの負荷を軽減することができる。
【０００９】
DiffServ におけるいくつかの DSCP の値に対しては、QoS に関する標準的なふるまい (Per-hop behavior, PHB) がきめられている。Expedited Forwarding (EF) は仮想専用線にちかいふるまいであり、IETF の RFC 2598 において規定されている。EF に対して推奨されている DSCP の値は 46 である。Assured Forwarding (AF) は複数のふるまいがことなるサービスを定義できる枠組みであり、IETF の RFC 2597 において規定されている。また、Best Effort (BE) は従来と互換のふるまいであり、DSCP としては 0 がわりあてられている。
【００１０】
【発明が解決しようとする課題】
前記のようにポリシーサーバにおける高水準ポリシーをネットワーク機器における低水準ポリシーに変換する際、それらのポリシーを 1 対 1 に対応させることができれば、変換は容易である。すなわち、高水準ポリシーのそれぞれに対して、同一の機能を実現することができる低水準ポリシーが存在すれば、水準の変換だけでよい。しかし、低水準のポリシーはネットワーク機器のハードウェア機能等によって制約されているため、1 対 1 に対応させることはかならずしもできない。
【００１１】
高速のネットワーク機器はパケットを高速処理するためのハードウェアをもっている。Juniper 社などのルータは高速ルーティングのための専用ハードウェアをもっている。日立のルータ GR2000 はルーティングにくわえて QoS 制御のための専用ハードウェアをもっている。さらに、最近のネットワーク機器は、Cisco 社のルータ Cisco 10000 などをふくめて、パケットプロセッサないしネットワークプロセッサとよばれる限定された機能を高速に実行できるプロセッサを内蔵するようになってきている。
【００１２】
これらのハードウェアは汎用ではないので、ある程度、機能が限定されている。そのため、任意のポリシーを 1 対 1 に変換することはかならずしもできない。すなわち、1 個の高水準ポリシーにふくまれるルールを等価な機能を実現する複数個の低水準ポリシーのルールに分割する必要が生じることもあり、また複数個の高水準ポリシーにふくまれるルールを等価な機能を実現する 1 個の低水準ポリシーのルールに融合する必要が生じることもある。また、ハードウェア機能の限定のため、ポリシールールも 1 対 1 に変換することはかならずしもできない。すなわち、高水準ポリシーに属する 1 個のポリシールールを 1 個の低水準ポリシーに属する等価な機能を実現する複数のポリシールールに変換しなければならないばあいもあり、また高水準ポリシーに属する複数個のポリシールールを低水準ポリシーに属する等価な機能を実現する 1 個のポリシールールに変換しなければならないばあいもある。
【００１３】
本発明の目的は、ポリシー制御ネットワーク・システムにおいて、ポリシーサーバからポリシールールをネットワーク機器に配布する際に、たとえネットワーク機器の低水準ポリシーに制約があって高水準ポリシーから 1 対 1 に変換できないばあいにも高水準ポリシーを機器の制約をみたす低水準ポリシーに変換できるようにすることにある。
【００１４】
【課題を解決するための手段】
前記の課題は、つぎのような手段によって解決することができる。変換型判定手段は高水準ポリシーを入力して、ポリシー分割をおこなうかどうか、ポリシー融合をおこなうかどうか、という変換の型を判定する。ポリシー分割手段は 1 個の高水準ポリシーから、等価な機能を実現する複数個の低水準ポリシーを生成する。ポリシー融合手段は複数個の高水準ポリシーから、等価な機能を実現する 1 個の低水準ポリシーを生成する。したがって、本発明によれば高水準ポリシーと低水準ポリシーとが 1 対 1 に対応しないばあいにも高水準ポリシーを低水準ポリシーに変換することが可能になる。
【００１５】
【発明の実施の形態】
本発明の実施例を説明する。
まず、この実施例におけるネットワーク構成を図 1 を使用して説明する。このネットワークにおいてはインターネット・プロトコルを使用する。ネットワークはルータ 101、ルータ 111、ルータ 121 をギガビット・イーサネット等によって接続することによって構成される。ルータ 101、ルータ 111、ルータ 121 をポリシーサーバ 103 が制御する。このネットワークにはアプリケーションサーバ 131、132、およびこれらを利用するクライアント 141、142、143、144 が接続されている。これにより、たとえば MPEG 画像や音声の再生、マルチメディア・データをふくむ World Wide Web の利用などをおこなう。
【００１６】
ルータ 101 には 192.168.1.2 という IP アドレスがあたえられている。ルータ 101 はネットワーク・インタフェース 102、104、105 をもっている。ネットワーク・インタフェース 102 にはインタフェース番号 1、ネットワーク・インタフェース 105 にはインタフェース番号 2、ネットワーク・インタフェース 104 にはインタフェース番号 3 が割り当てられている。
【００１７】
ルータ 111 には 192.168.2.2 という IP アドレスが与えられている。ルータ 111 はネットワーク・インタフェース 112、113、114 をもっている。ネットワーク・インタフェース 112 にはインタフェース番号 1、ネットワーク・インタフェース 113 にはインタフェース番号 2、ネットワーク・インタフェース 114 にはインタフェース番号 3 が割り当てられている。
【００１８】
ルータ 121 には 192.168.3.2 という IP アドレスが与えられている。ルータ 121 はネットワーク・インタフェース 122、123、124, 125 をもっている。ネットワーク・インタフェース 122 にはインタフェース番号 1、ネットワーク・インタフェース 123 にはインタフェース番号 2、ネットワーク・インタフェース 124 にはインタフェース番号 3、ネットワーク・インタフェース 125 にはインタフェース番号 4 が割り当てられている。
【００１９】
ルータ 101 とルータ 111 とはネットワーク・インタフェース 102 とネットワーク・インタフェース 112 とのあいだで接続されているが、このラインにはサブネット・アドレス 192.168.1.* がわりあてられている。ルータ 111 とルータ 121 とはネットワーク・インタフェース 113 とネットワーク・インタフェース 123 との間で接続されているが、このラインにはサブネット・アドレス 192.168.2.* が割り当てられている。ルータ 121 とルータ 101 とはネットワーク・インタフェース 123 とネットワーク・インタフェース 105 との間で接続されているが、このラインにもサブネット・アドレス 192.168.2.* が割り当てられている。
【００２０】
アプリケーションサーバ 131 はルータ 101 のネットワーク・インタフェース 104 に接続されているが、この間のサブネットにはアドレス 192.168.4.* がわりあてられている。アプリケーションサーバ 132 はルータ 111 のネットワーク・インタフェース 114 に接続されているが、この間のサブネットにはアドレス 192.168.5.* がわりあてられている。クライアント 141、142、143、144 はルータ 121 のネットワーク・インタフェース 125 に接続されているが、この間のサブネットにはアドレス 192.168.6.* と 192.168.7.* とが割り当てられている。クライアント 141 にはアドレス 192.168.7.1 がわりあてられ、クライアント 142 にはアドレス 192.168.7.2 がわりあてられ、クライアント 143 にはアドレス 192.168.7.3 がわりあてられ、クライアント 144 にはアドレス 192.168.7.4がわりあてられている。クライアント 145 はルータ 121 のネットワーク・インタフェース 124 に接続されているが、この間のサブネットにはアドレス 192.168.8.* がわりあてられている。クライアント 145 にはアドレス 192.168.8.1 がわりあてられている。
なお、以上では 121 がルータであることを前提にしていたが、121 がアクセス・ノードであっても以下のように実施することができる。
【００２１】
つぎに、ポリシーサーバ 103 の構成を図 2 を使用して説明する。ポリシーサーバはパーソナル・コンピュータまたはワークステーションのような汎用のコンピュータを使用して実装される。ポリシーサーバ 103 を構成するポリシー入力処理部 202 およびポリシー送信部 206 はいずれもソフトウェアによって実現される。また、ポリシーリポジトリ 211 およびネットワーク構成管理表 212 はハードディスク上または主記憶上におかれる。
【００２２】
ポリシーサーバ 103 はオペレータ・コンソール 201 と接続され、オペレータからの入力を受けつけ、またオペレータへの出力をおこなう。オペレータ・コンソール 201 を使用してポリシールールが追加、削除または更新されるが、このようなオペレータ・コンソール 201 の入出力はポリシー入力処理部 202 によって制御される。入力されたポリシールールはポリシーリポジトリ 211 に保存される。
ポリシー送信部 206 はポリシーリポジトリ 211 からとりだされたポリシールールをルータに追加またはルータから削除する。この際、対象となるルータを特定するためにネットワーク構成管理表 212 を使用する。
【００２３】
つづいて、図 3 を使用してポリシー入力処理部 202 がオペレータ・コンソール 201 からうけとる入力項目について説明する。オペレータはまず入力するポリシールールの種類を選択する。この実施例においては、ポリシーの種類として、エッジポリシー (Edge policy) とコアポリシー (Core policy) とがある。エッジポリシーはネットワークのエッジルータにおいて特定の IP アドレスやアプリケーションからのパケット・フローを分類する (MF Classification) 方法を指定し、そのフローの量が一定値をこえたときにパケットを廃棄するかどうかを指定し (Policing)、パケットの DSCP フィールドにマーキングする値を指定するのに使用するポリシーである。コアポリシーはフローを DSCP によって分類する (BA Classification) 方法を指定し、ルータからラインへの出力時のパケット・スケジューリング・アルゴリズムを指定し、出力キューの優先度やキューごとの帯域幅などを指定するポリシーである。オペレータは図 3 (a) および図 3 (b) のポリシールールを GUI を使用して入力することができる。
【００２４】
エッジポリシー 301 はエッジポリシールール 311, 312, 313, 314 によって構成されている。エッジポリシールール 311 は IP アドレス 192.168.6.* すなわち 192.168.6.1 から 192.168.6.255 までの IP アドレスからくるパケットに対して適用され、前記のパケットのうち DSCP が 18 であるものをなにもせずに通過させることを意味している。エッジポリシールール 312 は IP アドレス 192.168.7.1 または 192.168.7.3 からくるパケットに対して適用される．前記のパケットのフローを計測して、もし転送速度が 1 Mbps 以下であるときは DSCP を 46 にし、1 Mbsp をこえるときは、こえたぶんのパケットを廃棄する。エッジポリシールール 313 は IP アドレス 192.168.7.2 または 192.168.7.4 からくるパケットに対して適用され、前記のパケットの DSCP を 10 にする。エッジポリシールール 314 は以上のいずれのエッジポリシールールも適用されなかったパケットの DSCP を 0 にする。
【００２５】
コアポリシー 351 はコアポリシールール 361, 362, 363, 364 によって構成されている。コアポリシールール 361 は DSCP が 46 であるパケットに対して適用され、前記のパケットに関するスケジューリング・アルゴリズム (Scheduling_algorithm) を "Priority" にする。すなわち、優先度によるスケジューリングを指定する。また、キューの優先度 (Queue_priority) を 6 に設定する。コアポリシールール 362 は DSCP が 10 であるパケットに対して適用され、前記のパケットに関するスケジューリング・アルゴリズム (Scheduling_algorithm) を "Priority" にし、キューの優先度 (Queue_priority) を 5 に設定する。コアポリシールール 363 は DSCP が 18 であるパケットに対して適用され、前記のパケットに関するスケジューリング・アルゴリズム (Scheduling_algorithm) を "Priority" にし、キューの優先度 (Queue_priority) を 5 に設定する。コアポリシールール 364 は 以上のいずれのコアポリシールールも適用されなかったパケットに対して適用され、前記のパケットに関するスケジューリング・アルゴリズム (Scheduling_algorithm) を "Priority" にし、キューの優先度 (Queue_priority) を 2 に設定する。
【００２６】
つづいて、図 4 を使用してポリシーリポジトリ 211 の内容について説明する。図 4 は、図 3 のすべてのポリシールールが新規にポリシー入力部 202 にあたえられたときのポリシーリポジトリ 211 の内容をあらわしている。ポリシーリポジトリ 211 はエッジポリシー・リポジトリ 401 とコアポリシー・リポジトリ 402 とによって構成されている。エッジポリシー・リポジトリ 401 は入力されたエッジポリシールール 311, 312, 313, 314 をふくみ、各エッジポリシールールに対応してルール識別子欄 411, 412, 413, 414 とイベント欄 421, 422, 423, 424 が存在する。イベント欄は当該のポリシールールに関してポリシーサーバ 103 が実行するべき動作を指定している。その種類には deploy, undeploy, redeploy があるが、この例においてはすべてのポリシールールが新規に入力されたことを仮定しているので、すべてのエッジポリシールールに対して deploy が指定されている。
【００２７】
コアポリシー・リポジトリ 412 は入力されたコアポリシールール 361, 362, 363, 364 をふくみ、各コアポリシールールに対応してルール識別子欄 431, 432, 433, 434 とイベント欄 451, 452, 453, 454 が付加されている。イベント欄 451, 452, 453, 454 においては、イベント欄 421, 422, 423, 424 と同様にすべてのコアポリシールールに対して deploy が指定されている。
【００２８】
つづいて、図 5 を使用してポリシー入力処理部 202 の動作を説明する。ポリシー入力処理部 202 の動作が開始されると、ステップ 501 から 532 までの処理を無限にくりかえす。まずステップ 501 においてはルールの編集メニューすなわち「新規ルール定義」か「既存ルール編集」か「ポリシー送信」(Deploy) かのいずれかを選択するメニューをオペレータ・コンソール 201 に表示して、オペレータの入力を待つ。つぎにステップ 502 においてオペレータ入力が新規ルール定義、既存ルール編集、ポリシー送信のいずれであるかを判定する。新規ルール定義のばあいにはステップ 511 にすすみ、既存ルール編集のばあいにはステップ 521 にすすみ、ポリシー送信のばあいはステップ 532 にすすむ。
【００２９】
ステップ 511 においては、現在つかわれていないルール識別子を 1 個生成する。つぎにステップ 512 において、ルールタイプ入力メニューをオペレータ・コンソール 201 に表示して、オペレータの入力を待つ。さらにステップ 514 において、前記のルール識別子をキーとして、ルールの型ごとに条件部、動作部の内容をエッジポリシーリポジトリ 401 またはコアポリシーリポジトリ 402 に登録する。エッジポリシールール 311 が入力されたときには、ステップ 511 においてルール識別子として #1 が生成される。そして、ポリシーリポジトリ 211 にルール 311 がルール識別子 #1 411 をキーとしてエッジポリシー・リポジトリ 301 内に登録される。コアポリシールール 361 が入力されたときには、ステップ 511 においてルール識別子として #5 が生成される。そして、ポリシーリポジトリ 211 にルール 361 がルール識別子 #5 431 をキーとしてコアポリシー・リポジトリ 351 内に登録される。そしてステップ 531 にすすむ。
【００３０】
ステップ 521 においては、すでに入力されたルールのなかから編集するルールを選択するためのルール選択メニューを表示して、オペレータの入力を待つ。オペレータの入力があったら、ステップ 522 において、図 4 にしるされたいずれかのテンプレートを使用し、選択されたルールの内容と「OK」ボタンおよび「削除」ボタンを表示してオペレータによるボタンのクリックを待つ。ここでオペレータはテンプレート上のルールの内容を自由にかきかえることができる。ボタンがクリックされたら、ステップ 524 にすすむ。ステップ 524 においては、クリックされたのが「OK」ボタンなのか「削除」ボタンなのかを判定する。「OK」ボタンがクリックされたばあいはステップ 525 にすすみ、「削除」ボタンがクリックされたばあいはステップ 527 にすすむ。
【００３１】
ステップ 525 においては編集されたルールのルール識別子をキーとしてポリシーリポジトリ 211 に編集後のルールの内容を登録する。つぎにステップ 531 にすすむ。ステップ 527 においてはルール識別子をキーとする既登録のルールをポリシーリポジトリ 211 から削除する。そして、ステップ 531 にすすむ。
ステップ 531 においてはポリシー・リポジトリの当該ルールのイベント欄に "deploy" を記入する。そして、ステップ 501 にもどってつぎのオペレータ入力を待つ。
ステップ 531 においてはポリシー送信部 206 を起動する。
【００３２】
つづいて、図 6 を使用してネットワーク構成管理表 212 の内容を説明する。ネットワーク構成管理表 212 は対象 IP アドレス欄 611、ルータ IP 欄 612、ルータ・インタフェース欄 613 という 3 個の欄によって構成されている。ネットワーク構成管理表 212 には 4 個の項目が登録されている。最初の項目 602 においては、対象 IP アドレス欄 611 が 192.168.4.*、ルータ IP 欄 612 が 192.168.1.2、ルータ・インタフェース欄 613 が 3 である。項目 602 はサブネット 192.168.4.* に接続されているのが IP アドレス 192.168.1.2 のルータのインタフェース番号が 3 のインタフェースであることをあらわしている。項目 603 はサブネット 192.168.5.* に接続されているのが IP アドレス 192.168.2.2 のルータのインタフェース番号が 3 のインタフェースであることをあらわしている。項目 604 はサブネット 192.168.6.* に接続されているのが IP アドレス 192.168.3.2 のルータのインタフェース番号が 4 のインタフェースであることをあらわしている。項目 605 はサブネット 192.168.7.* に接続されているのが IP アドレス 192.168.3.2 のルータのインタフェース番号が 4 のインタフェースであることをあらわしている。サブネット 192.168.6.* およびサブネット 192.168.7.* は同一のインタフェースに接続されている。
【００３３】
つづいて、図 7 を使用してポリシー送信部 206 の動作を説明する。ポリシー送信部 206 の実行が開始されると、まず、ステップ 701 において当該ポリシー内のすべてのポリシールールに対して 702 の処理をくりかえす。ステップ 702 においては、ポリシーリポジトリ 211 内のすべてのポリシーに対して 703〜721の処理をくりかえす。
【００３４】
すなわち、まずステップ 703 において、ネットワーク構成管理表 212 から当該のポリシーを配布するべきルータとそのインタフェース番号をもとめる。当該ルールの条件部に始点の IP アドレスがあらわれていれば、当該 IP アドレスをネットワーク構成管理表 212 において検索して、ルータとインタフェース番号とをもとめる。当該ルールの条件部に IP アドレスがあらわれていなければ、ポリシーサーバ 103 が管理するすべてのルータに対して当該ルールを配布する。後者の場合には 704 から 721 までの処理を、ポリシーサーバ 103 が管理するすべてのルータのすべてのインタフェースに関してくりかえす。ポリシールール 311 の処理においては始点の IP アドレスが 192.168.6.* と指定されているため、ネットワーク構成管理表 212 を検索するとルータの IP アドレスは 192.168.3.2、インタフェース番号は 4 に特定される。また、ポリシールール 314 および 361 の処理においては始点の IP アドレスの指定はないので、ルータ 101, 111, 121 のすべてのインタフェースに対して 704 から 721 までの処理を実行する。
【００３５】
つぎにステップ 704 においては当該のポリシールールに対して指定されたイベントがなんであるかを判定する。それが Deploy であればステップ 711 にすすみ、Undeploy であればステップ 721 にすすむ。
ステップ 711 においては当該のポリシールールがすでに前記のルータに送信ずみであり、前記のルータに格納されているかどうかを判定する。ここでは、前記のルータにといあわせるのではなく、ポリシーサーバ 103 がもつ情報によって判定をおこなう。図 16 の説明でのべるようにルールを送信したかどうかをフラグで管理していれば、ステップ 711 においてはこのフラグを参照するだけで判定をおこなうことができる。判定の結果、まだ前記のルータ上にルールが存在すると判定されればステップ 712 にすすみ、存在しないと判定されればステップ 716 にすすむ。
【００３６】
ステップ 712 においては、前記のルータに前記のルールに関する redeploy 命令を送信する。この redeploy 命令には、前記のルールのルール識別子と前記のインタフェース番号とを指定する。そして、ステップ 712 のくりかえしを終了する。
【００３７】
ステップ 716 においては、前記のルータに前記のルールに関する deploy 命令を送信する。この deploy 命令には、前記のルールのルール識別子とルールの内容、そして前記のインタフェース番号を指定する。項目 702 の処理においては、指定されたルールのルール識別子が #1 なので、ポリシーリポジトリ 211 から項目 402 および項目 402 から指示されるテーブル (A) をとりだして、その内容を送信する。命令の種類は項目 702 のイベント欄 722 において指定されている deploy である。そして、ステップ 712 のくりかえしを終了する。ステップ 716 はルールが追加されたときと更新されたときの両方のばあいに実行される。ルータ 121 に対して、追加されたときは前記のルールを追加し、更新されたときは前記のルールと同一のルール識別子ですでに定義されていたルールを前記のルールによって置換することになる。
ステップ 721 においては、前記のルータに前記のルールに関する undeploy 命令を送信する。この undeploy 命令には、前記のルールのルール識別子と前記のインタフェース番号とを指定する。
【００３８】
ルータ 121 の構成を図 8 を使用して説明する。ルータ 112、ルータ 101 の構成も図 8 のとおりである。以下で説明するポリシー受信部 801、ポリシーコンパイラ 803 はソフトウェアによって実現される。また、クロスバースイッチ 820、ネットワーク・インタフェース 822、ネットワーク・インタフェース 823 はハードウェアによって実現される。トラフィック制御部 821、ルーティング制御部 824 はソフトウェアまたはハードウェアによって実現される。ラベル参照表 812 と高水準ポリシー DB 811 は主記憶または他の半導体記憶上におかれる。低水準ポリシー DB 813 とキュー設定表 814 はレジスタまたは主記憶上におかれる。
【００３９】
ポリシー受信部 801 はポリシーサーバ 103 からポリシールールを受信して高水準ポリシー DB 811 に格納し、ラベル参照表 812 を生成する。ポリシーコンパイラ 803 は高水準ポリシー DB 811 がふくむポリシーを実行可能な形式に変換し、結果を低水準ポリシー 813 およびキュー設定表 814 に格納する。
【００４０】
トラフィック制御部 821 はポリシールール表 813 とキュー設定表 814 を使用してネットワーク・インタフェース 822 およびネットワーク・インタフェース 823 におけるネットワーク・トラフィックを制御する。クロスバースイッチ 820 はネットワーク・インタフェース間のデータ転送をおこない、それをルーティング制御部 824 が制御する。
【００４１】
つづいて図 9 を使用してネットワーク・インタフェース 822 の構成を説明する。ネットワーク・インタフェース 823 の構成も図 9 のとおりである。ネットワーク・インタフェース 822 に入力されたパケットはまずフロー分類部 901 においてどのフローに属するか分類される。フィルタリング・ポリシールールがフロー分類部 901 を制御する。つぎにフロー計測部 902 において前記のフローが指定されたトラフィック条件をみたしているかどうかを判定し、その結果にしたがってスケジューリング部 903 において、スケジューリング部がふくんでいる出力キューのなかから当該パケットをいれるキューを選択し、必要に応じてフローをシェイピングし、パケットを廃棄するなどの動作をとる。計測・スケジューリング・ポリシールールがフロー計測部 902 およびスケジューリング部 903 を制御する。キューからの出力はクロスバースイッチ 820 におくりだされる。
【００４２】
つづいて、図 10 を使用して高水準ポリシー DB 811 の内容を説明する。図 10 は図 3 のすべての入力がこの順にポリシー入力部にあたえられたときの高水準ポリシー DB 811 の内容をあらわしている。高水準ポリシー DB 811 のルール識別子欄 1021 の内容はポリシーリポジトリ 211 の対応するルール識別子欄 411、412、413、414、431、432、433、または 434 とひとしい。また、当該ルールがエッジポリシー 301 に属するときはポリシー型欄 1022 には Edge、コアポリシー 351 に属するときはポリシー型欄 1022 には Core がかきこまれる。また、ルールポインタ 1023 は当該ルールへのポインタをふくむ。インタフェース欄 1024 は当該ルールを作用させるべきネットワーク・インタフェースの番号をあらわす。また、コード欄 1025 はポリシールール表 813 において当該ルールを変換して格納した番地をあらわす。
【００４３】
行 1011 はルール 311 の情報をあらわしている。すなわち、そのルール識別子 1021 は #1 であり、ポリシー型は Edge であり (すなわちエッジポリシールールであり)、ルールポインタはルール 311 を指示し、このルールが作用するインタフェース番号は 4 であり、このルールから生成されたコードの先頭番地は 90 である。行 1015 はルール 351 の情報をあらわしている。すなわち、そのルール識別子 1021 は #5 であり、ポリシー型は Core であり (すなわちコアポリシールールであり)、ルールポインタはルール 351 を指示し、このルールが作用するインタフェース番号は 1, 2, 3, 4 であり、このルールから生成されたコードの先頭番地は 332 である。
【００４４】
つづいて、図 11 を使用してラベル参照表 812 の内容を説明する。ラベル参照表 812 は 4 個の要素をふくんでいる。第 1 要素 1111 はラベル種別として "DSCP"、ラベル値として 18 という値をふくんでいる。また、定義ルール識別子として #1、使用ルール識別子として #7 という値をふくんでいる。これは、値が 18 である DSCP がルール識別子 #1 のルールにおいて定義され、ルール識別子 #7 のルールにおいて使用されていることをあらわす。
【００４５】
第 2 要素 1112 はラベル種別として "DSCP", ラベル値として 46、定義ルール識別子として #2、使用ルール識別子として #5 という値をふくんでいる。これは、値が 46 である DSCP がルール識別子 #2 のルールにおいて定義され、ルール識別子 #5 のルールにおいて使用されていることをあらわす。
【００４６】
第 3 要素 1113 はラベル種別として "DSCP", ラベル値として 10、定義ルール識別子として #3、使用ルール識別子として #6 という値をふくんでいる。これは、値が 10 である DSCP がルール識別子 #3 のルールにおいて定義され、ルール識別子 #6 のルールにおいて使用されていることをあらわす。
【００４７】
第 4 要素 1114 はラベル種別として "DSCP", ラベル値として 0、定義ルール識別子として #3、使用ルール識別子として #8 という値をふくんでいる。これは、値が 0 である DSCP がルール識別子 #3 のルールにおいて定義され、ルール識別子 #8 のルールにおいて使用されていることをあらわす。これらの要素においては定義ルール識別子、使用ルール識別子ともに 1 個ずつをふくんでいるが、これらが複数個のばあいもある。
【００４８】
つづいて、図 12 を使用してポリシー受信部 801 の動作を説明する。ポリシー受信部 801 の実行が開始されると、まずステップ 1201 においてポリシーサーバ 103 からの送信データを待つ。データを受信したら、ステップ 1202 において受信したデータがふくむ命令がなんであるかを判定する。Deploy 命令であるばあいはステップ 1211 にすすみ、Undeploy 命令であるばあいはステップ 1221 にすすみ、Redeploy 命令であるばあいはステップ 1212 にすすむ。
【００４９】
ステップ 1211 においては、Deploy 命令にふくまれるルールを高水準ポリシー DB 811 にルール識別子をキーとして登録する。そして、ステップ 1212 にすすむ。ステップ 1212 においては、受信したルールのルール識別子をラベル参照表 812 に登録する。そして、ステップ 1531 にすすむ。
【００５０】
ステップ 1221 においては、Undeploy 命令において指定されたルール識別子をもつルールを削除する。つづいて、ステップ 1222 において、受信したルールのルール識別子をすべてラベル参照表 812 から削除する。そして、ステップ 1231 にすすむ。
【００５１】
ステップ 1231 においては、継続して受信するデータがあるかどうかを判定する。データがあるときはステップ 1201 にもどってつぎの受信データを処理する。データがないときはステップ 1232 にすすむ。すなわち、ステップ 1231 においては一定時間内につぎのデータが到着するかどうかをしらべ、到着すればそれを処理し、到着しなければつぎの処理にうつる。ステップ 1232 においては、継続して受信したすべてのルール識別子を指定してポリシールール依存関係解析部 802 をよぶ。そして、ステップ 1201 にもどってつぎの受信データを処理する。
【００５２】
ステップ 1231 においては一定時間内につぎのデータが到着するかどうかによってひとかたまりのデータを識別しているが、より確実に高速にひとかたまりのデータを識別するためには、ポリシーサーバ 103 からの送信データのなかにデータのくぎりをあらわす命令をいれればよい。すなわち、Commit 命令を新設し、ポリシー送信部において 1 個のポリシーを送信しおわるたびに Commit 命令を発行する。ルータ 101 においては、Commit 命令をうけたときにステップ 1232 を実行すればよい。
【００５３】
つづいて、図 13 を使用して低水準ポリシー DB 813 の内容を説明する。低水準ポリシー DB 813 においてはルールはネットワーク・インタフェースごとにまとめて格納される。すなわち、命令先頭位置表 1301 の最初の要素 1311 がインタフェース番号 1 のネットワーク・インタフェースに関するルールのリストを指示し、命令先頭位置表 1301 の第 2 の要素 1312 がインタフェース番号 2 のネットワーク・インタフェースに関するルールのリストを指示し、命令先頭位置表 1301 の第 3 の要素 1313 がインタフェース番号 3 のネットワーク・インタフェースに関するルールのリストを指示する。しかし、図 13 においてはこれらのリストは空である。命令先頭位置表 1301 の第 4 の要素 1314 がインタフェース番号 4 のネットワーク・インタフェースに関するルールのリストを指示するが、フィルタリング・ポリシーの先頭番地は 90 (1305) であり、計測・スケジューリング・ポリシーの先頭番地は 300 (1306) である。
【００５４】
フィルタリング・ポリシー 1315 について説明する。番地 90 にはルール 1331 がおかれている。ルール 1331 はルール 311 に対応する低水準ポリシールールである。番地 118 にはルール 1332、番地 146 にはルール 1333 がおかれている。ルール 1332 および 1333 はルール 312 に対応する低水準ポリシールールである。番地 174 にはルール 1334、番地 202 にはルール 1335 がおかれている。ルール 1334 および 1335 はルール 313 に対応する低水準ポリシールールである。番地 230 にはルール 1336 がおかれている。ルール 1336 はルール 314 に対応する低水準ポリシールールである。ただし、図 3 のルールがもつ情報のうちの一部はキュー設定表 814 のなかに格納されていて、図 3 のなかには存在しない。
【００５５】
ルール 1332 において、フローの始点 IP アドレスの下限 1321 には 192.168.7.1 が指定されている。フローの始点 IP アドレスの上限 1322 にも 192.168.7.1 が指定されている。したがって、ルール 1332 は始点が 192.168.7.1 であるパケットだけに作用する。始点のポート 1323 には値が指定されていない。これは、このルールが任意のフロー始点ポートを指定したパケットに対して適用されることをあらわしている。フローの終点 IP アドレスの下限 1324 には 0.0.0.0 が指定されている。
【００５６】
フローの終点 IP アドレスの上限 1325 には 255.255.255.255 が指定されている。これは、終点 IP アドレスが任意のパケットに適用されることをあらわしている。終点のポート 1326 には 0 が指定されているが、これはポート番号が任意のパケットに適用されることをあらわしている。DSCP 1327 には値が指定されていない。これは、ルール 1332 が任意の DSCP をもつパケットに適用されることをあらわしている。ルール 1331 においては DSCP 1327 に 18 が指定されている。これは、ルール 1331 が DSCP が 18 のパケットだけに適用されることをあらわしている。
ルール 1332 において、新 DSCP 1328 には 46 が指定されている。これは、ルール 1332 が DSCP を 46 にかきかえることをあらわしている。フィルタ・アクション 1330 にはなにも指定されていないので、フィルタ動作はおこなわない。
【００５７】
ルール 1332 において、フローの始点 IP アドレスの下限 1321 には 192.168.7.1 が指定されている。フローの始点 IP アドレスの上限 1322 にも 192.168.7.1 が指定されている。したがって、ルール 1332 は始点が 192.168.7.1 であるパケットだけに作用する。始点のポート 1323 には値が指定されていない。これは、このルールが任意のフロー始点ポートを指定したパケットに対して適用されることをあらわしている。
【００５８】
フローの終点 IP アドレスの下限 1324 には 0.0.0.0 が指定されている。フローの終点 IP アドレスの上限 1325 には 255.255.255.255 が指定されている。これは、終点 IP アドレスが任意のパケットに適用されることをあらわしている。終点のポート 1326 には 0 が指定されているが、これはポート番号が任意のパケットに適用されることをあらわしている。
【００５９】
DSCP 1327 には値が指定されていない。これは、ルール 1332 が任意の DSCP をもつパケットに適用されることをあらわしている。ルール 1331 においては DSCP 1327 に 18 が指定されている。これは、ルール 1331 が DSCP が 18 のパケットだけに適用されることをあらわしている。
【００６０】
以上をまとめると、ルータ 121 のネットワーク・インタフェース 125 に作用するフィルタリング・ポリールール 1332 の意味はつぎのようになる。始点アドレスが 192.168.7.1 のフローに対して、DSCP 46 をマークする。フィルタリング・ポリシールールにおいては条件を "or" でむすぶことはできない。すなわち、ハードウェアの制約により、"or" でむすばれた高水準ポリシールールは複数個のフィルタリング・ポリシールールに分割する必要がある。この点は下記の計測・スケジューリング・ポリシールールにおいても同様である。
【００６１】
図 14 を使用して計測・スケジューリング・ポリシー 1316 について説明する。番地 300 のルールはルール 311 および 363 に対応するルールである。番地 332 のルールはルール 312 および 362 に対応するルールである。番地 364 および 396 のルールはルール 313 および 362 に対応するルールである。番地 428 のルールはルール 364 に対応するルールである。
【００６２】
番地 300 のルールにおいて、フローの始点 IP アドレスの下限 1341 には 192.168.6.0 が指定されている。フローの始点 IP アドレスの上限 1342 には 192.168.6.255 が指定されている。したがって、番地 300 のルールは始点が 192.168.6.* であるパケットに作用する。始点のポート 1343 には値が指定されていない。これは、このルールが任意のフロー始点ポートを指定したパケットに対して適用されることをあらわしている。
【００６３】
フローの終点 IP アドレスの下限 1344 には 0.0.0.0 が指定されている。上限 1345 には 255.255.255.255 が指定されている。これは、終点 IP アドレスが任意のパケットに適用されることをあらわしている。終点のポート 1346 には 0 が指定されているが、これはポート番号が任意のパケットに適用されることをあらわしている。
【００６４】
DSCP 1347 には 18 が指定されている。これは、番地 300 のルールが DSCP が 18 のパケットだけに適用されることをあらわしている。情報レート 1348 には帯域幅の上限を指定するときは 0 よりおおきい値を指定するが、帯域幅の上限を指定しないときは 0 を指定する。番地 300 のルールにおいては上限の指定はない。番地 332 のルールにおいては 1000 kbps が指定されている。
【００６５】
遵守時キュー番号 1349 においては、帯域幅の指定がみたされているばあいのキューを指定する。キュー番号は 0 以上、キュー数未満の値を指定する。番地 300 のルールにおいては、5 が指定されている。違反時 DSCP 1350 には、帯域幅の指定がみたされていないときに余剰のパケットの DSCP をかきかえるときには 0 以上 63 以下の値を指定する。かきかえないときにはそれ以外の値 (たとえば 255) を指定する。番地 300 のルールにおいては値が指定されていない。違反時キュー番号 1351 においては、帯域幅の指定がみたされていないばあいのキューを指定する。キュー番号は 0 以上、キュー数未満の値を指定する。違反時廃棄動作 1352 には、指定された帯域幅をこえたときにパケットを廃棄するときには "drop" を指定する。情報レート 1328 が指定されていないときには違反時廃棄動作 1352 の内容は無効である。
【００６６】
以上をまとめると、ルータ 121 のネットワーク・インタフェース 125 に作用する番地 332 の計測・スケジューリング・ルールの意味はつぎのようになる。DSCP が 46 のフローに対して、平均レートが 1000 kbps をこえないかぎりはキュー番号 6 のキューにいれる。1000 kbps をこえるときには、こえたぶんについてはパケットを廃棄する。
【００６７】
つづいて、図 15 を使用してキュー設定表 814 の内容を説明する。キュー設定表 814 においてはキュー設定はネットワーク・インタフェースごとにまとめて格納される。すなわち、キュー設定表 814 の最初の行 15111 がインタフェース番号 1 のキュー設定を指示し、キュー設定表 814 の第 2 の行 1512 がインタフェース番号 2 のキュー設定を指示し、キュー設定表 814 の第 3 の行 1513がインタフェース番号 3 のキュー設定を指示する。しかし、図 15 においてはこれらの行は空である。キュー設定表 814 の第 4 の行 1514 がインタフェース番号 4 のキュー設定を指示するが、その先頭番地は未指定であり、スケジューリング・アルゴリズムとして PrioritySchedl すなわち優先度スケジューリングが指定されている (1514)。キュー 1 本ごとの詳細なキュー設定が必要なときは先頭番地 1501 を指定してそこに設定を記入するが、この実施例においては必要がないため、未指定となっている。
【００６８】
つづいて、図 16 を使用してポリシーコンパイラ 803 の動作を説明する。ポリシーコンパイラ 803 の実行が開始されると、まずステップ 1601 において変換型判定処理を実行する。つぎに、ステップ 1602 においてコアポリシーテーブル生成処理を実行する。最後にステップ 1603 においてポリシー変換処理を実行する。
【００６９】
つづいて、図 17 を使用して変換型判定処理 1601 の動作を説明する。まずステップ 1701 において、2 個の変数 Meter および MarkOrFilter の値を false に初期化する。そして、ステップ 1702 において、エッジポリシーに属するすべてのルールについて、ステップ 1703 をくりかえす。ステップ 1703 においては当該ルールが計測 (metering) をおこなうときには、すなわちフィルタリング・ポリシーにいれるべき機能をもっているときには、変数 Meter に値 true を代入する。また、マーキングまたはパケット廃棄をおこなうときには、すなわち計測・スケジューリング・ポリシーにいれるべき機能をもっているときには、変数 MarkOrFilter に値 true を代入する。
【００７０】
つぎに、ステップ 1711 において変数 Meter の値が false であれば、変換型を「直線型」とする。ステップ 1712 においては変数 Meter の値が true かつ変数 MarkOrFilter の値が true のときは、コアポリシーが存在するときは変換型を「分割融合型」とし、存在しないときはそれを「分割型」とする。ステップ 1713 においては変数 Meter の値が true かつ変数 MarkOrFilter の値が false のときは、コアポリシーが存在するときは変換型を「融合型」とし、存在しないときはそれを「ねじれ型」とする。図 3 のポリシーを変換するばあいは、ステップ 1712 において変換型が「分割融合型」と判定される。仮に図 3 のポリシーにおいてルール 312 が情報レートの計測をふくんでいなければ、その処理において変換型は「直線型」となる。
【００７１】
なお、本実施例におけるポリシー融合が可能であるためにはコアポリシーの各ルールの条件が DSCP に関する条件だけでなければならないので、変換型判定処理 1601 においてそれをチェックするべきである。図 17 にこのチェックをいれるには、ステップ 1702 のループ内において当該ルールが DSCP 条件だけをもつかどうかの判定をおこなってその結果を変数に代入するようにし、その変数値にもとづいて終了の直前にチェックをおこなえばよい。なお、変数値の初期化はステップ 1701 においておこなう必要がある。
【００７２】
つづいて、図 18 を使用してコアポリシーテーブル 1611 の内容を説明する。要素 1801 は DSCP が 10 のときにはスケジューリング・アルゴリズムを優先スケジューリングとし、キュー優先度を 5 とするということをあらわしている。要素 1802 は DSCP が 18 のときにはスケジューリング・アルゴリズムを優先スケジューリングとし、キュー優先度を 5 とするということをあらわしている。要素 1803 は DSCP が 46 のときにはスケジューリング・アルゴリズムを優先スケジューリングとし、キュー優先度を 6 とするということをあらわしている。要素 1804 は DSCP が上記以外のときにはスケジューリング・アルゴリズムを優先スケジューリングとし、キュー優先度を 2 とするということをあらわしている。
【００７３】
つづいて、図 19 を使用してコアポリシーテーブル生成処理 1602 の動作を説明する。まずステップ 1901 において、変換型が直線型かどうかを判定する。直線型であるときはステップ 1912 にすすみ、直線型でないときはステップ 1921 にすすむ。ステップ 1912 においては、コアポリシーの各ルールを計測・スケジューリング・ポリシールールに変換して、コアポリシーテーブル生成処理 1602 を終了する。
【００７４】
ステップ 1921 においては、コアポリシーのすべてのルールについてステップ 1922 から 1923 までの処理をくりかえす。ステップ 1922 においては当該ルールの条件部で参照している DSCP がコアポリシーテーブル 1611 に登録されているかどうかを判定する。登録されていないときはステップ 1923 にすすみ、登録されているときはステップ 1921 のつぎのくりかえしにうつる。図 3 のポリシーの処理においては判定の結果はつねに「未登録」であり、したがってステップ 1923 が実行される。ステップ 1923 においては、当該ルールの条件部において参照している DSCP をキーとして当該ルールの動作をコアポリシーテーブル 1611 に登録する。ここで、コアポリシールール 361 の処理においては要素 1803 が生成され、コアポリシールール 362 の処理においては要素 1801 が生成され、コアポリシールール 363 の処理においては要素 1802 が生成され、コアポリシールール 364 の処理においては要素 1804 が生成される。ステップ 1921 が終了すると、コアポリシーテーブル生成処理 1602 を終了する。
【００７５】
つづいて、図 20 を使用してポリシー変換処理 1603 の動作を説明する。ポリシー変換処理 1603 の実行が開始されると、まずステップ 2001 において変換型がなにであるかを判定する。変換型が直線型であればステップ 2011 にすすみ、ねじれ型であればステップ 2021 にすすみ、分割型、融合型または分割融合型であればステップ 2031 にすすむ。
【００７６】
ステップ 2011 においては、エッジポリシーの各ルールをフィルタリング・ポリシールールに変換する。この変換においては、"or" で結合された複数の条件をもつルールはその条件ごとにことなるルールに分割する。この際、ルールの動作部は複写する。図 3 のポリシーの処理においてルール 312 が情報レートの計測をふくんでいないばあいにはステップ 1912 以下が実行され、ルール 311, 314 から各 1 個ずつ、ルール 312, 313 からは始点 IP アドレスごとに各 2 個ずつのフィルタリング・ポリシールールが生成される。
ステップ 2021 においては、エッジポリシーの各ルールを計測・スケジューリング・ポリシールールに変換する。この変換においても、"or" で結合された複数の条件をもつルールはその条件ごとにことなるルールに分割する。
【００７７】
ステップ 2031 においては、エッジポリシーの各ルールをフィルタリング・ポリシールールに変換する。ただし、当該ルールが計測および違反時動作をふくんでいるときは、それらは無視する。エッジポリシールール 312 の処理においては、つぎのように処理する。エッジポリシールール 312 は "or" で結合された 2 個の条件をもっているので、その条件ごとにことなるルールを生成する。第 1の条件に対してはルール 1332 を生成し、第 2 の条件に対してはルール 1333 を生成する。エッジポリシールール 312 は計測条件 "Information_rate <= 1 Mbps" および違反時動作 "drop;" をもっているが、これらは無視し、遵守時動作 "DSCP = 46;" にもとづいてルール 1332 および 1333 の新 DSCP 1328 に 46 をかきこむ。
【００７８】
ステップ 2032 においては、エッジポリシーのすべてのルールについてステップ 2033 から 2042 までをくりかえす。ステップ 2033 においては、当該ルールがその動作部において DSCP をマークするか、またはそれを条件部においてチェックしているかどうかを判定し、判定結果が真ならばステップ 2035 にすすみ、偽ならばステップ 2042 にすすむす。エッジポリシールール 311 の処理においては、その条件部において DSCP の値が 18 であるかどうかを判定しているので、この条件は真になる。また、エッジポリシールール 312 の処理においては、その動作部において DSCP に 46 という値を代入しているので、この条件は真になる。図 3 (a) のすべてのルールにおいてこの条件は真になる。
【００７９】
ステップ 2035 においては当該 DSCP がコアポリシーテーブル 1611 に登録されているかどうかを判定する。登録されているときはステップ 2041 にすすみ、登録されていないときは 2042 にすすむ。図 3 のポリシーの処理においてはステップ 2041 にすすむが、図 3 のポリシーのうちコアポリシーが存在しないばあいにはコアポリシーテーブルも空であるため、ステップ 2042 にすすむ。
【００８０】
ステップ 2041 においては、当該ルールの計測動作および違反時動作と当該 DSCP をキーとしてコアポリシーテーブルからえられる動作をあわせて計測・スケジューリング・ポリシールールを生成する。この際、当該ルールが "or" で結合された複数の条件をもたないかまたは計測動作をおこなわないばあいには、当該ルールがもつ条件の数だけのルールを生成し、生成するルールの条件部には当該ルールの 1 個の条件を使用する。また、当該ルールが計測動作をおこなうばあいには、1 個のルールを生成し、生成するルールの条件部には当該 DSCP をチェックする条件を使用する。
【００８１】
エッジポリシールール 311 の処理においては、DSCP は 18 なのでコアポリシーテーブル 1611 を 18 をキーとしてひく。エッジポリシールール 311 の動作は空であるから、コアポリシーテーブル 1611 からえられるテーブル要素 1802 にふくまれる動作を計測・スケジューリング・ポリシー 1316 の番地 300 のルールにかきこむ。すなわち、遵守時キュー番号として 5 をかきこむ。また、キュー設定表 814 のインタフェース番号 4 に対応する要素 1514 にまだ値がなければ、"PrioritySchedl" をかきこむ。もし要素 1514 にすでに値がかきこまれていれば、その値と "PrioritySchedl" とを比較し、もしちがっていればエラーメッセージを生成する。番地 300 のルールの DSCP 条件 1347 としては当該 DSCP すなわち 18 をかきこむ。DSCP 以外の条件はつけない。すなわち、始点 IP アドレスの範囲としては 0.0.0.0 (1341) から 255.255.255.255 (1342) すなわち全範囲とし、始点ポート 1343 は指定しない。同様に、終点 IP アドレスの範囲としては 0.0.0.0 (1344) から 255.255.255.255 (1345) すなわち全範囲とし、終点ポート 1346 は指定しない。
【００８２】
エッジポリシールール 312 の処理においては、DSCP は 46 なのでコアポリシーテーブル 1611 を 46 をキーとしてひく。このばあい、エッジポリシールール 311 は 2 個の条件をもっているが、計測動作をおこなうので、1 個だけルールを生成する。エッジポリシールール 312 は計測条件 "Information_rate <= 1 Mbps" および違反時動作 "drop;" をもっているので、これらとコアポリシーテーブル 1611 からえられる "Scheduling_algorithm = "Priority"; Queue_priority = 6;" という動作とをあわせて、計測・スケジューリング・ポリシー 1316 の番地 332 のルールにかきこむ。すなわち、情報レート 1348 として 1000 をかきこみ、遵守時キュー番号として 6 をかきこみ、違反時廃棄動作 1352 として "drop" をかきこむ。また、キュー設定表 814 のインタフェース番号 4 に対応する要素 1514 と "PrioritySchedl" とを比較するが、これらの値は一致しているのでなにもしない。
【００８３】
エッジポリシールール 313 の処理においては、DSCP は 10 なのでコアポリシーテーブル 1611 を 10 をキーとしてひく。このばあい、エッジポリシールール 311 は 2 個の条件をもっていて、計測動作をおこなわないので、2 個のルールを生成する。第 1 のルールは第 1 の条件に対応し、番地 364 に生成する。第 2 のルールは第 2 の条件に対応し、番地 396 に生成する。エッジポリシールール 314 は計測動作および違反時動作をふくんでいないので、エッジポリシールール 314 の動作は番地 428 のルールにはかきこまず、コアポリシーテーブル 1611 からえられる "Scheduling_algorithm = "Priority"; Queue_priority = 5;" という動作だけをかきこむ。番地 364 のルールにおいては、エッジポリシールール 313 の第 1 の条件からえられた始点 IP アドレス 192.168.7.2 が始点 IP アドレス下限 1341 および上限 1342 にかきこまれる。また、番地 396 のルールにおいては、エッジポリシールール 313 の第 2 の条件からえられた始点 IP アドレス 192.168.7.4 が始点 IP アドレス下限 1341 および上限 1342 にかきこまれる。
【００８４】
エッジポリシールール 314 の処理においては、DSCP は 0 なのでコアポリシーテーブル 1611 を 0 をキーとしてひく。DSCP が 10, 18, 46 以外のときには要素 1804 が結果としてかえされるので、要素 1804 がふくむ動作を計測・スケジューリング・ポリシー 1316 の番地 428 のルールにかきこむ。エッジポリシールール 314 は計測動作および違反時動作をふくんでいないので、エッジポリシールール 314 の動作は番地 428 のルールにはかきこまない。
【００８５】
ステップ 2042 においては、当該ルールの計測動作および違反時動作から計測・スケジューリング・ポリシールールを生成する。図 3 のポリシーのうちコアポリシーが存在しないばあいにはステップ 2042 が実行され、エッジポリシー 312 からは DSCP 条件 1347 が 46。情報レート 1348 が 1000 のルールが生成される。このルールにおいては遵守時キュー番号 1349 はかきこまれないまま (既定値) になる。
【００８６】
なお、上記のポリシー変換処理 1603 においては入力されたポリシーが変換可能かどうかの判定をおこなっていなかった。この判定をおこなうには、ポリシー変換処理 1603 をつぎのように変更すればよい。すなわち、第 1 に、変換型が分割型または分割融合型のばあいにはポリシー分割が必要である。しかし、エッジポリシールールがマークする DSCP がいずれかのエッジポリシールールにおいてチェックされているばあい、すなわち条件部にあらわれているばあいには、変換結果のポリシーの意味が変換前のポリシーの意味とはかわってしまうので変換できない。したがって、ステップ 2032 においてこの条件をチェックし、変換できないばあいにはエラーメッセージをだして処理を中断するようにする。
【００８７】
第 2 に、変換型が融合型または分割融合型のばあいにはポリシー融合が必要である。しかし、エッジポリシーにおいてどのルールも適用されないばあいがあるときは、ポリシー融合はできない。したがって、この条件をステップ 2031 の直前で検出し、検出されたときはエラーメッセージをだして処理を中断するようにする。図 3 のポリシーの処理においては、ルール 314 が他のルールが適用されないばあいすべてに適用されるため、エラーにはならない。
【００８８】
第 3 に、ステップ 2033 の判定結果が偽のときステップ 2042 にすすむまえに、変換型が分割型かそれ以外かを判定する。変換型が分割型でないばあいはポリシー融合が必要であるが、DSCP をマークもチェックもしないルールが存在するばあいにはポリシー融合はできない。したがって、このばあいにはエラーメッセージをだして処理を中断するようにする。
【００８９】
第 4 に、複数の条件をふくみ、かつ計測動作をふくむルールをエッジポリシーがふくむとき、エッジポリシーにおいてどのルールも適用されないばあいがあるときには、このルールを変換することができない。また、DSCP をマークもチェックもしないルールが存在するばあいにも、このルールを変換することができない。これは、1 個の計測・スケジューリング・ポリシールールに複数の条件を指定することができないためである。したがって、これらのばあいにはエラーメッセージをだして処理を中断するようにする。
【００９０】
また、ステップ 2011, 2021 および 2031 においては低水準ポリシー DB 813 における当該ルールのコード欄 1025 に、生成した命令の先頭アドレスを記入する。ステップ 2041 および 2042 においては低水準ポリシー DB 813 における当該ルールのコード欄 1025 に、生成した命令の先頭アドレスを記入する。
【００９１】
つぎに、前記の基本の実施例においてどのような変換がおこなわれているかを図 22 によって説明する。エッジ・ポリシー 301 はポリシールール 311, 312, 313, 314 をふくみ、コア・ポリシー 351 はポリシールール 363, 364, 365, 366 をふくみ、フィルタリング・ポリシー 1315 はポリシールール 1331, 1332, 1333, 1334, 1335, 1336 をふくみ、計測・スケジューリング・ポリシー 1316 は番地 300, 番地 332, 番地 364, 番地 428 のポリシールールをふくむ。
【００９２】
これらのポリシールールのうち、ポリシールール 1332, 1333 はポリシールール 312 から生成されている。また、ポリシールール 1334, 1335 はポリシールール 313 から生成されている。さらに、番地 364 および 396 のポリシールールはポリシールール 362 から生成されている。すなわち、1 個のポリシールールが 1 個のポリシーにふくまれる複数個のポリシールールに対応している。また、番地 332 のポリシールールもポリシールール 312 から生成されているので、1 個のポリシールールが複数個のポリシーのポリシールールに対応している。ポリシールール 312 はマーキングと計測の機能をもっているが、マーキングの機能はポリシールール 1332 および 1333 において実現され、計測の機能は番地 332 のポリシールールにおいて実現されている。これは、エッジ・ポリシー 301 がフィルタリング・ポリシー 1315 と計測・スケジューリング・ポリシー 1316 とに分割されていることを意味している。
【００９３】
また、番地 332 のポリシールールはポリシールール 312 とポリシールール 361 から生成されている。ポリシールール 312 は計測の機能をもち、ポリシールール 361 はスケジューリング設定およびキュー優先度指定の機能をもっているが、これらの機能すべてが番地 332 のポリシールールにおいて実現されている。これは、エッジ・ポリシー 301 とコア・ポリシー 351 とが融合されて計測・スケジューリング・ポリシー 1316 が生成されていることを意味している。
【００９４】
この実施例においてはポリシーの対応関係が複雑なので、図 23 を使用して、より単純なばあいについて説明する。図 23 (a) においては、エッジ・ポリシー 2301 がポリシールール 2311 をふくみ、フィルタリング・ポリシー 2302 がポリシールール 2312 をふくみ、計測・スケジューリング・ポリシー 2303 がポリシールール 2313 をふくんでいる。ポリシールール 2311 はマーキングおよび計測の機能をもっているが、このうちマーキングの機能はポリシールール 2312 において実現され、計測の機能はポリシールール 2313 において実現される。すなわち、コア・ポリシー 2301 がフィルタリング・ポリシー 2302 と計測・スケジューリング・ポリシー 2303 とに分割され、コア・ポリシー 2301 によって表現されるマーキングおよび計測の機能のうちマーキングはフィルタリング・ポリシー 2302、計測は計測・スケジューリング・ポリシー 2303 において実現されている。
【００９５】
また、図 23 (b) においては、エッジ・ポリシー 2321 がポリシールール 2331 をふくみ、コア・ポリシー 2322 がポリシールール 2332 をふくみ、計測・スケジューリング・ポリシー 2323 がポリシールール 2333 をふくんでいる。ポリシールール 2331 は計測の機能をもち、ポリシールール 2332 はスケジューリング設定およびキュー優先度指定の機能をもっているが、これらのすべての機能がポリシールール 2333 において実現されている。すなわち、エッジ・ポリシー 2331 とコア・ポリシー 2332 とが計測・スケジューリング・ポリシー 2323 に融合され、エッジ・ポリシー 2331 によって表現される計測の機能とコア・ポリシー 2332 によって表現されるスケジューリング設定およびキュー優先度指定の機能がともに計測・スケジューリング・ポリシー 2323 において実現されている。以上で基本の実施例の説明をおわる。以下、前記の実施例の一部を変更した実施例について説明する。
【００９６】
[1. プロキシの使用] 第 1 に、前記の基本の実施例においてはポリシーサーバ 103 が送信する命令をルータ 121 が直接解釈することができることを前提にしていた。しかし、既存のルータをポリシーサーバに接続するばあいには、これはかならずしも可能でない。このようなばあいには、図 8 におけるルータ 121 のかわりに、図 21 におけるプロキシー 2101 とルータ 2102 を使用すればよい。この構成においては、図 8 の構成と以下の部分だけがことなっている。プロキシー 2101 においては、キュー設定表 2116 と低水準ポリシー DB 2117 を主記憶またはハードディスクにおくが、その内容はキュー設定表 814 および低水準ポリシー DB 813 とひとしい。コマンド送信部 2111 はキュー設定表 2116 と低水準ポリシー DB 2117 の内容をルータ 2102 のコマンド言語を使用してルータ 102 に送信する。ルータ 2102 においては、プロキシー 2101 からの受信データをキュー設定表 814 と低水準ポリシー DB 813 に格納する。この構成をとることにより、ポリシーサーバ 103 が送信する命令を解釈することができないルータ、とくにすでに配備されたルータに対して本発明を適用することができる。
【００９７】
[2. DSCP 以外の実ラベルおよび仮想ラベル] 第 2 に、前記の基本の実施例のアルゴリズムにおいてはエッジ・ポリシーにおいて同一の DSCP が複数回あらわれるばあいにはただしい変換ができないケースがおおいが、フィルタリング・ポリシールールから計測・スケジューリング・ポリシールールに情報をわたすために DSCP 以外のフローラベルが使用できれば、この問題を解決することができる。DSCP 以外のフローラベルとしては IPv6 (Internet Protocol version 6) のフローラベル欄、MPLS (Multi-Protocol Label Switching) のラベルや EXP フィールドなどを使用することもかんがえられるが、ルータ内またはルータのインタフェース内だけで使用するのであれば、仮想ラベル (virtual label, virtual flow label) を使用することが可能である。仮想ラベルについてはつぎの文献がある。
【００９８】
Y. Kanada 他著, SNMP-based QoS Programming Interface MIB for Routers, draft-kanada-diffserv-qospifmib-00.txt (http://www.kanadas.com/activenet/draft-kanada-diffserv-qospifmib-00.txt), IETF, 1999 年。
Y. Kanada 著, Two Rule-based Building-block Architectures for Policy-based Network Control, 2nd International Working Conference on Active Networks (IWAN 2000), 2000 年 10 月。
【００９９】
フィルタリング・ポリシーおよび計測・スケジューリング・ポリシーにおいて仮想ラベルがサポートされているばあいには、以下のように実施例を変更すれば、ほとんど制約なしに変換をおこなうことできる。
まず、オペレータが入力したポリシーに仮想ラベルが指定されているときは、ラベル参照表のラベル種別欄 1121 に "DSCP" のかわりに "Virtual" を使用することによって、DSCP と同様に仮想ラベルも参照関係を解析することができる。なお、ラベル種別として "IPv6Label", "MPLS_Label", "MPLS_EXP" などを使用することによって、IPv6 のフローラベル欄、MPLS のラベルや EXP フィールドなどを使用することもできる。
【０１００】
つぎに、フィルタリング・ポリシー 1315 および計測・スケジューリング・ポリシー 1316 においては、仮想ラベル条件欄と新仮想ラベル欄を新設することによって条件部および動作部にあらわれる仮想ラベルをあつかうことができる。
図 3 のポリシーにおいて、ポリシールール 311 のまえにつぎの規則のうちのいずれかが挿入されているばあいをかんがえる。
【０１０１】
0004025569.tif 000002
【０１０２】
このポリシーを前記の基本実施例の方法によって変換すると、変換前のポリシーにおいてはポリシールール 311 が適用されていたフローの一部に対して上記のポリシールールから生成されたスケジューリング・ポリシーのルールが適用されるために、不正な結果がえられる。この問題を解決するには、このポリシーの処理においては、フィルタリング・ポリシー 1315 のルール 1331 において DSCP として 18 をチェックすると同時に仮想ラベルとして 18 をマークする (18 を新仮想ラベル欄に記入する) ようにする。また、ルール 1332 および 1333 において、DSCP として 46 をマークと同時に仮想ラベルとしても 46 をマークする (46 を新仮想ラベル欄に記入する) ようにする。ルール 1334 および 1335 においては DSCP として 10 をマークすると同時に仮想ラベルとしても 10 をマークする (10 を新仮想ラベル欄に記入する) ようにする。さらに、ルール 1336においては DSCP として 0 をマークすると同時に仮想ラベルとしても 0 をマークする (0 を新仮想ラベル欄に記入する) ようにする。
【０１０３】
また、計測・スケジューリング・ポリシー 1316 の番地 300 のルールにおいて DSCP の値が 18 であるかどうかをチェックするかわりに、仮想ラベルの値が 18 であるかどうかをチェックする。番地 332 のルールにおいて DSCP の値が 46 であるかどうかをチェックするかわりに仮想ラベルの値が 46 であるかどうかをチェックする。番地 364 および 396 のルールにおいて DSCP の値が 10 であるかどうかをチェックするかわりに仮想ラベルの値が 10 であるかどうかをチェックする。
【０１０４】
さらに、コアポリシーテーブル 1611 においては DSCP のかわりに、または DSCP とともに仮想ラベルを登録する。すなわち、各テーブル要素において種別として "DSCP" のかわりに "Virtual" をかきこみ、値は DSCP のばあいと同様にかきこめばよい。なお、ラベル種別として "IPv6Label", "MPLS_Label", "MPLS_EXP" などを使用することによって、IPv6 のフローラベル欄、MPLS のラベルや EXP フィールドなどを使用することもできる。
【０１０５】
最後に、ポリシー変換処理 1603 においては、ステップ 2032 において DSCP をチェックするかわりに仮想ラベルをチェックし、コアポリシーテーブル 1611 において DSCP を検索するかわりに仮想ラベルを検索する。これにより、ポリシー変換処理 1603 の処理手順は変更せずに、変換できないケースをへらすことができる。
【０１０６】
[3. ポリシー配付先の明示的指定] 第 3 に、前記の基本の実施例においてはネットワーク構成管理表 212 を使用してポリシーサーバがポリシーを配布するルータやインタフェースをきめていた。しかし、この方法ではかならずしもオペレータが意図していたとおりにポリシーが配布されるとはかぎらない。この問題を解決するために、オペレータが明示的に配付先のルータやインタフェースを指定し、それにもとづいてポリシーサーバ 103 が配付先を決定するようにすることができる。
【０１０７】
[4. コア/エッジの明示的指定] 第 4 に、前記の基本の実施例においてはネットワーク・エッジに接続されたインタフェースにもコアポリシーを配布するため、かならずしもオペレータが意図していたとおりにポリシーが配布されるとはかぎらない。配付先をオペレータが指定しなくてよいという自動配布の利点をいかしつつ、この問題を解決するためには、オペレータがコア・インタフェースとエッジ・インタフェースとの識別情報をポリシーサーバ 103 にあらかじめ登録しておき、ステップ 703 においてこの識別情報を参照することによって、エッジ・インタフェースにはコアポリシーを配布しないようにすることができる。
【０１０８】
[5. 全フロー合計値の計測] 第 5 に、前記の基本の実施例においてはパケットの始点の IP アドレスが指定されたルールはエッジルータの入力側のインタフェースだけに配布するようにしていた。そのため、ルール 312 における IP アドレス 192.168.7.3 を 192.168.8.1 に変更すると、変更後のルールをただしく処理することができない。すなわち、これらの IP アドレスはルータ 121 のことなるインタフェースにわりあてられている。これらのインタフェースにこのルールを配布すると、情報レートの計測はインタフェースごとにおこなわれるため、合計値を計測するルール 312 の本来の意味を実現できなくなる。
【０１０９】
ステップ 703 をつぎのように変更すれば、このようなばあいにもただしく処理することができる。すなわち、当該ルールの条件部に複数の IP アドレスがあらわれ、ネットワーク構成管理表 212 を検索した結果 1 個のルータの複数のインタフェースがえられたばあいには、当該ルールをそれらのインタフェースに配布するのでなく、コア・ネットワークに接続されたインタフェース 123 に配布する。
【０１１０】
コア・ネットワークに接続されたインタフェースがただ 1 個であれば、これでただしく計測される。コア・ネットワークに接続されたインタフェースを他のインタフェースとくべつするには、つぎのようにすればよい。コア・ネットワークに接続されたインタフェースはネットワーク構成管理表 212 にはあらわれないため、どのインタフェースがコア・ネットワークに接続されているかはネットワーク構成管理表 212 を使用することによって判定することができる。しかし、より明示的に判定するためには、あらかじめオペレータがポリシーサーバ 103に対してコア・ネットワークに接続されたインタフェースのリストを入力し、それをテーブルに保存して使用すればよい。
【０１１１】
[6. エッジとコアへの分割] 第 6 に、前記の第 5 の修正実施例においては、コア・ネットワークに接続されたインタフェースに設定が集中し、負荷がおもくなるという問題点がある。この問題点を解決するには、条件部に複数の IP アドレスが指定されたルールをパケット廃棄とマーキングをおこなう第 1 のルールと計測および違反時動作をおこなう第 2 のルールとに分割し、第 1 のルールはエッジ・インタフェースに配布し、第 2 のルールはコア・インタフェースに配布すればよい。分割の方法はポリシー変換処理 1603 とひとしい。エッジポリシールール 312 においてルール 312 における IP アドレス 192.168.7.3 を 192.168.8.1 に変更したばあいは、つぎのようなルールが生成される。
【０１１２】
0004025569.tif 000003
【０１１３】
あるいは、変換できないケースをすくうために仮想ラベル (“VirtualLabel”) を使用するばあいには、つぎのようなルールが生成される。
0004025569.tif 000004
【０１１４】
いずれのばあいも、第 1 のルールは IP アドレス 192.168.7.1 に接続された番号 4 のエッジ・インタフェース 125 に配布され、第 2 のルールは IP アドレス 192.168.8.1 に接続された番号 3 のエッジ・インタフェース 124 に配布され、第 3 のルールは番号 2 のコア・インタフェース 123 に配布される。これによって、コア・インタフェース 123 において指定されたとおりの計測をおこなうことができると同時に、コア・インタフェース 123 への負荷の集中をさけることができる。
【０１１５】
[7. ルータ内蔵サーバ (PDP)] 第 7 に、前記の基本の実施例においてはポリシーサーバ 103 が複数のルータを管理するため、これを独立したサーバとする必要があったが、ポリシーサーバ 103 が 1 個のルータだけを管理するばあいには、ポリシーサーバ 103 をルータ 101 内にうめこむことも可能である。このばあいにはポリシーサーバ 103 からルータ 101 へは通信ではなく主記憶、フラッシュメモリ、ディスク等の記憶媒体を経由してポリシーをおくればよい。
【０１１６】
[8. Default flow のあつかい] 第 8 に、前記の基本の実施例においてはポリシールール 314 が存在するために、エッジポリシー 301 が適用されたのにどのポリシールールも適用されないばあいは存在しなかったが、どのポリシールールも適用されないばあいがあるときは、前記の変換はただしくない。ポリシールール 314 が存在しないときは、IP アドレスが 192.168.7.2 および 192.168.7.4 以外の始点からくる DSCP が 10 のパケットに対して、エッジポリシー 301 のどのポリシールールも適用されずにコアポリシールール 362 が適用されるが、このとき、変換後の番地 364 および 396 のルール (図 13 (b)) においては DSCP でなく始点 IP アドレスをテストしているため、どのポリシールールも適用されず、不正な結果をえる。
【０１１７】
これをさけるためには、つぎのような方法をとることができる。番地 364 および 396 のルールとはべつにコアポリシールール 362 とひとしい動作をおこなうポリシールールを生成する。当該ポリシールールの条件はコアポリシールール 362 とひとしくする。これによって、どのエッジポリシールールも適用されなかったパケットに対してもコアポリシーがただしく適用される。
【０１１８】
[9. チェッカのあつかい] 第 9 に、前記の基本の実施例においてはエッジポリシー 301 においてすべてのポリシールールが DSCP へのマーキングをおこなっていたが、マーキングをおこなわないポリシールールが存在するばあいには、つぎのような方法をとることができる。ポリシールール 314 の直前につぎの第 5 のポリシールールがあるものとする。
【０１１９】
0004025569.tif 000005
【０１２０】
IP アドレスが 192.168.7.2 および 192.168.7.4 以外の始点からくる DSCP が 10 のパケットに対して、第 5 のポリシールールが適用され、コアポリシールール 362 が適用されるが、このとき、変換後の番地 364 および 396 のルール (図 13 (b)) においては DSCP でなく始点 IP アドレスをテストしているため、どのポリシールールも適用されず、不正な結果をえる。
【０１２１】
これをさけるためには、つぎのような方法をとることができる。番地 364 および 396 のルールとはべつにコアポリシールール 362 とひとしい動作をおこなうポリシールールを生成する。当該ルールの条件はコアポリシールール 362 とひとしくする。これによって、第 5 のポリシールールが適用されたパケットに対してもコアポリシーがただしく適用される。
【０１２２】
[Loophole のあつかい]
[10. QoS 以外のポリシー] なお、以上の実施例はポリシーによる QoS の制御に関する実施例だったが、この発明の方法はポリシーサーバからルータやアクセス・ノード等のネットワーク・ノードに対して他の機能をもつルールをダウンロードする際にも適用される。たとえば、アクセス制御やセキュリティ制御のためのルール、スイッチングやルーティングを制御するルール、NAT (Network Address Translation) のようにパケットがふくむフローの始点や終点に関する情報やペイロードにふくまれるアドレスを変換するルール、ペイロードにふくまれる情報をもとに計算をおこない、その結果をペイロードにかきこむルール、さらには複数のパケットに作用して、それらのペイロードがふくむ情報を入力してあらたなパケットを生成するルールなどに対しても適用することができる。
【０１２３】
【発明の効果】
本発明のネットワークポリシー変換方法を使用すれば、高水準ポリシーと低水準ポリシーとが 1 対 1 に対応しないばあいにも高水準ポリシーを低水準ポリシーに変換することが可能になり、高水準ポリシールールと低水準ポリシールールとが 1 対 1 に対応しないばあいにも高水準ポリシールールを低水準ポリシールールに変換できる。この変換においては変換するべき高水準ポリシーが制約されるが、変換の際に仮想ラベルを導入することによってこの制約をなくし、広範囲の高水準ポリシーを変換することができるようになる。
【図面の簡単な説明】
【図１】本実施例におけるネットワーク構成図である。
【図２】図 1 におけるポリシーサーバの構成図である。
【図３】ポリシーサーバがあつかうエッジポリシーおよびコアポリシーの例をしめす図である。
【図４】図 2 におけるポリシーリポジトリの内容をしめす図である。
【図５】図 2 のポリシー入力処理部の処理フローをしめす図である。
【図６】図 2 のネットワーク構成管理表の内容をしめす図である。
【図７】図 2 のポリシー送信部の処理フローをしめす図である。
【図８】図 1 におけるルータの構成図である。
【図９】図 8 におけるネットワーク・インタフェースの構成図である。
【図１０】図 8 における高水準ポリシー DB の内容をしめす図である。
【図１１】図 8 におけるラベル参照表の内容をしめす図である。
【図１２】図 8 のポリシー受信部の処理フローをしめす図である。
【図１３】図 8 における低水準ポリシー DB の内容をしめす図である。
【図１４】図 8 における低水準ポリシー DB の内容をしめす図である。
【図１５】図 8 におけるキュー設定表の内容をしめす図である。
【図１６】図 9 のポリシーコンパイラの処理フローをしめす図である。
【図１７】図 16 のポリシーコンパイラにおける変換型判定処理フローをしめす図である。
【図１８】図 16 のポリシーコンパイラにおけるコアポリシーテーブルの内容をしめす図である。
【図１９】図 16 のポリシーコンパイラにおけるコアポリシーテーブル生成処理フローをしめす図である。
【図２０】図 16 のポリシーコンパイラにおけるポリシー変換処理フローをしめす図である。
【図２１】他のルータ構成をしめす図である。
【図２２】本実施例におけるポリシー間の関係をしめす図である。
【図２３】ポリシー分割およびポリシー融合におけるポリシー間の関係をしめす図である。
【符号の説明】
101,111,121…ルータ、  103…ポリシーサーバ、  102,104,105,112,113,114,122,123,124,125…ネットワーク・インターフェース、  131，132…アプリケーションサーバ、  141，142，143，144，145…クライアント
【図１】
0004025569.tif 000006
【図２】
0004025569.tif 000007
【図３】
0004025569.tif 000008
【図４】
0004025569.tif 000009
【図５】
0004025569.tif 000010
【図６】
0004025569.tif 000011
【図７】
0004025569.tif 000012
【図８】
0004025569.tif 000013
【図９】
0004025569.tif 000014
【図１０】
0004025569.tif 000015
【図１１】
0004025569.tif 000016
【図１２】
0004025569.tif 000017
【図１３】
0004025569.tif 000018
【図１４】
0004025569.tif 000019
【図１５】
0004025569.tif 000020
【図１６】
0004025569.tif 000021
【図１７】
0004025569.tif 000022
【図１８】
0004025569.tif 000023
【図１９】
0004025569.tif 000024
【図２０】
0004025569.tif 000025
【図２１】
0004025569.tif 000026
【図２２】
0004025569.tif 000027
【図２３】
0004025569.tif 000028