図1は、本発明の第1の実施例におけるLAN間接続装置を使用した通信システムの概要を表わしたものである。本実施例のLAN間接続装置201は、ブロードキャスト網202とポイントツーポイント網203の一端を接続している。ブロードキャスト網202は、第1のCE(Customer Edge)ルータ2041を介して第1のLAN(Local Area Network)2051と接続されており、第2のCEルータ2042を介して第2のLAN2052と接続されている。ブロードキャスト網202にはパーソナルコンピュータ等の通信端末206も接続されている。ポイントツーポイント網203の他端側には、PE(Providor Edge)ルータ207が接続されており、これを介して第3のLAN2053が接続されている。第1のLAN2051は、ブロードキャストネットワーク上でIPパケットを終端する拠点側のルータとしての第1のCEルータ2041を介してポイントツーポイント網203に接続されている。第2のLAN2052も、同様に第2のCEルータ2042を介してポイントツーポイント網203に接続されている。第3のLAN2053は、IPパケットを終端するセンタ側のルータとしてのPEルータ207を介してポイントツーポイント網203に接続されている。
このように、第1のLAN2051と第3のLAN2053は、ポイントツーポイント網203を介して接続されている。第2のLAN2052と第3のLAN2053についても同様である。ここで、第1および第2のCEルータ2041、2042と、PEルータ207とは、それぞれ別々のLAN2051〜2053と接続されているが、それぞれのルータと通信端末のLAN間接続装置201側のIPアドレスは、IP(Internet Protocol)の同一サブネットに配置されている。
図2は、本実施例のLAN間接続装置の構成の概要を示したものである。LAN間接続装置201は、ブロードキャスト網202と接続されるブロードキャストインタフェース(I/F)221と、ポイントツーポイント網203に接続されるポイントツーポイントインタフェース222の2つのインタフェースを備えている。ブロードキャストインタフェース221は、データリンクレイヤフレームを図1に示した第1および第2のCEルータ2041、2042と通信端末206との間で送受信するようになっている。ポイントツーポイントインタフェース222は、IPパケットを図1に示したPEルータ207との間で送受信する。ポイントツーポイントインタフェース222自体にはIPアドレスが付与されておらず、ブロードキャストインタフェース221に対して、1対1の接続としてアンナンバード接続(unnumbered connection)されている。
ブロードキャストインタフェース221とポイントツーポイントインタフェース222の間には、ルーティングを行うルーティング処理部223が設けられており、ルーティングテーブル224と接続されている。ルーティング処理部223は、ホスト処理部229と接続されている。また、LAN間接続装置201にはARP(Address Resolution Protocol)の処理を行うARP処理部225が配置されている。ARP処理部225は、TCP/IP(Transmission Control Protocol/Internet Protocol)プロトコルのうちのIPアドレスからデータリンクレイヤアドレスを求めるために使用される。このため、ARP処理部225には、IPアドレスとデータリンクレイヤアドレスの組の情報を備えたARPテーブル226が接続されている他、図1に示したPEルータ207のIPアドレス情報227や第1あるいは第2のCEルータ2041、2042が属するIPサブネットのIPネットワークアドレスとネットマスクの組の情報(以下、「CEルータが属するサブネットの配送先情報」という。)への配送先情報228が参照されるようになっている。
このようなLAN間接続装置201は、図示しないCPU(中央処理装置)と、所定の制御用プログラムを格納した記憶媒体を備えており、図1に示した第1〜第3のLAN2051〜LAN2053の間を転送されるIPパケットのルーティングを制御するようになっている。
図1に示した通信システムのユーザは、LAN間接続装置201に対して、PEルータ207のIPアドレス情報227と、「CEルータが属するサブネットへの配送先情報」228と、自局のIPアドレスとを予め設定しておく。このうち自局のIPアドレスは、ルーティング処理部223に接続されたルーティングテーブル224に登録される。
ARP処理部225は、第1および第2のCEルータ2041、2042のいずれかからARP要求があると、そのARP要求パケットをブロードキャストインタフェース221から受け取り、ARP応答を返す。この応答処理では、「CEルータが属するサブネットへの配送先情報」と、PEルータ207のIPアドレス情報と、ルーティングテーブル224で定義されるルーティング情報と、ARPテーブル226で定義されるデータリンクレイヤアドレス情報とを用いて、ARP応答の可否を決定するようにしている。ARP処理部225がARP応答を返すことが可能であると決定すると、ARP応答パケットを生成して、これをブロードキャストインタフェース221に返す。これに対して、ARP応答を返すことが可能ではないと決定した場合には、送られてきたARP要求パケットを廃棄することになる。
以上と逆に、ARP処理部225は、第1および第2のCEルータ2041、2042の方向にARP要求パケットを送信し、これらからARP応答を受ける処理を行う場合を説明する。この場合、本実施例ではルーティング処理部223からブロードキャストインタフェース221に送信されたIPパケットを配送するためのネキストホップIPアドレスのデータリンクレイヤアドレスを、通常のARPと同じ処理を使用して解決するようにしている。
また、ルーティング処理部223は、ブロードキャストインタフェース221からIPパケットを受け取った場合、ルーティングテーブル224で定義されるルーティング情報をチェックする。そして、IPパケットの宛先としてのIPアドレスが自局のIPアドレスでない場合には、これをポイントツーポイントインタフェース222に送信する。宛先が自局IPアドレスである場合には、ホスト処理でこれを終端する。
更にルーティング処理部223は、ポイントツーポイントインタフェース222からIPパケットを受け取った場合、ルーティングテーブル224で定義されるルーティング情報をチェックする。そして、IPパケットの宛先IPアドレスをネキストホップに決定し、IPパケットの宛先のIPアドレスが自局IPアドレス以外であれば、ブロードキャストインタフェース221に送信する。IPパケットの宛先のIPアドレスが自局IPアドレスの場合には、ホスト処理でこれを終端することになる。
なお、本実施例では第1および第2のCEルータ2041、2042がプロキシ(Proxy)ARPとしての機能、すなわち所定のホスト宛のARP要求に対して、これら第1および第2のCEルータ2041、2042がそのホストに代わってルータのデータリンクレイヤアドレスを返答する機能を備えているものとして説明する。
更に本実施例では、ネットワークシステムを構成する各々について次のような設定を行っておく。
(1)ユーザは、第1および第2のCEルータ2041、2042のプロキシARPを有効にしておく。
(2)ユーザは、第1のCEルータ2041に、IPアドレス192.168.0.1/24を設定する。
(3)ユーザは、第2のCEルータ2042にIPアドレス192.168.0.3/24を設定する。
(4)ユーザは、図1に示した通信端末206にIPアドレス192.168.0.4/24を設定する
(5)ユーザは、第1のCEルータ2041に、第2のCEルータ2042の配下のネットワークのルート情報を正しく設定する。
(6)ユーザは、第2のCEルータ2042に第1のCEルータ2041の配下のネットワークのルート情報を正しく設定する。
(7)ユーザは、通信端末206に第1のCEルータ2041の配下のネットワークのルート情報と、第2のCEルータ2042の配下のネットワークのルート情報を正しく設定する。
(8)ユーザは、第1および第2のCEルータ2041、2042と、通信端末206とに、デフォルトルートとしてPEルータ207のIPアドレスである192.168.0.2を設定する。
(9)ユーザは、このLAN間接続装置201に、第1および第2のCEルータ2041、2042がそれぞれ属するサブネットへの配送先情報をあらかじめ登録する。配送先情報については後に説明する。
(10)ユーザは、このLAN間接続装置201に、PEルータ207のIPアドレス192.168.0.2を予め登録する。
(11)ユーザは、このLAN間接続装置201に、自局IPアドレスとして192.168.0.5/24を予め設定する。この設定の結果、LAN間接続装置201は、ブロードキャストインタフェース221に192.168.0.5/24を設定し、ポイントツーポイントインタフェース222をブロードキャストインタフェース221にアンナンバード接続する。
(12)ユーザは、このLAN間接続装置201に、第1のCEルータ2041の配下のネットワークのルート情報と、第2のCEルータ2042の配下のネットワークのルート情報とを正しく設定する。
ユーザによるこのような一連の設定で、LAN間接続装置201と、PEルータ207と、第1および第2のCEルータ2041、2042ならびに通信端末206とは、192.168.0.0/24の同一サブネットに属することになる。
図3は、ユーザによって以上のような設定が行われた状態を示したものである。
<第1のケース>
そこで、まず第1のケースとして、LAN間接続装置201のARPテーブル226にエントリが何もない状態で、第3のLAN2053内のIPアドレスが20.0.0.1のホストから、第1のLAN2051内のIPアドレスが10.0.0.1のホストに対して、ピング(ping:Packet InterNet Groper)要求が発行されたものとする。ここでピング要求とは、相手ホストまでネットワークがつながっているかどうかを確認する要求である。
第3のLAN2053内のIPアドレスが20.0.0.1のホストは、ピング要求パケットを、第1のLAN2051内のIPアドレスが10.0.0.1のホストに向けて送信する。PEルータ207は、このIPパケットを第3のLAN2053内のホスト20.0.0.1から受け取り、LAN間接続装置201に転送する。LAN間接続装置201は、PEルータ207から送信されたこのIPパケットをポイントツーポイントインタフェース222で受信する。ポイントツーポイントインタフェース222はこのIPパケットをルーティング処理部223に送信する。
図4は、ピング要求パケットとしてのIPパケットを受信したルーティング処理部の処理の様子を表わしたものである。このルーティング処理部223の処理は、LAN間接続装置201の前記したCPUが前記した記憶媒体に格納された制御用プログラムを実行することによって実現されるようになっている。ルーティング処理部223は、ポイントツーポイントインタフェース222からIPパケットを受信すると(ステップS301:Y)、ルーティングテーブル224で定義されるルーティング情報を参照する(ステップS302)。そして、宛先がルーティング処理部223自身である場合には(ステップS303:Y)、ネキストホップとして自分を決定し、ホスト処理部229で終端する(ステップS304)。
宛先がルーティング処理部223以外である場合には(ステップS303:N)、そのIPパケットの宛先IPアドレスをネキストホップに決定する(ステップS305)。そして、そのIPパケットをブロードキャストインタフェース221に送信する(ステップS306)。
図5は、図4に示した処理以後にLAN間接続装置で行われるピング要求に伴う処理を時間を追って示したものである。ルーティング処理部223によって図4に示した処理が行われる結果、ホスト処理部229を宛先とするピング要求パケット以外のピング要求パケットはブロードキャストインタフェース221まで送られる。ブロードキャストインタフェース221は、このIPパケットを受信すると、ARP処理部225に対してネキストホップのデータリンクレイヤアドレスを解決する要請を出す(ステップS321)。
ARP処理部225は、通常のARPプロトコルと同じ処理手続きを使用して、ネキストホップのデータリンクレイヤアドレスを解決する(ステップS322)。このとき、ARP処理部225は、ARP要求パケットを構成するターゲットプロトコルアドレス(target protocol address)にネキストホップのIPアドレスを設定する。そこで、この例の場合はIPパケットの宛先IPアドレスが設定されることになる。また、ARP処理部225は、ARP要求パケットのセンダプロトコルアドレス(sender protocol address)に自局IPアドレスではなく、PEルータ207のIPアドレスを設定し、センダハードウェアアドレス(sender hardware address)にブロードキャストインタフェース221のデータリンクレイヤアドレスを設定する。
ARP処理部225が発行したARP要求パケットは、ブロードキャストインタフェース221から第1および第2のCEルータ2041、2042の接続されるブロードキャスト網202に送信されることになる(ステップS323)。
ところで、第1のCEルータ2041は、送られてきたARP要求パケットのターゲットプロトコルアドレスへのルートを持ち、かつ、プロキシARPが有効に設定されている。したがって、第1のLAN2051内のIPアドレスが10.0.0.1のホストに対しするピング要求を実現するために送られてきたARP要求パケットを第1のCEルータ2041の段階で処理し、ARP応答パケットを本来の宛先の代理としてLAN間接続装置201に送り返す。ブロードキャストインタフェース221はこの第1のCEルータ2041から送られてきたARP応答パケットを受信すると、これをARP処理部225に送信する(ステップS324)。
ARP処理部225は受け取ったARP応答パケットを解析して、ネキストホップのIPアドレスとそのデータリンクレイヤアドレスの組の情報をARPテーブル226に格納する(ステップS325)。
一方、ブロードキャストインタフェース221は、ネキストホップであるIPパケットの宛先IPアドレスに対するデータリンクレイヤアドレスが第1のCEルータ2041のデータリンクレイヤアドレスとして解決できたので、転送すべきIPパケットにデータリンクヘッダを付与し、第1のCEルータ2041に向けてIPパケットを送信する(ステップS326)。第1のCEルータ2041は、LAN間接続装置201からこのIPパケットを受信すると、第1のLAN2051内のIPアドレスが10.0.0.1のホストにIPパケットを送信することになる。
このようにして第1のLAN2051内のIPアドレスが10.0.0.1のホストはピング要求を受信する。そして、ピング応答パケットを生成して、第3のLAN2053内のIPアドレスが20.0.0.1のホストに送信することになる。
第1のCEルータ2041は、第1のLAN2051内のIPアドレスが10.0.0.1のホストからIPパケットを受信すると、デフォルトルートとして設定されているPEルータ207にこのIPパケットを送信する。第1のCEルータ2041は、図5のステップS323で送出されたARP要求パケットを受信した時点で、PEルータ207のIPアドレスに対するデータリンクレイヤアドレスをLAN間接続装置201のデータリンクレイヤアドレスとして解決している。したがって、第1のCEルータ2041はLAN間接続装置201に対してIPパケットを送信することになる。
図6は、第1のCEルータから送出されたピング応答パケットに対するLAN間接続装置の制御の様子を表わしたものである。LAN間接続装置201は、第1のLAN2051内のIPアドレスが10.0.0.1のホストから第1のCEルータ2041を経由して送られてきたIPパケットであるピング応答パケットをブロードキャストインタフェース221で受信し、ルーティング処理部223に送信する(ステップS341)。ルーティング処理部223は、このIPパケットを受信し(ステップS342)、その宛先が自分のIPアドレスであるかどうかを判別する(ステップS343)。その結果、自分宛てのIPパケットであれば(Y)、ホスト処理部229で終端する(ステップS344)。
自分宛てのIPパケットでなければ(ステップS343:N)、このIPパケットをポイントツーポイントインタフェース222へ送信する(ステップS345)。ポイントツーポイントインタフェース222は、この受信したIPパケットをPEルータ207に送信することになる(ステップS346)。PEルータ207は受信したIPパケットを第3のLAN2053内のIPアドレスが20.0.0.1のホストに送信する。そのホストはピング応答パケットを処理する。
以上のようにして、第3のLAN2053内のIPアドレスが20.0.0.1のホストと、第1のLAN2051内のIPアドレスが10.0.0.1のホストとの通信が可能であることが分かる。
次に、第3のLAN2053内のIPアドレスが20.0.0.1のホストから第2のLAN2052内のIPアドレスが172.16.0.1のホストに対してピング要求を発行する場合について説明する。この場合にも第2のCEルータ2042が以上説明した第1のCEルータ2041の場合と同様にIPアドレス172.16.0.1へのルートを知っていて、かつ、プロキシARPをもっている第2のCEルータ2042がARP応答を返すことになる。この結果、本実施例のLAN間接続装置201は第2のCEルータ2042に対してIPパケットを送信することができ、第3のLAN2053内のIPアドレスが20.0.0.1のホストと第2のLAN2052内のIPアドレスが172.16.0.1のホストは通信が可能になる。
次に、第3のLAN2053内のIPアドレスが20.0.0.1のホストから第1のCEルータ2041と同一サブネットに配置されたIPアドレスが192.168.0.4の端末にピング要求を発行した場合を説明する。この場合には、以上の説明でIPアドレスが192.168.0.4の端末がARP応答を直接返すという点が異なる。この結果、本実施例のLAN間接続装置201はIPアドレスが192.168.0.4の端末にIPパケットを送信することができ、第3のLAN2053内のIPアドレスが20.0.0.1のホストとIPアドレスが192.168.0.4の端末は通信が可能になる。
<第2のケース>
第2のケースとして、LAN間接続装置201のARPテーブル226にエントリが何もない状態で、第1のLAN2051内のIPアドレスが10.0.0.1のホストから、第3のLAN2053内のIPアドレスが20.0.0.1のホストに対してピング要求が発行された場合を説明する。第1のケースとの違いは、ピング要求を行うパケットの発行元がブロードキャストインタフェース221側にあり、第1のCEルータ2041はPEルータ207のIPアドレスを解決するためにARP要求パケットを発行し、LAN間接続装置201はこれを終端するというところである。この様子を詳しく説明する。
まず、第1のLAN2051内のIPアドレスが10.0.0.1のホストは第3のLAN2053内のIPアドレスが20.0.0.1のホストに対してピング要求パケットを送信する。
第1のCEルータ2041は、第1のLAN2051内のIPアドレスが10.0.0.1のホストからピング要求パケットを受け取り、デフォルトルートに設定されているPEルータ207にこのパケットを転送しようとする。このとき、第1のCEルータ2041はPEルータ207のデータリンクレイヤアドレスをARPプロトコルを利用して解決するために、第1のCEルータ2041の属するサブネットにARP要求パケットを送信する。
図7は、この第2のケースでLAN間接続装置が第1のCEルータからARP要求パケットを受信してARP応答パケットを送信するまでの処理を示したものである。ブロードキャストインタフェース221は、第1のCEルータ2041からARP要求パケットを受信し、ARP処理部225に送信する(ステップS361)。ARP処理部225は、これが有するPEルータ207についてのIPアドレス情報と、ARP処理部225の有するARPテーブル226で定義されるデータリンクレイヤアドレス情報と、「CEルータが属するサブネットへの配送先情報」と、ルーティング処理部223が持つルーティングテーブル224で定義されるルーティング情報とから、所定のアルゴリズムに従って、ARP応答の可否を決定する。これを具体的に説明する。
ARP処理部225はARP要求パケットを受信し(ステップS362)、ターゲットプロトコルアドレス(target protocol address)が自分のIPアドレスであるかどうかを判別する(ステップS363)。自分のIPアドレスである場合には(Y)、ARP応答パケットを生成して、ブロードキャストインタフェース221に送信する(ステップS364)。
ターゲットプロトコルアドレスが自分のIPアドレスではない場合(ステップS363:N)、このターゲットプロトコルアドレスがPEルータ207のIPアドレスである192.168.0.2と同一であるかどうかをチェックする(ステップS365)。そうであれば(Y)、ステップS364に進む。そうでなければ(ステップS365:N)、ターゲットプロトコルアドレスが第1および第2のCEルータ2041、2042の属するサブネットに属するかどうかのチェックが行われる(ステップS366)。同一のサブネットに属する場合には(Y)、ARP要求パケットを廃棄する(ステップS367)。
第1および第2のCEルータ2041、2042の属するサブネットに属さないと判別した場合には(ステップS366:N)、ターゲットプロトコルアドレスがARPテーブル226に含まれるかどうかのチェックが行われる(ステップS368)。ターゲットプロトコルアドレスがARPテーブル226に含まれる場合(Y)、すなわちARPテーブル226にターゲットプロトコルアドレスに対応するデータリンクレイヤアドレスが存在する場合は、ターゲットプロトコルアドレスを持つホストがCEルータ2041、2042側のサブネットに属するか、あるいは、CEルータを超えたサブネットに属するということである。このため、この場合にはPEルータ207にIPパケットを転送すべきでない。そこでステップS367に進んでARP要求パケットを廃棄し、ARP応答を行わない。
ステップS368でターゲットプロトコルアドレスがARPテーブル226に含まれないと判別された場合には(N)、このターゲットプロトコルアドレスがルーティングテーブル224に含まれているかどうかを判別する(ステップS369)。ルーティングテーブル224に含まれている場合には(Y)、ターゲットプロトコルアドレスが第1あるいは第2のCEルータ2041、2042側であるかどうかの判別が行われる(ステップS370)。ルーティングテーブル224にターゲットプロトコルアドレスへのルートが存在し、かつ、そのルートが第1あるいは第2のCEルータ2041、2042と同じ方向にある場合は、PEルータ207にIPパケットを転送すべきでない。そこで、この場合には(Y)、ステップS367に進んでそのARP要求パケットを廃棄し、ARP応答を行わない。
ステップS369でターゲットプロトコルアドレスがルーティングテーブル224に含まれていないと判別された場合(N)、およびステップS370でターゲットプロトコルアドレスが第1あるいは第2のCEルータ2041、2042側にないと判別された場合(N)には、ステップS364に進んでARP応答パケットを生成して、ブロードキャストインタフェース221に送信することになる。
なお、以上の処理でARP処理部225は、ARP応答パケットのセンダプロトコルアドレス(sender protocol address)に自局のIPアドレスを設定するのではなく、PEルータ207のIPアドレスを設定し、センダハードウェアアドレス(sender hardware address)にブロードキャストインタフェース221のデータリンクレイヤアドレスを設定する。
ブロードキャストインタフェース221は、ステップS364で送られてきたARP応答パケットを受信したら、これを第1のCEルータ2041に送信して(ステップS371)、LAN間接続装置201のARP要求パケットの受信からARP応答パケットの送信までの一連の処理を終了させる(エンド)。
このようにして第1のCEルータ2041はARP応答パケットを受け取る。第1のCEルータ2041はPEルータ207のデータリンクレイヤアドレスをLAN間接続装置201のブロードキャストインタフェース221のデータリンクレイヤアドレスとして解決できたので、LAN間接続装置201に対して、IPパケットを送信することになる。
LAN間接続装置201は、図6で説明したアルゴリズムに従って、ブロードキャストインタフェース221がこのIPパケットを受信して、ルーティング処理部223に送信する(ステップS341)。ルーティング処理部223は、ルーティングテーブル224で定義されるルーティング情報を参照して、自分宛てのIPパケットでなければ(ステップS343)ポイントツーポイントインタフェース222に送信する(ステップS345)。自分宛てのIPパケットであればホスト処理で終端する(ステップS344)。ポイントツーポイントインタフェース222は受信したIPパケットをPEルータ207に送信する(ステップS346)。
PEルータ207は、第3のLAN2053内のIPアドレスが20.0.0.1のホストにIPパケットを送信する。第3のLAN2053内のIPアドレスが20.0.0.1のホストは、ピング要求パケットを処理し、ピング応答パケットを生成し、PEルータ207に送信する。
LAN間接続装置201は、図4で説明したアルゴリズムに従ってPEルータ207から送信されてきたIPパケットを、ポイントツーポイントインタフェース222から受信し、ポイントツーポイントインタフェース222はこれをルーティング処理部223に送信する。ルーティング処理部223は、ルーティングテーブル224で定義されるルーティング情報を参照し(ステップS302)、この結果自分宛てのIPパケットでなければ(ステップS303:N)、図4で説明したアルゴリズムに従ってネキストホップを決定し(ステップS305)、ブロードキャストインタフェース221に送信する(ステップS306)。自分宛てのIPパケットであればホスト処理部229で終端する(ステップS304)。
ブロードキャストインタフェース221は、図5で説明したアルゴリズムに従って、ルーティング処理部223からIPパケットを受信した後、ARP処理部225にネキストホップのリンクレイヤアドレスを解決する要請を出す(ステップS321)。ARP処理部225は、通常のARPプロトコルと同じ手続きを利用してネキストホップのデータリンクレイヤアドレスを解決する(ステップS322)。このときARP要求パケットのターゲットプロトコルアドレスにネキストホップのIPアドレスを設定するので、この場合はIPパケットの宛先IPアドレスが設定される。また、ARP要求パケットのセンダプロトコルアドレスに自局のIPアドレスではなくPEルータ207のIPアドレスを設定し、センダハードウェアアドレスにはLAN間接続装置201のブロードキャストインタフェース221のデータリンクレイヤアドレスを設定する点も図5と同様である。
ARP処理部225が発行したARP要求パケットは、ブロードキャストインタフェース221から第1および第2のCEルータ2041、2042の接続されるブロードキャスト網202に送信されることになる(ステップS323)。
第1のCEルータ2041は、ARP要求パケットのターゲットプロトコルアドレスへのルートを持ち、かつ、プロキシARPの機能を持っている。このため、このARP要求パケットに応答し、ARP応答パケットを生成してLAN間接続装置201に送信する。
LAN間接続装置201は、第1のCEルータ2041からのARP応答パケットをブロードキャストインタフェース221から受信し、ARP処理部225に送信する。ARP処理部225はARP応答パケットを解析して、ネキストホップのIPアドレスとそのデータリンクレイヤアドレスをARPテーブル226に格納する。ブロードキャストインタフェース221は、ネキストホップのデータリンクレイヤアドレスを第1のCEルータ2041のデータリンクレイヤアドレスとして解決できたので、転送するべきIPパケットにデータリンクヘッダを付与する。そしてこのIPパケットを第1のCEルータ2041に送信する。
第1のCEルータ2041はLAN間接続装置201からIPパケットを受信し、さらに第1のLAN2051内のIPアドレスが10.0.0.1のホストにパケットを送信する。第1のLAN2051内のIPアドレスが10.0.0.1のホストはピング応答パケットを受信して処理することになる。
以上の説明は、第1のLAN2051内のIPアドレスが10.0.0.1のホストと、第3のLAN2053内のIPアドレスが20.0.0.1のホストとの通信が可能であることを、再度示している。
第2のLAN2052内のIPアドレスが172.16.0.1のホストから第3のLAN2053内のIPアドレスが20.0.0.1のホストに対してピング要求を発行したとき、前記した第1のCEルータ2041が、「ARP要求パケットのターゲットプロトコルアドレスへのルートを持ち、かつ、プロキシARPの機能を持っている」とする記載内容を、「第2のCEルータ2042がIPアドレス172.16.0.1へのルートを知っており、かつ、プロキシARPを持っている」とする内容に置き換えればよい。従って、この場合、第2のCEルータ2042がARP応答を返すというところが異なるだけの処理となる。この結果、本実施例のLAN間接続装置201はIPパケットを第2のCEルータ2042に対して送信することができる。これにより、第2のLAN2052内のIPアドレスが172.16.0.1のホストと第3のLAN2053内のIPアドレスが20.0.0.1のホストは通信が可能になる。
第1のCEルータ2041と同一サブネットに配置されたIPアドレスが192.168.0.4の通信端末206から第3のLAN2053内のIPアドレスが20.0.0.1のホストに対してピング要求を発行したときは、上記のARP応答を返す処理で、192.168.0.4のIPアドレスを持つ通信端末206がARP応答パケットを直接返すという点が異なることになる。この結果、LAN間接続装置201は、IPアドレスが192.168.0.4の通信端末206にIPパケットを送信することができ、第3のLAN2053内のIPアドレスが20.0.0.1のホストとIPアドレスが192.168.0.4の通信端末206が通信を行うことができることになる。
<第3のケース>
第1のLAN2051内のIPアドレスが10.0.0.1のホストから第2のLAN2052内のIPアドレスが172.16.0.1のホストにピング要求を発行したときの動作を次に説明する。このケースでは、先の第1および第2のケースと異なり、LAN間接続装置201を挟んだホスト間の通信ではなく、ブロードキャストインタフェース221と同じサブネットに属するホスト間あるいはルータ間のローカルな通信が発生している。
まず、第1のLAN2051内のIPアドレスが10.0.0.1のホストは第2のLAN2052内のIPアドレスが172.16.0.1のホストに対してピング要求パケットを送信する。第1のCEルータ2041は、第1のLAN2051内のIPアドレスが10.0.0.1のホストからこのピング要求パケットを受け取り、第1のCEルータ2041のルーティング情報に従い、ネキストホップである第2のCEルータ2042にIPパケットを送信しようとする。このとき、第1のCEルータ2041は第2のCEルータ2042のIPアドレスに対するデータリンクレイヤアドレスをARPプロトコルを利用して解決するために、ARP要求パケットを生成して、第1のCEルータ2041の属するサブネットに送信する。
LAN間接続装置201内のブロードキャストインタフェース221は、第1のCEルータ2041からのARP要求パケットを受信し、ARP処理部225に送信する。ARP処理部225は、PEルータ207のIPアドレス情報と、ARP処理部225の持つARPテーブル226で定義されるデータリンクレイヤアドレス情報と、「CEルータが属するサブネットへの配送先情報」と、ルーティング処理部223が持つルーティングテーブル224で定義されるルーティング情報とから、図7で説明したアルゴリズムに従ってARP応答の可否を決定するので、ARP応答を返さない。
したがって、第2のCEルータ2042のみが第1のCEルータ2041の属するサブネットに送信されたARP要求パケットに応答することになる。第1のCEルータ2041はネキストホップである第2のCEルータ2042のIPアドレスに対するデータリンクレイヤアドレスを解決できたので、IPパケットにデータリンクヘッダを付与して第2のCEルータ2042に送信する。
第2のCEルータ2042はIPパケットを受信して、第2のLAN2052内のIPアドレスが172.16.0.1のホストに送信する。第2のLAN2052内のIPアドレスが172.16.0.1のホストは、ピング要求パケットを受信し、ピング応答パケットを生成して、第1のLAN2051内のIPアドレスが10.0.0.1のホストに送信する。
第2のCEルータ2042は、第2のLAN2052内のIPアドレスが172.16.0.1のホストからIPパケットを受信して、第1のCEルータ2041に送信する。第1のCEルータ2041は第1のCEルータ2041からIPパケットを受信して、第1のLAN2051内のIPアドレスが10.0.0.1のホストに送信する。第1のLAN2051内のIPアドレスが10.0.0.1のホストはピング応答パケットを受信して処理する。
以上の説明で、第1のLAN内2051内のホストと、第2のLAN2052内のホストとの通信が可能であり、不要なパケットがPEルータ207に転送されないことが了解される。
第1および第2のCEルータ2041、2042と同一サブネットに配置されたIPアドレスが192.168.0.4の通信端末206から第1のLAN2051内のIPアドレスが10.0.0.1のホストにピング要求を発行した場合には、第1のLAN内2051内のホストと、第2のLAN2052内のホストとの処理と比べて、LAN間接続装置201がARP応答を返さず第1のCEルータ2041がARP応答を直接返すという点が異なるだけである。すなわち、この場合にも、第1および第2のCEルータ2041、2042と同一サブネットに配置された通信端末206と、第1のLAN2051内のIPアドレスが10.0.0.1のホストとの通信が可能であり、不要なパケットがPEルータ207に転送されないことが分かる。
<第4のケース>
次に、あまり起こらない第4のケースを考える。第4のケースでは、第1のLAN2051内のIPアドレスが10.0.0.1のホストから第2のLANの更に先の図示しない第4のLAN2054内のIPアドレスが172.16.10.1のホストにピング要求を発行した場合である。この例の場合、ユーザは、事前に第4のLAN2054へのルートをLAN間接続装置201に正しく設定しているものとする。ただし、第1のCEルータ2041には第4のLANのルート情報が正しく設定されていないものとする。このような状況で、第1のCEルータ2041のデフォルトルートであるPEルータ207に第1のCEルータ2041がピング要求パケットを送信しようとした場合を説明する。
この第4のケースで、第1のLAN2051内のIPアドレスが10.0.0.1のホストは、第4のLAN内のIPアドレスが172.16.10.1のホストに対してピング要求パケットを送信する。第1のCEルータ2041は、第1のLAN2051内のIPアドレスが10.0.0.1のホストからIPパケットを受け取り、第1のCEルータ2041のルーティング情報に従い、デフォルトルートであるPEルータ207にIPパケットを送信しようとする。このとき、第1のCEルータ2041はPEルータ207のIPアドレスに対するデータリンクレイヤアドレスをARPプロトコルを利用して解決するために、ARP要求パケットを生成して、第1のCEルータ2041の属するサブネットに送信する。
ブロードキャストインタフェース221は、第1のCEルータ2041からARP要求パケットを受信し、ARP処理部225に送信する。LAN間接続装置201内のARP処理部225は、PEルータ207のIPアドレス情報と、ARP処理部225の持つARPテーブル226で定義されるデータリンクレイヤアドレス情報と、「CEルータが属するサブネットへの配送先情報」と、ルーティング処理部223が持つルーティングテーブル224で定義されるルーティング情報とから、先の図7に示したアルゴリズムに従ってARP応答の可否を決定する。この結果として、LAN間接続装置201に第4のLANへのルート情報が予め設定されているため、LAN間接続装置201はARP応答を返さない。
第1のCEルータ2041はARP応答パケットを受信しないので、IPパケットを送信できない。そこで、第1のCEルータ2041は第1のLAN2051内のIPアドレスが10.0.0.1のホストに対し、配送不可のICMP(Internet Control Message Protocol)エラーパケットを送信することになる。ここで、ICMPは、IPv4(Internet Protocol version 4)内のプロトコルエラーを制御するためのプロトコルである。したがって、第1のLAN2051内のIPアドレスが10.0.0.1のホストのピング要求は失敗に終わる。
以上の説明は、第1のCEルータ2041のルート情報に不足があったとしても、LAN間接続装置201に正しくルートが設定されていれば、不要なIPパケットがPEルータ207配下のネットワークに転送されないことを示すものである。
<第5のケース>
次に、第5のケースとして、LAN間接続装置201のホスト処理によって第1のLAN2051内のIPアドレスが10.0.0.1のホストにピング要求を発行する場合を説明する。LAN間接続装置201のホスト処理によって、第1のLAN2051内のIPアドレスが10.0.0.1のホストにピング要求パケットを送信したとする。ルーティング処理部223は第1のLAN2051内のIPアドレスが10.0.0.1のホストがブロードキャストインタフェース221側にあると知っている。そこで、図4に示したアルゴリズムに従って、IPパケットの宛先IPアドレスをネキストホップに決定して、IPパケットをブロードキャストインタフェース221に送信する。ホスト処理部229からのブロードキャストインタフェース221への送信パケットは、ポイントツーポイントインタフェース222から受信されるものと同一となる。
ブロードキャストインタフェース221は、ルーティング処理部223からIPパケットを受信した後、ARP処理部225にネキストホップのデータリンクレイヤアドレスを解決する要請を出す。ARP処理部225は、通常のARPプロトコルと同じ手続きを利用してネキストホップのデータリンクレイヤアドレスを解決する。このとき、ARP処理部225は、ARP要求パケットのターゲットプロトコルアドレスにネキストホップのIPアドレスを設定する。この場合は、IPパケットの宛先IPアドレスが設定される。また、ARP処理部225は、ARP要求パケットのセンダプロトコルアドレスに自局のIPアドレスを設定し、センダハードウェアアドレスにブロードキャストインタフェース221のデータリンクレイヤアドレスを設定する。
ARP処理部225が発行したARP要求パケットは、ブロードキャストインタフェース221から第1および第2のCEルータ2041、2042の接続されるネットワークに送信される。第1のCEルータ2041は、ARP要求パケットのターゲットプロトコルアドレスへのルートを持ち、かつ、プロキシARPの機能を持っている。したがって、このARP要求パケットを処理し、ARP応答パケットをLAN間接続装置201に送信することになる。ブロードキャストインタフェース221は、第1のCEルータ2041からのARP応答パケットを受信し、更にARP処理部225に送信する。
ARP処理部225は、ARP応答パケットを解析し、ネキストホップのIPアドレスとそのデータリンクレイヤアドレスの組の情報をARPテーブル226に格納する。ブロードキャストインタフェース221は、ネキストホップであるIPパケットの宛先IPアドレスに対するデータリンクレイヤアドレスが第1のCEルータ2041のデータリンクレイヤアドレスとして解決できたので、転送するべきIPパケットにデータリンクヘッダを付与し、第1のCEルータ2041にIPパケットを送信する。第1のCEルータ2041はLAN間接続装置201からパケットを受信し、さらに第1のLANのIPアドレスが10.0.0.1のホストにIPパケットを送信する。
第1のLAN2051内のIPアドレスが10.0.0.1のホストは、ピング要求パケットを受信し、ピング応答パケットを生成し、LAN間接続装置201のIPアドレス192.168.0.5に送信する。第1のCEルータ2041は、第1のLAN2051内のIPアドレスが10.0.0.1のホストからIPパケットを受信し、LAN間接続装置201にパケットを送信する。このとき、先の第1のCEルータ2041は、ARP要求パケットを受信したときセンダプロトコルアドレスとセンダハードウェアアドレスをすでに記憶しているので、LAN間接続装置201のIPアドレスに対するデータリンクレイヤアドレスは解決されている。したがって、第1のCEルータ2041はLAN間接続装置201にIPパケットを送信する。
LAN間接続装置201は、IPパケットをブロードキャストインタフェース221から受信し、ルーティング処理部223に送信する。ルーティング処理部223は、自分宛てのIPパケットであることを認識して、ホスト処理部229で終端する。
以上の説明より、LAN間接続装置201と第1のLAN内10.0.0.1との通信が可能であることが分かる。LAN間接続装置201と第2のLAN2052内のIPアドレスが172.16.0.1のホストとの通信や、LAN間接続装置201と第3のLAN2053内のIPアドレスが20.0.0.1のホストとの通信や、LAN間接続装置201と第4のLAN内のIPアドレスが172.168.10.1のホストとの通信も同様に可能である。
<第6のケース>
最後に、第6のケースとして、LAN間接続装置201にIPアドレスを明示的に付与しない場合を説明する。例えば、IP−VPNをサービスするプロバイダとユーザとが、利用できるサブネットを192.168.0.0/30として契約したとする。この場合には、割り当て可能なホストアドレスは192.168.0.1と192.168.0.2の2つのみであり、それぞれ第1および第2のCEルータ2041、2042とPEルータ207に設定する。従って、LAN間接続装置201に割り当て可能なIPアドレスはない。このような場合、LAN間接続装置201は、自身についてのブロードキャストインタフェース221のIPアドレスとして、仮想的なアドレスとしてループバックアドレスである127.0.0.1/32を自動的に設定する。
以上説明した第1〜第4のケースと一連の手続きは全く同一である。LAN間接続装置201のIPアドレスは127.0.0.1/32であり、ホスト処理は動作しないので第5のケースは適用されない。この場合にも、ARP処理部225は、第1または第2のCEルータ2041、2042へ送信するARP要求パケットや第1または第2のCEルータ2041、2042へ送信するARP応答パケットのセンダプロトコルアドレスにブロードキャストインタフェース221に内部的に設定されているIPアドレス127.0.0.1ではなく、予め指定されているPEルータ207のIPアドレスを使用し、センダハードウェアアドレスにはブロードキャストインタフェース221のデータリンクレイヤアドレスを使用する。
LAN間接続装置201のIPアドレスとして127.0.0.1/32を設定する利点は、セキュリティの面でも考慮されることである。ループバックアドレスに対してパケットを送信するようなホストやルータの存在は限りなく少ない。さらに、たとえループバックアドレスをもつLAN間接続装置201に対してパケットを送信できるホストやルータが存在したとしても、サブネットマスクが“32”であるのでLAN間接続装置201のホスト機能はいっさい動作せず応答を返さない。このため、セキュリティの面でも考慮されていることになる。
<<発明の変形例>>
以上説明した実施例では、図1に示した第1および第2のCEルータ2041、2042にプロキシARPの機能が備えられているものとして説明を行った。しかしながら、これ以外の場合でも、PEルータに複数台のCEルータをポイントツーポイントネットワークを介して接続することができる。たとえば、ルーティング処理部223がポイントツーポイントインタフェース222からブロードキャストインタフェース221にパケットを送信するときで、LAN間接続装置201のルーティングテーブル224にネットワークのすべてのルートを登録できる場合には、このすべてのルートを登録したルーティングテーブル224の情報を検査することで、同様の効果を得ることができる。
図8は、先の実施例の図4に対応するもので、変形例としてピング要求パケットとしてのIPパケットを受信したルーティング処理部の処理を表わしたものである。図4と同一部分には同一のステップ番号を付している。宛先がルーティング処理部223自身ではない場合(ステップS303:N)、その受信したIPパケットのルートがブロードキャストインタフェース221側に存在するかどうかのチェックが行われる(ステップS401)。存在しなければ(N)、図4の場合と同様にステップS305に進んでそのIPパケットの宛先のIPアドレスをネキストホップに決定し、そのIPパケットをブロードキャストインタフェース221に送信する(ステップS306)。
受信したIPパケットのルートがブロードキャストインタフェース221側に存在する場合には(ステップS401:Y)、ルーティングテーブル224の示すネキストホップを取得する(ステップS402)。そして、これを基にしてステップS306でIPパケットをブロードキャストインタフェース221に送信することになる。
すなわち、通常、ユーザはLAN間接続装置201のルーティングテーブル224に、ブロードキャストインタフェース221側の第1のLAN2051と第2のLAN2052へのネットワークへのルートを、第1および第2のCEルータ2041、2042をネキストホップとして登録する。したがって、IPパケットの宛先アドレスのルートがルーティングテーブル224にあれば、そのネキストホップは第1あるいは第2のCEルータ2041、2042のIPアドレスである。これは、LAN間接続装置201からのARP要求パケットは、第1および第2のCEルータ2041、2042のIPアドレスを解決するために発行されることを示している。この例の場合は、第1および第2のCEルータ2041、2042にプロキシARPの機能を必要とせず、一般的なARP機能があればよい。
この図8に示す処理を行えば、転送するIPパケットの宛先IPアドレスごとにARPプロトコルによりデータリンクレイヤアドレスを解決している。このため、転送するIPパケットの宛先IPアドレスごとにARPテーブル226のエントリが消費されてしまうという欠点を補うことができる。すなわち、この変形例の図8に示す処理を行うことにより、ARPテーブル226のエントリは、第1および第2のCEルータ2041、2042に1つずつだけ消費されることになる。
しかしながら、この変形例では、LAN間接続装置201のルーティングテーブル224にネットワークのすべてのルートを登録することにしている。したがって、このような登録ができなかった場合には、ルーティング処理部223で検索できなかったIPパケットのIPアドレスに関しては、そのIPアドレスがネキストホップと決定されてブロードキャストインタフェース221に送信されることになる。このような事態の発生を防止するためには、第1および第2のCEルータ2041、2042にプロキシARPの機能が必要であり、ルーティングテーブル224に登録されていない宛先IPアドレスに関しては、その宛先IPごとにARPテーブル226のエントリが消費されることになる。
ところで、複数のCEルータがプロキシARPの機能を持っていない場合には、これら複数のCEルータを自動で接続することはできない。しかし、すべての宛先IPアドレスとそれに対応するデータリンクレイヤアドレスの組の情報をLAN間接続装置201のARPテーブル226にユーザが予め設定するようにすれば、複数のCEルータを手動で接続することが可能である。この場合には、CEルータの属するサブネットに配置されたホスト間あるいはルータ間のローカルな通信においても、不要なパケットをPEルータに送信することはない。
複数のCEルータがそれぞれプロキシARPを持っていない場合には、これら複数のCEルータを自動で接続することはできない。しかし、「CEルータが属するサブネットへの配送先情報」の代わりに、ただ一つのCEルータのIPアドレスとネットマスクの組の情報(以下、「CEルータへの配送情報」と呼ぶ)を、LAN間接続装置201に対してユーザが予め設定することにより、ただ一つのCEルータを自動で接続することが可能である。
図9は、図2に対応するものでこの変形例によるLAN間接続装置の構成の概要を表わしたものである。図9で図2と同一部分には同一の符号を付しており、これらの説明を適宜省略する。この変形例のLAN間接続装置201Aでは、ルーティング処理部223Aが「CEルータへの配送情報」411とARPテーブル226を参照する点が、図2に示した実施例のLAN間接続装置201と相違する。
図10は、本発明のこの変形例で図4に示したアルゴリズムを変形したルーティング処理部でのIPパケットの受信処理を表わしたものである。図10で図4と同一部分には同一のステップ番号を付しており、これらの説明を適宜省略する。変形例の場合には、ステップS303でIPパケットの宛先がルーティング処理部223A自身ではないと判別された場合に(N)、その宛先のIPアドレスがARPテーブル226に含まれているかどうかを判別するようにしている(ステップS421)。含まれている場合には(Y)、IPパケットを送信するべきネキストホップのデータリンクレイヤアドレスが既に解決していることを意味している。従って、転送すべきIPパケットの宛先IPアドレスをネキストホップとして決定し(ステップS422)、ブロードキャストインタフェース221にIPパケットを送信する(ステップS306)。これにより、ARP処理部225でARPプロトコルによるネキストホップのIPアドレスの解決は行われず、ブロードキャストインタフェース221は、IPパケットをネキストホップのIPアドレスに対するデータリンクレイヤアドレスをもつ装置に対して直接送信することができる。ネキストホップのIPアドレスに対するデータリンクレイヤアドレスをもつ装置がホストであればIPパケットはそのホストで終端される。ネキストホップのIPアドレスに対するデータリンクレイヤアドレスを持つ装置がCEルータであれば、CEルータは受信したIPパケットを配下のネットワークに配送する。
ステップS421で宛先のIPアドレスがARPテーブル226に含まれていないと判別された場合には(N)、IPパケットを送信するべきネキストホップが決定されていないことを意味している。従って、「CEルータへの配送情報」に含まれるCEルータのIPアドレスをネキストホップに決定する(ステップS423)。そして、このIPパケットをブロードキャストインタフェース221に送信する。CEルータのIPアドレスに対するデータリンクレイヤアドレスは、ARP処理部225がARPプロトコルを使用して解決し、ブロードキャストインタフェース221はIPパケットをCEルータに送信する。CEルータは、受信したIPパケットを、そのルータの配下のネットワークに配送する。
以上説明した実施例および変形例のLAN間接続装置およびLAN間接続方法では、PEルータ207とLAN間接続装置201、201Aの間のネットワークがポイントツーポイントリンクであれば、すべての種類のデータリンクに対して本発明を適用可能である。例えば、ATM(Asynchronous Transfer Mode)によるIPオーバ(over)ATM、フレームリレーによるIPオーバFR(frame relay)等のポイントツーポイントのデータリンクレイヤ上にIPパケットをマッピングするプロトコルに対して本発明を適用することができる。