JP4029708B2 - ルータ装置、及び転送制御方法 - Google Patents
ルータ装置、及び転送制御方法 Download PDFInfo
- Publication number
- JP4029708B2 JP4029708B2 JP2002284306A JP2002284306A JP4029708B2 JP 4029708 B2 JP4029708 B2 JP 4029708B2 JP 2002284306 A JP2002284306 A JP 2002284306A JP 2002284306 A JP2002284306 A JP 2002284306A JP 4029708 B2 JP4029708 B2 JP 4029708B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- interface
- transfer
- control means
- packet
- 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 - Lifetime
Links
- 238000012546 transfer Methods 0.000 title claims description 94
- 238000000034 method Methods 0.000 title claims description 47
- 230000005540 biological transmission Effects 0.000 claims description 21
- 230000008569 process Effects 0.000 claims description 13
- 238000007726 management method Methods 0.000 description 41
- 238000012545 processing Methods 0.000 description 40
- 238000010586 diagram Methods 0.000 description 17
- 230000004044 response Effects 0.000 description 14
- 230000006870 function Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 4
- 238000005538 encapsulation Methods 0.000 description 4
- 238000001914 filtration Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005728 strengthening Methods 0.000 description 1
Images
Landscapes
- Small-Scale Networks (AREA)
Description
【発明の属する技術分野】
本発明は、効率のよい分散処理を実現するルータ装置に関する。
【0002】
【従来の技術】
従来のルータの構成を図17に示す。図17において、ルータは、CPU101と、インターフェースカード103〜105がバス102に接続されて構成している。なお、ここでは説明を容易にするため3つのインターフェースカードを持つルータ構成について説明するが、インターフェースカードの数は任意でよい。インターフェースカード103〜105は、外部ネットワークからパケットを受信すると、バス102を使用して、CPU101へパケットを送信する。パケットを受信したCPU101は、パケット処理のプロセスを起動し、ルーティングプロトコルなどにより作成したルーティング情報を用いて、NextHopや出力インターフェースカードなど、パケットを転送するために必要な情報を検索する。ルーティング情報やレイヤ2情報を検索した結果に基づいて、CPU101は、カプセル化などパケットの書き換え処理を行い、バス102を使用してインターフェースカード103〜105へパケットを転送する。CPU101からのパケットを受信したインターフェースカード103〜105は、必要であればキューイング処理などを行い、パケットをネットワークに出力する。
【0003】
また、複数のネットワークインターフェースから構成されるルータに関する技術について開示した特許文献として、以下に示す特許文献1、及び2に示されるものが知られている。
【0004】
【特許文献1】
特開平7−202930号公報
【特許文献2】
特開平6−97965号公報
【0005】
特許文献1としての特開平7−202930号公報には、複数のネットワークインターフェースから構成されるMACブリッジにおいて、テーブル参照の際にバスへのアクセスやメモリ競合およびCPU間の情報交換による性能低下が少なくなるような、単純で効率的なテーブル管理を行なうMACブリッジのテーブル管理方法が開示されている。
より具体的には、図18に示されるように1つの管理用CPU(202)と、1つ以上のポート(204)を持つ1つ以上のネットワーク・インターフェース(203)から構成されるMACブリッジ(201)で、各ネットワーク・インターフェースは、受信したフレームの送信元MACアドレスをローカルMACアドレステーブルに登録すると共に、他のネットワーク・インターフェースから転送されてきたフレームの送信元MACアドレスも登録することで個別にローカルMACアドレステーブルを管理している。また、管理用CPUが持つマスタMACアドレステーブル(205)にそれぞれの学習情報を伝達することにより、ブリッジ全体のMACアドレステーブル情報を統一している。
【0006】
また、特許文献2としての特開平6−97965号公報には、複数のネットワークインターフェースを持つルータが、そのインターフェースの数やネットワーク間の通信トラフィックによらず、ルーティング処理の高速化を図ることができる中継制御方式が提案されている。
具体的には、図19に示されるように、ルータ内の複数のネットワークインターフェース320が、それぞれフィルタリング制御部340とルーティング制御部330を持ち、フィルタリング制御部340は、自ネットワークに接続している端末のアドレスを記憶しているフィルタリングテーブル341によりネットワーク内の通信を高速にフィルタリングし、ルーティング制御部330は、端末のアドレスと、接続しているネットワークインターフェースのインターフェース番号を1組として記憶しているルーティングテーブル331によりネットワーク間の通信をルーティング処理することにより、ネットワークインターフェースの数やネットワーク間の通信トラフィックにあまり依存せずに、フィルタリング処理能力とルーティング処理能力を向上させることができるとしている。
【0007】
【発明が解決しようとする課題】
近年、ますます増え続けるIPトラフィックに対応するため、ルータの高速化、大容量化に対するニーズは非常に高い。しかし、従来のルータ構成で高速化、大容量化を実現するためには、基本的にはCPU、バス、インターフェースカードの高速化、大容量化といったハードウェアの強化が必要となる。ただし、ハードウェアの強化による高速化・大容量化の実現には、コストが非常に高くなる、汎用品を使用する場合は他社と同じレベルの高速化・大容量化しか実現できないといった問題点がある。そのため、ルータ構成を変更し、複数CPUにより分散処理を実現することが検討されるケースがあるが、複数のCPUにより分散処理を実現しつつ、外部からは1 つのルータとして見えるルータ構成を設計することは、非常に困難を極める。
【0008】
また、複数のインターフェースカード側に搭載する機能と、これらを管理する管理装置側に搭載する機能の機能分担をどのように行なえば、効率のよい分散処理を実現しつつも、ルータ自体の管理にかかる手間を軽減させることができるかについて開示された発明はない。
すなわち、技術文献1に記載された発明は、テーブルの管理方法についてだけ言及したものであり、実際のパケットの転送の際に管理用CPUへのアクセスを生じさせずに効率のよいパケット転送をいかに実現するのかについて記載されていない。
また、技術文献2に記載された発明は、ルーティング情報に更新が発生した場合に、各ネットワークインターフェースに設けたルーティングテーブルの更新をどのように効率的に行なうのか開示されていない。
【0009】
また、上述した特許文献1及び2に記載された発明は、複数のネットワークインターフェースを具備し、それぞれが分散処理を行なっているので、パケット転送の際にフィードバックが発生し、パケット転送に遅延を生じるという不具合を有している。
【0010】
本発明は上記事情に鑑みてなされたものであり、効率の良い分散処理を行いつつも、外部からは1 つのルータとして扱えるスケーラブルなルータ構成を実現し、高速化・大容量化を実現したルータ装置、及び転送制御方法を提供することを目的とする。
【0011】
【課題を解決するための手段】
係る目的を達成するために請求項1記載の発明は、複数のインターフェースカードと、該複数のインターフェースカードを管理する管理制御手段と、を有するルータ装置であって、複数のインターフェースカードは、受信したデータを記録すると共に、該データが自身に宛てられたデータであるのか、他のインターフェースカードに転送すべきデータであるのかを判定するインターフェース制御手段と、インターフェース制御手段により他のインターフェースカードに転送すべきデータであると判定されたデータの転送を受けると、データの送信先を管理する第1の管理テーブルを参照してデータの転送先のインターフェースカードを決定し、該決定した転送先のインターフェースカードにデータを転送する転送制御手段と、を有し、装置外部から受信したデータがプロトコルパケット以外である場合、該受信した転送制御手段がデータ転送先のインターフェース制御手段を上記第1の管理テーブルに基づいて決定し、該転送を受けた送信側のインターフェース制御手段は、上記データをネットワーク上に出力することを特徴とする。
【0012】
請求項2記載の発明は、請求項1記載の発明において、自身に宛てられたデータであると判定されたデータをインターフェース制御手段より受信した管理制御手段は、データがルーティングプロトコルであった場合に、データの送信先を管理する第2の管理テーブルの記録内容を更新すると共に、複数のインターフェースカード内の転送制御手段に転送してルーティング情報を更新させることを特徴とする。
【0013】
請求項3記載の発明は、請求項1または2記載の発明において、インターフェース制御手段は、受信したデータのレイヤ2送信元アドレスが、未学習のレイヤ2送信元アドレスであった場合に、自身の保持するレイヤ2アドレス管理テーブルに登録すると共に、インターフェースカード内の転送制御手段と、他のインターフェースカード内のインターフェース制御手段とに更新情報を通知し、ルータ装置内のレイヤ2アドレス管理テーブルの更新を行なうことを特徴とする。
【0015】
請求項4記載の発明は、請求項1から3の何れか一項に記載の発明において、複数のインターフェースカードと、管理制御手段とのデータの転送は、バス上に配置したクロスバースイッチにより行なわれることを特徴とする。
【0016】
請求項5記載の発明は、複数のインターフェースカードと、該複数のインターフェースカードを管理する管理制御手段と、を有するルータ装置における転送制御方法であって、受信側となるインターフェースカードにおいて、受信したデータを記録すると共に、該データが自身に宛てられたデータであるのか、他のインターフェースカードに転送すべきデータであるのかを判定する第1の判定工程と、データの送信先を管理する第1の管理テーブルを参照して、第1の判定工程により他のインターフェースカードに転送すべきデータであると判定されたデータの転送先を決定し、該決定した転送先のインターフェースカードにデータを転送する第1の転送工程と、を有し、装置外部から受信したデータがプロトコルパケット以外である場合、該受信したインターフェースカードがデータ転送先のインターフェースカードを上記第1の管理テーブルに基づいて決定し、該転送を受けた送信側のインターフェースカードは、上記データをネットワーク上に出力することを特徴とする。
【0017】
請求項6記載の発明は、請求項5記載の発明において、第1の判定工程により自身に宛てられたデータであると判定されたデータを管理制御手段に転送して、データがルーティングプロトコルであるか否かを判定し、データがルーティングプロトコルであった場合には、データの送信先が登録された、管理制御手段の管理する第2の管理テーブルの記録内容を更新すると共に、複数のインターフェースカードに転送してルーティング情報を更新させるルーティング情報更新工程を有することを特徴とする。
【0018】
請求項7記載の発明は、請求項5または6記載の発明において、インターフェースカードにおいて、受信したデータのレイヤ2送信元アドレスが、未学習のレイヤ2送信元アドレスであるか否かを判定する第2の判定工程と、未学習のレイヤ2送信元アドレスであった場合に、インターフェースカードの管理するレイヤ2アドレス管理テーブルに登録すると共に、他のインターフェースカードに更新情報を通知し、ルータ装置内のレイヤ2アドレス管理テーブルの更新を行なう通知工程と、を有することを特徴とする。
【0020】
【発明の実施の形態】
次に添付図面を参照しながら本発明のルータ装置、及び転送制御方法に係る実施の形態を詳細に説明する。図1〜図16を参照すると本発明のルータ装置、及び転送制御方法に係る実施の形態が示されている。
【0021】
[第1の実施形態]
まず、図1を参照しながら本実施形態の構成について説明する。本実施形態は、図1に示されるように、装置内の各部を接続するバス2により、CPU1と複数のインターフェースカード3(図1には3つのインターフェースカード3−1,3−2,3−3がバス2に接続された構成が示されているが、図2に示されるようにインターフェースカードの数は任意でよい。)が接続されている。インターフェースカード3−1,3−2,3−3は、分散処理を実現するためのCPU4−1,4−2,4−3とパケットの入出力を実現するインターフェースコントローラ5−1,5−2,5−3とから構成される。なお、ここでは、説明を容易にするためインターフェースカード3にはCPU4とインターフェースコントローラ5とが1つずつ搭載されている構成について説明するが、CPU4及びインターフェースコントローラ5の数は任意でよく、図3に示されるように複数のインターフェースカード3でCPU4を共有することも可能である。
【0022】
ルータ全体を管理するCPU1は、バス2を介してCPU4−1,4−2,4−3や、インターフェースコントローラ5−1,5−2,5−3との通信が可能となっている。また、CPU1は、ルーティング情報を登録したデータベースを有している。
【0023】
バス2は、ルータの各部を接続し、CPU1,4−1,4−2,4−3やインターフェースコントローラ5−1,5−2,5−3が相互に通信できるようにしている。また、バス2にはクロスバースイッチのような専用ハードウェアが配置され、これによりパケット転送が実現される。クロスバースイッチのような専用ハードウェアを用いることにより安価で高速な装置内接続を実現することができる。なお、ここではバスは装置内を接続する機能を表すものとして単一のものとして表現しているが、実際にはパケット転送用とCPU間通信用などの用途別に構成することも可能である。
【0024】
パケット転送を行なうCPU4は、バス2とインターフェースコントローラ5(CPU4−1とインターフェースコントローラ5−1、CPU4−2とインターフェースコントローラ5−2、CPU4−3とインターフェースコントローラ5−3)とに接続されており、CPU1、他のCPU4、およびインターフェースコントローラ5−1,5−2,5−3と通信を行なうことが可能となっている。また、複数のインターフェースカード内の各CPU4−1,4−2,4−3は、ルーティング情報、レイヤ2で使用するアドレス(以下、レイヤ2情報という)、IPアドレスとレイヤ2情報との対応関係を示す情報とを管理する管理テーブルを有している。
【0025】
インターフェースコントローラ5は、バス2とCPU4(インターフェースコントローラ5−1とCPU4−1、インターフェースコントローラ5−2とCPU4−2、インターフェースコントローラ5−3とCPU4−3)とに接続されており、外部から受信したパケットをCPU1,4−1,4−2,4−3や、他のインターフェースコントローラ5に転送する。また、CPU1,4−1,4−2,4−3や他のインターフェースコントローラ5から受信したパケットに、キューイングなどの処理を施し、外部に出力する機能を有している。また、各インターフェースコントローラ5−1,5−2,5−3は、レイヤ2情報を管理するレイヤ2テーブルを有している。なお、レイヤ2テーブルとは、レイヤ2フレームを転送(フォワーディング)する際に使用するデータを記録したテーブルであり、MACアドレスとVLAN(Virtual LAN)情報から出力先ポートやフレームフォーマットを決定するために使用される。
【0026】
上記構成からなる本実施形態は、複数のインターフェースカード側に搭載する機能と、これらを管理する管理装置側に搭載する機能との機能分担を最適に行なうことにより、効率のよい分散処理を実現しつつも、ルータ自体の管理にかかる手間を削減させたルータ装置を実現することを目的としている。
【0027】
このため本実施形態は、複数のインターフェースカード3側に、受信したデータを記録すると共に、該データが自身に宛てられたデータであるのか、他のインターフェースカードに転送すべきデータであるのかを判定するインターフェースコントローラ5と、このインターフェースコントローラ5により他のインターフェースカードに転送すべきデータであると判定されたデータの転送を受けると、データの送信先を管理する管理テーブルのルーティング情報を参照して転送先のインターフェースカード3を決定し、該決定した転送先のインターフェースカード3にデータを転送するCPU4と、を設けた。
【0028】
また、ルータ装置全体を管理するCPU1には、インターフェースコントローラ5によりプロトコルパケットであると判定されたパケットがルーティングプロトコルであるか否かを判定し、ルーティングプロトコルであった場合に、データベースの記録内容を更新すると共に、複数のインターフェースカード3内のCPU4にルーティング情報を転送して、管理テーブルのルーティング情報を更新させる機能を持たせた。なお、プロトコルパケットとは、自ルータ宛のTELNET、FTP(File Transfer Protocolなどのアプリケーションプロトコルや、OSPF(Open Shortest Path First Routing)やRIP(Routing InformationProtocol)などのルーティングプロトコルなどのパケットをいい、レイヤ2宛先アドレスとIPアドレスが自ルータ宛のパケットをいう。
【0029】
このような構成のルータ装置とすることにより、パケット転送の際には、入力側のCPU4によりデータの出力先となるインターフェースコントローラ5を選択させ、選択したインターフェースコントローラ5にデータを転送してレイヤ2処理などの処理を施し、外部に出力することで、インターフェースカード3内に設けたインターフェースコントローラ5とCPU4だけでパケット転送が実現され、従来構成のルータ装置で問題となっていたルータ装置全体を管理するCPU1の負荷を軽減させることができる。
【0030】
また、受信したデータがプロトコルパケットであった場合だけ、全体を管理するCPU1にデータを送信し、データがルーティングプロトコルであった場合に、データベースの記録内容を更新すると共に、複数のインターフェースカード3内のCPU4にルーティング情報を転送して、管理テーブルのルーティング情報を更新させることにより、複数のCPUを有するルータ装置を、従来の1つのCPUを備えたルータ装置と同等に扱うことが可能となり、ルータの設定などの際にルータ装置の管理の手間を軽減させることができる。
【0031】
次に、ルータ装置の構成要素のより詳細な動作を説明する。
まず、図4、及び図5を参照しながらインターフェースコントローラ5の動作手順について説明する。
ルータ装置外部から転送されたデータを受信(ステップS401/YES)したインターフェースカード3は、受信したデータをインターフェースコントローラ5に保存する(ステップS402)。次に、受信したデータのレイヤ2宛先アドレス、送信元アドレスを確認する(ステップS403)。
【0032】
送信元アドレスが未学習(レイヤ2情報の変更が必要な送信元アドレスがある)のアドレスであった場合(ステップS404/YES)、インターフェースコントローラ5の保持するレイヤ2テーブルに送信元アドレスを登録する(ステップS405)。また、インターフェースコントローラ5は、自カード内のCPU4及び他のインターフェースコントローラ5に学習したレイヤ2情報をバス2を介して通知する(ステップS406)。また、この場合に通知されるレイヤ2情報は、変更が加えられたレイヤ2情報だけである。
【0033】
また、受信したデータのレイヤ2宛先アドレスがルータ自身のアドレスであった場合(ステップS407/YES)、インターフェースコントローラ5は、パケットがプロトコルパケットであるか否かを判定する(ステップS409)。判定の方法には、例えばフィルタを用いることができる。
【0034】
パケットがプロトコルパケットであった場合には(ステップS409/YES)、パケットをCPU1に転送する(ステップS410)。プロトコルパケットを受信したCPU1は、従来のルータに搭載されているCPUと同様にプロトコルの定める手順に則りパケットを処理する。特に、プロトコルパケットがルーティングプロトコルの場合、必要に応じてルーティング情報を格納したデータベースに変更を加え、他のインターフェースカードに変更されたルーティング情報を配布する。
【0035】
また、パケットがプロトコルパケットではなかった場合には(ステップS409/NO)、パケットを自カード内のCPU4に転送する(ステップS411)。パケットを受信したCPU4は、管理テーブルに保持しているルーティング情報及びレイヤ2情報を用いて出力先インターフェースコントローラを決定し、カプセル化などの処理を施したパケットを該当インターフェースコントローラに転送する。
【0036】
次に、図5を参照しながら他のインターフェースカード3からデータの転送を受けた場合の処理を説明する。
インターフェースコントローラ5は、他のインターフェースカード3よりデータの転送を受けた場合には(ステップS501)、当該データが転送パケットであるか否かを判断する(ステップS502)。データが転送パケットであった場合には(ステップS502/YES)、パケットにレイヤ2処理、キューイングなどの処理を施し(ステップS503)、外部へ出力する(ステップS504)。また、データがレイヤ2情報であった場合には(ステップS505/YES)、レイヤ2テーブルに保持しているレイヤ2情報に、通知されたアドレス情報を登録し(ステップS506)、CPU4へレイヤ2情報を通知する(ステップS507)。
【0037】
次に、本実施形態の全体動作を、レイヤ3以上のプロトコル処理、レイヤ2アドレスの学習処理、パケット転送処理の3つに分けて説明する。まず、図6を用いてレイヤ3以上のプロトコル処理について説明する。なお、ここでは説明を容易にするためにインターフェースカード3−1がプロトコルパケットを受信したとして説明するが、プロトコルパケットを受信するインターフェースカードは3−1に限るものではない。
【0038】
ルーティングプロトコルなどのプロトコルパケットを外部から受信したインターフェースカード3−1(図6に示された▲1▼)は、インターフェースコントローラ5−1にパケットを格納する。次に、インターフェースコントローラ5−1は、受信したパケットのレイヤ2宛先アドレスを確認する(図6に示された▲2▼)。レイヤ2宛先アドレスが自身のアドレス(ルータアドレス)であった場合に、パケットがプロトコルパケットかどうかを判定する(図6に示された▲3▼)。パケットの判定方法は、例えばフィルタを用いて行うことができる。格納したパケットがプロトコルパケットであると判断したインターフェースコントローラ5−1は、バス2を用いてパケットをCPU1に転送する(図6に示された▲4▼)。プロトコルパケットを受信したCPU1は、従来のルータに搭載されているCPU同様にプロトコルの定める手順に則りパケットを処理する。特にプロトコルパケットがルーティングプロトコルの場合、必要に応じてルーティング情報を格納したデータベースを更新する。
【0039】
ここで、ルーティング情報の更新が発生した場合の処理を、図7を用いて説明する。ルーティング情報を更新したCPU1は、更新をトリガとして、ルーティング情報をCPU4−1,4−2,4−3に配布する。大規模ネットワークでは配布するルーティング情報が大規模なものとなることがある。バス2の構成によっては、大規模なルーティング情報の配布を行っている間バスが占有されてしまうことがあるため、そのような場合には、ルーティング情報を分割して配布するなどの手法をとるものとする。
【0040】
図6に戻り、プロトコル処理について引き続き説明する。CPU1は、受信したプロトコルパケットに応答が必要な場合、CPU1上で応答パケットを作成した後(図6に示された▲5▼)、バス2を用いてインターフェースコントローラ5−1にパケットを送信する(図6に示された▲6▼)。パケットを受信したインターフェースコントローラ5−1は、キューイングなどの必要な処理を行った後にパケットを外部に出力する(図6に示された▲7▼)。
【0041】
次に、図8を用いてレイヤ2アドレスの学習処理について説明する。なお、以下では説明を容易にするためにインターフェースカード3−1がフレームを受信したとして説明するが、ここでもフレームを受信するインターフェースカードは3−1に限るものではない。
【0042】
レイヤ2フレームを受信したインターフェースカード3−1は、インターフェースコントローラ5−1にフレームを格納する(図8に示された▲1▼)。その際、インターフェースコントローラ5−1は、フレームの送信元アドレスを調べ(図8に示された▲2▼)、未学習の送信元アドレスである場合は、インターフェースコントローラ5−1が保持するレイヤ2テーブルに登録する(図8に示された▲3▼)。また、インターフェースコントローラ5−1は、バス2を用いて自カード3内のCPU4−1および他のインターフェースコントローラ5−2,5−3に学習したレイヤ2情報を通知する(図8に示された▲4▼)。レイヤ2情報を受信したインターフェースコントローラ5−2,5−3は、通知されたレイヤ2情報をレイヤ2テーブルに登録した後(図8に示された▲5▼)、CPU4−2,4−3にレイヤ2情報を通知する(図8に示された▲6▼)。
【0043】
次に、図9を用いて、パケット転送処理について説明する。なお、以下では説明を容易にするためにインターフェースカード3−1がプロトコルパケットを受信したとして説明するが、ここでもパケットを受信するインターフェースカードは3−1に限るものではない。
【0044】
パケットを受信したインターフェースカード3−1は、インターフェースコントローラ5−1にパケットを格納する(図9に示された▲1▼)。レイヤ2宛先アドレスがルータアドレスであることを確認したインターフェースコントローラ5−1は、他のインターフェースコントローラ5−2もしくは5−3に転送すべきパケットか、CPU1に転送すべきプロトコルパケットかどうかを判定する(図9に示された▲2▼)。この判定方法は、例えばフィルタを用いて行うことができる。格納したパケットが他のインターフェースコントローラ5に転送すべきパケットであると判断したインターフェースコントローラ5−1は、パケットをCPU4−1に転送する(図9に示された▲3▼)。インターフェースコントローラ5−1からのパケットを受信したCPU4−1は、管理テーブルに保持しているルーティング情報およびレイヤ2情報を用いて出力先インターフェースコントローラを決定する。本動作例では、説明の都合上、出力先インターフェースカードが3−2であるものとする。CPU4−1は、カプセル化などの処理をパケットに施した後(図9に示された▲4▼)、インターフェースコントローラ5−2へパケットを転送する(図9に示された▲5▼)。パケットを受信したインターフェースコントローラ5−2は、出力に必要なレイヤ2処理やキューイングなどの処理を行った後(図9に示された▲6▼)、パケットを出力する(図9に示された▲7▼)。以上では転送処理をCPUが処理しているが、CPUで保持している情報をインターフェースコントローラに通知することにより、CPUを介さず、ハードウェアのみで転送処理を行うことも可能である。
【0045】
このように本実施形態は、効率の良い分散処理を行いつつも、ユーザからは1 つのルータとして扱えるスケーラブルなルータ構成を実現し、ルータの高速化・大容量化を実現することができる。
【0046】
[第2の実施形態]
次に添付図面を参照しながら本発明に係る第2の実施形態について説明する。
本実施形態は、VLAN(Virtual LAN)の構成範囲をインターフェースカード単位に制限するものである。本実施形態の構成は、前述の第1の実施形態同様図1 で表されるが、動作が異なるものである。本実施形態の動作を図8を用いて説明する。
【0047】
第1の実施形態と同様、プロトコル処理、レイヤ2アドレスの学習処理、パケット転送処理の3つに分けて説明する。但し、プロトコル処理は上記第1の実施形態と同様であるため説明を省略する。
【0048】
レイヤ2アドレスの学習処理に関しては、VLANの構成範囲をインターフェースカード単位に制限しているため、他のインターフェースカードへレイヤ2情報を通知することはしない。そのため、レイヤ2情報の交換を行わない装置構成を実現できる。
【0049】
パケット転送に関する動作手順を図10を参照しながら説明する。なお、ここでは説明を容易にするためにインターフェースカード3−1がプロトコルパケットを受信したとして説明するが、パケットを受信するインターフェースカードは3−1に限るものではない。
【0050】
パケットを受信したインターフェースカード3−1は、インターフェースコントローラ5−1にパケットを格納する(図10に示された▲1▼)。レイヤ2あて先アドレスがルータアドレスであることを確認したインターフェースコントローラ5−1は、他のインターフェースコントローラ5−2もしくは5−3に転送すべきパケットか、CPU1に転送すべきプロトコルパケットかどうかを判定する(図10に示された▲2▼)。この判定方法は、例えばフィルタを用いて行うことができる。格納したパケットが他のインターフェースコントローラに転送すべきパケットであると判断したインターフェースコントローラ5−1は、パケットをCPU4−1に転送する(図10に示された▲3▼)。インターフェースコントローラ5−1からのパケットを受信したCPU4−1は、管理テーブルに保持しているルーティング情報を用いて出力先インターフェースコントローラを決定する(図10に示された▲4▼)。本動作例では、説明の都合上、出力先インターフェースカードが3−2であるものとする。CPU4−1からのパケット(図10に示された▲5▼)を受信したCPU4−2は、レイヤ2情報を用いてパケットのカプセル化(図10に示された▲6▼)などの処理を実施した後、インターフェースコントローラ5−2へパケットを転送する(図10に示された▲7▼)。インターフェースコントローラ5−2は、出力に必要なレイヤ2処理やキューイングなどの処理(図10に示された▲8▼)を行った後パケットを出力する(図10に示された▲9▼)。
【0051】
以上により、各インターフェースカード間でレイヤ2情報を共有せずに、分散処理に基づくパケット転送を実現するとともに、外部からは1 つのルータとして動作するルータ構造が実現できる。なお、CPUで保持している情報をインターフェースコントローラに通知することにより、CPUを介さず、ハードウェアのみで転送処理を行うことも可能であるのは、前述実施例同様である。
【0052】
ここで、IPアドレスとレイヤ2アドレスの対応関係がキャッシュされていない場合のパケット転送を、VLANの構成範囲をインターフェースカード単位に制限していない場合と制限している場合とで比較する。なお、図11から図15には、パケット転送の手順が示されている。なお、図11から図15にはパケット転送の説明を容易にするため、各インターフェースカードの入出力ポートを、インターフェースカード内に記述している。まず、VLANの構成範囲をインターフェースカード単位に制限していない場合について説明する。
ルータは、他のインターフェースコントローラに転送すべきパケット(以下、転送パケット)をインターフェースカード3−1のポート1より受信し(図11に示された▲1▼)、CPU4−1に転送したものとする(図11に示された▲2▼)。
【0053】
パケットの転送を受けたCPU4−1は管理テーブルを検索し、レイヤ2情報及びルーティング情報からパケットの出力先を検出する。ここで出力先は、例えば第3番目として設定されたVLANであり、この第3番目のVLANはイターフェースカード3−2、3−3の両方に収容されているものとする。すなわち、CPU4−1は、レイヤ2情報及びルーティング情報からNextHopルータのIPアドレスを検出することはできるが、そのルータがインターフェースカード3−2と3−3のどちらのポートに接続されているのかは分からない状態となる。
【0054】
CPU4−1はNextHopルータがどちらのインターフェースカードに接続されているのか、また、そのレイヤ2アドレスを検出するためにARP(Address Resolution Protocol)をCPU4−2,4−3に依頼する(図11に示された▲3▼)。依頼を受けたCPU4−2,4−3は、インターフェースカードに接続された各ポートにARP要求パケットを出力し、NextHopルータからARP応答パケットが帰ってくるのを待つ(図11に示された▲4▼)。ここで、インターフェースカード3−3のポート3から応答パケットが返送されてきたとする。インターフェースコントローラ5−3は、受信したARP応答パケットをCPU4−3に返送する(図12に示された▲5▼)。また、CPU4−3はARP応答パケットを受信したことをCPU4−1に通知する(図12に示された▲6▼)。ARP応答パケット受信の通知を受けたCPU4−1は、CPU4−3へパケットを転送し(図13に示された▲7▼)、インターフェースコントローラ5−3によりインターフェースカードのポート3に出力される(図13に示された▲8▼)。
【0055】
このようにパケットを未学習の相手先に送信する際には、出力側のインターフェースカードから入力側のインターフェースカードにフィードバックが発生することになる。すなわち、入力側のCPU4−1は、パケットを受信してからARP応答パケット受信の通知を受けるまでパケットを保持し続けなければならず、パケットの転送に時間がかかるという欠点を有している。なお、ARP応答パケットを受信したCPU4−3は、学習した内容(該当IPアドレスがインタフェースカード3−3に接続されていて、ARP応答に記載されているレイヤ2アドレスを持っていることを他のCPUへ通知する。すなわち、すべてのCPUが同一のARPテーブルを有していることになる。
【0056】
次に、VLANの構成範囲をインターフェースカード単位に制限した場合のパケット転送について説明する。
パケットの転送を受けたCPU4−1が管理テーブルを検索し、ルーティング情報及びレイヤ2情報からパケットの出力先を検出するまでは上述した動作と同様である。ここで、1つのVLANは1つのインターフェースカードにのみ収納されるという制限が装置に付けられているため、パケットの出力先となるVLANは複数のインターフェースカードに収納されることはない。また、管理テーブルに登録されたルーティング情報には、どのVLANがどのインターフェースカードに収納されているのかが記述されている。
【0057】
CPU4−1は、NextHopルータがどのインターフェースカードのポートに接続されているのか、また、そのレイヤ2アドレスを検出するため、ARPを使用するが、VLANの構成範囲をインターフェースカード単位に制限しているため、ARP応答パケット受信の通知を受ける前に出力先となるVLANにパケットを転送することができる(図14に示された▲3▼)。この場合、インターフェースカード3−3が出力先となるVLANを格納しているとする。パケットを受信したCPU4−3は、管理テーブルを参照してIPアドレスとレイヤ2アドレスの対応関係がキャッシュされているか否かを検索し、エントリがないことが判明するとNextHopルータへパケットを転送するためにARP要求パケットを各ポートに出力する(図14に示された▲4▼)。ここで、インターフェースカード3−3に接続されたポート3からARP応答パケットを受信したとする。ARP応答パケットを受信したインターフェースコントローラ5−3は、受信したパケットをCPU4−3に返送する(図15に示された▲5▼)。ARP応答パケットの返送を受けたCPU4−3は、インターフェースコントローラ5−3を介して、検出したポートにパケットを出力することでNextHopルータにパケットが転送される(図16に示された▲6▼)。
【0058】
このようにVLANの構成範囲をインターフェースカード単位に制限することで出力側のCPUから入力側のCPUにフィードバックが発生することがなく、パケットをより高速に転送することが可能となる。
【0059】
なお、上述した実施形態は本発明の好適な実施の形態である。但し、これに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変形実施可能である。
【0060】
【発明の効果】
以上の説明より明らかなように本発明は、複数のインターフェースカード側に、受信したデータを記録すると共に、該データが自身に宛てられたデータであるのか、他のインターフェースカードに転送すべきデータであるのかを判定するインターフェース制御手段と、このインターフェース制御手段により他のインターフェースカードに転送すべきデータであると判定されたデータの転送を受けると、データの送信先を管理する第1の管理テーブルを参照してデータの転送先のインターフェースカードを決定し、該決定した転送先のインターフェースカードにデータを転送する転送制御手段と、を設けた。
【0061】
また、ルータ装置全体を管理する管理制御手段には、インターフェース制御手段によりプロトコルパケットであると判定されたパケットがルーティングプロトコルであるか否かを判定し、ルーティングプロトコルであった場合に、データベースの記録内容を更新すると共に、複数のインターフェースカード内の転送制御手段にルーティング情報を転送してルーティング情報を更新させる機能を持たせた。
【0062】
このような構成のルータ装置とすることにより、パケット転送の際には、入力側の転送制御手段によりデータの出力先となるインターフェース制御手段を選択させ、選択したインターフェース制御手段にデータを転送して、外部に出力することで、インターフェースカード内に設けたインターフェース制御手段と転送制御手段だけでパケット転送が実現され、従来構成のルータ装置で問題となっていたルータ装置全体を管理するCPUの負荷を軽減させることができる。
【0063】
また、受信したデータがプロトコルパケットであった場合だけ全体を管理する管理制御手段にデータを送信し、データがルーティングプロトコルであった場合に、データベースの記録内容を更新すると共に、複数のインターフェースカード内の転送制御手段ルーティング情報を転送してルーティングテーブルを更新させることにより、複数のCPUを有するルータ装置を、従来の1つのCPUを備えたルータ装置と同等に扱うことが可能となり、ルータ装置の設定などの際にルータ装置の管理の手間を軽減させることができる。
【0064】
また、IPアドレスとレイヤ2宛先アドレスの対応関係が第1の管理テーブルに記録されていないデータの転送を受けた場合に、該データの転送先として設定されたVLANを含むインターフェースカードを第1の管理テーブルを参照して検出し、該インターフェースカードにデータを転送することにより、入力側の転送制御手段でデータの出力先となるインターフェースカードが分からず、データの出力先を他のインターフェースカードに問い合わせるといったフィードバック動作の発生を防止し、最小限の遅延でデータの転送を実現することができる。
【0065】
また、複数のインターフェースカードと、管理制御手段とのデータの転送は、バス上に配置したクロスバースイッチにより行なわれることにより、複数のCPUを安価で高速な装置内接続により接続することができる。
【図面の簡単な説明】
【図1】本発明に係る第1の実施形態の構成を示すブロック図である。
【図2】ルータ装置の他の構成を示す図である。
【図3】ルータ装置の他の構成を示す図である。
【図4】インターフェースコントローラ5の動作手順を示すフローチャートである。
【図5】インターフェースコントローラ5の動作手順を示すフローチャートである。
【図6】ルータ装置の動作手順を示す図である。
【図7】ルータ装置の動作手順を示す図である。
【図8】ルータ装置の動作手順を示す図である。
【図9】ルータ装置の動作手順を示す図である。
【図10】ルータ装置の動作手順を示す図である。
【図11】ルータ装置の動作手順を示す図である。
【図12】ルータ装置の動作手順を示す図である。
【図13】ルータ装置の動作手順を示す図である。
【図14】ルータ装置の動作手順を示す図である。
【図15】ルータ装置の動作手順を示す図である。
【図16】ルータ装置の動作手順を示す図である。
【図17】従来のルータ装置の構成を示すブロック図である。
【図18】従来のルータ装置の構成を示すブロック図である。
【図19】従来のルータ装置の構成を示すブロック図である。
【符号の説明】
1 CPU
2 バス
3−1、3−2、3−3 インターフェースカード
4−1、4−2、4−3 CPU
5−1、5−2、5−3 インターフェースコントローラ
Claims (7)
- 複数のインターフェースカードと、該複数のインターフェースカードを管理する管理制御手段と、を有するルータ装置であって、
前記複数のインターフェースカードは、
受信したデータを記録すると共に、該データが自身に宛てられたデータであるのか、他のインターフェースカードに転送すべきデータであるのかを判定するインターフェース制御手段と、
前記インターフェース制御手段により他のインターフェースカードに転送すべきデータであると判定されたデータの転送を受けると、データの送信先を管理する第1の管理テーブルを参照して前記データの転送先のインターフェースカードを決定し、該決定した転送先のインターフェースカードに前記データを転送する転送制御手段と、
を有し、
装置外部から受信したデータがプロトコルパケット以外である場合、該受信した転送制御手段がデータ転送先のインターフェース制御手段を前記第1の管理テーブルに基づいて決定し、該転送を受けた送信側のインターフェース制御手段は、前記データをネットワーク上に出力することを特徴とするルータ装置。 - 前記自身に宛てられたデータであると判定されたデータを前記インターフェース制御手段より受信した前記管理制御手段は、前記データがルーティングプロトコルであった場合に、データの送信先を管理する第2の管理テーブルの記録内容を更新すると共に、前記複数のインターフェースカード内の前記転送制御手段に転送してルーティング情報を更新させることを特徴とする請求項1記載のルータ装置。
- 前記インターフェース制御手段は、受信したデータのレイヤ2送信元アドレスが、未学習のレイヤ2送信元アドレスであった場合に、自身の保持するレイヤ2アドレス管理テーブルに登録すると共に、インターフェースカード内の転送制御手段と、他のインターフェースカード内のインターフェース制御手段とに更新情報を通知し、ルータ装置内のレイヤ2アドレス管理テーブルの更新を行なうことを特徴とする請求項1または2記載のルータ装置。
- 前記複数のインターフェースカードと、前記管理制御手段とのデータの転送は、バス上に配置したクロスバースイッチにより行なわれることを特徴とする請求項1から3の何れか一項に記載のルータ装置。
- 複数のインターフェースカードと、該複数のインターフェースカードを管理する管理制御手段と、を有するルータ装置における転送制御方法であって、
受信側となるインターフェースカードにおいて、
受信したデータを記録すると共に、該データが自身に宛てられたデータであるのか、他のインターフェースカードに転送すべきデータであるのかを判定する第1の判定工程と、
データの送信先を管理する第1の管理テーブルを参照して、前記第1の判定工程により他のインターフェースカードに転送すべきデータであると判定されたデータの転送先を決定し、該決定した転送先のインターフェースカードに前記データを転送する第1の転送工程と、を有し、
装置外部から受信したデータがプロトコルパケット以外である場合、該受信したインターフェースカードがデータ転送先のインターフェースカードを前記第1の管理テーブルに基づいて決定し、該転送を受けた送信側のインターフェースカードは、前記データをネットワーク上に出力することを特徴とする転送制御方法。 - 前記第1の判定工程により自身に宛てられたデータであると判定されたデータを前記管理制御手段に転送して、前記データがルーティングプロトコルであるか否かを判定し、前記データがルーティングプロトコルであった場合には、データの送信先が登録された、前記管理制御手段の管理する第2の管理テーブルの記録内容を更新すると共に、前記複数のインターフェースカードに転送してルーティング情報を更新させるルーティング情報更新工程を有することを特徴とする請求項5記載の転送制御方法。
- インターフェースカードにおいて、
受信したデータのレイヤ2送信元アドレスが、未学習のレイヤ2送信元アドレスであるか否かを判定する第2の判定工程と、
未学習のレイヤ2送信元アドレスであった場合に、前記インターフェースカードの管理するレイヤ2アドレス管理テーブルに登録すると共に、他のインターフェースカードに更新情報を通知し、ルータ装置内のレイヤ2アドレス管理テーブルの更新を行なう通知工程と、
を有することを特徴とする請求項5または6記載の転送制御方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2002284306A JP4029708B2 (ja) | 2002-09-27 | 2002-09-27 | ルータ装置、及び転送制御方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2002284306A JP4029708B2 (ja) | 2002-09-27 | 2002-09-27 | ルータ装置、及び転送制御方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2004120642A JP2004120642A (ja) | 2004-04-15 |
| JP4029708B2 true JP4029708B2 (ja) | 2008-01-09 |
Family
ID=32277909
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2002284306A Expired - Lifetime JP4029708B2 (ja) | 2002-09-27 | 2002-09-27 | ルータ装置、及び転送制御方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP4029708B2 (ja) |
Families Citing this family (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP4815284B2 (ja) | 2006-07-06 | 2011-11-16 | アラクサラネットワークス株式会社 | パケット転送装置 |
| JP2008182326A (ja) * | 2007-01-23 | 2008-08-07 | Sii Network Systems Kk | ラインカード装置、スイッチ装置、及び、経路情報学習方法 |
| JP4609862B2 (ja) * | 2007-02-08 | 2011-01-12 | 古河電気工業株式会社 | ネットワーク中継方法、ネットワーク要素およびネットワーク中継システム |
-
2002
- 2002-09-27 JP JP2002284306A patent/JP4029708B2/ja not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| JP2004120642A (ja) | 2004-04-15 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN100386984C (zh) | Vlan服务器 | |
| JP3645734B2 (ja) | ネットワーク中継装置及びネットワーク中継方法 | |
| CN101150527B (zh) | 一种pcie数据传输的方法、系统及设备 | |
| US5434863A (en) | Internetworking apparatus for connecting plural network systems and communication network system composed of plural network systems mutually connected | |
| JP2520563B2 (ja) | パケット交換網 | |
| US8014409B1 (en) | Virtual router identifier that spans multiple interfaces in a routing device | |
| US10116556B2 (en) | Techniques for routing and forwarding between multiple virtual routers implemented by a single device | |
| US9923812B2 (en) | Triple-tier anycast addressing | |
| JP5506444B2 (ja) | 情報システム、装置および方法 | |
| JP4157403B2 (ja) | パケット通信装置 | |
| JP3075163B2 (ja) | マルチポートフレーム交換方式 | |
| US7174394B1 (en) | Multi processor enqueue packet circuit | |
| JP2845208B2 (ja) | アドレス解決装置 | |
| CN101114989B (zh) | 一种三层以太网交换机直连主机路由的处理方法 | |
| JP3711965B2 (ja) | Ipフロー多段ハッシュ装置、ipフロー多段ハッシュ方法、ipフロー多段ハッシュプログラム及びその記録媒体 | |
| Tantawy et al. | On the design of a multigigabit IP router | |
| US6256313B1 (en) | Triplet architecture in a multi-port bridge for a local area network | |
| JP2004120642A (ja) | ルータ装置、及び転送制御方法 | |
| US7143183B2 (en) | Server module for modularly designed server | |
| WO1999014893A2 (en) | Multi-port bridge with triplet architecture and periodical update of address look-up table | |
| US7969994B2 (en) | Method and apparatus for multiple connections to group of switches | |
| JP2790550B2 (ja) | ゲートウェイ装置 | |
| JP2596098B2 (ja) | 通信回線の選択方式 | |
| JP3508057B2 (ja) | レイヤ3スイッチ | |
| JP4805708B2 (ja) | データ転送装置 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050822 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070702 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070710 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070910 |
|
| 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: 20070925 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20071008 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 4029708 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: 20101026 Year of fee payment: 3 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111026 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121026 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131026 Year of fee payment: 6 |
|
| EXPY | Cancellation because of completion of term |