JP4372098B2 - ネットワークにおける特定サービスの最適ルーティング方法並びに同ネットワークに用いられるサーバ及びルーティングノード - Google Patents

ネットワークにおける特定サービスの最適ルーティング方法並びに同ネットワークに用いられるサーバ及びルーティングノード Download PDF

Info

Publication number
JP4372098B2
JP4372098B2 JP2005503839A JP2005503839A JP4372098B2 JP 4372098 B2 JP4372098 B2 JP 4372098B2 JP 2005503839 A JP2005503839 A JP 2005503839A JP 2005503839 A JP2005503839 A JP 2005503839A JP 4372098 B2 JP4372098 B2 JP 4372098B2
Authority
JP
Japan
Prior art keywords
service
server
routing
information
routing node
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2005503839A
Other languages
English (en)
Other versions
JPWO2005006671A1 (ja
Inventor
大輔 浪平
泰範 寺崎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JPWO2005006671A1 publication Critical patent/JPWO2005006671A1/ja
Application granted granted Critical
Publication of JP4372098B2 publication Critical patent/JP4372098B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/026Details of "hello" or keep-alive messages
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/302Route determination based on requested QoS
    • H04L45/306Route determination based on the nature of the carried application
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context

Description

本発明は、ネットワークにおける特定サービスの最適ルーティング方法並びに同ネットワークに用いられるサーバ及びルーティングノードに関し、例えば、特定のサービスを提供しているサーバ(マスター)と、それと同一のサービス内容を反映し、別のサーバにて同一のサービス内容を提供しているサーバ群(ミラー)が存在する状況で、それらの位置(アドレス)や稼動状況を端末が意識することなく、端末から最適と思われるサーバに対してアクセスを行なうことができるようにするのに好適な技術に関する。
現在、インターネット等のネットワーク上には様々なサービスを提供するサーバが存在し、アクセスが集中するサービスに対する方策として、ネットワーク上で物理的に離れた別のサーバが、サービス内容だけを同一にして提供し、ユーザに自分で宛先を選んでアクセスしてもらう方法がある。また、特定サービスを提供しているサーバに接続している負
荷分散装置間で、最適な宛先に転送する方法もある。
ここで、前者の方法では、ユーザは該当サービスがどこにあるのかを知っていなければならない。また、サービスのリストを提供している場所もあるが、どれを選択するかはユーザ任せなので、負荷が効率的に分散できないという課題がある。また、サービスが一時的に停止してしまっているサーバがリスト中のどれなのかといった情報も与えられないため、アクセスしたがサービスを受けられないといった状況が発生するといった課題もある。さらに、それら情報を端末から自動的に認識させるには、収集しなければならない情報が膨大となり、事実上不可能である。
これに対し、後者の方法では、負荷分散装置が、自分の配下に接続しているサーバの内容を知らなければならないが、サーバを追加しても負荷分散装置は自動的には認識しないため、それら情報を負荷分散装置に教えなければならない。また、負荷分散装置間がネットワーク上で離れた位置に存在する場合は、ネットワークの状況によって最適な宛先が異なる場合があるが、負荷分散装置ではネットワークの内部状況を把握していないため、効果的な負荷分散が実現できていない場合もある。
また他に、従来技術として、下記の特許文献1や特許文献2により提案されている技術がある。
特許文献1に記載された技術は、ルーティングプロトコルに帯域情報に関する属性を新たに設け、ルーティング情報と併せて他ネットワークから流入したトラヒックの帯域情報を自ネットワーク内の他ボーダルータに通知し自ネットワーク内から流出するトラヒックの帯域情報を他ネットワークのボーダルータに通知するというものである。これにより、特許文献1の技術では、少ない設備投資および改造により、入力可能帯域情報を自動的に全ボーダルータに通知することができて、ネットワーク管理者の手間を省くとともに、人為的なミスを抑えることが可能となる。
一方、特許文献2に記載された技術は、分散型データベースの管理方法に関するもので、複数個のサーバを、用途(サービス)別に分類(グループ化)したサーバ情報管理テーブルに基づいてサーバを選択するが、その際、サーバ毎の負荷テーブルを設けて、最も負荷の低いサーバを選択したり、複数のサーバの記憶媒体(ディスク,テープ等)の使用状況テーブルを設けて、最も空き容量の多いサーバを選択したり、用途別の情報検索キーと、情報格納先のサーバIDを、格納先管理用のサーバに検索キー・サーバIDテーブルとして登録しておき、利用者からの只1回のサービス要求に基づいて、サーバを意識することなく、必要なサービスを利用できるようにしたものである。
特開2002−374293号公報 特開平6−259308号公報
しかしながら、特許文献1に記載の技術では、ネットワークの帯域管理は行なえても、アクセスが集中するサーバへのアクセスの宛先を変更して、負荷を分散させるという制御は行なえない。
また、特許文献2に記載の技術では、サーバの負荷や記憶容量の使用状況などに応じて最適なサーバを選択することができるが、データベースのサーバとして何があり、どのサーバがどの情報をもつかを事前にサーバ情報管理テーブルにもっていなければならない。即ち、あくまで、サーバ負荷や記憶容量の使用状況のみが更新対象である。
これは、ネットワークの世界では前述した負荷分散装置で既に実現している方法と同じである。そのため、前述したものと同様の課題がある。また、上記特許文献2には、上記のサーバ情報管理テーブルをルータにもたせることも可能である旨が開示されているが、単にルータにサーバ管理情報をもたせても、ネットワーク上のサーバ群の情報をネットワーク内で自動的に認識して共有・更新し、当該ネットワークで現在提供されているサービスの内容や稼動状況をユーザが意識することなく、ネットワーク独自に最適な宛先を選択
することは不可能である。
本発明は、以上のような課題に鑑み創案されたもので、ネットワーク上のサーバ群の情報(位置情報やサービス稼動状況等)をネットワーク内(ルータ等)で自動的に認識して共有・更新することを可能とし、サーバ群それぞれの位置情報やサービス稼動状況をユーザが意識することなく、ネットワーク独自に最適な宛先を選択できるようにして、多数のユーザ端末からのアクセスを効果的に振り分けられるようにすることを目的とする。
上記の目的を達成するために、本発明のネットワークにおける特定サービスの最適ルーティング方法は、複数のサーバと、該サーバに対するサービスアクセス要求を当該サービスアクセス要求に付与されている宛先情報に従ってルーティングする複数のルーティングノードとをそなえたネットワークにおいて、該サーバで提供するサービス内容に関する情報(以下、サービス情報という)を、該ルーティングノード間の経路制御に用いられるルーティングプロトコルに従って前記各ルーティングノード間で交換されるルーティング情報に含めて送受することにより、各ルーティングノードにおいて登録・更新し、該ルーティングノードが、それぞれ、自己の保有する該サービス情報に基づいて該サービスアクセス要求の宛先情報を選択的に変更して最適な宛先へルーティングし、さらに、同一のサービス内容を提供する該サーバとしてマスターサーバとミラーサーバとが存在する場合において、該ミラーサーバが、自己の提供するサービス内容の更新を行なうためのアクセス要求を該ミラーサーバと接続されているルーティングノードへ送信し、該ルーティングノードは、該アクセス要求の宛先情報を該マスターサーバへの直接アクセスを可能とする直接アクセス用宛先情報に変換して該アクセス要求データのルーティングを行なうことを特徴としている。
ここで、該サーバで提供するサービス種別を示すサービス識別子を含む該サービス情報を、該ルーティングプロトコルを用いて各ルーティングノードにおいて登録・更新し、該ルーティングノードが、それぞれ、該サービス識別子に基づいて該サービス種別単位で該サービスアクセス要求のルーティングを行なってもよい。
また、該サービス識別子として、URL(Uniform Resource Locater)を用いることもできる。
さらに、該サーバが、自己のサービス稼動状況をサービス稼動状況通知メッセージにより自己が接続されているルーティングノードに通知し、当該ルーティングノードが、該サービス稼動状況通知メッセージにより通知されたサービス稼動状況に応じて自己が保有する該サービス情報を更新するとともに、該サービス情報の更新を該ルーティングプロトコルにより該ネットワーク内の各ルーティングノードに伝達して反映させることもできる。
また、該サーバが、自己の提供する該サービス内容が更新される毎にサービス更新メッセージを当該サーバが接続されているルーティングノードに送信し、該ルーティングノードが、該サーバから該サービス更新メッセージを一定期間受信しないときは該サービス内容についてのサービス情報の登録を削除するとともに、当該サービス情報の削除を該ルーティングプロトコルにより該ネットワーク内の各ルーティングノードに伝達して反映させることもできる。
さらに、該ルーティングノードが、該サービス更新メッセージを一定期間受信しない場合でも非更新対象のサービス内容についてのサービス情報の登録は維持することもできる。
さらに、同一のサービス内容を提供する該サーバとしてマスターサーバとミラーサーバとが存在する場合において、該マスターサーバが、定期的に該サービス稼動状況通知メッセージを自己が接続されているルーティングノードへ通知し、該ルーティングノードが、該サービス稼動状況通知メッセージにより該マスターサーバが一定期間稼動停止していると判断すると、該ミラーサーバについての該サービス情報の登録を削除するとともに、当該サービス情報の削除を該ルーティングプロトコルにより該ネットワーク内の各ルーティングノードに伝達して反映させることもできる。
また、該ルーティングノードが、それぞれ、他のルーティングノードから該ルーティングプロトコルにより定期的に受信されるべき生死確認情報の受信を監視することにより該他のルーティングノードの稼動状況を監視し、該他のルーティングノードの稼動停止が確認されると、自己が保有するサービス情報のうち当該稼動停止した他のルーティングノードについてのサービス情報を削除するとともに、当該サービス情報の削除を該ルーティングプロトコルにより該ネットワーク内の各ルーティングノードに伝達して反映させることもできる。
さらに、本発明のネットワークに用いられるサーバは、複数のサーバと、該サーバに対するサービスアクセス要求を当該サービスアクセス要求に付与されている宛先情報に従ってルーティングする複数のルーティングノードとをそなえたネットワークに用いられるものであって、自己が提供するサービス内容に関する情報(サービス情報)を自己と接続されているルーティングノードに通知するサービス通知手段と、自己のサービス稼動状況を該ルーティングノードに通知するサービス稼動状況通知手段とをそなえるとともに、自己以外に自己と同一のサービス内容を提供するミラーサーバが存在する場合において、該ミラーサーバが、該ミラーサーバの提供するサービス内容の更新を行なう際に自己への直接アクセスを可能とする直接アクセス用宛先情報を自己に接続されているルーティングノードへ通知する直接アクセス用宛先情報通知手段をそなえたことを特徴としている。
ここで、該サービス通知手段は、該サービス内容に更新があると、更新後の該サービス内容に関する情報を該ルーティングノードへ通知するサービス更新通知手段をそなえて構成されていてもよい。
さらに、本発明のネットワークに用いられるルーティングノードは、複数のサーバと、該サーバに対するサービスアクセス要求を当該サービスアクセス要求に付与されている宛先情報に従ってルーティングする複数のルーティングノードとをそなえたネットワークに用いられるものであって、自己と接続されているサーバ又は他のルーティングノードから該サーバで提供するサービス内容に関する情報(サービス情報)を受信して、該サービス情報の登録及び更新を管理するサービス情報管理手段と、該サービス情報管理手段での該サービス情報の登録・更新に伴って、該サービス情報を、該ルーティングノード間の経路制御に用いられるルーティングプロトコルに従って前記各ルーティングノード間で交換されるルーティング情報に含めてさらに他のルーティングノードへ伝達するサービス情報伝達手段と、該サービス情報管理手段の該サービス情報に基づいて該サービスアクセス要求の宛先情報を選択的に変更して最適な宛先へルーティングするルーティング制御手段とをそなえ、さらに、同一のサービス内容を提供する該サーバとしてマスターサーバとミラーサーバとが存在する場合において、該サービス情報管理手段が、該マスターサーバへ該ミラーサーバが自己の提供するサービス内容の更新を行なう際に該マスターサーバへの直接アクセスを可能とする直接アクセス用宛先情報を要求する手段と、該要求に対して該マスターサーバから受信される該直接アクセス用宛先情報を該サービス情報に含めて他のルーティングノードに伝達する手段とをそなえたことを特徴としている。
ここで、該サービス情報管理手段は、該サーバの提供するサービス種別を示すサービス識別子を含む該サービス情報を保持・管理するように構成されるとともに、該ルーティング制御手段は、該サービス識別子に基づいて該サービス種別単位で該サービスアクセス要求のルーティングを行なうように構成されていてもよい。
また、該サービス情報管理手段は、該サービス識別子としてURLを保持・管理するのが好ましい。
さらに、該サービス情報管理手段は、該サーバから通知される当該サーバのサービス稼動状況に応じて該サービス情報を更新する手段をそなえていてもよい。
また、該サービス情報管理手段は、該サーバから当該サーバの提供する該サービス内容が更新される毎に通知されるサービス更新メッセージを一定期間受信しないときは当該サービス内容についてのサービス情報の登録を削除する手段をそなえていてもよい。
さらに、該サービス情報管理手段は、該サービス更新メッセージを一定期間受信しない場合でも非更新対象のサービス内容についてのサービス情報の登録は維持する手段をそなえていてもよい。
また、同一のサービス内容を提供する該サーバとしてマスターサーバとミラーサーバとが存在する場合において、該サービス情報管理手段は、該マスターサーバが定期的に発行するサービス稼動状況通知メッセージにより該マスターサーバが一定期間稼動停止しているか否かを判断する手段と、該マスターサーバが稼動停止していると判断すると、該サービス情報管理手段における該ミラーサーバについての該サービス情報の登録を削除する手段とをそなえていてもよい。
さらに、該サービス情報管理手段は、他のルーティングノードから該ルーティングプロトコルにより定期的に受信されるべ生死確認情報の受信を監視することにより該他のルーティングノードの稼動状況を監視する手段と、該監視により該他のルーティングノードの稼動停止が確認されると、該サービス情報管理手段において自己が保有するサービス情報のうち当該稼動停止した他のルーティングノードについてのサービス情報を削除する手段とをそなえていてもよい。
また、該ルーティング制御手段は、該ミラーサーバから受信されるアクセス要求の宛先情報を該直接アクセス用宛先情報に変換する宛先変換手段をそなえていてもよい。
図1は本発明の一実施形態に係るネットワーク構成を示すブロック図で、この図1に示すネットワークは、複数のサーバ1,2と、複数のルータ(ルーティングノード)3と、複数のユーザ端末(以下、単に「端末」ともいう)5,6とをそなえて構成されており、この場合は、サーバ1及びユーザ端末5がルータ3Aに接続され、サーバ2及びユーザ端末6がルータ3Bに接続されている。なお、以下において、ルータ3A,3Bを区別しない場合は「ルータ3」と表記する。
サーバ1,2は、それぞれ、ユーザ端末(以下、単に「端末」ともいう)5,6に対して或る特定のサービスを提供するものであるが、ここでは、例えば、サーバ1をマスターサーバ、サーバ2をマスターサーバ1が提供するサービスと同一サービス内容を提供するミラーサーバとする。なお、この図1では、サーバ,ルータ,ユーザ端末をそれぞれ2台ずつしか図示していないが、これらの台数は、勿論、この図1に示すものに限定されるものではない。
そして、本実施形態では、ルータ3間でBGP4(Border Gateway Protocol Version4)等の所定のルーティングプロトコルに従って経路情報
の送受等に用いられる制御メッセージに、ネットワーク上で提供されているサービスに関する情報(どのサーバ1,2がどのようなサービスを提供しているか等の情報)も付加す
るようになっている。
これにより、ネットワーク全体が各種サービスの場所を認識することができるようになるため、ルータ3において最適な宛先への中継(ルーティング)を行なうことが可能となる。また、ルータ3間の既存の制御メッセージに付加することで、ルータ3の稼動状況も直接的もしくは間接的に認識でき、それら情報によって最適な宛先を変更することも可能となる。
さらに、サービスを提供するサーバ1,2が、それぞれ、自己の提供するサービスの種別や稼動状況を自己と接続されているルータ3A,3Bに伝え、ルータ3,4がそれを認識することで、サーバの追加等に対してもネットワーク上のルータ3A,3Bは自動的に認識でき、サーバの追加等の後においても最適な宛先決定を行なうことが可能となる。また、ルータ3A,3Bは、それぞれ、自己と接続されているサーバ1,2についてのみ状態の監視を行ない、他ルータ3に接続しているサーバについては、ルータ3間の制御メッセージに付加されたサービス情報から得ることで、ネットワーク上の全サーバを単一の装置で認識・管理する必要はなく、サーバの認識処理に膨大な時間がかかることもない。
以下、このような本実施形態の最適ルーティング方式の詳細について説明する。まず、サーバ1,2が提供するサービス内容をルータ3A,3Bが認識するための方式について述べ、次に、ルータ3間で送受するルーティングプロトコルの付加情報(サービス内容の通知)の内容と、それを送受する方式について述べる。
〔A〕サーバによる提供サービス内容通知及び稼動状況通知方式
まず、サーバ1(又は2)と当該サーバ1(又は2)に接続されているルータ3A,3Bとの間でやりとりするプロトコルASRP(ApplicationServices
Registration Protocol)を定義する。登録したいサービスがあるサーバ1(又は2)は、現在の自己からネットワークに繋がるルータ(ASRPをサポートしているルータ)3A(3B)との間にTCP(TransmissionControl Protocol)コネクションを設定する。なお、ASRPのTCPポート番号
は周知(Well−Known)のポートでなければ何でもよいが、例えば、未使用(unsigned)のポート番号“4634”を使用する。
TCPコネクションを設定した後は、サーバ1(又は2)は、ASRPで定義するコマンド(パケット)をルータ3A(又は3B)に発行することでサービスの状態や種別等を通知する。ここで、ASRPのコマンドパケットフォーマットは、例えば図2に示すように定義する。即ち、本コマンドパケット30は、当該コマンドの種類を表すコマンドフィールド31(2オクテット)と、当該コマンドフィールド31に続くデータ長を示す長さ(length)フィールド32(2オクテット)と、コマンド種類に応じて必要なパラメータ等が格納された「コマンドデータ」フィールド33(可変長)とを有して構成される。
ここで、コマンド(メッセージ)には、以下の7種類を定義する。
1.ADD_SERVICE(command値:1)
自サーバ1,2が提供するサービス内容を通知するためのコマンドである。length値は可変であり、コマンドデータ内容は図3に示すように定義する。この図3に示すように、ADD_SERVICEコマンドの場合、コマンドデータフィールド33には、以下の各種パラメータが設定される。
(1)サービスタイプ(service type)(1オクテット)
サービスの種類を表す。ビット0のみ定義。例えば、ビット0が“0”ならサービス内容更新処理対象外、“1”ならサービス内容更新処理対象を表す。なお、サービス内容更
新処理とは、提供しているサービスの内容が更新された際、そのことを通知する処理であり、ルータ3A,3Bにおけるサービスの稼動判別に用いられる。
(2)サーバタイブ(server type)(1オクテット)
例えば、“1”で自サーバが該当サービスのマスターであることを示し、“2”で自サーバがミラーであることを示す。
(3)サービス識別子長(2オクテット)
次のサービス識別子の長さを格納する。
(4)サービス識別子(可変長)
サーバ1(2)で行なっているサービスの種別を示す。サーバ1,2が提供しているサービス内容が一意に認識できる値を格納する。一例として、WWWサーバであれば、“http://www.foo.bar/”といったURL(UniformResource Locator)とする。なお、「サービスタイプ」が「ミラー」であっても、マ
スターサーバ1で提供しているURLの内容を格納する。これにより、マスターサーバ1のサービスと同一であることが判別可能となる。
(5)ポート数(2オクテット)
そのサービスの提供しているポート番号の数(下記のポート1〜ポートnの、nの値)を格納する。
(6)ポート番号1〜n(各2オクテット)
そのサービスの提供しているポート番号を表す。一例として、http(hyper
text transfer protocol)であれば80が格納される。
2.KEEPALIVE(command値:2)
自サーバ1(2)が稼動していることを通知するためのメッセージである。length値は0とする(コマンドデータ内容はない)。
3.SERVICE_DOWN(command値:3)
自サーバ1(2)で提供している特定のサービスが何らかの原因でダウンした際に、それを通知するメッセージである。length値は可変であり、コマンドデータの内容は例えば図4に示すように定義する。この図4における各種パラメータの内容は上記のADD_SERVICEコマンドの場合と同一である。
4.CLOSE_SERVER(command値:4)
サーバ1(2)自体がシャットダウン等でサービスの提供ができなくなる際に通知するメッセージである。length値は0とする(コマンドデータ内容はない)。
5.SERVICE_UPDATE(command値:5)
サービス内容更新処理対象のサービスに対してのみ通知が行なわれるメッセージである。自サーバ1(2)で提供しているサービスの内容が更新された際に通知を行なう。length値は0とする(コマンドデータ内容はない)。
6.DRECT_ADDR_REQ(command値:6)
本メッセージのみルータ3A(又は3B)からサーバ1(又は2)に対して送信される。マスターサーバ1の直接アクセス用アドレス(後述)の要求メッセージである。length値は0とする(コマンドデータ内容はない)。
7.DRECT_ADDR_RESP(command値:7)
上記DRECT_ADDR_REQに対する応答であり、自己がマスターサーバ1である時は直接アクセス用アドレスを返すメッセージである。length値は直接アクセス用アドレスの長さを格納し、コマンドデータ内容は、直接アクセス用アドレスの内容を格納する。
ここで、上記の「直接アクセス用アドレス」とは、ミラーサーバ2がマスターサーバ1に対して直接アクセスを行なえるようにするためのダミーアドレスであり、マスターサー
バ1を立ち上げる際に、サーバ1側で少なくとも1つ用意する。この「直接アクセス用アドレス」は、どのユーザ端末5,6でも使用していないアドレスである必要がある。ちなみに、直接アクセス用アドレスの指定においては、マスターサーバ1のアドレスにおけるサブネットと同一のサブネットをもたせるようにする。これは、マスターサーバ1のアドレス宛と直接アクセス用アドレス宛の双方が同一方向にルーティングされるようにする必要があるからである。
つまり、本実施形態のサーバ1,2は、少なくとも次のような機能を実装していることになる。
(1)ADD_SERVICEメッセージを生成して自己に接続されているルータ3に発行することにより、自サーバ1,2で提供するサービス内容に関する情報を当該ルータ3に通知するサービス通知部としての機能
(2)上記のKEEPALIVE,SERVICE_DOWN,CLOSE_SERVERメッセージを生成して同ルータ3に発行することにより、自サーバ1,2のサービス稼動状況をルータ3に通知するサービス稼動状況通知部としての機能
(3)サービス内容に更新があると、更新後のサービス内容に関する情報をSERVICE_UPDATEメッセージにより自サーバ1,2に接続されているルータ3に通知するサービス更新通知部としての機能
(4)自サーバ1以外に自サーバ1と同一のサービス内容を提供するミラーサーバ2が存在する場合において、ミラーサーバ2が、当該ミラーサーバ2で提供するサービス内容の更新を行なう際に、自サーバ1への直接アクセスを可能とする直接アクセス用アドレスをDRECT_ADDR_RESPメッセージにより自サーバ1に接続されているルータ3に通知する直接アクセス用アドレス通知部としての機能
そして、サーバ1(2)のASRPによる動作(TCPコネクションを設定した後)は以下の通りとなる。
(1)まず、自サーバ1(2)が提供しているサービス全てについて、ADD_SERVICEパケットをルータ3に送信する。
(2)その後は、定期的にKEEPALIVEメッセージを送信する。
(3)自サーバ1(2)において、あるサービスが停止したことを認識した場合は、SERVICE_DOWNパケットを送信する。
(4)自サーバ1(2)がシャットダウン等で停止することを認識した場合は、CLOSE_SERVERパケットを送信する。
(5)提供しているサービスがサービス内容更新処理の対象であり、且つ、該当サービスの内容を更新した際は、SERVICE_UPDATEパケットを送信する。
(6)ルータ3側からDRECT_ADDR_REQメッセージを受信し、且つ、自サーバ1(2)が提供しているサービスにマスターサーバがあった場合、直接アクセス用アドレスをDRECT_ADDR_RESPメッセージに格納して、ルータ3に送信する。
一方、ルータ3には、例えば図5に示すような登録サービステーブル21を用意する。この図5中に示す各パラメータは、上述したASRPのADD_SERVICEパケット中の内容と同一である。ここで、「サーバアドレス」とは、ADD_SERVICEを受信したパケットの送信元アドレスである。また、「サービス満了(expire)時間」には、サービス内容更新処理対象時、サービス対象から外れる時刻が格納される。対象外のエントリに関しては、本エリアには0が格納される。
次に、以下のフラグを定義する。
(1)サービス内容更新処理フラグ
ユーザが設定可能な値。サービス内容更新処理を行なう/行なわないの別を指定する(例えば、行なう場合は“1”、行なわない場合は“0”とする)。
(2)サービス内容満了(expire)時間
ユーザが設定可能な値。サービス内容が更新されてからサービス内容が「満了(expire)」と認識されるまでの時間を設定する。
そして、ルータ3は、サーバ1(2)からADD_SERVICEパケットを受信した場合は、登録サービステーブル21にエントリを追加する。ただし、サービス識別子とサーバアドレスの双方が一致するエントリがあった場合は、その内容を更新する。ここで、ADD_SEVICEパケット内のサービス内容更新処理ビットが“1”であり、且つ、サービス内容更新処理実行フラグが“1”であった場合は、登録サービステーブル21中の「サービス満了時間」に、現在の時刻からサービス内容満了時間を加算した時刻を設定する。それ以外の場合は「サービス内容満了時間」を“0”に設定する。
次に、ADD_SERVICEパケット中の「サーバタイプ」が「マスター」であった場合は、送信元のサーバ1(2)に対してDIRECT_ADD_REQメッセージを送信し、当該DIRECT_ADDR_RESPメッセージに対する返答(DRECT_ADDR_RESPメッセージ)を待ち、返答を受信したら、当該受信メッセージ内に設定されている「直接アクセス用アドレス」を、現在追加している登録サービステーブル21(図5参照)中のエントリにある「直接アクセス用アドレス」フィールドに格納する。
その後、ルータ3(4)は、コネクションを設定したサーバ全てに対して、KEEPALIVEパケットの到着チェックを行なう。KEEPALIVEパケットが一定時間受信できなくなった場合は、そのサーバのアドレス値をサーバアドレス値にもつ、登録サービステーブル21内の全エントリを削除する。なお、サーバ1(2)からCLOSE_SERVERパケットを受信した場合は、KEEPALIVEパケットが一定時間受信できなくった場合と同一の処理を行なう。
また、サーバ1(2)からSERVICE_DOWNパケットを受信した場合は、当該SERVICE_DOWNパケット中の「サービス識別子」と同じ「サービス識別子」をもち、且つ、「サーバアドレス」が受信したSERVICE_DOWNパケットの送信元アドレスと同一である、登録サービステーブル21中のエントリを削除する。
なお、サービス内容更新処理実行フラグが“1”の時は、以下の処理を追加で行なう。即ち、サーバ1(2)からSERVICE_UPDATEパケットを受信した場合は、当該SERVICE_UPDATEパケット中の「サービス識別子」と同一の「サービス識別子」をもち、且つ、「サーバアドレス」がSERVICE_UPDATEパケットの送信元アドレスと同一である、登録サービステーブル21中のエントリを検索し、そのエントリ中にあるサービスexpire時間を、現在の時刻からサービス内容満了時間を加算した時刻に変更する。そして、登録サービステーブル21の全エントリを検索し、サービス満了時間が設定されており、且つ、その時刻が現在時刻よりも過去の時刻であるエントリを削除する。
以上により、あるルータ3に接続しているサーバ1(2)に関するサービス内容は、ルータ3の登録サービステーブル21に全て登録されることになり、また、サービスの稼動状況に応じてその内容が適宜更新されることになる。
〔B〕ルータ間でのサービス情報のやりとり
次に、ルータ3間でのサービス情報のやりとりを行なう方式について説明する。
ルータ3間では、通常、宛先決定(経路制御)のためのルーティングプロトコルをやりとりしている。本実施形態では、インターネットでも使用されているルーティングプロト
コルであるBGP4(BorderGateway Protocol Version4)を拡張して、上述したASRPによって得られた各サーバ1,2のサービス情報を付加する。
即ち、BGP4では、ルータ3間で通知する、ルーティング情報(経路情報)の経路毎に、その経路に対する特徴を表す「パス属性」を記述することができるため、そのパス属性にASRPで得られたサービス情報を追加記載することで、サービス情報の交換を行なう。これにより、ネットワーク上の各ルータ3にサーバ1,2で提供するサービス情報が伝達されて各ルータ3で共有されることになる。
図6に、BGP4で経路情報を通知する際に使用する更新(UPDATE)メッセージのフォーマット例を示す。この図6に示すように、UPDATEメッセージには、利用不能経路長フィールド41(2オクテット),取消経路フィールド42(可変長),パス属性長フィールド43(2オクテット),パス属性フィールド44(可変長)及びネットワーク層到達可能性情報フィールド45がある。
そして、利用不能経路長フィールド41には取消経路フィールド42のフィールド長が格納され、取消経路フィールド42には利用不能となった経路情報が格納され、パス属性長フィールド43にはパス属性フィールド44のフィールド長が格納され、パス属性フィールド44には経路の特徴を表す情報(本実施形態では、当該フィールドにサービス情報を付加する)が格納され、ネットワーク層到達可能情報フィールド45には、利用可能な経路情報が格納されるようになっている。
また、図7に、この図6におけるパス属性フィールド44のフォーマット例を示す。この図7に示すように、パス属性フィールド44は、属性フラグフィールド441(1オクテット),属性タイプコードフィールド442(1オクテット),属性長フィールド443(1又は2オクテット),属性値フィールド444(可変長)から成る。なお、この図7において、サービス情報の内容は、属性値フィールド444にそれぞれ格納されることとなる(内容詳細は後述)。その他のフィールドは以下のように定義する。
(1)属性フラグフィールド441
ビット毎に意味がある。それぞれの内容とサービス情報の属性を記述する際の設定値は以下のように定義する。
(a)ビット0:オプショナルビット
“0”はwell−knownを示し、BGP4をサポートする全ルータ3が理解できなければならない属性を示す。“1”ならオプショナルを示し、全ルータ3が知っているとは限らない属性を示す。サービス情報の内容は追加で定義するものなので、本ビット“1”とする。
(b)ビット1:通過ビット
“0”は非通過を示し、この属性をサポートしていないルータ3において、本属性を削除することを示す。“1”は通過を示し、この属性をサポートしていないルータ3は、本属性を通過、伝搬させることを示す。サービス情報は、全ルータ3に渡らなければならないため、本ビットは“1”とする。
(c)ビット2:通過ビット
ルータ3が本属性を理解できずに通過させた時、“1”を設定するビット。
(d)ビット3(属性長フィールドの長さ):“0”ならば、「属性長」フィールドが1オクテット長であることを示す。“1”ならば「属性長」フィールドが2オクテット長であることを示す。本フィールドは属性の値の長さに応じて決定する。
(e)ビット4〜7(未使用):常に“0”とする。
(2)属性タイプコードフィールド442
属性の種別を示す。BGP4ではwell−known,オプショナル双方で1〜10,14〜16が定義されている。サービス情報の属性を記述するためには、いくつかの追加属性が必要であるが、既に定義されている値以外で一意にタイプコードを設定する。詳細については後述する。
ここで、BGP4のUPDATEメッセージで通知される経路情報は、AS(AutonomousSystem)単位で集約されたメッセージが基本である。その集約されたネットワーク上には、各種サービスを提供するサーバが複数あることも当然考えられる。集約経路毎に複数のサービスがある場合は、その経路に対するUPDATEメッセージを複数回投げることで、全てのサービス情報を通知する。
また、ASRPによって登録サービステーブルが更新された時は、必ずそのサービス更新内容を含んだUPDATEメッセージをピアのルータ3に通知する。これにより、ピアのルータ3に当該サービス更新内容が反映されて、ネットワーク上の各ルータ3が保有するサービス情報の更新(同期)が可能となる。
次に、或る1つのサービス情報を通知する際に必要となる、追加属性の属性タイプコード,属性値を以下の表1に示すように定義する。ここで、各属性における属性タイプコード値を定義しているが、定義した値はこの限りではなく、全体で一意に決定されていればよい。
Figure 0004372098

サービス情報を通知する際は、上記3種の属性を必ず設定し、ピアのルータ3に通知する。これによって、各サービス情報が、本拡張を理解できる全ルータ3に対して認識されることになる。
〔C〕サービス情報に基づくサービス毎の最適経路の決定・更新方式
次に、上述したメッセージによって得られたサービス情報から、ルータ3において、サービス毎に最適経路を決定,更新する方式について説明する。
ここで、ルータ3に通知されてきた全サービス情報の最適経路情報を保持するため、ルータ3には、図11に示すような宛先サーバ選択テーブル22を用意する。ルータ3に得られたサービス情報は、全てこの宛先サーバ選択テーブル22にまとめられ、この情報を基にサービスの負荷分散処理を行なう。なお、この宛先サーバ選択テーブル22の各フィールドの内容は以下の通りである。
(1)サービス識別子長/サービス識別子
登録サービステーブル21(図5参照)の「サービス識別子長」,「サービス識別子」に相当する情報である。
(2)マスターアドレス:登録サービステーブル21の「サーバアドレス」に相当する情報である。
(3)直接アクセス用アドレス
マスターサーバ1に対する「直接アクセス用アドレス」に相当する情報である。
(4)最適アドレス
登録サービステーブル21の「サーバアドレス」に相当する情報である。ただし、それぞれのサービスにおいて、自ルータ3における最適な宛先アドレスが指定される。
(5)ポート数(マスター)/ポート数1〜n(マスター)
登録サービステーブル21の「ポート数」,「ポート番号1」〜「ポート番号n」に相当する情報である。ただし、それぞれのサービスにおけるマスターサーバ1のポート情報が指定される。
(6)ポート数(最適)/ポート数1〜n(最適)
登録サービステーブル21の「ポート数」,「ポート番号1〜n」に相当する情報である。ただし、それぞれのサービスにおける最適な宛先アドレスにおけるポート情報が指定される。
(7)マスター満了(expire)時刻
サービスを提供するマスターサーバ1が停止したことを認識した際の、サービス満了(expire)時刻が設定される。マスターサーバ1が停止していなければ本領域は0とする。なお、本領域の詳細については後述する。
そして、各ルータ3では、ピアのルータからUPDATEメッセージが送信された時、もしくは、自ルータ3の登録サービステーブル内容が更新された時、宛先サーバ選択テーブル22の内容を更新(サービスを追加/更新)する。
即ち、例えば図15に示すように、ルータ3は、登録サービステーブル21の内容に追加があった時、もしくは、ピアのルータ3からUPDATEメッセージを受信し、その中のAPP_ATTR_ADDR属性値のtype情報が「update」であった時(これらの情報を、以後、更新データと称する)、更新データのサービス識別子が宛先サーバ選択テーブル22に存在するかどうか検索する(ステップA1)。
存在する場合(ステップA1でYesの場合)は、一致したエントリ(宛先サーバ選択テーブル22内のエントリ)をE_tとし(ステップA2)、当該エントリE_t内の最適アドレスと自ルータ3との距離(ホップ数:宛先までの距離)を、ルーティングテーブルから獲得する(E_hopとする)(ステップA3)。
そして、上記の検索で該当した宛先サーバ選択テーブル22のエントリE_t内のサーバアドレス(U_addr)と自ルータ3との距離(ホップ数)をルーティングテーブルから獲得し(U_hopとする)(ステップA4)、獲得した2つのホップ数E_hop,U_hopを比較する(ステップA5)。
その結果、更新データのアドレスに対するホップ数U_hopの方が小さければ(ステップA5でYesの場合)、該当する宛先サーバ選択テーブル22のエントリE_t内の最適アドレス,ポート数(最適),ポート数1〜n(最適)の情報を、更新データに入っている情報〔最適アドレス=U_addr,ポート数(最適)=U_port,ポート番号1〜n=U_p1〜U_pn〕に書き換える(ステップA6)。なお、ホップ数E_hopの大きい場合(ステップA5でNoの場合)は、かかる書き換えは行なわずに既存の登録内容を維持する。
次に、更新データにある「サーバタイプ(server type)」が「マスター」
であるかをチェックし(ステップA7)、「マスター」である場合は、該当する宛先サーバ選択テーブル22中のエントリE_tにあるマスターアドレス,直接アクセス用アドレス,ポート数(マスター),ポート数1〜n(マスター)の内容を、更新データの内容〔マスターアドレス=U_addr,直接アクセス用アドレス=U_daddr,ポート数(マスター)=U_port,ポート番号1〜n(マスター)=U_p1〜Upn〕にそれぞれ書き換える(ステップA8)。なお、「サーバタイプ(servertype)」が「マスター」でない(「ミラー」)であった場合(ステップA7でNoの場合)は、かかる書き換えは行なわず、既存の登録内容が維持される。
一方、更新データの「サービス識別子」が宛先サーバ選択テーブル22になかった場合(ステップA1でNoの場合)は、BGPテーブル及び登録サービステーブル21から、更新データに入っている「サービス識別子」と同一の「サービス識別子」をもつエントリを全て検索し、それらのエントリ中で、「サーバタイプ」が「マスター」であるエントリを検索する(ステップA9,A10)。なお、「BGPテーブル」とは、BGP4にてピアのルータ3から受け取った経路情報(表1で追加した属性内容も含む)を全て格納したテーブルである。
その結果、該当するエントリがあれば(ステップA10でYesであれば)、宛先サーバ選択テーブル22のエントリを1つ追加し、サービス識別子長,サービス識別子,マスターアドレス,直接アクセス用アドレス,ポート数(マスター),ポート数1〜n(マスター)の内容を検索したエントリの内容に設定する(ステップA11)。該当エントリがない場合(ステップA10でNoの場合)は処理を終了する。
その後、ルータ3は、追加エントリのマスター満了時刻を“0”に設定し(ステップA12)、検索した全エントリのサーバアドレスにおいて、自ルータ3との距離(ホップ数)をルーティングテーブルから獲得する(ステップA13)。そして、獲得したホップ数の中で最小のエントリを検索し、先ほど追加した宛先サーバ選択テーブル22中のエントリ内にある最適アドレス,ポート数(最適),ポート数1〜n(最適)の内容を、ホップ数最小のエントリ内容に設定する(ステップA14)。
これに対し、登録サービステーブル21の内容が削除された時、もしくは、ピアのルータ3から更新(UPDATE)メッセージを受信し、その中のAPP_ATTR_ADDR属性値のタイプ情報が「削除(delete)」であった時(これらの情報を、以後、「削除データ」と称する)は、次のようなサービスの削除処理が行なわれる。なお、削除されたサービスのサービス識別子,サーバアドレス,サービスタイプをそれぞれD_sid,D_addr,D_stypeとする。
即ち、例えば図16に示すように、宛先サーバ選択テーブル22のエントリを検索して、削除データのサービス識別子(D_sid)に一致するエントリ(D_t)が宛先サーバ選択テーブル22に存在するかどうかをチェックし(ステップB1)、なければ処理を
終了し(ステップB1のNoルート)、エントリD_tがあれば(ステップB1のYesルートからステップB2)、削除データのサーバタイプが「マスター」であるか否かをチェックする(ステップB3)。
その結果、削除データのサーバタイプが「マスター」である場合は、宛先サーバ選択テーブル22のエントリD_tを削除した上で(ステップB3のYesルートからステップB4)、削除データが登録サービステーブル21の内容かどうかを確認する(ステップB5)。登録サービステーブル21の内容でない場合は処理を終了するが(ステップB5のNoルート)、登録サービステーブル21の内容であった場合(削除データがピアのルータ3からのUPDATEメッセージであった場合)は、該当サービスの再追加を行なう。
即ち、BGPテーブル及び登録サービステーブル21において、削除データのサービス識別子D_sidと同じサービス識別子をもつエントリを全て検索し(ステップB5のNoルートからステップB6)、検索したエントリの中に、「サーバタイプ」が「マスター」のエントリが存在するかをチェックする(ステップB7)。
その結果、「マスター」のエントリが存在しない場合は処理を終了するが(ステップB7のNoルート)、存在する場合は、宛先サーバ選択テーブル22にエントリを1つ追加(エントリA_tとする)し、検索したマスターサーバのエントリ内容〔サービス識別子長,サービス識別子,マスターアドレス,直接アクセス用アドレス,ポート数(マスター),ポート番号1〜n(マスター)〕を設定する(ステップB7のYesルートからステップB8)。
そして、現在の時刻からマスター満了時刻を足した時刻をエントリA_t内のマスター満了時刻に設定し(ステップB9)、検索した全エントリのサーバアドレスにおいて、自ルータ3との距離(ホップ数)をルーティングテーブルから獲得し(ステップB10)、獲得したホップ数が最小のエントリ内容〔最適アドレス,ポート数(最適),ポート番号1〜n(最適)〕を、エントリA_tに設定する(ステップB11)。
一方、上記のステップB3において、削除データのサーバタイプが「マスター」でなかった場合は、サーバアドレスD_addrが、エントリD_t内の最適アドレスと一致するか否かをチェックし(ステップB3のNoルートからステップB12)、一致しなければ処理を終了するが(ステップB12のNoルート)、一致する場合は以下の処理を行なう。
即ち、BGPテーブル及び登録サービステーブル21において、削除データのサービス識別子D_sidと同一のサービス識別子をもつエントリを全て検索し(ステップB12のYesルートからステップB13)、検索した全エントリのサーバアドレスに対し、ルーティングテーブルからそれぞれ自ルータ3との距離(ホップ数)を獲得し(ステップB14)、獲得したホップ数の中で最小のエントリを検索し、エントリD_t内の最適アドレス,ポート数(最適),ポート数1〜n(最適)の内容を、ホップ数最小のエントリ内容に変更する(ステップB15)。
つまり、上記の更新方式は、ピアのルータ3がダウンしたことを認識した際(BGP4では、ピアのルータ3間でKEEPALIVEメッセージをやりとりすることで生死確認を行なっている。KEEPALIVEメッセージが受信されなくなったらピアのルータ3がダウンしたことを識別する)、BPGテーブルから該当ルータ3からの情報を除外し、除外した状態で、再度、ルーティングテーブルを構築するが、その際、削除されたBGPテーブル中で、APP_ATTR_ADDR属性をもつエントリが削除されたとみなし、上記フローの削除処理を行なうのである。これにより、たとえルータ3が停止(ダウン)してしまった場合でも、そのルータ3が停止した時のネットワーク状況(ネットワークト
ポロジの変化)に応じて、最適な宛先を選択することが可能となる。
次に、「マスター満了時刻」に関する処理について記述する。「マスター満了」とは、サービスのマスターサーバ1がサービス停止(満了)した時に、ミラーサーバ2も停止(expire)させるための処理である。マスターサーバ1が一時的な停止であった場合は、ミラーサーバ2で処理を継続させる必要があるが、マスターサーバ1のサービスが長期にわたって停止したり、恒久的にサービス停止をしたりした場合は、ミラーサーバ2に関してもサービスを停止させる必要性があることから、expire時刻を設けている。
即ち、ルータ3は、マスターサーバ1のサービスが停止してから、マスター満了までの時間を「マスター満了時間」としてもち、以下の処理を行なう。なお、「マスター満了時間」は、ユーザから自由に設定できるようにする。
まず、ルータ3は、宛先サーバ選択テーブル22の全エントリにおけるマスター満了時刻をチェックし、“0”でない場合、現在時刻とマスター満了時刻とを比較し、マスター満了時刻の方が古い時刻であった場合は、該当エントリを削除する。これにより、マスター満了時間によるサービス停止処理が行なえることとなる。
〔D〕ルータの実施例
次に、上述した処理を実現するルータ3の実施例を図17に示す。なお、この図17には、本実施形態の要部を示しており、ルータ全体の構成を示してはいない。この図17に示すように、本実施形態のルータ3は、それぞれ、パケット識別部10,テーブル設定部11,ミラーサーバアクセス用アドレス変換部12,最適宛先決定部(負荷分散処理部)13,マスターサーバ宛アドレス変換部14,ルーティング処理部15,ASRP処理部16及びBGP4処理部17等をそなえて構成されている。ただし、ASRP処理部16は、少なくとも、サーバ1,2に接続されているルータ3A,3Bに実装されていればよく、他のルータ3については必ずしも必要ない。
ここで、パケット識別部10は、受信パケットの種別〔ASRPパケット,BGP4の制御パケット(UPDATEメッセージ等),ユーザパケット(サービスアクセス要求等)〕を識別する機能を有するもので、ASRPパケットはASRP処理部17へ、BGP4の制御パケットはBGP4処理部16へ、サービスアクセス要求等のユーザパケットは、ミラーサーバアクセス用アドレス変換部12へそれぞれ振り分けられるようになっている。
BGP4処理部16は、上述したルータ3間のBGP4等のルーティングプロトコルによるメッセージの送受を処理するもので、前述したように「属性タイプコード」を拡張したメッセージの送受を行なうようになっている。また、ASRP処理部17は、自ルータ3に接続されているサーバ1,2との間での前記ASRPメッセージの送受を処理するものである。
テーブル設定部11は、ASRP処理部17及びBGP4処理部16で得られるサービス情報を基に、上述した登録サービステーブル21,宛先サーバ選択テーブル22,BGP4テーブルの内容、および、それぞれ後述するミラーサーバアクセス用アドレス変換部12におけるマスターサーバ宛変更テーブル23(図12参照),最適宛先決定部13における宛先変更テーブル24(図13参照),マスターサーバ宛アドレス変換部14におけるマスターサーバ復旧テーブル25の内容を設定・管理するもので、登録サービステーブル21,宛先サーバ選択テーブル22の更新に伴って、ミラーサーバアクセス用アドレス変換部12,最適宛先決定部(負荷分散処理部)13,マスターサーバ宛アドレス変換部14に対する必要なエントリ追加/削除の指令を発するようになっている。なお、上記の各種テーブルは、それぞれ、RAM等の所要の記録媒体に記録される。
つまり、上記のテーブル設定部11,BGP4処理部16及びASRP処理部17は、自己と接続されているサーバ1,2又は他ルータ3からサーバ1,2で提供するサービス内容に関する情報を受信して、当該サービス情報の登録及び更新を管理するサービス情報管理部18としての機能を果たしており、BGP4処理部16は、このサービス情報管理部18でのサービス情報の登録・更新に伴って、サービス情報をルータ3間の経路制御に用いられるルーティングプロトコルを用いてさらに他ルータ3へ伝達するサービス情報伝達部としての機能を果たしていることになる。
そして、テーブル設定部11は、さらに、次のような機能(括弧書きで示す部分により主としてその機能が実現されていることを示す)を有していることになる。
(1)サーバ1,2の提供するサービス種別を示すサービス識別子(URL)を含むサービス情報を保持・管理する機能(テーブル設定部11)
(2)サーバ1,2からASRPによるKEEPALIVEパケットやSERVICE_DOWNパケット,CLOSE_SERVERパケット等により通知される当該サーバのサービス稼動状況に応じてサービス情報を更新する機能(ASRP処理部17,テーブル設定部11)
(3)サーバ1,2から当該サーバ1,2の提供するサービス内容が更新される毎に通知されるASRPによるSERVICE_UPDATEパケット(サービス更新メッセージ)を一定期間受信しないときは当該サービス内容についてのサービス情報の登録を削除する機能(ASRP処理部17,テーブル設定部11)
(4)ASRPによるSERVICE_UPDATEパケットを一定期間受信しない場合でも非更新対象のサービス内容についてのサービス情報の登録は維持する機能(ASRP処理部17,テーブル設定部11)
(5)マスターサーバ1がASRPにより定期的に発行するKEEPALIVEパケット(サービス稼動状況通知メッセージ)によりマスターサーバ1が一定期間稼動停止しているか否かを判断する機能(ASRP処理部17)
(6)当該機能によりマスターサーバ1が稼動停止していると判断すると、テーブル設定部11におけるミラーサーバ2についてのサービス情報の登録を削除する機能(テーブル設定部11)
(7)他ルータ3からBGP4により定期的に受信されるべきKEEPALIVEメッセージ(生死確認情報)の受信を監視することにより当該他ルータ3の稼動状況を監視する機能(BGP4処理部16)
(8)当該BGP4のKEEPALIVEメッセージの監視により他ルータ3の稼動停止が確認されると、テーブル設定部11において自己が保有するサービス情報のうち当該稼動停止した他ルータ3についてのサービス情報を削除する機能(テーブル設定部11)
(9)マスターサーバ1へミラーサーバ2が自己の提供するサービス内容の更新を行なう際に該マスターサーバへの直接アクセスを可能とする直接アクセス用アドレスを要求する機能(ASRP処理部17)
(10)当該要求に対してマスターサーバ1から受信される直接アクセス用アドレスをサービス情報に含めて他ルータ3に伝達する機能(BGP4処理部16)
次に、ミラーサーバアクセス用アドレス変換部12,最適宛先決定部13,マスターサーバ宛アドレス変換部14及びルーティング処理部15は、上述したサービス情報管理部18でのサービス情報(宛先サーバ選択テーブル22,下記のマスターサーバ宛変更テーブル23及び宛先変更テーブル24)に基づいてサービスアクセス要求の宛先情報(アドレス)をサービス内容(サービス識別子)単位で選択的に変更して最適な宛先へルーティングするルーティング制御部19としての機能を実現するものである。
具体的には、ミラーサーバアクセス用アドレス変換部12は、ミラーサーバ2がサービス内容の更新処理を行なう際、マスターサーバ1に対して行なう通信を最適宛先の決定対
象から除外する(マスターサーバ1への直接アクセスを可能にする)ための機能を有するもので、ここでは、例えば図12に示すようなマスターサーバ宛変更テーブル23を有している。
このマスターサーバ宛変更テーブル23には、送信元アドレス,送信先アドレス及び変更アドレスの組がエントリして登録されるようになっており、本アドレス変換部12は、入力フレームの送信元アドレスと送信先アドレスとを取り出し、当該テーブル23の送信元アドレス及び送信先アドレスの双方が一致するエントリを検索し、双方が一致するエントリが存在する場合に、当該入力フレームの送信先アドレスを、そのエントリの変更アドレス(具体的には、「直接アクセス用アドレス」)に変換するようになっている。
そして、このマスターサーバ宛変更テーブル23のエントリの追加/削除処理は、テーブル設定部11により次のようにして行なわれる。即ち、登録サービステーブル21にエントリが追加された場合は、テーブル設定部11は、図18に示すように、追加エントリのサービス識別子をA12_sid、サーバタイプをA12_stype、サーバアドレスA12_saddrとして(ステップC1)、まず、追加エントリの「サーバタイプ(A12_stype)」が「マスター」であるか否かをチェックする(ステップC2)。
「サーバタイプ」が「マスター」である場合、テーブル設定部11は、何もせずに処理を終了するが(ステップC2のYesルート)、「ミラー」である場合は、宛先サーバ選択テーブル22から、追加エントリと同一のサービス識別子A12_sidをもつエントリを検索し(ステップC2のNoルートからステップC3)、そのエントリ中の「マスターアドレス(S12_maddr)」と「直接アクセス用アドレス(S12_daddr)」とを獲得する(ステップC4)。
そして、マスターサーバ宛変更テーブル23にエントリを1つ追加し、当該エントリに、追加エントリのサーバアドレス(A12_saddr),獲得したマスターアドレス(S12_maddr),獲得した直接アクセス用アドレス(S12_daddr)を、順に、マスターサーバ宛変更テーブル23の送信元アドレス,送信先アドレス,変更アドレスに設定する(ステップC5)。
これに対し、登録サービステーブル21からエントリが削除された場合、テーブル設定部11は、図19に示すように、削除されたエントリのサービス識別子をD12_sid、サーバタイプをD12_stype、サーバアドレスをD12_saddrとして(ステップD1)、まず、削除エントリの「サーバタイプ」が「マスター」であるかどうかをチェックする(ステップD2)。
その結果、削除エントリの「サーバタイプ」が「マスター」であれば、テーブル設定部11は、何もせずに処理を終了するが(ステップD2のYesルート)、削除エントリの「サーバタイプ」が「ミラー」である場合、宛先サーバ選択テーブル23から、削除エントリと同一のサービス識別子(D12_sid)をもつエントリを検索し(ステップD2のNoルートからステップD3)、そのエントリ中の「マスターアドレス(S12_maddr)」と「直接アクセス用アドレス(S12_daddr)」とを獲得する(ステップD4)。
そして、テーブル設定部11は、マスターサーバ宛変更テーブル23において、送信元アドレスがD12_saddr、送信先アドレスがS12_maddr、変更アドレスがS12_daddrとなっているエントリを検索し、そのエントリを削除する(ステップD5)。
以上の処理によって、ミラーサーバ2からマスターサーバ1宛のフレームのみ、宛先ア
ドレスが「直接アクセス用アドレス」に変換されることとなる。
次に、最適宛先決定部13は、上述のサービス情報を基に、入力フレームが該当サービス宛であった場合、最適な宛先に変更するためのもので、このために、例えば図13に示すような宛先変更テーブル24を有している。
この宛先変更テーブル24には、アドレス(マスター),ポート(マスター),アドレス(最適)およびポート(最適)の組がエントリとして登録されるようになっており、最適宛先決定部13は、ミラーサーバアクセス用アドレス変換部12からの入力フレームの送信先アドレス及び送信先ポート番号を抽出し、それぞれをアドレス(マスター)及びポート(マスター)とみなして、同一内容をもつエントリがあるかどうかをこの宛先変更テーブル24において検索し、エントリがあった場合は、入力フレームの送信先アドレス及び送信先ポート番号をそれぞれ宛先変更テーブル24のアドレス(最適)及びポート(最適)の内容に変更して出力する。
これにより、マスターサーバ1宛で、かつ、該当サービスに対するアクセスについてのみ、最適な宛先に変更されることとなる。なお、宛先の変更情報(どこからきたフレームは、どの宛先に変更しているか)の保持や、宛先変更テーブルが変化した後でも通信(コネクション)の持続性(persistent)を保つ方式に関しては、公知の負荷分散装置が実現している方式を適用すればよい。
具体的に、テーブル設定部11による上記宛先変更テーブル24に対するエントリの追加/削除は次のようにして行なわれる。
即ち、宛先サーバ選択テーブル22にエントリが追加された場合、テーブル設定部11は、図20に示すように、当該追加エントリのマスターアドレスをA13_maddr、最適アドレスをA13_saddr、ポート数(マスター)をA13_port、ポート番号1〜n(マスター)をA13_mp1〜A13_mpn、ポート番号1〜n(最適)をA13_sp1〜A13_spnとして(ステップE1)、宛先変更テーブル24にエントリを1つ追加して、当該追加エントリのアドレス(マスター)としてA13_maddr、ポート(マスター)としてA13_mpk(ただし、k=1〜A13_port)、アドレス(最適)としてA13_saddr、ポート(最適)としてA13_spkをそれぞれ設定する。なお、宛先サーバ選択テーブル22に追加されたエントリのポート数A13_portが複数(n個)ある時は、上記の処理が全てのポートについて順に行なわれて、n個のエントリが追加されることになる(ステップE2)。
これに対し、宛先サーバ選択テーブル22からエントリが削除された場合、テーブル設定部11は、図21に示すように、まず、削除されたエントリのマスターアドレスをD13_maddr、最適アドレスをD13_saddr、ポート数(マスター)をD13_port、ポート番号1〜n(マスター)をD13_mp1〜D13_mpn、ポート番号1〜n(最適)をD13_sp1〜D13_spnとして(ステップF1)、宛先変更テーブル24を検索して、同一内容をもつ宛先変更テーブル24中のエントリを削除する(ステップF2)。なお、削除処理の場合も、削除エントリのポート数が複数(n個)ある時は、上記の処理が全てのポートについて順に行なわれて、n個のエントリが削除されることになる。
次に、マスターサーバ宛アドレス変換部14は、入力フレームがマスターサーバ1の「直接アクセス用アドレス」であった場合に、マスターアドレスに変更する機能を有するもので、ここでは、例えば図14に示すようなマスターサーバ宛復旧テーブル25をそなえている。
このマスターサーバ宛復旧テーブル25には、直接アクセス用アドレスと変更アドレスとの組がエントリとして登録されるようになっており、マスターサーバ宛アドレス変換部
14は、最適宛先決定部13からの入力フレームの送信先アドレスを抽出し、その内容をマスターサーバ宛復旧テーブル25中の「直接アクセス用アドレス」とみなし、同一のアドレスをもつエントリを検索し、エントリが存在する場合は、入力フレームの送信先アドレスをテーブル25中の対応する変更アドレスに変更して出力するようになっている。これにより、マスターサーバ1宛に直接送るフレーム(直接アクセス用アドレスをもっているフレーム)は、実際のマスターサーバ宛フレームに変更されることとなる。
このマスターサーバ宛復旧テーブル25に対するエントリの追加/削除は、テーブル設定部11によって次のようにして行なわれる。即ち、登録サービステーブル21にエントリが追加された場合、テーブル設定部11は、図22に示すように、追加されたエントリのサーバタイプをA14_stype、サーバアドレスをA14_saddr、直接アクセス用アドレスをA14_daddrとして(ステップG1)、まず、当該追加エントリのサーバタイプが「ミラー」かどうかをチェックする(ステップG2)。
その結果、追加エントリの「サーバタイプ」が「ミラー」である時は、テーブル設定部11は、何もせずに処理を終了するが(ステップG2のYesルート)、追加エントリの「サーバタイプ」が「マスター」である時は、追加エントリ中の直接アクセス用アドレス(A14_daddr)及びサーバアドレス(A14_saddr)を、それぞれ、マスターサーバ宛復旧テーブル25の直接アクセス用アドレス及び変更アドレスとして設定する(ステップG2のNoルートからステップG3)。
これに対し、登録サービステーブル21からエントリが削除された場合、テーブル設定部11は、図23に示すように、削除されたエントリの「サーバタイプ」をD14_stype、サーバアドレスをD14_saddr、直接アクセス用アドレスをD14_daddrとして(ステップH1)、まず、追加エントリの「サーバタイプ」が「ミラー」かどうかをチェックする(ステップH2)。
その結果、追加エントリの「サーバタイプ」が「ミラー」である時は、テーブル設定部11は、何もせずに処理を終了するが(ステップH2のYesルート)、削除エントリの「サーバタイプ」が「マスター」である時は、当該削除エントリ中の直接アクセス用アドレス(D14_daddr)及びサーバアドレス(D14_saddr)とそれぞれ一致する内容をもつエントリをマスターサーバ宛復旧テーブル25において検索し、そのエントリをマスターサーバ宛復旧テーブル25から削除する(ステップH2のNoルートからステップH3)。
なお、ルーティング処理部15は、上述のようにして各種変更が行なわれた後のフレームに対して所定のルーティングテーブルに基づくルーティング処理を行なうためのもので、公知のルータが実現しているルーティング処理と同一もしくは同様の処理を行なう。
〔E〕最適宛先決定の動作例
以下、上述したルータ3の実装機能に基づく実際の動作(最適宛先決定)例について図24を参照しながら説明する。なお、この図24において、マスターサーバ1のアドレスはa、直接アクセス用アドレスはA、ミラーサーバ2のアドレスはbとし、マスターサーバ1及びミラーサーバ2は、それぞれ、サービス識別子としての或るURL(例えば、“http://www.foo.bar/”)により特定されるサービスを提供しているものとする。また、マスターサーバ1ではポート番号=80、ミラーサーバ2ではポート番号=8080でそれぞれ同一サービスを提供している。さらに、この図24では、ルータ3A,3Bにおける、マスターサーバ1とミラーサーバ2から得られた上記の各種テーブル21,22,23,24,25の内容も図示している。
さて、この図24において、例えば、端末5から上記URLにアクセスを行なう場合は
、端末5(アドレスはc)から送信元アドレス=c,送信先アドレス=a,ポート番号=80のフレーム(パケット)が送信される。このパケットは、ルータ3Aに到着し、ルータ3A内で宛先変更処理が行なわれる。
この場合、ルータ3Aのマスターサーバ宛変更テーブル23には、送信元アドレス=c及び送信先アドレス=aと一致するエントリが無いので、ミラーサーバアクセス用アドレス変換部12によるアドレス変換は行なわれず、受信パケットは最適宛先決定部13に入力される。
最適宛先決定部13では、宛先変更テーブル24により宛先が変更されるが、この場合は、同一内容に変換されるので、結果として変換されずにマスターサーバ宛アドレス変換部14に入力されることになる。そして、マスターサーバ宛アドレス変換部14でも、マスターサーバ宛復旧テーブル25においてヒットするエントリが無いため、アドレス変換は行なわれない。よって、この場合は、そのままアドレス「a」宛(マスターサーバ1宛)にフレームが中継されることになる。
一方、端末6から上記URLにアクセスを行なう場合は、端末6から送信元アドレス=c,送信先アドレス=a、ポート番号=80のフレーム(パケット)が送信され、当該パケットがルータ4に到着し、ルータ3Bにおいて宛先変更処理が行なわれる。
即ち、まず、ミラーサーバアクセス用アドレス変換部12では、マスターサーバ宛先変更テーブル23のエントリと送信元アドレスが異なるためヒットせず、アドレス変換は行なわれない。次に、最適宛先決定部13では、宛先変更テーブル24に、送信先アドレス=a及びポート番号=80をそれぞれ送信先アドレス=b及びポート番号=8080に変更するエントリが存在するので、送信先アドレスを「a」から「b」に、ポート番号を「80」から「8080」にそれぞれ変更する。
そして、マスターサーバ宛アドレス変換部14では、マスターサーバ宛復旧テーブル25に該当エントリが無いため、アドレス変換は行なわれない。よって、端末6からのアクセスにおいては、送信先アドレス及びポート番号がそれぞれアドレス=b及びポート番号=8080宛に変更されるので、ミラーサーバ2に対してアクセスが行なわれることになる。
以上のようにして、各ルータ3が保有するサービス情報に基づいて選択的にサービスアクセス要求の宛先アドレスが選択的に変更されることにより、端末5,6は、その場所(アドレス)に応じて、サーバ1又は2に最短経路でアクセスすることが可能となる。
次に、ミラーサーバ2がマスターサーバ1のウェブコンテンツを更新する際の処理について説明する。
この場合は、ミラーサーバ2からマスターサーバ1に対して、上記URLにアクセスが行なわれる。よって、この場合は送信元アドレス=b,送信先アドレス=a,ポート番号=80のフレーム(パケット)がミラーサーバ2から送信される。このパケットは、ルータ3Bに到着し、ルータ3Bにおいて宛先変更処理が行なわれる。
即ち、まず、ミラーサーバアクセス用アドレス変換部12では、マスターサーバ変更テーブル23に、送信元アドレス=b,送信先アドレス=aのフレームについては、送信先アドレスを「A」に変更するエントリが存在しているため、当該受信フレームの送信先アドレスを「A」に変更する。
次に、最適宛先決定部13では、宛先変更テーブル24に、宛先アドレス=a,ポート番号=80に対するアドレス/ポート番号変更エントリが存在するが、上記の変更によって宛先アドレスが「A」となっているため、本エントリにはヒットしない。そのため、宛先変更テーブル24によるアドレス変換は行なわれない。最後に、マスターサーバ宛アド
レス変換部14では、マスターサーバ復旧テーブル25にヒットするエントリがないため、アドレス変換は行なわない。
さて、このようにしてルータ3Bにて宛先アドレスが「A」に変更されたので、ルーティング処理によって、当該フレームはルータ3Aに中継され、ルータ3Aにおいても宛先変更処理が行なわれる。
まず、ミラーサーバアクセス用アドレス変換部12では、マスターサーバ宛変更テーブル23にヒットするエントリが無いため、アドレス変換は行なわれない。次に、最適宛先決定部13においても、宛先変更テーブル24にヒットするエントリが無いため、アドレス変換は行なわれない。最後に、マスターサーバ宛アドレス変換部14では、マスターサーバ宛復旧テーブル25に、送信先アドレスAをアドレス=aに変更するエントリが存在するため、当該フレームの送信先アドレスを「a」に変更する。
以上により、ルータ3Aにて宛先アドレスが「a」となり、それによってマスターサーバ1にフレームが中継されることになる。このようにして、ミラーサーバ2からマスターサーバ1へのサービス内容更新に対する要求は、上記のような最適サーバの選択を行なわずに、直接、マスターサーバ1へ届くことになる。
〔F〕本実施形態の効果ないし利点
以上のように、本実施形態によれば、ルータ3間で用いられるルーティングプロトコルであるBGP4のメッセージに、ネットワーク上に散在するサーバ1,2で提供しているサービスの内容に関する情報(サービス情報)を追加することで、ネットワーク上の全サービスに対する情報をネットワーク全体で共有することが可能となっているため、ネットワーク上で提供されている各種サービスの種別及び場所をルータ3が自動認識することができ、端末5,6がその情報を意識することなく、最適な宛先へのルーティングが可能となる。したがって、特定のサーバ(サービス)への負荷を効率良く分散させて負荷集中を抑制することが可能となる。
また、本実施形態では、ルータ3間のルーティングプロトコルのメッセージにサービス情報を付加しているので、ルータ3の稼動状況に応じて最適な宛先をその都度決定し、常に最適な宛先への中継が行なえることとなる。また、サービスを提供しているサーバ1,2とルータ3との間でもASRPによりサービス情報の送受を行なうので、ネットワーク上にサーバを新たに増設する場合でも、ルータ3に対して別途設定を行なうこと必要はなく、自動的に最適宛先決定の対象として追加することが可能である。
さらに、ASRPやBGP4に追加したサービス情報にサービス識別子を含めているので、ルータでは、各種サーバ1,2がどのようなサービスを行なっているかが認識可能となる。その結果、ルータ3は、サービス毎に個別の最適宛先選択を行なうことが可能である。そして、サービス識別子の内容の一例として、httpの場合は上記のようにURLを指定することにより、「ウェブサービス」というサービスは同一でもコンテンツが異なる場合はURLが異なるため、ルータ3は、サービス内容まで一致していることを認識することが可能となり、それぞれ個別に宛先選択を行なうことが可能である。
また、本実施形態のASRPにおいて、サーバ1,2は一定周期でKEEPALIVEメッセージを送信し、ルータ3は、それによってサーバの稼動状況を判別できるようになっているので、サービスを提供するサーバ群それぞれのサービス稼動状況を常に認識して、サービス稼動状況の変更に応じて最適経路の更新が可能である。
さらに、本実施形態のASRPに或るサービス内容更新処理対象の情報が処理対象であった場合、及び、ルータ3に設定された一定期間の間サービス内容更新の通知を受信しなかった場合、ルータ3では、登録サービステーブル21から該当サーバのエントリ(サービス情報)を削除するので、一定期間サービス内容の更新を行なっていなかった場合は、
該当サーバがサービスを稼動していても、中継先のリストから外れることとなる。
つまり、特定サービスの提供元(マスターサーバ1)のもつ情報に対して、同一のサービス内容を反映している他のサーバ群(ミラーサーバ2)の情報が古いと認識した場合、サービス稼動していても、その宛先を対象から外すことが可能になる。したがって、ユーザ(端末5,6)は、常に、最新のサービス内容を提供しているサーバに意識することなくアクセスすることが可能となる。
また、サービス内容更新処理対象の情報は、サーバ1,2毎にASRPによってルータに通知されるため、ルータ3は、サーバ1,2毎に更新処理対象/非対象を認識することができる。したがって、たとえサービス内容の更新が滞っているサーバであっても、サービス内容更新処理対象外であれば、登録サービスから削除されることはないので、該当サーバへの中継が継続されることになる。これにより、ミラーサーバ2のサービス内容がマスターサーバ1のものに比べて古いと認識した場合でも、ルータ3は、サービス提供に問題のないサービスである場合は、宛先対象から除外しないようにすることを選択可能となる。
さらに、本実施形態では、マスター満了(expire)時間を設け、ルータ3において、マスターサーバ1が稼動停止してから一定時間後に、宛先サーバ選択テーブル22から該当サービス情報を削除するので、マスターサーバ1の停止状況に応じてミラーサーバ2への中継も停止することが可能となる。つまり、特定サービスの提供元(マスターサーバ1)が稼動しておらず、かつ、その状況が一定時間続いた場合は、同一のサービス内容を反映している他のサーバ群(ミラーサーバ2)がたとえ稼動していても、一定時間後にはミラーサーバ2のサービス全てを宛先対象から除外することで、サービスを提供していないように見せることが可能になるのである。
また、本実施形態のASRPを、ネットワーク上のサーバ1,2にそれぞれ実装することで、当該サーバ1,2のサービス内容をルータ3に通知することができるため、サービス内容を追加又は削除した場合はASRPによって当該追加又は削除がルータ3の認識するところとなり、その情報はルーティングプロトコルに付加された属性情報によって全ネットワークが認識することとなる。したがって、特定のサービス内容が追加又は削除された場合でも、ルータ3は、その情報を自動的に認識し、サービスを利用するユーザ端末5,6がその状態を認識しなくても最適の宛先に対してアクセスが行なわれることになる。
さらに、本実施形態では、ルータ3において、宛先のサーバ1,2とそのポート、それに対する最適な宛先とそのポートを最適宛先決定部13に通知しているため、端末5,6からのサーバに対するアクセスが、最適な宛先に変換された上で中継される。したがって、サービスを利用する端末5,6は、そのサービスの提供元の場所(アドレス)や稼動状況を意識することなく所望のサービスを受けることができる。
また、本実施形態では、ピアのルータ3が停止した時(BGP4のKEEPALIVEメッセージが途絶えた時)は、そのピアのルータ3が送信していた(保有していた)全てのサービス情報に対して削除処理を行なうので、ルータ3が停止して最適な宛先が変化した場合でも、それに対応した宛先を再決定することが可能である。したがって、ネットワーク上のルータ3の稼動状況によってネットワークトポロジが変化しても、その変化した後の状態に応じて最適な宛先を選択することが可能である。
さらに、本実施形態のルータ3では、ASRPやBGP4に追加した属性情報(直接アクセス用アドレス)から、ミラーサーバアクセス用アドレス変換部12やマスターサーバ宛アドレス変換部14によって、ミラーサーバ2からマスターサーバ1宛となる通信に対
しては、最適宛先決定部13での宛先変換対象とならないようにしているため、ミラーサーバ2がマスターサーバ1に対してアクセスを行なう際は、最適宛先経路の選択は行なわずに、必ずマスターサーバ1宛へ通信が行なわれることとなる。したがって、特定サービス内容を反映しているサーバ群(ミラーサーバ2)は、提供しているサービス内容の更新を確実かつ正確に行なえることになる。
以上のように、本発明によれば、ネットワーク上のルーティングノード間で用いられるルーティングプロトコルを用いてサーバで提供しているサービスの内容に関する情報を伝達することで、ネットワーク上の全サービスに関する情報をネットワーク全体で自動的に共有・更新することが可能となるため、ネットワーク上で提供されている各種サービスの種別及び場所等をユーザ端末が意識することなく、サービスアクセスをネットワーク内で常に最適な宛先へルーティングすることが可能となる。したがって、特定サービスへの負荷を効率良く分散させて負荷集中を抑制することができ、ネットワーク通信分野において極めて有用な技術を考えられる。
本発明の一実施形態に係るネットワーク構成を示すブロック図である。 本実施形態で用いるASRPパケットのフォーマット例を示す図である。 本実施形態で用いるASRPのADD_SERVICEメッセージのコマンドデータフォーマット例を示す図である。 本実施形態で用いるASRPのSERVICE_DOWNメッセージのコマンドデータフォーマット例を示す図である。 本実施形態で用いる登録サービステーブルの一例を示す図である。 本実施形態で用いるBGP4のUPDATEメッセージのフォーマット例を示す図である。 図6に示すUPDATEメッセージのパス属性フォーマット例を示す図である。 図7に示すUPDATEメッセージの追加属性の属性タイプコード及び属性値のフォーマット例を示す図である。 図7に示すUPDATEメッセージの追加属性の属性タイプコード及び属性値のフォーマット例を示す図である。 図7に示すUPDATEメッセージの追加属性の属性タイプコード及び属性値のフォーマット例を示す図である。 本実施形態で用いる宛先サーバ選択テーブルの一例を示す図である。 本実施形態で用いるマスターサーバ宛変更テーブルの一例を示す図である。 本実施形態で用いる宛先変更テーブルの一例を示す図である。 本実施形態で用いるマスターサーバ宛復旧テーブルの一例を示す図である。 本実施形態のルータにおけるサービス情報の追加,更新処理を説明するためのフローチャートである。 本実施形態のルータにおけるサービス情報の削除処理を説明するためのフローチャートである。 本実施形態のルータの構成を示すブロック図である。 図17に示すルータのサーバアクセス用アドレス変換部がもつマスターサーバ宛変更テーブルの設定処理(エントリ追加時)を説明するためのフローチャートである。 図17に示すルータのサーバアクセス用アドレス変換部がもつマスターサーバ宛変更テーブルの設定処理(エントリ削除時)を説明するためのフローチャートである。 図17に示すルータの最適宛先決定部がもつ宛先変更テーブルの設定処理(エントリ追加時)を説明するためのフローチャートである。 図17に示すルータの最適宛先決定部がもつ宛先変更テーブルの設定処理(エントリ削除時)を説明するためのフローチャートである。 図17に示すルータのサーバ宛アドレス変換部がもつ宛先変更テーブルの設定処理(エントリ追加時)を説明するためのフローチャートである。 図17に示すルータのサーバ宛アドレス変換部がもつ宛先変更テーブルの設定処理(エントリ削除時)を説明するためのフローチャートである。 本実施形態のネットワークの動作を説明するための図である。

Claims (19)

  1. 複数のサーバと、該サーバに対するサービスアクセス要求を当該サービスアクセス要求に付与されている宛先情報に従ってルーティングする複数のルーティングノードとをそなえたネットワークにおいて、
    該サーバで提供するサービス内容に関する情報(以下、サービス情報という)を、該ルーティングノード間の経路制御に用いられるルーティングプロトコルに従って前記各ルーティングノード間で高官されるルーティング情報に含めて送受することにより、各ルーティングノードにおいて登録・更新し、
    該ルーティングノードが、それぞれ、自己の保有する該サービス情報に基づいて該サービスアクセス要求の宛先情報を選択的に変更して最適な宛先へルーティングし、さらに、
    同一のサービス内容を提供する該サーバとしてマスターサーバとミラーサーバとが存在する場合において、
    該ミラーサーバが、自己の提供するサービス内容の更新を行なうためのアクセス要求を該ミラーサーバと接続されているルーティングノードへ送信し、
    該ルーティングノードは、該アクセス要求の宛先情報を該マスターサーバへの直接アクセスを可能とする直接アクセス用宛先情報に変換して該アクセス要求データのルーティングを行なうことを特徴とする、ネットワークにおける特定サービスの最適ルーティング方法。
  2. 該サーバで提供するサービス種別を示すサービス識別子を含む該サービス情報を、該ルーティングプロトコルを用いて各ルーティングノードにおいて登録・更新し、
    該ルーティングノードが、それぞれ、該サービス識別子に基づいて該サービス種別単位で該サービスアクセス要求のルーティングを行なうことを特徴とする、請求項1に記載のネットワークにおける特定サービスの最適ルーティング方法。
  3. 該サービス識別子として、URL(Uniform Resource Locater)を用いることを特徴とする、請求項2に記載のネットワークにおける特定サービスの最適ルーティング方法。
  4. 該サーバが、自己のサービス稼動状況をサービス稼動状況通知メッセージにより自己が接続されているルーティングノードに通知し、
    当該ルーティングノードが、該サービス稼動状況通知メッセージにより通知されたサービス稼動状況に応じて自己が保有する該サービス情報を更新するとともに、該サービス情報の更新を該ルーティングプロトコルにより該ネットワーク内の各ルーティングノードに伝達して反映させることを特徴とする、請求項1に記載のネットワークにおける特定サービスの最適ルーティング方法。
  5. 該サーバが、自己の提供する該サービス内容が更新される毎にサービス更新メッセージを当該サーバが接続されているルーティングノードに送信し、
    該ルーティングノードが、該サーバから該サービス更新メッセージを一定期間受信しないときは該サービス内容についてのサービス情報の登録を削除するとともに、当該サービス情報の削除を該ルーティングプロトコルにより該ネットワーク内の各ルーティングノードに伝達して反映させることを特徴とする、請求項1に記載のネットワークにおける特定サービスの最適ルーティング方法。
  6. 該ルーティングノードが、該サービス更新メッセージを一定期間受信しない場合でも非更新対象のサービス内容についてのサービス情報の登録は維持することを特徴とする、請求項5に記載のネットワークにおける特定サービスの最適ルーティング方法。
  7. 同一のサービス内容を提供する該サーバとしてマスターサーバとミラーサーバとが存在する場合において、
    該マスターサーバが、定期的に該サービス稼動状況通知メッセージを自己が接続されているルーティングノードへ通知し、
    該ルーティングノードが、該サービス稼動状況通知メッセージにより該マスターサーバが一定期間稼動停止していると判断すると、該ミラーサーバについての該サービス情報の登録を削除するとともに、当該サービス情報の削除を該ルーティングプロトコルにより該ネットワーク内の各ルーティングノードに伝達して反映させることを特徴とする、請求項4に記載のネットワークにおける特定サービスの最適ルーティング方法。
  8. 該ルーティングノードが、それぞれ、他のルーティングノードから該ルーティングプロトコルにより定期的に受信されるべき生死確認情報の受信を監視することにより該他のルーティングノードの稼動状況を監視し、該他のルーティングノードの稼動停止が確認されると、自己が保有するサービス情報のうち当該稼動停止した他のルーティングノードについてのサービス情報を削除するとともに、当該サービス情報の削除を該ルーティングプロトコルにより該ネットワーク内の各ルーティングノードに伝達して反映させることを特徴とする、請求項1に記載のネットワークにおける特定サービスの最適ルーティング方法
  9. 複数のサーバと、該サーバに対するサービスアクセス要求を当該サービスアクセス要求に付与されている宛先情報に従ってルーティングする複数のルーティングノードとをそなえたネットワークに用いられる該サーバであって、
    自己が提供するサービス内容に関する情報(以下、サービス情報という)を自己と接続されているルーティングノードに通知するサービス通知手段と、
    自己のサービス稼動状況を該ルーティングノードに通知するサービス稼動状況通知手段とをそなえるとともに、
    自己以外に自己と同一のサービス内容を提供するミラーサーバが存在する場合において、該ミラーサーバが、該ミラーサーバの提供するサービス内容の更新を行なう際に自己への直接アクセスを可能とする直接アクセス用宛先情報を自己に接続されているルーティングノードへ通知する直接アクセス用宛先情報通知手段をそなえたことを特徴とする、ネットワークに用いられるサーバ。
  10. 該サービス通知手段が、
    該サービス内容に更新があると、更新後の該サービス内容に関する情報を該ルーティングノードへ通知するサービス更新通知手段をそなえて構成されたことを特徴とする、請求項に記載のネットワークに用いられるサーバ。
  11. 複数のサーバと、該サーバに対するサービスアクセス要求を当該サービスアクセス要求に付与されている宛先情報に従ってルーティングする複数のルーティングノードとをそなえたネットワークに用いられる該ルーティングノードであって、
    自己と接続されているサーバ又は他のルーティングノードから該サーバで提供するサービス内容に関する情報(以下、サービス情報という)を受信して、該サービス情報の登録及び更新を管理するサービス情報管理手段と、
    該サービス情報管理手段での該サービス情報の登録・更新に伴って、該サービス情報を、該ルーティングノード間の経路制御に用いられるルーティングプロトコルに従って前記各ルーティングノード間で交換されるルーティング情報に含めてさらに他のルーティングノードへ伝達するサービス情報伝達手段と、
    該サービス情報管理手段の該サービス情報に基づいて該サービスアクセス要求の宛先情報を選択的に変更して最適な宛先へルーティングするルーティング制御手段とをそなえ、さらに、
    同一のサービス内容を提供する該サーバとしてマスターサーバとミラーサーバとが存在する場合において、
    該サービス情報管理手段が、
    該マスターサーバへ該ミラーサーバが自己の提供するサービス内容の更新を行なう際に該マスターサーバへの直接アクセスを可能とする直接アクセス用宛先情報を要求する手段と、
    該要求に対して該マスターサーバから受信される該直接アクセス用宛先情報を該サービス情報に含めて他のルーティングノードに伝達する手段とをそなえたことを特徴とする、ネットワークに用いられるルーティングノード。
  12. 該サービス情報管理手段が、該サーバの提供するサービス種別を示すサービス識別子を含む該サービス情報を保持・管理するように構成されるとともに、
    該ルーティング制御手段が、該サービス識別子に基づいて該サービス種別単位で該サービスアクセス要求のルーティングを行なうように構成されたことを特徴とする、請求項1に記載のネットワークに用いられるルーティングノード。
  13. 該サービス情報管理手段が、該サービス識別子としてURL(Uniform Resource Locater)を保持・管理することを特徴とする、請求項1に記載のネットワークに用いられるルーティングノード。
  14. 該サービス情報管理手段が、
    該サーバから通知される当該サーバのサービス稼動状況に応じて該サービス情報を更新する手段をそなえたことを特徴とする、請求項1に記載のネットワークに用いられるルーティングノード。
  15. 該サービス情報管理手段が、
    該サーバから当該サーバの提供する該サービス内容が更新される毎に通知されるサービス更新メッセージを一定期間受信しないときは当該サービス内容についてのサービス情報の登録を削除する手段をそなえたことを特徴とする、請求項1に記載のネットワークに用いられるルーティングノード。
  16. 該サービス情報管理手段が、
    該サービス更新メッセージを一定期間受信しない場合でも非更新対象のサービス内容についてのサービス情報の登録は維持する手段をそなえたことを特徴とする、請求項1に記載のネットワークに用いられるルーティングノード。
  17. 同一のサービス内容を提供する該サーバとしてマスターサーバとミラーサーバとが存在する場合において、
    該サービス情報管理手段が、
    該マスターサーバが定期的に発行するサービス稼動状況通知メッセージにより該マスターサーバが一定期間稼動停止しているか否かを判断する手段と、
    該マスターサーバが稼動停止していると判断すると、該サービス情報管理手段における該ミラーサーバについての該サービス情報の登録を削除する手段とをそなえたことを特徴とする、請求項1に記載のネットワークに用いられるルーティングノード。
  18. 該サービス情報管理手段が、
    他のルーティングノードから該ルーティングプロトコルにより定期的に受信されるべき生死確認情報の受信を監視することにより該他のルーティングノードの稼動状況を監視する手段と、
    該監視により該他のルーティングノードの稼動停止が確認されると、該サービス情報管理手段において自己が保有するサービス情報のうち当該稼動停止した他のルーティングノードについてのサービス情報を削除する手段とをそなえたことを特徴とする、請求項1に記載のネットワークに用いられるルーティングノード
  19. 該ルーティング制御手段が、
    該ミラーサーバから受信されるアクセス要求の宛先情報を該直接アクセス用宛先情報に変換する宛先変換手段をそなえたことを特徴とする、請求項12に記載のネットワークに用いられるルーティングノード。
JP2005503839A 2003-07-09 2003-07-09 ネットワークにおける特定サービスの最適ルーティング方法並びに同ネットワークに用いられるサーバ及びルーティングノード Expired - Fee Related JP4372098B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2003/008711 WO2005006671A1 (ja) 2003-07-09 2003-07-09 ネットワークにおける特定サービスの最適ルーティング方法並びに同ネットワークに用いられるサーバ及びルーティングノード

Publications (2)

Publication Number Publication Date
JPWO2005006671A1 JPWO2005006671A1 (ja) 2006-08-31
JP4372098B2 true JP4372098B2 (ja) 2009-11-25

Family

ID=34044595

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005503839A Expired - Fee Related JP4372098B2 (ja) 2003-07-09 2003-07-09 ネットワークにおける特定サービスの最適ルーティング方法並びに同ネットワークに用いられるサーバ及びルーティングノード

Country Status (3)

Country Link
US (1) US7929550B2 (ja)
JP (1) JP4372098B2 (ja)
WO (1) WO2005006671A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013536635A (ja) * 2010-08-06 2013-09-19 北京乾唐視▲聯▼▲網▼絡科技有限公司 新型ネットワークの通信方法およびシステム

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7355983B2 (en) * 2004-02-10 2008-04-08 Cisco Technology, Inc. Technique for graceful shutdown of a routing protocol in a network
US20060072482A1 (en) * 2004-10-06 2006-04-06 Nokia Corporation Service routing
US20060083242A1 (en) * 2004-10-20 2006-04-20 Nokia Corporation Address modification in application servers
US7730038B1 (en) * 2005-02-10 2010-06-01 Oracle America, Inc. Efficient resource balancing through indirection
WO2007016841A1 (fr) * 2005-08-05 2007-02-15 Huawei Technologies Co., Ltd. Procédé de mise en œuvre de détection de panne de plan de transfert ip
JP4603494B2 (ja) * 2006-02-14 2010-12-22 富士通株式会社 伝送装置および学習情報保全方法
JP4740763B2 (ja) * 2006-02-15 2011-08-03 株式会社日立製作所 ストレージシステム及びストレージコントローラ
US8125990B2 (en) * 2006-03-10 2012-02-28 Alcatel Lucent Silent probe for network delay reporting
CN101005633B (zh) * 2006-07-21 2010-07-21 华为技术有限公司 一种实现移动交换中心池的方法及系统
US8752042B2 (en) * 2008-08-27 2014-06-10 Cardinalcommerce Corporation Intelligent server routing
US7631034B1 (en) 2008-09-18 2009-12-08 International Business Machines Corporation Optimizing node selection when handling client requests for a distributed file system (DFS) based on a dynamically determined performance index
JP5359201B2 (ja) * 2008-11-06 2013-12-04 富士通株式会社 コンテンツの削除更新プログラム
US8463914B2 (en) * 2010-01-30 2013-06-11 Eliza Corporation Facilitating rapid establishment of human/machine voice communication links over an IP network using last-known call-host endpoint states
WO2011132662A1 (ja) * 2010-04-20 2011-10-27 日本電気株式会社 配信システム、配信制御装置及び配信制御方法
US20130176861A1 (en) * 2010-09-22 2013-07-11 Ippei Akiyoshi Control apparatus, a communication system, a communication method and a recording medium having recorded thereon a communication program
JP5664662B2 (ja) * 2010-11-26 2015-02-04 富士通株式会社 管理システム、管理装置、管理方法および管理プログラム
US9246764B2 (en) * 2010-12-14 2016-01-26 Verizon Patent And Licensing Inc. Network service admission control using dynamic network topology and capacity updates
EP2466810B1 (en) * 2010-12-17 2015-09-23 Alcatel Lucent Method and router for a service dependent routing
US9094364B2 (en) * 2011-12-23 2015-07-28 A10 Networks, Inc. Methods to manage services over a service gateway
KR101444883B1 (ko) * 2014-01-27 2014-09-26 주식회사 기가코리아 숫자 url 서비스 제공 방법
US11252257B2 (en) * 2020-03-06 2022-02-15 Sap Se Dynamic rest access

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5210748A (en) 1990-02-09 1993-05-11 Hitachi, Ltd. Address filter unit for carrying out address filter processing among plurality of networks and method thereof
JP2742129B2 (ja) 1990-02-09 1998-04-22 株式会社日立製作所 アドレスフィルタ装置
JP3598522B2 (ja) 1993-03-04 2004-12-08 富士通株式会社 分散型データベース管理装置
JPH0879309A (ja) 1994-09-02 1996-03-22 Fujitsu Ltd Lan間接続装置及びlan間接続システム
US5774660A (en) * 1996-08-05 1998-06-30 Resonate, Inc. World-wide-web server with delayed resource-binding for resource-based load balancing on a distributed resource multi-node network
JP3784137B2 (ja) 1997-06-04 2006-06-07 富士通株式会社 負荷分散システム
JP3178380B2 (ja) 1997-07-31 2001-06-18 日本電気株式会社 コネクション管理方法及びコンピュータ読み取り可能な記録媒体
US6622157B1 (en) * 1998-09-28 2003-09-16 Certeon, Inc. Extending network services using mobile agents
US6304913B1 (en) 1998-11-09 2001-10-16 Telefonaktiebolaget L M Ericsson (Publ) Internet system and method for selecting a closest server from a plurality of alternative servers
JP3549774B2 (ja) * 1999-06-01 2004-08-04 富士通株式会社 ネットワーク相互接続装置及びネットワーク相互接続方法
JP2001007844A (ja) 1999-06-24 2001-01-12 Canon Inc ネットワークステータスサーバ及び情報配信システム、及びその制御方法、及びその制御プログラムを格納した記憶媒体
US7457279B1 (en) * 1999-09-10 2008-11-25 Vertical Communications Acquisition Corp. Method, system, and computer program product for managing routing servers and services
US6667971B1 (en) * 1999-12-06 2003-12-23 Bellsouth Intellectual Property Corporation System and method for enhanced ADSL architecture and service concepts
US6748447B1 (en) * 2000-04-07 2004-06-08 Network Appliance, Inc. Method and apparatus for scalable distribution of information in a distributed network
JP4294829B2 (ja) * 2000-04-26 2009-07-15 ウォーターフロント・テクノロジーズ エルエルシー モバイルネットワークシステム
US7254602B1 (en) * 2000-10-25 2007-08-07 International Business Machines Corporation Multicast enabled web content distribution
JP2002140202A (ja) 2000-11-01 2002-05-17 Hitachi Ltd 情報配信システムおよびその負荷分散方法
JP3698073B2 (ja) * 2001-06-13 2005-09-21 日本電信電話株式会社 サーバ選択装置、方法、プログラム及び該プログラムを記録した記録媒体
JP2003022226A (ja) * 2001-07-05 2003-01-24 Nec Commun Syst Ltd ネットワークにおける負荷分散システム及び負荷分散方式
US7860964B2 (en) * 2001-09-28 2010-12-28 Level 3 Communications, Llc Policy-based content delivery network selection
JP2003115868A (ja) * 2001-10-05 2003-04-18 Nippon Telegr & Teleph Corp <Ntt> クライアント特定型ミラーサーバ選択方法及びコンテンツルータ
CA2410172A1 (en) * 2001-10-29 2003-04-29 Jose Alejandro Rueda Content routing architecture for enhanced internet services
JP3842624B2 (ja) * 2001-11-16 2006-11-08 日本電信電話株式会社 経路情報収集方法、装置、およびプログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013536635A (ja) * 2010-08-06 2013-09-19 北京乾唐視▲聯▼▲網▼絡科技有限公司 新型ネットワークの通信方法およびシステム

Also Published As

Publication number Publication date
JPWO2005006671A1 (ja) 2006-08-31
US20060029076A1 (en) 2006-02-09
WO2005006671A1 (ja) 2005-01-20
US7929550B2 (en) 2011-04-19

Similar Documents

Publication Publication Date Title
JP4372098B2 (ja) ネットワークにおける特定サービスの最適ルーティング方法並びに同ネットワークに用いられるサーバ及びルーティングノード
US10348571B2 (en) Methods and apparatus for accessing dynamic routing information from networks coupled to a wide area network (WAN) to determine optimized end-to-end routing paths
US9130954B2 (en) Distributed health check for global server load balancing
US9391886B2 (en) Identification of the paths taken through a network of interconnected devices
US20100214979A1 (en) Gateway advertisement in a wireless mesh
JP5915792B2 (ja) 分散処理システム及び分散処理方法
US20080056282A1 (en) Internetworking Nodes based on Connections, Membership, and Location
JP2005311863A (ja) トラフィック分散制御方法、制御装置及びネットワークシステム
JP2009538027A (ja) Ospf−teにおけるrprの表示
US20130176861A1 (en) Control apparatus, a communication system, a communication method and a recording medium having recorded thereon a communication program
JP2011170718A (ja) コンピュータシステム、コントローラ、サービス提供サーバ、及び負荷分散方法
KR20040083180A (ko) 다중 홈 에이전트 제어장치 및 방법
CN103139076B (zh) 分布式哈希表互通网络系统、域间节点及实现方法
US9197534B2 (en) Network designing system, network designing method, data transfer path determination method and network designing program
JP2012156698A (ja) 中継装置、通信ネットワークシステム、及び、負荷分散方法
JP3704134B2 (ja) パケット転送装置、ネットワーク制御サーバ、およびパケット通信ネットワーク
JP4638849B2 (ja) 機能分散型通信装置および経路制御方法
JP2011170422A (ja) P2p型通信用ポリシー管理システム
JP5506640B2 (ja) コンテンツ配信方法及びシステム
US9210069B2 (en) Network operation system, network operation method and network operation program
KR101392031B1 (ko) 콘텐츠 기반 네트워크에서의 라우터 캐싱 방법 및 콘텐츠 기반 네트워크 시스템
JP4369882B2 (ja) ルーティング方法、および、ネットワークシステム
Hsu et al. An integrated end-to-end QoS anycast routing on DiffServ networks
Martin et al. Radar: Ring-based adaptive discovery of active neighbour routers
Tomic et al. Implementation and efficiency analysis of composite DNS-metric for dynamic server selection

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080401

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080602

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090203

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090331

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090818

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090901

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120911

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees