JP2006352567A - サービス提供装置および通信制御プログラム - Google Patents

サービス提供装置および通信制御プログラム Download PDF

Info

Publication number
JP2006352567A
JP2006352567A JP2005176606A JP2005176606A JP2006352567A JP 2006352567 A JP2006352567 A JP 2006352567A JP 2005176606 A JP2005176606 A JP 2005176606A JP 2005176606 A JP2005176606 A JP 2005176606A JP 2006352567 A JP2006352567 A JP 2006352567A
Authority
JP
Japan
Prior art keywords
port number
identification information
service
packet
bgp
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.)
Granted
Application number
JP2005176606A
Other languages
English (en)
Other versions
JP4498984B2 (ja
Inventor
Toshiyuki Sudo
俊之 須藤
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
Priority to JP2005176606A priority Critical patent/JP4498984B2/ja
Publication of JP2006352567A publication Critical patent/JP2006352567A/ja
Application granted granted Critical
Publication of JP4498984B2 publication Critical patent/JP4498984B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】 同一のサービスを複数稼動させたとしても外部からは同一のサービスを同一の第1識別情報で識別可能なサービス提供装置および通信制御プログラムを提供することを目的とする。
【解決手段】 インタフェース手段30A,30Bと、同一のサービスを提供する処理手段11A,11Bとを備えたサービス提供装置1であって、インタフェース手段を識別するアドレス情報,サービスを識別する第1識別情報および処理手段11A,11Bを識別する第2識別情報を関連付けた変換テーブルと、変換テーブルに基づき、外部から受信したパケットの宛先を第1識別情報から第2識別情報に変換し、外部へ送信するパケットの送信元を第2識別情報から第1識別情報に変換する変換手段23とを有することにより上記課題を解決する。
【選択図】 図4

Description

本発明は、サービス提供装置および通信制御プログラムに係り、特にネットワークを介してサービスを提供するサービス提供装置、外部とサービス提供装置との通信を制御する通信制御プログラムに関する。
インターネットの普及に伴い、インターネットでは様々なサービスが提供されるようになってきている。例えばインターネット上でサービスを提供するWebサーバは、企業レベルで大規模に運用されるものから、個人レベルで小規模に運用されるものまで、様々な規模で運用されている。
インターネットでは、このようなWebサーバを利用したサービスを立ち上げたい利用者のため、ホスティングサービスとしてWebサーバ自体を提供するようなビジネスも存在する。そのような用途では、多数のWebサーバを低コストで同時稼動させることが重要である。
また、インターネットで提供するサービスやシステムを実際に運用する場合は、ネットワークを介して通信する相手を複数用意し、性能面や安定稼動の接続テストを事前に実施して動作検証することが重要となる。しかし、動作検証したい性能水準によっては稼動させるサービス、相手となるクライアントやシステムを多数用意する必要がある。例えば稼動させるサービス,相手となるクライアントやシステムの数だけコンピュータを使用する場合は、動作検証に多数のコンピュータが必要となる。
使用するコンピュータ数の増加は、低コストでサービスやシステムの運用を考えたい場合や動作検証で調達する機器数の増加を抑えたい場合に好ましくない。特に必要となる処理性能が低く、複数端末あるいは複数サービスを動作させる為に必要な性能が単一のコンピュータで足りる場合は、単一のコンピュータ上で稼動させることにより、少ない機器で所望の構成を実現したいというニーズがあった。例えばWebサーバの貸し出しを例にとれば、一つのコンピュータで複数のWebサーバを稼動させることにより、安価なサービスを利用者に提供できる。
また、インターネットを構成するルータを例にとれば、ルータは他のルータと経路情報を交換し合い、受信したパケットを何処に転送すれば目的地に着くかを計算し、その結果を経路テーブルに登録する。ルータは経路テーブルに従ってパケットの中継処理を行う。
従って、多数のルータと経路情報を交換し合い、運用するような用途のルータの動作検証や性能の妥当性を検証するには、複数のルータと経路情報を交換し合う系を構築する必要がある。一つのルータを一つの機器で構成すると、ルータの動作検証や性能の妥当性を検証する機器の構成は膨大となる。
ところで、通信相手となるルータはテスト目的に限定すれば、試験対象となるルータに対してルータとして振る舞えばよく、必ずしもルータそのものの機能を有していなくても良い。したがって、多くのルータの役割を一つの機器で構成できれば、ルータの動作検証や性能の妥当性を検証する機器の構成は大幅に簡略化できる。
例えば特許文献1には、一つのコンピュータ上で動作する複数のプロセスにおいてプロセス間通信を行なう内容が記載されている。
特開平8−106441号公報
通常、1つのコンピュータ(PC)から複数のサービスを提供する場合、サービスを提供するコンピュータとサービスの提供を受ける外部の機器とは、図1に示すように通信を行なう。図1は、サービスを提供するコンピュータとサービスの提供を受ける外部の機器との通信を表した一例の説明図である。
コンピュータ1は、複数のサービスを外部の機器に提供する装置である。ここでは、コンピュータ1上でサーバプロセス10A,10Bが稼動している例を説明する。サービスの提供を受ける外部の機器は、提供を受けたいサービスに対応するコンピュータ1のウェルノウンポート(Well−known Port)番号宛てにパケットを送信する。
例えばサーバプロセス10Aの提供するサービスを受けたい場合、外部の機器はポート番号α宛てにパケットを送信する。また、サーバプロセス10Bの提供するサービスを受けたい場合、外部の機器はポート番号β宛てにパケットを送信する。
外部の機器から送信されたパケットは、コンピュータ1のインタフェース30を介してカーネル20に受信される。カーネル20に含まれるTCPレイヤ処理部22はパケットの宛先であるポート番号を参照し、そのポート番号で識別されるサーバプロセスにパケットを送信する。例えばパケットがポート番号α宛てであれば、TCPレイヤ処理部22はパケットをサーバプロセス10Aに送信する。また、パケットがポート番号β宛てであれば、TCPレイヤ処理部22はパケットをサーバプロセス10Bに送信する。
図2は、サービスを提供するコンピュータとサービスの提供を受ける外部の機器との通信を表した他の例の説明図である。図2のコンピュータ1は2つのインタフェース30A及び30Bを有する点で図1のコンピュータ1と異なる。
図2に示すように、異なるインタフェース30A,30Bを介してカーネル20に受信されても、宛先であるポート番号が同じパケットは、TCPレイヤ処理部22によって
ポート番号で識別されるサーバプロセスに送信される。例えばポート番号α宛てのパケットであれば、インタフェース30Aを介して受信されてもインタフェース30Bを介して受信されてもTCPレイヤ処理部22によってサーバプロセス10Aに送信される。
このようなサービスや処理系は、アプリケーションとして実装されているのが一般的である。例えばUNIX(登録商標)やLinux(登録商標)といったマルチタスクのオペレーティングシステム(以下、OSという)が稼動しているコンピュータであれば、複数のアプリケーションプログラムを同時に動作させることができる。
しかしながら、通信相手である外部の機器からの通信要求を待ち受け、コネクションを確立する処理において、コンピュータ1では複数のサービスを同時に動作させる為に以下のような問題が発生する。
すなわち、インターネットでの通信に用いられるTCP/IPプロトコルでは、ノードに付与されたIPアドレス及びホストにおけるセッション識別子の意味を持つポート番号と通信相手のIPアドレス及びポート番号とで、通信のコネクションを識別する。サービスに対して接続要求を出す側の機器は、通信相手のIPアドレスおよびポート番号を指定することで、接続相手が何かを指定できる。これは、同一のコンピュータ1上で複数のプロセスが稼動されている場合に、どのプロセスと通信するかを識別する為である。
例えばWebサーバ等のサービスを利用する場合も、接続要求を出す側の機器は、そのサービスを担うプロセスに対して接続要求を出す。この場合のポート番号は、ホスト上で利用したいサービスを識別する識別子としての役割を果たしている。
そこで、特に標準化されているサービスについては利用の利便を図る為、インターネット標準を取りまとめているIETFにおいて、利用するポート番号がウェルノウンポート番号として決められている(RFC 1700:ftp://ftp.isi.edu/in-notes/rfc1700.txt参照)。
ところで、一つのコンピュータに1つのIPアドレスしか付与できないのであれば、一つのコンピュータで同一のサービスを複数稼動させようにも、IPアドレス及びポート番号の組み合わせが1つしか存在しないため、コンピュータ上で稼動している各々のプロセスは区別できない。しかしながら、IPアドレスはノード単位でなくインタフェース単位に付与される。したがって、動作させるサービスの数だけインタフェースを用意し、IPアドレスを違えることにより、同じノード及び同じポート番号のコネクションは異なるコネクション(異なる接続要求)として区別できる。
なお、インタフェースは必ずしも物理的な数だけ用意する必要はなく、VLAN等のIPレイヤより下位層に位置する多重化機構を用いる手段、又は同じインタフェースに複数のIPアドレスを割り当てる(一般にこれをエイリアスと称する)等の手段にて、同じ物理インタフェース上に複数の論理インタフェースを設定してもよい。
しかしながら、多くのOSの実装では一つのOS下において、同じポート番号で異なるコネクションを開くことができない。これは、接続待ち受け状態において、接続相手のIPアドレス及びポート番号が確定せず、また、任意のインタフェースの接続要求を同一のコネクション待ち受け状態で対応させることを考慮すると、OS側は自分側のポート番号が唯一それぞれの通信待ち受けを区別できる情報になる為である。
例えばインターネットにおけるWebサーバとして採用実績の高いLinux(登録商標)では、OS内においてポート番号の重複が許されない。したがって、プロトコルの制約とは別に、OSの実装の制約により、単純に同一ホストで同じサービスを独立に複数稼動させることができないという制限があった。
この制限を回避する手段として、ウェルノウンポート番号の利用をあきらめ、図3のように他の空いているポート番号を採択して通信を行なうという対処は可能である。図3は空いているポート番号を採択した通信を表す一例の説明図である。図3では、同一のサービスを複数動作させる際、それぞれのサービスにウェルノウンポート番号とは異なった空いているポート番号をそれぞれ割り当てている。
図3のコンピュータ1上では、同一のサービスを提供するサーバプロセス11A,11Bが稼動している。例えばサーバプロセス11Aの提供するサービスを受けたい場合、外部の機器はインタフェース30Aを介してウェルノウンポート番号とは異なったポート番号a宛てにパケットを送信する。
また、サーバプロセス11Bの提供するサービスを受けたい場合、外部の機器はインタフェース30Bを介してウェルノウンポート番号とは異なったポート番号b宛てにパケットを送信する。このように、同一のコンピュータ1上で駆動し、且つ同一のサービスを提供するサーバプロセス11A,11Bとコネクションを開く為には、ポート番号を異ならせる必要がある。したがって、図3の対処では標準として決められたウェルノウンポート番号を利用できないことによる様々な不都合が発生する。
例えば利用したいサービスから暗黙に決まるウェルノウンポート番号ではなくなる為、接続要求を出す側の機器は何らかの手段で利用したいサービスに対応するポート番号を知る必要があるという問題があった。また、接続要求を出す側の機器には接続相手のポート番号を変えることのできる機能を有していなければ対応できないという問題があった。
したがって、Webホスティングサービスを利用し、Webサービスを提供する側からみれば、Webサービスの利用者に面倒な手間を掛けさせるという問題があった。本来使うウェルノウンポート番号と異なるポート番号で試験を行ったとしても、厳密には本来のウェルノウンポート番号での試験にならず、条件付き試験しか行えない。
本発明は、上記の点に鑑みなされたもので、同一のサービスを複数稼動させたとしても外部からは同一のサービスを同一の第1識別情報で識別可能なサービス提供装置および通信制御プログラムを提供することを目的とする。
上記課題を解決するため、本発明は、複数のインタフェース手段と、同一のサービスを提供する複数の処理手段とを少なくとも備えたサービス提供装置であって、前記インタフェース手段を識別するアドレス情報,前記サービスを識別する第1識別情報および前記複数の処理手段から一の処理手段を識別する第2識別情報を関連付けた変換テーブルと、前記変換テーブルに基づき、外部から受信したパケットの宛先を前記インタフェース手段に対応する前記第1識別情報から前記第2識別情報に変換し、外部へ送信するパケットの送信元を前記インタフェース手段に対応する前記第2識別情報から前記第1識別情報に変換する変換手段とを有することを特徴とする。
また、本発明は、複数のインタフェース手段と、同一のサービスを提供する複数の処理手段とを少なくとも備えたサービス提供装置として機能するコンピュータを、前記インタフェース手段を識別するアドレス情報,前記サービスを識別する第1識別情報および前記複数の処理手段から一の処理手段を識別する第2識別情報を関連付けた変換テーブルと、前記変換テーブルに基づき、外部から受信したパケットの宛先を前記インタフェース手段に対応する前記第1識別情報から前記第2識別情報に変換し、外部へ送信するパケットの送信元を前記インタフェース手段に対応する前記第2識別情報から前記第1識別情報に変換する変換手段として機能させる為の通信制御プログラムであることを特徴とする。
本発明では、変換テーブルと変換手段とを有することにより、同一のサービスを提供する複数の処理手段に異なる第2識別情報を採択したとしても、外部に対して同一のサービスに第1識別情報を採択しているように見せ掛けることができる。
上述の如く、本発明によれば、同一のサービスを複数稼動させたとしても外部からは同一のサービスを同一の第1識別情報で識別可能なサービス提供装置および通信制御プログラムを提供可能である。
次に、本発明を実施するための最良の形態を、以下の実施例に基づき図面を参照しつつ説明していく。まず、本発明の理解を容易とする為、同一のサービス(機能)を複数稼動させるコンピュータを例に、本発明の原理について説明する。同一のサービスを複数稼動させるコンピュータは、本発明のサービス提供装置の一例である。
同一のサービスを複数稼動させるコンピュータは、そのサービスの処理を担う各々のプロセスについて異なるポート番号として稼動させる一方、後述するポート番号変換部をインタフェースとOS内部の振分け処理部との間に介在させることで、外部に対してサービスがウェルノウンポート番号で稼動しているように見せる。振分け処理部では、ポート番号に応じてパケットが振り分けられる。
即ち、同一のサービスを複数稼動させるコンピュータでは、稼動させる同一のサービス数分のインタフェースを用意し、稼動させたいサービスを担うプロセス各々について対応するインタフェースを決める。そして、コンピュータはサービスを識別するウェルノウンポート番号を指定したパケットをインタフェースで受信すると、そのサービスを担うプロセスが実際に待ち受けているポート番号に変換する。また、逆方向に流れるパケットに対しても、コンピュータはサービスを担うプロセスが実際に待ち受けているポート番号をウェルノウンポート番号に変換する。
なお、サービスを識別するウェルノウンポート番号とサービスを担うプロセスが実際に待ち受けているポート番号との変換は、インタフェースのアドレスと、サービスを識別するウェルノウンポート番号と、サービスを担うプロセスが実際に待ち受けているポート番号とを関連付けたポート番号変換テーブルを用いて行われる。
サービスを識別するウェルノウンポート番号とサービスを担うプロセスが実際に待ち受けているポート番号との変換は、例えばNAPT(Network Address Port Translation)あるいはIPマスカレードと称される機能で実現することができる。
NAPTは、一般に複数のコンピュータから構成されるネットワークを外部的に単一のコンピュータであるかのように見せるため、アドレス/ポート番号の置換を行なうものである。NAPTは、前述したLinux(登録商標)においてもネットフィルタ(netfilter)と呼ばれるパケットフィルタ処理系に、機能の一つとして組み込まれている。
したがって、本発明ではサービスを識別するウェルノウンポート番号とサービスを担うプロセスが実際に待ち受けているポート番号との変換を示すエントリを登録し、ネットフィルタのNAPT機能を利用するようにしてもよい。
本発明では、サービスを識別するウェルノウンポート番号とサービスを担うプロセスが実際に待ち受けているポート番号との変換を行なうポート番号変換部を仲介させることにより、内部処理的にポート番号の重複を回避しつつ、同一のコンピュータ内にて外部から見るとウェルノウンポート番号のまま利用でき、各々をインタフェースのアドレスにて区別する形で同種のサービスを複数稼動させることが可能となる。
図4は、本発明によるコンピュータとサービスの提供を受ける外部の機器との通信を表した一例の説明図である。本発明のサービス提供装置の一例であるコンピュータ1は、複数のサービスを外部の機器に提供する装置である。ここでは、コンピュータ1上で同一のサービスを提供するサーバプロセス11A,11Bが稼動している例を説明する。
図4のコンピュータ1は、サーバプロセス11A,11Bと、カーネル20と、インタフェース30A,30Bとを含む構成である。カーネル20は、IPレイヤ処理部21及びTCPレイヤ処理部22を含む構成である。また、IPレイヤ処理部21はポート番号変換部23を含む構成である。
インタフェース30A,30Bは、例えばNIC(Network Interface Card)等のインタフェース機器である。インタフェース30Aは、IPアドレス「192.168.10.1」が付与されている。インタフェース30Bは、IPアドレス「192.168.20.1」が付与されている。
ポート番号変換部23は、変換手段の一例である。TCPレイヤ処理部22は、振分け処理部の一例である。サーバプロセス11Aは、ポート番号「a」が付与されている。また、サーバプロセス11Bはポート番号「b」が付与されている。サーバプロセス11A及び11Bは、付与されているポート番号のソケットを開いている。
サービスの提供を受ける外部の機器は、提供を受けたいサービスに対応するウェルノウンポート番号「α」宛てにパケットを送信する。インタフェース30Aに到着したウェルノウンポート番号「α」宛てのパケットは、IPレイヤ処理部21のポート番号変換部23に入力される。ポート番号変換部23は、インタフェース30Aに到着したウェルノウンポート番号「α」宛てのパケットを入力されると、図5のようなポート番号変換テーブルを参照する。
図5はポート番号変換テーブルの一例の構成図である。図5のポート番号変換テーブルは、ポート番号変換部23に入力されたパケットのIPアドレス及びウェルノウンポート番号と、ポート番号変換部23から出力するパケットのIPアドレス及びポート番号とを関連付けている。
即ち、ポート番号変換テーブルは、インタフェースのIPアドレスと、サービスを識別するウェルノウンポート番号と、サービスを担うプロセスが実際に待ち受けているポート番号とを関連付けるものである。
インタフェース30AからIPレイヤ処理部21のポート番号変換部23に入力されたパケットは、図5のポート番号変換テーブルのエントリー1に合致するため、宛先ポート番号をウェルノウンポート番号「α」からポート番号「a」に変換する。
宛先ポート番号がポート番号「α」からポート番号「a」に変換されたパケットはTCPレイヤ処理部22に入力される。TCPレイヤ処理部22はパケットの宛先ポート番号であるポート番号「a」を参照し、そのポート番号「a」で識別されるサーバプロセス11Aにパケットを送信する。
同様に、サーバプロセス11Aは、実際に待ち受けているポート番号「a」を送信元としたパケットをサービスの提供を受ける外部の機器宛てに送信する。ポート番号「a」を送信元としたパケットは、TCPレイヤ処理部22経由でIPレイヤ処理部21のポート番号変換部23に入力される。なお、送信元のポート番号はソースポート番号と呼ばれている。
ポート番号変換部23は、ポート番号「a」を送信元としたパケットを入力されると図5のポート番号変換テーブルを参照する。図5のポート番号変換テーブルは、ポート番号変換部23に入力されたパケットのIPアドレス及びポート番号と、ポート番号変換部23から出力するパケットのIPアドレス及びウェルノウンポート番号とを関連付けるものである。
サーバプロセス11AからIPレイヤ処理部21のポート番号変換部23に入力されたパケットは、図5のポート番号変換テーブルのエントリー3に合致するため、送信元であるポート番号「a」がウェルノウンポート番号「α」に変換される。送信元のポート番号がポート番号「a」からウェルノウンポート番号「α」に変換されたパケットは、インタフェース30Aからサービスの提供を受ける外部の機器に送信される。
図4のコンピュータ1では、同一のサービスを提供している複数のサーバプロセス11A及び11Bにウェルノウンポート番号「α」を利用して外部の機器からアクセスすることができる。従って、OSの制限により同一のサービスを提供するサーバプロセス11A及び11Bに異なるポート番号「a」及び「b」を付与しなければならない場合であっても、外部の機器からはウェルノウンポート番号「α」を採択しているように見せ掛けることができる。
このように、本発明を適用したコンピュータ1は、一つの機器上に同種のサービスを複数稼動させることができるので、多数のサービスを稼動させたいときに、サービスの数だけ機器を用意する必要がなく、運用に必要な機器・費用を大幅に削減できる。また、試験用途に本発明を適用する場合でも、必要な試験系を構築する為に必要な機器・費用を大幅に削減できる。
次に、本発明を実現するコンピュータのハードウェア構成について説明する。図6は本発明を実現するコンピュータのハードウェア構成図である。図6のコンピュータは、それぞれバスBで相互に接続されている入力装置101,出力装置102,ドライブ装置103,補助記憶装置104,メモリ装置105,演算処理装置106及びインタフェース107を有するように構成される。なお、コンピュータを構成する各種デバイスは1つの筐体に収容してもよいし、複数の筐体に分散して収容するようにしてもよい。
入力装置101はキーボード,マウス,タブレットなどの入力機器で構成され、様々な操作指示や情報を入力するために用いられる。出力装置102はディスプレイやプリンタなどの出力機器で構成され、操作に必要な各種ウインドウや情報等を出力するために用いられる。インタフェース107は、ネットワーク等に接続する為の機器であり、例えばNIC等で構成される。
コンピュータを制御する各種プログラムは、CD−ROM等の記録媒体108によって提供される。各種プログラムを記録した記録媒体108は、ドライブ装置103にセットされる。各種プログラムは、記録媒体108からドライブ装置103を介して補助記憶装置104にインストールされる。
なお、各種プログラムを記録した記録媒体108は、CD−ROM、フレキシブルディスク、光磁気ディスク(MO)等の様に情報を光学的,電気的或いは磁気的に記録する記録媒体、又はROM、フラッシュメモリ等の様に情報を電気的に記録する半導体メモリなど、様々なタイプの記録媒体を用いることが可能である。
また、各種プログラムはインタフェース107を介して接続される他のコンピュータの記録媒体等に記録されているものも含まれる。他のコンピュータの記録媒体等に記録されている各種プログラムはインタフェース装置107を介してダウンロードされて補助記憶装置104にインストールされる。
補助記憶装置104はインストールされた各種プログラムと、そのプログラムの処理に必要な各種ファイル等を格納する。メモリ装置105は、起動時に補助記憶装置104から各種プログラムを読み出して格納する。演算処理装置106は、メモリ装置105に格納された各種プログラムに従って、上述したような各種処理を実行できる。なお、各種プログラムには本発明の通信制御プログラムが含まれる。
本発明の実施例として、複数のBGP(Border Gateway Protocol)プロセスを一台の機器上で動作させる例を説明する。BGPとは、インターネットにて動作しているルーティングプロトコルの一種であり、ISP(Internet Service Provider)等のAS(Autonomous System)間で経路情報をやり取りする。
BGPのプロトコルメッセージには、インターネットの経路情報が含まれる。このプロトコルメッセージを受信したBGPルータは、機器内部に経路表として登録する。BGPルータは、ユーザパケットをルーティングする際に経路表を参照し、ユーザパケットの宛先を決定して送信する。
BGPルータは、複数のBGPルータからプロトコルメッセージを受信するが、異なるBGPルータから同一の宛先に対して異なる複数の経路情報を受信する。この異なる複数の経路情報を受信したBGPルータは、異なる複数の経路情報から最適な経路情報を選択して経路表に反映させる。このような処理を行う為に、BGPルータは多くのCPU処理能力が要求される。この為、BGPルータを利用する利用者は、経路情報処理能力の程度をルータとして運用する前に把握しておく必要がある。
BGPルータの経路情報処理能力を測定する為には、実際のインターネット上での運用をエミュレートする必要がある。そこで、BGPルータの経路情報処理能力を測定する場合には被試験装置であるBGPルータと複数のBGPピアとを図7のように接続し、BGPピアからのプロトコルメッセージをBGPルータに受信させて経路表を作成させるという試験を行うことになる。
図7は、BGPルータの経路情報処理能力を測定する為の試験の形態である。図7の試験の形態では、被試験装置であるBGPルータ200と、BGPピアである複数のBGPルータ210〜214とで構成されている。なお、BGPルータ210〜214はBGPのプロトコルメッセージ(経路メッセージ)を発生し、BGPルータ200に対してBGPルータとして振る舞えば良いので、必ずしもBGPルータそのものの機能を有していなくても良い。
しかしながら、BGPルータ210〜214を夫々別の機器で稼動させると、試験には5つの機器が必要となる。もし、BGPルータ210〜214を一つの機器で稼動させることができれば、試験を行なう機器の構成は大幅に簡略化できる。
複数のBGPルータを稼動させる機器では、複数のインタフェースを実装し、一つのインタフェースに一つのBGPルータを対応させて、複数のBGPルータが動作していることをエミュレートさせたい。BGPにおいて、対向するBGPとの通信はTCPコネクションを通じて行われる。即ち、コネクションを確立する時に、BGPはTCPの3ウェイハンドシェイクを使うことになる。
3ウェイハンドシェイクでは、マシンAとマシンBとの間でコネクションを確立する際に、どちらか一方のマシン(例えばマシンA)がsynパケットを送信する。また、synパケットを受信した対向のマシン(例えばマシンB)はsyn ackパケットを送信する。そして、syn ackパケットを受信したマシン(例えばマシンA)はackパケットを送信する。3ウェイハンドシェイクでは、上記の3つのやり取りを経てTCPのコネクションを確立する。
BGPルータにおけるコネクションの確立は、二つの対向するBGPルータがウェルノウンポートであるBGPポート番号(ポート番号179)を指定してListeningソケットをオープンする。二つのBGPルータの何れかは、対向のBGPルータに対してコネクション確立の為のsynパケットをBGPポート番号に対して送信する。なお、コネクション確立の契機となるsynパケットを送信は、二つのBGPルータのうち、どちらのBGPルータから行ってもよい。
このように、一つの機器で複数のBGPルータプロセスを稼動させて試験を行う場合であっても、コネクションの確立動作において、どちらのBGPルータからでもコネクションの確立動作が始まるようになっていないと、本来のBGPルータの動作をエミュレート
しているとは言えない。
機器には、インタフェースが異なれば同一のポート番号のListeningソケットが異なるものであると識別できるものもあるが、OSの実装によって同一のポート番号にて複数のListeningソケットをオープンできない場合が存在する。
この為、複数のBGPルータプロセスを稼動させる機器では、複数のBGPルータプロセスに対して、BGPポート番号と異なり、且つ、互いに重複しないサービスポート番号を指定して、Listeningソケットをオープンする。複数のBGPルータプロセスを稼動させる機器にアクセスしてくる外部の機器は、BGPピアであるBGPルータプロセスに対し、BGPポート番号宛てにコネクションを張る為のパケットを送信する。
なお、このままの状態では複数のBGPルータプロセスが起動する機器において、BGPポート番号にてオープンされているListeningソケットが存在しない為、コネクションを確立できない。
そこで、複数のBGPルータプロセスを稼動させる機器では、BGPポート番号宛てに来たパケットのBGPポート番号を、インタフェースに対応するBGPルータプロセスのサービスポート番号に変換する為、NAPTにポート番号変換テーブルと同様なNAPTテーブルを設定する。NAPTテーブルは、IPアドレスと宛先のポート番号との組み合わせを変換するテーブルである。
複数のBGPルータプロセスを稼動させる機器は、入力されたパケットのIPアドレスとBGPポート番号とをキーとしてNAPTテーブルを検索し、合致するレコードが存在した場合、変換ルールに従ってIPアドレスとサービスポート番号とに変換する。
図8は、複数のBGPルータプロセスを稼動させた機器とBGPルータとの通信を表した一例の説明図である。本発明のサービス提供装置の一例である機器300は、BGPピアとして機能する複数のBGPルータプロセス310A,310Bを含む構成である。
機器300は、BGPルータプロセス310A,310Bと、カーネル320と、インタフェース330A,330Bとを含む構成である。カーネル320は、IPレイヤ処理部321及びTCPレイヤ処理部322を含む構成である。また、IPレイヤ処理部321は変換手段の一例としてのネットフィルタ323と、変換テーブルの一例としてのNAPTテーブル324とを含む構成である。
図8の例では、宛先のIPアドレスが「192.168.10.1」且つ宛先のポート番号がBGPポート番号「179」である場合、ネットフィルタ323がNAPTテーブル324に基づき、宛先のポート番号をBGPルータプロセス310Aのサービスポート番号「3001」に変換する。
また、宛先のIPアドレスが「192.168.20.1」且つ宛先のポート番号がBGPポート番号「179」である場合、ネットフィルタ323がNAPTテーブル324に基づき、宛先のポート番号をBGPルータプロセス310Bのサービスポート番号「3002」に変換する。
この変換ルールは、パケットを受信したインタフェースに対応して、そのパケットに割り当てるBGPルータプロセスを分ける為のルールである。宛先のポート番号が変換されたパケットはTCPレイヤ処理部322に入力される。TCPレイヤ処理部322はソケットがオープンしているBGPルータプロセス310A,310Bをサーチし、パケットの宛先ポート番号であるサービスポート番号「3001」又は「3002」を参照して、そのサービスポート番号「3001」又は「3002」で識別されるBGPルータプロセス310A又は310Bにパケットを送信する。
したがって、図8の機器では、ウェルノウンポート番号であるBGPポート番号宛てに来たパケットを複数のBGPルータプロセス310A,310Bに振り分けることが可能となる。
図9は、複数のBGPルータプロセスを稼動させた機器とBGPルータとの通信を表した他の一例の説明図である。図9は、NAPTテーブル324を除いて図8と同様であるため、適宜説明を省略する。
複数のBGPルータプロセス310A,310Bを稼動させる機器では、パケットを出力したBGPルータプロセス310A,310Bのサービスポート番号を、そのパケットを出力するインタフェース330A,330Bに対応したBGPポート番号に変換するため、NAPTにポート番号変換テーブルと同様なNAPTテーブルを設定する。
複数のBGPルータプロセスを稼動させる機器は、BGPルータプロセスから出力されたパケットの送信元のIPアドレス及びサービスポート番号をキーとしてNAPTテーブルを検索し、合致するレコードが存在した場合、変換ルールに従ってIPアドレス及びBGPポート番号に変換する。図9は、BGPルータプロセス310A又は310Bから外部のBGPルータへパケットを送信する例を表している。
送信元のIPアドレスが「192.168.10.1」且つ送信元のポート番号がBGPルータプロセス310Aのサービスポート番号「3001」である場合、ネットフィルタ323はNAPTテーブル324に基づき、送信元のポート番号をBGPポート番号に変換する。
また、送信元のIPアドレスが「192.168.20.1」且つ送信元のポート番号がBGPルータプロセス310Bのサービスポート番号「3002」である場合、ネットフィルタ323はNAPTテーブル324に基づき、送信元のポート番号をBGPポート番号に変換する。
したがって、図9の機器では、機器300の外部の機器に対して、同一のポート番号のソケットをオープンした複数のBGPルータプロセス310A,310Bが、一つの機器上で稼動しているように見せ掛けることができる。
図10は、複数のBGPルータプロセスを稼動させた機器とBGPルータとの通信を表した一例のシーケンス図である。ステップS1において、被試験装置であるBGPルータ200は、BGPポート番号宛てにsynパケットを送信する。
ステップS2に進み、ネットフィルタ323は、NAPTに設定されたNAPTテーブル324を用いて、宛先のBGPポート番号をインタフェース330Aに対応するBGPルータプロセス310Aのサービスポート番号に変換する。宛先のポート番号がサービスポート番号に変換されたsynパケットは、BGPルータプロセス310Aがオープンしているソケットに到着する。
さらに、ステップS3に進み、BGPルータプロセス310Aはsynパケットを受信した為、synパケットに対してsyn ackパケットを返信する。ネットフィルタ323はNAPTに設定されたNAPTテーブル324を用いて、送信元のサービスポート番号をインタフェース330Aに対応するBGPポート番号に変換する。
ステップS4に進み、送信元のポート番号がBGPポート番号に変換されたsyn ackパケットはBGPルータ200に送信される。ステップS5に進み、BGPルータ200は、BGPポート番号宛てにackパケットを送信する。
ステップS6に進み、ネットフィルタ323は、NAPTに設定されたNAPTテーブル324を用いて、宛先のBGPポート番号をインタフェース330Aに対応するBGPルータプロセス310Aのサービスポート番号に変換する。そして、宛先のポート番号がBGPルータプロセス310Aのサービスポート番号に変換されたackパケットはBGPルータプロセス310Aがオープンしているソケットに到着する。
以下、同様なポート番号の変換を行いながら、BGPルータ200とBGPルータプロセス310Aとの間で通信が行われる。なお、本実施例では起動するプロセスに対応してNAPTテーブル324を静的に設定する例を記述しているが、静的なネットフィルタ323でプロセス宛てにパケットが到着したことを検出して、コネクション毎の動的なNAPTテーブル324を設定する構成でもよい。
また、静的にNAPTテーブル324を設定している時に、ローカルで開いているソケットのサービスポート番号(例えば3001)宛てにパケットが到着した場合、NAPTテーブル324には合致しないがソケットにパケットが到着してしまう。さらに、このパケットに対応する応答のパケットを出力すると、今度はNAPTテーブル324に合致する為、BGPルータプロセスのサービスポート番号をBGPポート番号に変換して送信するという動作を行なう。
この為、機器300では、ローカルで開いているソケットのサービスポート番号に直接アクセスしてきたパケットを廃棄するという設定をネットフィルタ323のテーブルにしておいてもよい。
本発明の他の実施例として、複数のHTTPサーバプロセスを一台の機器上で動作させる例を説明する。図11は、複数のHTTPサーバプロセスを稼動させた機器と外部のクライアントとの通信を表した一例の説明図である。
複数のHTTPサーバプロセスを稼動させる機器では複数のHTTPサーバプロセスに対し、ウェルノウンポート番号であるHTTPポート番号「80番」と異なり、且つ、互いに重複していないサービスポート番号「3001番,3002番,3003番」を指定する。
複数のHTTPサーバプロセスを稼動させる機器では、HTTPポート番号宛てに来たパケットのHTTPポート番号を、インタフェースに対応するHTTPサーバプロセスのサービスポート番号に変換する為、実施例1と同様なNAPTテーブルを設定する。
複数のHTTPサーバプロセスを稼動させる機器は、入力されたパケットのIPアドレスとHTTPポート番号とをキーとしてNAPTテーブルを検索し、合致するレコードが存在した場合、変換ルールに従ってIPアドレスとサービスポート番号とに変換する。
なお、ウェルノウンポート番号をサービスポート番号に変換する処理内容は、実施例1と同様である為、説明を省略する。したがって、複数のHTTPサーバプロセスを稼動させた図11の機器は外部のクライアントに対して、図12に示すように、複数のHTTPサーバプロセスが、一つの機器上で稼動しているように見せ掛けることができる。
図12は、複数のHTTPサーバプロセスを一つの機器上で稼動させた様子を示す一例のイメージ図である。一つの機器上で稼動させた複数のHTTPサーバプロセスは、クライアントから複数のWebサイトのように見える。
本発明は、以下に記載する付記のような構成が考えられる。
(付記1)
複数のインタフェース手段と、同一のサービスを提供する複数の処理手段とを少なくとも備えたサービス提供装置であって、
前記インタフェース手段を識別するアドレス情報,前記サービスを識別する第1識別情報および前記複数の処理手段から一の処理手段を識別する第2識別情報を関連付けた変換テーブルと、
前記変換テーブルに基づき、外部から受信したパケットの宛先を前記インタフェース手段に対応する前記第1識別情報から前記第2識別情報に変換し、外部へ送信するパケットの送信元を前記インタフェース手段に対応する前記第2識別情報から前記第1識別情報に変換する変換手段と
を有するサービス提供装置。
(付記2)
前記変換手段は、外部からのパケットを受信した前記インタフェース手段のアドレス情報と、前記パケットの宛先である前記第1識別情報とに関連付けられた前記第2識別情報を前記変換テーブルから読み出し、前記パケットの宛先を前記第2識別情報に変換することを特徴とする付記1記載のサービス提供装置。
(付記3)
前記変換手段は、前記パケットを外部へ送信する前記インタフェース手段のアドレス情報と、前記パケットの送信元である前記第2識別情報とに関連付けられた前記第1識別情報を前記変換テーブルから読み出し、前記パケットの送信元を前記第1識別情報に変換することを特徴とする付記1又は2記載のサービス提供装置。
(付記4)
前記処理手段はプロセスであり、
前記サービスを識別する第1識別情報および前記複数の処理手段から一の処理手段を識別する第2識別情報は、重複しないように割り当てられたポート番号であることを特徴とする付記1乃至3何れか一項記載のサービス提供装置。
(付記5)
前記第1識別情報は、ウェルノウンポート(Well−known Port)番号であることを特徴とする付記1乃至4何れか一項記載のサービス提供装置。
(付記6)
複数のインタフェース手段と、同一のサービスを提供する複数の処理手段とを少なくとも備えたサービス提供装置として機能するコンピュータを、
前記インタフェース手段を識別するアドレス情報,前記サービスを識別する第1識別情報および前記複数の処理手段から一の処理手段を識別する第2識別情報を関連付けた変換テーブルと、
前記変換テーブルに基づき、外部から受信したパケットの宛先を前記インタフェース手段に対応する前記第1識別情報から前記第2識別情報に変換し、外部へ送信するパケットの送信元を前記インタフェース手段に対応する前記第2識別情報から前記第1識別情報に変換する変換手段と
して機能させる為の通信制御プログラム。
本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
本発明は、ネットワークを介して提供するサービスの運用や、ネットワーク機器の評価系構築を効率良く実現するノードの簡易仮想化技術に利用可能である。
サービスを提供するコンピュータとサービスの提供を受ける外部の機器との通信を表した一例の説明図である。 サービスを提供するコンピュータとサービスの提供を受ける外部の機器との通信を表した他の例の説明図である。 空いているポート番号を採択した通信を表す一例の説明図である。 本発明によるコンピュータとサービスの提供を受ける外部の機器との通信を表した一例の説明図である。 ポート番号変換テーブルの一例の構成図である。 本発明を実現するコンピュータのハードウェア構成図である。 BGPルータの経路情報処理能力を測定する為の試験の形態である。 複数のBGPルータプロセスを稼動させた機器とBGPルータとの通信を表した一例の説明図である。 複数のBGPルータプロセスを稼動させた機器とBGPルータとの通信を表した他の一例の説明図である。 複数のBGPルータプロセスを稼動させた機器とBGPルータとの通信を表した一例のシーケンス図である。 複数のHTTPサーバプロセスを稼動させた機器と外部のクライアントとの通信を表した一例の説明図である。 複数のHTTPサーバプロセスを一つの機器上で稼動させた様子を示す一例のイメージ図である。
符号の説明
1 コンピュータ
11A,11B サーバプロセス
20,320 カーネル
21,321 IPレイヤ処理部
22,322 TCPレイヤ処理部
23 ポート番号変換部
30A,30B,330A,330B インタフェース
200,210〜214 BGPルータ
300 機器
310A,310B BGPルータプロセス
323 ネットフィルタ
324 NAPTテーブル

Claims (5)

  1. 複数のインタフェース手段と、同一のサービスを提供する複数の処理手段とを少なくとも備えたサービス提供装置であって、
    前記インタフェース手段を識別するアドレス情報,前記サービスを識別する第1識別情報および前記複数の処理手段から一の処理手段を識別する第2識別情報を関連付けた変換テーブルと、
    前記変換テーブルに基づき、外部から受信したパケットの宛先を前記インタフェース手段に対応する前記第1識別情報から前記第2識別情報に変換し、外部へ送信するパケットの送信元を前記インタフェース手段に対応する前記第2識別情報から前記第1識別情報に変換する変換手段と
    を有するサービス提供装置。
  2. 前記変換手段は、外部からのパケットを受信した前記インタフェース手段のアドレス情報と、前記パケットの宛先である前記第1識別情報とに関連付けられた前記第2識別情報を前記変換テーブルから読み出し、前記パケットの宛先を前記第2識別情報に変換することを特徴とする請求項1記載のサービス提供装置。
  3. 前記変換手段は、前記パケットを外部へ送信する前記インタフェース手段のアドレス情報と、前記パケットの送信元である前記第2識別情報とに関連付けられた前記第1識別情報を前記変換テーブルから読み出し、前記パケットの送信元を前記第1識別情報に変換することを特徴とする請求項1又は2記載のサービス提供装置。
  4. 前記処理手段はプロセスであり、
    前記サービスを識別する第1識別情報および前記複数の処理手段から一の処理手段を識別する第2識別情報は、重複しないように割り当てられたポート番号であることを特徴とする請求項1乃至3何れか一項記載のサービス提供装置。
  5. 複数のインタフェース手段と、同一のサービスを提供する複数の処理手段とを少なくとも備えたサービス提供装置として機能するコンピュータを、
    前記インタフェース手段を識別するアドレス情報,前記サービスを識別する第1識別情報および前記複数の処理手段から一の処理手段を識別する第2識別情報を関連付けた変換テーブルと、
    前記変換テーブルに基づき、外部から受信したパケットの宛先を前記インタフェース手段に対応する前記第1識別情報から前記第2識別情報に変換し、外部へ送信するパケットの送信元を前記インタフェース手段に対応する前記第2識別情報から前記第1識別情報に変換する変換手段と
    して機能させる為の通信制御プログラム。
JP2005176606A 2005-06-16 2005-06-16 サービス提供装置および通信制御プログラム Expired - Fee Related JP4498984B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005176606A JP4498984B2 (ja) 2005-06-16 2005-06-16 サービス提供装置および通信制御プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005176606A JP4498984B2 (ja) 2005-06-16 2005-06-16 サービス提供装置および通信制御プログラム

Publications (2)

Publication Number Publication Date
JP2006352567A true JP2006352567A (ja) 2006-12-28
JP4498984B2 JP4498984B2 (ja) 2010-07-07

Family

ID=37647915

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005176606A Expired - Fee Related JP4498984B2 (ja) 2005-06-16 2005-06-16 サービス提供装置および通信制御プログラム

Country Status (1)

Country Link
JP (1) JP4498984B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011198117A (ja) * 2010-03-19 2011-10-06 Fujitsu Ltd サーバ装置、ネットワークアクセス方法およびコンピュータプログラム
WO2021111710A1 (ja) * 2019-12-06 2021-06-10 株式会社ソニー・インタラクティブエンタテインメント 配送制御装置、配送制御方法及び配送制御プログラム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002141953A (ja) * 2000-11-06 2002-05-17 Sony Corp 通信中継装置、通信中継方法、および通信端末装置、並びにプログラム記憶媒体
WO2005101217A1 (ja) * 2004-04-14 2005-10-27 Nippon Telegraph And Telephone Corporation アドレス変換方法、アクセス制御方法、及びそれらの方法を用いた装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002141953A (ja) * 2000-11-06 2002-05-17 Sony Corp 通信中継装置、通信中継方法、および通信端末装置、並びにプログラム記憶媒体
WO2005101217A1 (ja) * 2004-04-14 2005-10-27 Nippon Telegraph And Telephone Corporation アドレス変換方法、アクセス制御方法、及びそれらの方法を用いた装置

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011198117A (ja) * 2010-03-19 2011-10-06 Fujitsu Ltd サーバ装置、ネットワークアクセス方法およびコンピュータプログラム
US8943123B2 (en) 2010-03-19 2015-01-27 Fujitsu Limited Server apparatus, network access method, and computer program
WO2021111710A1 (ja) * 2019-12-06 2021-06-10 株式会社ソニー・インタラクティブエンタテインメント 配送制御装置、配送制御方法及び配送制御プログラム
JPWO2021111710A1 (ja) * 2019-12-06 2021-06-10
JP7291247B2 (ja) 2019-12-06 2023-06-14 株式会社ソニー・インタラクティブエンタテインメント 配送制御装置、配送制御方法及び配送制御プログラム

Also Published As

Publication number Publication date
JP4498984B2 (ja) 2010-07-07

Similar Documents

Publication Publication Date Title
EP1710953B1 (en) Encryption communication method
US8176189B2 (en) Peer-to-peer network computing platform
JP4083737B2 (ja) ネットワークアドレス変換(nat)によるピアツーピアネットワーク通信
US8667574B2 (en) Assigning a network address for a virtual device to virtually extend the functionality of a network device
US20040004966A1 (en) Using virtual identifiers to route transmitted data through a network
TWI577164B (zh) 可縮放位址解析之技術
JP2012235464A (ja) Dnssec署名サーバ
US20060268890A1 (en) Method circuit and system for remotely updating a network appliance
US7532620B2 (en) Routing table synchronization method, network apparatus, and routing table synchronization program
US11012418B2 (en) Multi-access interface for internet protocol security
JP2005167435A (ja) Vrの機密性を維持したvrrp技術
EP1980084B1 (en) Packet redirection in a communication network
US9473451B2 (en) Methods, systems, and computer readable media for providing mapping information associated with port control protocol (PCP) in a test environment
US20080205376A1 (en) Redundant router having load sharing functionality
US20110276673A1 (en) Virtually extending the functionality of a network device
JP4498984B2 (ja) サービス提供装置および通信制御プログラム
JP3575369B2 (ja) アクセスルーティング方法及びアクセス提供システム
JP5054666B2 (ja) Vpn接続装置、パケット制御方法、及びプログラム
JP5084716B2 (ja) Vpn接続装置、dnsパケット制御方法、及びプログラム
McRae MobilityFirst: An Integration Approach
Newmarch et al. Socket-Level Programming
JP5171608B2 (ja) Vpn接続装置、パケット制御方法、及びプログラム
Batiha Network Analysis for the Industrial Company
Al-Baiz Internet denial by higher-tier ISPs: A NAT-based solution
Wolinsky Design, implementation, and applications of peer-to-peer virtual private networks from grids to social networks

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071206

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091216

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100119

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100323

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: 20100406

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: 20100414

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

Free format text: PAYMENT UNTIL: 20130423

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4498984

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20140423

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees