JPWO2004107683A1 - パケット中継装置及びパケット中継方法並びにプログラム - Google Patents
パケット中継装置及びパケット中継方法並びにプログラム Download PDFInfo
- Publication number
- JPWO2004107683A1 JPWO2004107683A1 JP2005506523A JP2005506523A JPWO2004107683A1 JP WO2004107683 A1 JPWO2004107683 A1 JP WO2004107683A1 JP 2005506523 A JP2005506523 A JP 2005506523A JP 2005506523 A JP2005506523 A JP 2005506523A JP WO2004107683 A1 JPWO2004107683 A1 JP WO2004107683A1
- Authority
- JP
- Japan
- Prior art keywords
- packet
- session
- unit
- network processing
- information
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/25—Routing or path finding in a switch fabric
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/60—Software-defined switches
- H04L49/604—Hybrid IP/Ethernet switches
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
Abstract
Description
TCPセッションとは、TCP/IPパケットにおいて「送信元IPアドレス」、「宛先IPアドレス」、「プロトコル」、「送信元ポート番号」、「宛先ポート番号」で特定されるパケットトラヒックフローである。TCPセッションでは、TCPヘッダ内のSYNフラグがセットされたパケット(SYNパケットと呼ぶ)の送信を契機にセッションが開始(オープン)され、FINフラグがセットされたパケット(FINパケット)の送信を契機にセッションが終了(クローズ)される。
図19にTCPの場合のセッション開始から終了までの状態遷移の一例を示す。クライアントとサーバ間のTCP通信の場合、まずクライアントからSYNパケットを送信する。サーバはSYNパケット受信後、SYN ACKパケットを送信し、これに応答してクライアントがACKパケットを送信する。ここまでの処理によってクライアントとサーバ間でTCPのセッションが確立(Establish)する。以後、クライアントとサーバは相互にパケットの送受信を行う。セッションを終了する場合、例えばクライアントからセッション終了する場合は、クライアントからFINパケットを送信し、サーバがFINパケット受信後、ACKパケット及びFINパケットを送信し、これに応答してクライアントがACKパケットを送信する。以上でセッションが終了(Closed)する。
UDPにおいても「送信元IPアドレス」、「宛先IPアドレス」、「プロトコル」、「送信元ポート番号」、「宛先ポート番号」にてパケットトラヒックフローを特定することが可能である。これを擬似セッションと呼ぶ。TCPと異なり、UDPにはSYN,FINフラグがパケット内に定義されていないため、明示的なセッションの開始と終了が規定されない。そこでUDPの擬似セッションでは、パケット到着をセッション開始として、タイマーによって一定時間該当するUDPパケットが到着しないことを検知して、セッション終了と判定することが一般に行われている。またVoIPにおいては、Session Initiate Protocol(SIP)によってUDPの擬似セッションの開始と終了が明示的に通知される。
更に、Webの通信プロトコルであるhttp,httpsでは、クライアント側であるWebブラウザとサーバ側であるWebサーバとの間で、Uniform Resource Locator(URL)やCookieによるセッション同定機能が存在する。クライアントとサーバ間の通信で、送信元ポートと宛先ポートの組が異なるパケットでも、同位置のURLやCookieを有していることをもって同一セッションに属したトラヒックと判定する。これらもUDP擬似セッションと同様に、パケット到着と、タイマーによるタイムアウトないしは上位プロトコルによる明示的セッション終了通知でセッション管理を実現できる。
以上に挙げた各「セッション」では、その開始と終了の判定がパケット毎の頻度で実施することが要求される。「セッション」の高速動的管理がパケット中継装置に求められてきている。
従来のセッション管理を行うパケット中継装置としては、例えば、図20に示す構成を有するものが知られている(例えば、特開2002−359637号公報参照)。
図20を参照すると、従来のパケット中継装置は、サーバ100aとネットワーク処理部200とから構成される。図中、制御信号線は細線矢印、パケット伝送路は太矢印にて示している。
サーバ100aは、内部にネットワーク制御部110aを備えており、ネットワーク制御部110aは、管理者が入力したルーティング情報、ポリシー情報を、ネットワーク処理部200内のルーティングテーブル210、ポリシーテーブル220に書き込む。
ネットワーク処理部200は、パケット処理部201、セッション管理部202、ルーティング処理部203、IF(インタフェース)部204−1〜204−M、ルーティングテーブル210、ポリシーテーブル220及びセッションテーブル230を備える。パケット送受信処理、セッション管理処理、ルーティング処理等は、ネットワーク処理部200内で行われる。
IF部204−i(1≦i≦M)を介して外部ネットワークから入力されたパケット(未図示)は、パケット処理部201に送信され、パケット受信処理が行われた後、セッション管理部202に送信される。セッション管理部202では、セッションテーブル230を参照して、到着パケットに関する登録済セッション判定を実施する。該当するパケットの登録をセッションテーブルにて検出した場合は、セッション管理部202は、登録内容に従って当該パケットを出力先のIF部204−j(1≦j≦M)へ転送するために、パケット処理部201に転送する。セッションテーブル230に未登録の場合は、セッション管理部202は、ポリシーテーブル220を参照して通過可否判定を実施する。併せてルーティング処理部203が、ルーティングテーブル210を参照して出力先のIF部204−jを同定する。ポリシーテーブル220、ルーティングテーブル210にて検索した結果を、セッション管理部202が、新規登録セッション情報としてセッションテーブル230に登録する。当該パケットは、出力先インタフェースへ転送するために、パケット処理部201に転送する。パケット処理部201に転送された当該パケットは、パケット送信処理が行われた後、IF部204−jを介して外部ネットワークに出力される。
上述した構成の従来のパケット中継装置は、全ての入出力パケットが1つのセッション管理部にて集中処理される構成となっており、セッション管理部でのパケット処理性能が装置全体の性能ボトルネックとなってしまう問題点があった。
また、上述した従来のパケット中継装置では、フラグメント化したIPパケットに対するセッション管理が実現できていないという問題点があった。
そこで、本発明の目的は、パケット中継装置におけるセッション管理処理性能を向上させることにある。
また、本発明の他の目的は、フラグメントIPパケットに対するセッション管理を実現することにある。
本発明にかかる第2のパケット中継装置は、セッション管理処理性能を向上させるため、パケットを中継するパケット中継装置において、複数のネットワーク処理部(200−1〜200−N)と、該複数のネットワーク処理部(200−1〜200−N)を相互に接続するスイッチ部(300)とを備え、前記複数のネットワーク処理部(200−1〜200−N)が、それぞれ、外部ネットワークからパケットを受信したとき、該パケットの属するセッションに対して定められている出力先のIF部が他のネットワーク処理部に存在することを条件にして、前記パケットと前記IF部を特定するIF特定情報とを前記スイッチ部(300)に入力し、前記スイッチ部(300)を介してパケットとIF特定情報とを受信したとき、前記パケットを前記IF特定情報によって特定されるIF部に出力する構成を有し、前記スイッチ部(300)が、入力されたパケットとIF特定情報とを、該IF特定情報によって特定されるIF部を備えたネットワーク処理部に転送する構成を有することを特徴とする。
より具体的には、本発明にかかる第3のパケット中継装置は、第2のパケット中継装置において、前記複数のネットワーク処理部(200−1〜200−N)が、それぞれ、セッションを特定するセッション特定情報に対応付けて、そのセッションに属するパケットの出力先とするIF部のIF特定情報が登録されたセッションテーブル(230−1〜230−N)と、前記外部ネットワークからパケットを受信したとき、該パケットの出力先にするIF部のIF特定情報を前記セッションテーブル(230−1〜230−N)から検索するセッション管理部(202−1〜202−N)と、該セッション管理部(202−1〜202−N)が前記セッションテーブル(230−1〜230−N)から検索した前記パケットの出力先にするIF部のIF特定情報が、他のネットワーク処理部に存在するIF部を示している場合は、前記パケットと前記IF特定情報とを前記スイッチ部(300)に入力し、前記スイッチ部(300)を介して他のネットワーク処理部からパケットとIF特定情報とが送られてきた場合は、前記パケットを前記IF特定情報によって特定されるIF部に出力するパケット処理部(201−1〜201−N)とを備えたことを特徴とする。
また、本発明にかかる第4のパケット中継装置は、新たなセッションが確立した場合、テーブルの複写処理などの処理時間がかかる処理を行わずに、各ネットワーク処理部内のセッションテーブルの整合性を保てるようにするため、第3のパケット中継装置において、前記各ネットワーク処理部(200−1〜200−N)が、それぞれ、パケットの宛先IPアドレスに対応付けて、パケットの出力先にするIF部のIF特定情報が登録されたルーティングテーブル(210−1〜210−N)を備え、且つ、前記セッション管理部(202−1〜202−N)が、前記セッションテーブル(230−1〜230−N)から前記パケットの出力先にするIF部のIF特定情報を検索できなかった場合は、前記ルーティングテーブル(210−1〜210−N)から前記パケットの出力先にするIF部のIF特定情報を検索し、該検索したIF特定情報と前記パケットが属するセッションのセッション特定情報とを対応付けて前記セッションテーブル(230−1〜230−N)に登録し、前記スイッチ部(300)を介してパケット、IF特定情報および追加指示が送られてきた場合は、前記セッションテーブル(230−1〜230−N)に、前記追加指示に含まれているIF特定情報を出力先のIF部を示すIF特定情報として登録すると共に、該IF特定情報に対応付けて前記パケットが属するセッションのセッション特定情報を登録する構成を有し、前記パケット処理部(201−1〜201−N)が、前記セッション管理部(202−1〜202−N)によって前記ルーティングテーブル(210−1〜210−N)から検索された前記パケットの出力先にするIF部のIF特定情報が、他のネットワーク処理部に存在するIF部を示している場合は、前記パケット、前記IF特定情報および前記パケットを受信したIF部のIF特定情報を含む追加指示を前記スイッチ部(300)に入力する構成を有し、前記スイッチ部(300)が、入力されたパケット、IF特定情報および追加指示を、前記IF特定情報によって特定されるIF部を備えたネットワーク処理部に転送する構成を有することを特徴とする。
また、本発明にかかる第5のパケット中継装置は、セッション毎にポリシーを管理できるようにするため、第4のパケット中継装置において、前記複数のネットワーク処理部(200−1〜200−N)が、それぞれ、セッションを特定するセッション特定情報に対応付けて、そのセッションのポリシーが登録されたポリシーテーブル(220−1〜220−N)を備え、且つ、前記セッション管理部(202−1〜202−N)が、前記セッションテーブル(230−1〜230−N)から前記パケットの出力先にするIF部のIF特定情報を検索できなかった場合は、前記ポリシーテーブルに登録されている前記パケットが属するセッションのポリシーがパケット通過となっていることを条件にして、前記ルーティングテーブル(210−1〜210−N)から前記パケットの出力先にするIF部のIF特定情報を検索し、該検索したIF特定情報と前記パケットが属するセッションのセッション特定情報とを対応付けて前記セッションテーブル(230−1〜230−N)に登録し、前記スイッチ部(300)を介してパケット、IF特定情報および追加指示が送られてきた場合は、前記セッションテーブル(230−1〜230−N)に、前記追加指示に含まれているIF特定情報を出力先のIF部を示すIF特定情報として登録すると共に、該IF特定情報に対応付けて前記パケットが属するセッションのセッション特定情報を登録する構成を有することを特徴とする。
また、本発明にかかる第6のパケット中継装置は、セッション終了時に、そのセッションに関する情報をセッションテーブルから削除するために、第4のパケット中継装置において、前記セッション管理部(202−1〜202−N)が、前記外部ネットワークからセッションを終了させるパケットを受信したとき、前記セッションテーブル(230−1〜230−N)から前記パケットが属するセッションに関する情報を削除し、前記スイッチ部(300)を介してパケット、IF特定情報および削除指示が入力されたとき、前記セッションテーブル(230−1〜230−N)から前記パケットが属するセッションに関する情報を削除する構成を有し、前記パケット処理部(201−1〜201−N)が、前記セッションを終了させるパケットの出力先とするIF部が他のネットワーク処理装置に存在する場合は、前記パケット、前記パケットの出力先とするIF部のIF特定情報および削除指示を前記スイッチ部(300)に入力する構成を有することを特徴とする。
また、本発明にかかる第7のパケット中継装置は、回線ダウンなどによりFINパケットを受信できない状態になっても、上記FINパケットが属するセッションによって、セッションテーブルのエントリが無駄に使用されないようにするため、第4のパケット中継装置において、前記セッション管理部(202−1〜202−N)が、前記セッションテーブル(230−1〜230−N)に、セッション特定情報とIF特定情報との対を登録する際、予め定められているタイムアウト値も併せて登録する構成を有すると共に、所定時間毎にセッションテーブルに登録されている各タイムアウト値を一定値ずつ減算し、減算後のタイムアウト値が所定値以下となったエントリを削除する構成を有することを特徴とする。
また、本発明にかかる第8のパケット中継装置は、フラグメントIPパケットに対するセッション管理を実現できるようにするため、第3のパケット中継装置において、前記複数のネットワーク処理部(200−1〜200−N)が、それぞれ、パケットの宛先IPアドレスに対応付けて、パケットの出力先にするIF部のIF特定情報が登録されたルーティングテーブル(210−1〜210−N)と、パケットの送信元IPアドレス及び宛先IPアドレスに対応付けて、フラグメントオフセット及びパケットの出力先にするIF部のIF特定情報が登録されたエントリを有するIPフラグメンテーションテーブル(240−1〜240−N)とを備え、且つ、前記セッション管理部(202−1〜202−N)が、外部ネットワークを介してフラグメントIPパケットを受信したとき、前記IPフラグメンテーションテーブル(240−1〜240−N)を検索し、前記フラグメントIPパケットの送信元IPアドレス、宛先IPアドレス及びフラグメントオフセットと同一の送信元IPアドレス、宛先IPアドレス及びフラグメントオフセットが登録されているエントリが存在する場合は、前記エントリ中のIF特定情報を取得すると共に、前記フラグメントIPパケットのパケット長に基づいて、前記エントリ中のフラグメントオフセットを更新し、前記IPフラグメンテーションテーブル(240−1〜240−N)に該当するエントリが存在しない場合は、前記セッションテーブル(230−1〜230−N)或いは前記ルーティングテーブル(210−1〜210−N)から前記フラグメントIPパケットの出力先にするIF部のIF特定情報を検索し、該検索したIF特定情報と、前記フラグメントIPパケット中の送信元IPアドレス、宛先IPアドレス、フラグメントオフセットとを含むエントリを追加登録する構成を有することを特徴とする。
本発明のパケット中継装置は、セッション管理部を複数のネットワーク処理部に分散して配置しているので、セッション管理部におけるセッション検索処理およびセッション登録追加・削除処理がボトルネックとならないようにすることができる。
また、本発明のパケット中継装置では、セッションテーブル、ポリシーテーブル、IPフラグメンテーションテーブルの検索処理は、外部ネットワークからパケットを受信したネットワーク処理部内のセッション管理部において、1回だけ実施されるため、テーブルの検索処理がボトルネックとなることはない。
また、本発明のパケット中継装置では、外部ネットワークから受信したパケットが新規セッションのパケットであった場合、即ちセッションテーブルに上記パケットが属するセッションに関する情報が登録されていなかった場合、入力側ネットワーク処理部にて自処理部内のセッションテーブルへセッションエントリを追加をすると共に、パケットを出力先となるIF部を有する出力側のネットワーク処理部に転送する際に追加指示も転送し、出力側ネットワーク処理部にて自処理部内のセッションテーブルへのセッションエントリの追加処理を実施している。これにより、入力・出力の対になる各ネットワーク処理部内のセッションテーブルにおいて、セッションテーブルの内容の同一化が自動的に実施されることとなり、特別なセッションテーブルの複写化処理を行うことなく、異なるネットワーク処理部内のセッションテーブルの同一性を保つことが可能となる。
また、セッション管理部が分散されていることにより、ネットワーク処理部とスイッチ部の組み合わせにてシステム全体のセッション処理能力を向上させることが可能である。
また、出力側ネットワーク処理部内では、新規セッションの登録処理のみを実施し、セッション検索処理、ポリシー取得処理を省略することで、入出力側ネットワーク処理部双方でセッション検索処理、ポリシー取得処理を行う方法と比較して、パケットの装置内通過時間(レイテンシー)を短縮することが可能である。
図2は、本発明の実施例のパケット中継装置1とクライアント2とサーバ3との接続図である。
図3は、外部ネットワークからのパケットの構成を示す図である。
図4は、入力側パケット転送処理の処理フローを示したフローチャートである。
図5は、セッション管理部202−1及びルーティング処理部203−1におけるセッション管理部処理の処理フローを示したフローチャートである。
図6は、ルーティング情報取得処理の処理フローを示したフローチャートである。
図7は、パケット転送処理の処理フローを示したフローチャートである。
図8は、出力側パケット転送処理の処理フローを示したフローチャートである。
図9は、セッション管理部202−1におけるセッションテーブル処理の処理フローを示したフローチャートである。
図10は、セッションテーブルの構成例を示した図である。
図11は、セッションテーブルの構成例を示した図である。
図12は、セッションテーブルの構成例を示した図である。
図13は、ポリシーテーブルマスタ120、及びポリシーテーブル220−1〜220−Nの構成例を示した図である。
図14は、IPフラグメンテーションテーブル240−1〜240−Nの構成例を示した図である。
図15は、ルーティングテーブルマスタ110、及びルーティングテーブル210−1〜210−Nの構成例を示した図である。
図16は、セッション処理用パケット情報の構成例を示した図である。
図17は、装置内拡張ヘッダの構成例を示した図である。
図18は、本発明の実施例における、パケット中継装置1の内部動作を示した図である。
図19は、TCPセッションの開始から終了までの状態遷移の一例を示した図である。
図20は、従来のパケット中継装置の構成を示した図である。
図1に本発明の実施例のパケット中継装置1の構成例を示す。
同図において、パケット中継装置1は、サーバ100と、複数のネットワーク処理部200−1〜200−Nと、スイッチ部300とから構成される。
サーバ100は、ルーティングテーブルマスタ110及びポリシーテーブルマスタ120を含んでいる。
サーバ100は、複数のネットワーク処理部200−1〜200−Nと制御信号線にて接続されている。またサーバ100は、スイッチ部300と制御信号線、およびパケット伝送路にて接続されている。図中、制御信号線は細線矢印、パケット伝送路は太矢印にて示している。
サーバ100は、管理者が外部から入力したルーティング情報をルーティングテーブルマスタ110に書き込む。また、管理者が外部から入力したポリシー情報をポリシーテーブルマスタ120に書き込む。ルーティングテーブルマスタ110及びポリシーテーブルマスタ120に書き込まれたルーティング情報、ポリシー情報は、制御信号線を経由して、各ネットワーク処理部200−1〜200−N内のルーティングテーブル210−1〜210−N、ポリシーテーブル220−1〜220−Nに書き込まれる。
複数のネットワーク処理部200−1〜200−Nは、同じ構成を取っている。代表としてネットワーク処理部200−1を基に説明を行う。
ネットワーク処理部200−1は、パケット処理部201−1、セッション管理部202−1、ルーティング処理部203−1、複数のIF部204−1−1〜204−1−M、ルーティングテーブル210−1、ポリシーテーブル220−1、セッションテーブル230−1及びIPフラグメンテーションテーブル240−1から構成される。
パケット処理部201−1は、複数のIF部204−1−1〜204−1−M、スイッチ部300とパケット伝送路にて接続されている。
セッション管理部202−1は、パケット処理部201−1、ルーティング処理部203−1、ルーティングテーブル210−1、ポリシーテーブル220−1、セッションテーブル230−1、IPフラグメンテーションテーブル240−1と制御信号線にて接続されている。
ルーティング処理部203−1は、ルーティングテーブル210−1と制御信号線にて接続されている。
パケット処理部201−1は、IF部204−1−1〜204−1−Mから入力される図3に示すパケット(イーサネット(登録商標)ヘッダ、IPヘッダ、TCP/UDPヘッダ及びデータを含む)を受信し、後述の図4に示す入力側パケット転送処理を行う。その際、後述の図16に示す形式のセッション処理用パケット情報を、パケット内のあらかじめ指定されたフィールドから抽出した情報に基づいて生成し、セッション管理部202−1に転送する。また、パケット処理部201−1は、スイッチ部300を介して他のネットワーク処理部から入力されるパケットを受信し、後述の図8に示す出力側パケット転送処理を行う。
セッション管理部202−1では、セッション処理用パケット情報から各種検索キーを生成し、セッションテーブル230−1、IPフラグメンテーションテーブル240−1、ポリシーテーブル220−1に対する検索を実施する。またセッションテーブル230−1、IPフラグメンテーションテーブル240−1への新規エントリ追加・削除処理を実施する。更に、他のネットワーク処理部200−2〜200−N内のセッションテーブル230−2〜230−Nに対する新規エントリ追加・削除処理を実施するために必要になる情報(セッション処理動作情報など)を生成する。
ルーティング処理部203−1は、セッション管理部202−1からルーティングテーブル210−1用の検索キーを受け取り、ルーティングテーブル210−1に対する検索を実行する。検索結果をセッション管理部202−1に通知する。
セッションテーブル230−1〜230−Nは、本パケット中継装置1で中継されるパケットによる確立セッションを登録するテーブルである。
ポリシーテーブルマスタ120、及びポリシーテーブル220−1〜220−Nは、本パケット中継装置1で中継されるパケット通過規則を記載したテーブルである。
IPフラグメンテーションテーブル240−1〜240−Nは、本パケット中継装置1で中継されるパケットで、IPレイヤより上位のレイヤ情報でポリシー、セッション管理判定が行われる際に、フラグメント化されたIPパケットに対するポリシー、セッションを管理するためのテーブルである。
ルーティングテーブルマスタ110、及びルーティングテーブル210−1〜210−Nは、本パケット中継装置1で中継されるパケットの出力先IF部を管理するテーブルである。
ポリシーテーブルマスタ120、ポリシーテーブル220−1〜220−N、ルーティングテーブルマスタ110、及びルーティングテーブル210−1〜210−Nは、本パケット中継装置1の管理者、もしくはルーティングプロトコルのパケット内の情報にて設定されるのに対して、セッションテーブル230−1〜230−N、IPフラグメンテーションテーブル240−1〜240−Nは、パケット到着毎にセッション情報のテーブル追加、更新、削除処理判定がなされる。
スイッチ部300は、複数のネットワーク処理部200−1〜200−N、サーバ100とパケット伝送路にて接続されている。複数のネットワーク処理部200−1〜200−N間でのパケット転送処理、外部ネットワークとサーバとのパケット転送処理(ルーティングプロトコルのパケット等の転送処理)を実施する。
図10、図11、図12にセッションテーブルの構成例を示す。セッションテーブルは、セッションID、送信元IPアドレス、送信元ポート番号、プロトコル、宛先IPアドレス、宛先ポート番号、送信元セッション状態、入力物理IF番号、出力物理IF番号から構成される。これらの項目の内、送信元IPアドレス、送信元ポート番号、プロトコル、宛先IPアドレス、宛先ポート番号が検索キーとなり、送信元セッション状態、入力物理IF番号、出力物理IF番号が検索結果となる。
検索方法は、検索キーに対する完全一致である。セッションテーブル上に登録されているセッションエントリに属するパケットは通過とし、テーブル検索にヒットしなかったパケットの場合は、廃棄とする。
図10、図11、図12では、例として3つのネットワーク処理部内のセッションテーブルを示している。図10がネットワーク処理部200−1内のセッションテーブル230−1、図11がネットワーク処理部200−2内のセッションテーブル230−2、図12がネットワーク処理部200−3内のセッションテーブル230−3の例である。
図10、図11、図12では、2本のセッションが登録されている様子を示している。一本はIPアドレスが192.168.1.1、ポート番号が1025とIPアドレスが192.168.10.1、ポート番号が80のTCPセッションである。もう一本は、IPアドレスが192.168.6.2、ポート番号が12300とIPアドレスが192.168.100.15、ポート番号が80のTCPセッションである。
図10には、セッションIDが1−1の、IPアドレス:192.168.1.1、ポート番号:1025から、IPアドレス:192.168.10.1、ポート番号:80向けのTCPセッションと、セッションIDが1−2の、IPアドレス:192.168.100.15、ポート番号:80から、IPアドレス:192.168.6.2、ポート番号:12300向けのTCPセッションとが登録されている。また、セッションID:1−1に対応付けて送信元セッション状態:Establish、入力物理IF番号:1−1、出力物理IF番号:2−1が登録され、セッションID:1−2に対応付けて送信元セッション状態:Establish、入力物理IF番号:1−2、出力物理IF番号:3−2が登録されている。なお、物理IF番号:J−Kと記した場合、この物理IF番号は、ネットワーク処理部200−J内のIF部204−J−Kを示す。
図11には、セッションIDが2−1のセッションが登録されている。本セッションエントリは、図10のセッションID:1−1の登録内容と対になるエントリである。
同様に図12にある、セッションID:3−1は図10のセッションID:1−2と対になる。
図13にポリシーテーブルマスタ120、及びポリシーテーブル220−1〜220−Nの構成例を示す。
ポリシーテーブルマスタ120及びポリシーテーブル220−1〜220−Nは、ACL−ID、送信元IPアドレス、送信元ポート番号、プロトコル、宛先IPアドレス、宛先ポート番号、ポリシーから構成される。ポリシーは、パケットの通過・廃棄を示す情報である。これらの項目の内、送信元IPアドレス、送信元ポート番号、プロトコル、宛先IPアドレス、宛先ポート番号が検索キーとなり、ポリシーが検索結果となる。
ポリシーテーブルマスタ120及びポリシーテーブル220−1〜220−Nの検索方法は、ACL−IDの若い番号のエントリほど、優先度が高いものとして、ACL−IDの昇順に検索を行って最初に合致したエントリを検索結果とする。本ポリシーテーブルマスタ120及びポリシーテーブル220−1〜220−Nの検索方法はこれに限定されるものではなく、ACL−IDの若い番号のエントリほど、優先度が低いものとして、ACL−IDの昇順に検索を行い、最後に合致したエントリを検索結果とするルールでも良い。
図14にIPフラグメンテーションテーブル240−1〜240−Nの構成例を示す。同図ではIPフラグメンテーションテーブル240−1の例を示す。
IPフラグメンテーションテーブル240−1は、フラグメントID、送信元IPアドレス、宛先IPアドレス、プロトコル、フラグメントフラグ及びフラグメントオフセット、ポリシー、入力物理IF番号、出力物理IF番号から構成される。これらの項目の内、送信元IPアドレス、宛先IPアドレス、プロトコルが検索キーとなり、フラグメントフラグ及びフラグメントオフセット、ポリシー、入力物理IF番号、出力物理IF番号が検索結果となる。検索方法は、検索キーに対する完全一致である。
図15にルーティングテーブルマスタ110、及びルーティングテーブル210−1〜210−Nの構成例を示す。
ルーティングテーブルマスタ110及びルーティングテーブル210−1〜210−Nは、ルーティングID、宛先IPアドレス、出力物理IF番号から構成される。これらの項目の内、宛先IPアドレスが検索キーとなり、出力物理IF番号が検索結果となる。検索方法は検索キーに対する最長一致である。
図16にセッション処理用パケット情報の構成例を示す。
セッション処理用パケット情報は、パケットID、入力物理IF番号、IPヘッダ、TCP/UDPヘッダ、セッション処理動作情報、ポリシー、出力物理IF番号から構成される。
このセッション処理用パケット情報は、パケット処理部201−1〜201−Nとセッション管理部202−1〜202−Nとの間でやり取りされる情報である。パケット処理部201−1〜201−Nは、外部ネットワークからパケットを受信したとき、上記パケットを特定するパケットIDと、上記パケットを受信したIF部を示す入力物理IF番号と、上記パケットのIPヘッダおよびTCP/UDPヘッダを該当部分に設定し、且つセッション処理動作情報、ポリシー及び出力物理IF番号にデフォルト値を設定したセッション処理用パケット情報を生成し、セッション管理部202−1〜202−Nに渡す。セッション管理部202−1〜202−N及びルーティング処理部203−1〜203−Nは、セッション処理用パケット情報に基づいて、検索・判定処理を行い、セッション管理部202−1〜202−Nは、検索・判定処理結果に応じた値をセッション処理動作情報、ポリシー、出力物理IF番号に設定し、これらの情報を設定後のセッション処理用パケット情報をパケット処理部201−1〜201−Nに返却する。セッション処理動作情報は、セッションテーブル230−1〜230−Nに対する操作処理を示し、新規セッション追加、セッション維持、セッション終了がある。
図17に装置内拡張ヘッダの構成例を示す。同図に示すように、装置内拡張ヘッダは、セッション処理動作情報、ポリシー、入力物理IF番号、出力物理IF番号から構成される。このような構成を有する装置内拡張ヘッダは、パケット処理部201−1〜201−Nによって生成されるものであり、受信パケットに付加される。
ネットワーク処理部200−1が備えているパケット処理部201−1、セッション管理部202−1、ルーティング処理部203−1、IF部204−1−1〜204−1−Mは、ハードウェアで実現しても、プログラムで実現しても構わない。プログラムで実現する場合は、記録媒体(ディスク、半導体メモリ等)に上記各部を実現するためのプログラムを記録しておく。このプログラムは、コンピュータからなるネットワーク処理部200−1によって読み取られ、その動作を制御することにより、ネットワーク処理部200−1上にパケット処理部201−1、セッション管理部202−1、ルーティング処理部203−1、IF部204−1−1〜204−1−Mを実現する。
次に図を参照しながら本発明の実施例のパケット中継装置1の動作を示す。
図2は本発明の実施例のパケット中継装置1とクライアント2とサーバ3との接続関係を示している。
クライアント2は、パケット中継装置1のネットワーク処理部200−1に属するIF部204−1−1と接続している。サーバ3は、パケット中継装置1のネットワーク処理部200−Nに属するIF部204−N−1と接続している。クライアント2から送信される図3に示すパケットは、IF部204−1−1にて受信され、逆にクライアント2宛のパケットは、IF部204−1−1から送信される。サーバ3から送信されるパケットは、IF部204−N−1にて受信され、逆にサーバ3宛のパケットは、IF部204−N−1から送信される。
以下、クライアント2からサーバ3宛のパケットがパケット中継装置1を経由して転送される際の動作を図1,図2を用いて説明する。
クライアント2から送信されたパケットがIF部204−1−1に到着すると、ネットワーク処理部200−1が後述の図4に示す入力側パケット転送処理を実施する。
後述の図4に示す入力側パケット転送処理が行われた後、パケットはスイッチ部300内を経由して、ネットワーク処理部200−Nに転送される。
ネットワーク処理部200−Nは、後述の図8に示す出力側パケット転送処理を実施して、パケットをIF部204−N−1からサーバ3に送信する。
次に、図4を参照して入力側パケット転送処理を説明する。図4は入力側パケット転送処理の処理フローを示したフローチャートである。
IF部204−1−1よりパケットを受信すると(ステップ1)、パケット処理部201−1は、パケットのチェックサムをチェックし(ステップ2)、パケットのバッファリングを開始する(ステップ3)。
それから、パケット処理部201−1は、受信したパケット内のフィールドの内容に基づいて、図16に示す形式のセッション処理用パケット情報を生成し(ステップ4)、セッション管理部202−1にセッション処理用パケット情報を通知することにより、後述の図5に示すセッション管理部202−1におけるセッション管理部処理を開始させる(ステップ5)。
セッション管理部202−1が検索結果を反映させたセッション処理用パケット情報を返答するまでの間、パケット処理部201−1は、パケットを保持する。この保持しているパケットと、セッション処理用パケット情報とは、セッション処理用パケット情報中のパケットIDにより対応付けられる。セッション管理部202−1が検索結果をセッション処理動作情報、ポリシー及び出力物理IF番号に反映させたセッション処理用パケット情報をパケット処理部201−1に返すと、パケット処理部201−1は、セッション処理用パケット情報内の検索・判定結果(セッション処理動作情報、ポリシー、出力物理IF番号)と、パケットを受信したIF部204−1−1のIF番号(入力物理IF番号)とから図17に示す形式の装置内拡張ヘッダを生成し、パケットIDにより上記セッション処理用パケット情報と対応付けられている該当するパケットに装置内拡張ヘッダを付与する(装置内拡張ヘッダ追加処理:ステップ6)。装置内拡張ヘッダの形式は、ヘッダに限定されるものではなく、パケットとは別管理の種別情報(ディスクリプタ)でも良い。
パケット処理部201−1は、装置内拡張ヘッダの内容をもとに後述の図7に示すパケット転送処理を行い(ステップ7)、パケット処理部201−1の外部へパケットを出力する。
図5は、図4のステップ5において行われるセッション管理部202−1及びルーティング処理部203−1におけるセッション管理部処理の詳細な処理フローを示したフローチャートである。
はじめに、セッション管理部202−1は、パケット処理部201−1からセッション処理用パケット情報を受信し、各テーブル用の検索キーや判定用情報を作成する(ステップ20)。例えば、セッションテーブル用には、セッション処理用パケット情報中のIPヘッダに基づいて、送信元IPアドレス、送信元ポート番号、プロトコル、宛先IPアドレス、宛先ポート番号を含む検索キーを作成する。また、例えば、IPフラグメンテーションテーブル用には、セッション処理用パケット情報中のIPヘッダに基づいて、送信元IPアドレス、プロトコル、宛先IPアドレスを含む検索キーを作成すると共に、フラグメントオフセットを含む判定用情報を生成する。
次に、セッション管理部202−1は、IPフラグメンテーションテーブル240−1の検索を実施する(ステップ21)。
検索対象のパケットがフラグメントIPパケットであり、かつIPフラグメンテーションテーブル240−1にフラグメント登録があり、かつ対象パケットのオフセット値(判定用情報)がIPフラグメンテーションテーブル240−1内記載のオフセット予測値と一致するならば、IPフラグメントとして連続したフラグメントであると判断する(ステップ22−Yes)。このとき、セッション管理部202−1は、IPフラグメンテーションテーブル240−1から該当パケットが属するセッションのポリシー、該当パケットの出力先とするIF部を特定する出力物理IF番号を取得する(ステップ30)。IPフラグメンテーションテーブル240−1からポリシーを取得した場合は、TCP、UDPのレイヤではデータが連続している状況なので、セッション状態の更新はない。
ステップ30に続いて、対象パケットのフラグメントオフセット値とパケット長から、次のパケットのフラグメントオフセット値を計算(予測)して、IPフラグメンテーションテーブル240−1の該当エントリのフラグメントオフセット値を更新する。また対象パケットが最終フラグメントの場合は該当エントリを削除する(ステップ31)。その後ステップ60に進む。
IPフラグメントとして連続したフラグメントでないと判断した場合(ステップ22−No)、セッションテーブル230−1の検索を実施する(ステップ23)。
セッションテーブル230−1内に、ステップ20で生成したセッションテーブル用の検索キーと一致するエントリが存在する場合(ステップ24−Yes)、該当IPパケットは登録済セッションに属するパケットと判断される。その後、セッション管理部202−1は、当該IPパケットのポリシーが「パケット通過」であることを取得すると共に、セッションテーブル230−1から送信元セッション状態、出力物理IF番号を取得する(ステップ40)。ここで、ポリシー「パケット通過」を取得するのは、セッションテーブル230−1には、ポリシーが「パケット通過」となっているセッションに関する情報しか登録されないからである。
ステップ40に続いて、TCPパケットの場合、セッション状態更新チェックを実施する(ステップ41)。TCPヘッダのSYN/ACK/FINフラグと、セッションテーブル230−1から取得した送信元セッション状態とに基づいて、送信元の新しいセッション状態を判定する。
判定した新しいセッション状態がセッションテーブル230−1内の該当エントリのセッション状態から変化している場合(ステップ42−Yes)、セッションテーブル230−1内の該当エントリのセッション状態を、判定した新しいセッション状態に更新する。また、セッション終了と判定された場合は該当エントリを削除する(ステップ43)。その後、ステップ50に進む。
判定した新しいセッション状態がセッションテーブル230−1から取得した送信元セッション状態から変化していない場合(ステップ42−No)、セッションテーブル230−1の更新は行わず、ステップ50に進む。
セッションテーブル230−1内に該当するエントリがない場合(ステップ24−No)、セッション管理部202−1は、ポリシーテーブル220−1から該当IPパケットのポリシーを検索する(ステップ25)。ポリシーテーブル220−1の検索では必ず該当パケットのポリシーが取得できる(ステップ26)。エントリにない場合でも、デフォルトポリシーを決定しておけば良い。
ステップ26で取得したポリシーが「パケット通過」である場合は、後述の図6に示すルーティング情報取得処理を実施した後(ステップ27)、ステップ28の処理を行う。
ステップ28では、TCPヘッダのSYN/ACK/FINフラグから送信元のセッション状態を判定し、セッション開始であることが判明した場合には、セッションテーブル230−1へ新規セッションエントリを追加する。セッションテーブル230−1へのセッションエントリ追加では、入力パケットの送信元IPアドレス、送信元ポート番号、プロトコル、宛先IPアドレス、宛先ポート番号、送信元セッション状態、入力物理IF番号、出力物理IF番号をそのまま登録する。なお、出力物理IF番号と入力物理IF番号を比較して、パケットの転送先が同一ネットワーク処理部内のIF部である場合は、上記エントリ追加に加えて、入力パケットの送信元IPアドレス、送信元ポート番号、入力物理IF番号と、宛先IPアドレス、宛先ポート番号、出力物理IF番号とを入れ替えたエントリも登録する。セッションテーブル203−1内に、本パケットと逆向きのパケットフローに関するエントリを登録する必要があるためである。セッション開始以外の場合は、セッション管理を行わないパケットと判定して、セッションテーブル230−1へのセッションエントリ追加を実施しない。その後、セッション管理部202−1の処理は、ステップ50に進む。
これに対して、ステップ26で取得したポリシーが「パケット廃棄」である場合は、セッション管理部202−1の処理は、ステップ27及びステップ28をスキップしてステップ50に進む。
ステップ28、ステップ42−No、ステップ43、ステップ26(ポリシーが「パケット廃棄」の場合)に続いて、該当パケットがフラグメントIPパケットかどうかの判定を実施する(ステップ50)。
該当パケットがフラグメントIPパケットであれば(ステップ50−Yes)、IPフラグメンテーションテーブル240−1のエントリ追加を実施して(ステップ51)、ステップ60に進む。
これに対して、該当パケットがフラグメントIPパケットでない場合(ステップ50−No)は、ステップ60に進む。
最後に、該当パケットに関して取得した情報を、図16に示す形式を有するセッション処理用パケット情報中のセッション処理動作情報(新規セッション追加/セッション維持/セッション終了)、ポリシー(通過/廃棄)、出力物理IF番号に設定し、パケット処理部201−1に返却する(ステップ60)。以上により、図5のフローを終了する。
図6は、図5のステップ27で行うルーティング情報取得処理の詳細な処理フローを示したフローチャートである。本処理はルーティング処理部203−1にて実施する。ルーティング情報取得処理ではルーティングテーブル210−1の検索を行い(ステップ10)、出力物理IF番号を取得して(ステップ11)、終了する。
図7は、図4のステップ7で行うパケット転送処理の詳細な処理フローを示したフローチャートである。パケット処理部201−1は、装置内拡張ヘッダ内のポリシーを参照して、該当するパケットが廃棄対象かを判定する(ステップ70)。廃棄対象パケットである場合(ステップ70−Yes)、パケット廃棄を行う(ステップ71)。
廃棄対象パケットでない場合(ステップ70−No)、装置内拡張ヘッダ内の出力物理IF番号を参照して該当するパケットの転送先が自ネットワーク処理部200−1内のIF部か、他ネットワーク処理部内のIF部かを判定する(ステップ72)。パケットの転送先が他ネットワーク処理部内のIF部である場合(ステップ72−No)、スイッチ部300にパケットを転送する(ステップ73)。その際、装置内拡張ヘッダを付与したまま転送する。スイッチ部300は、装置内拡張ヘッダが付与されたパケットを、装置内拡張ヘッダ中の出力物理IF番号によって特定されるIF部を備えたネットワーク処理部(この例の場合は、ネットワーク処理部200−N)に転送する。
パケットの転送先が自ネットワーク処理部200−1内のIF部204−1である場合(ステップ72−Yes)、パケットから装置内拡張ヘッダを削除し(ステップ74)、装置内拡張ヘッダ中の出力物理IF番号によって特定されるIF部にパケットを出力する(ステップ75)。
次に、図8を参照して、スイッチ部300を経由してネットワーク処理部200−Nに到着したパケットに対する、出力側パケット転送処理について説明する。図8は出力側パケット転送処理の処理フローを示したフローチャートである。
スイッチ部300を介してネットワーク処理部200−1からのパケットを受信すると(ステップ101)、パケット処理部201−Nは、パケットに付加されている装置内拡張ヘッダのチェックを行い(ステップ102)、パケットのバッファリングを開始する(ステップ103)。それから、パケット処理部201−Nは、後述の図9に示すセッション管理部202−Nにおけるセッションテーブル処理を実施する(ステップ104)。ステップ104が完了するまでの間、パケット処理部201−Nはパケットを保持する。ステップ104の完了後、装置内拡張ヘッダの内容をもとに前述の図7に示すパケット転送処理を行い(ステップ105)、パケット処理部201−Nの外部へパケットを出力して終了する。
図9は、図8のステップ104において行われるセッション管理部202−1におけるセッションテーブル処理の詳細な処理フローを示したフローチャートである。
セッション管理部202−Nが、IPヘッダ、TCPヘッダ及び装置内拡張ヘッダをパケット処理部201−Nから受信し(ステップ111)、装置内拡張ヘッダ内のセッション処理動作情報が新規セッションエントリ追加となっているか否かの判定を行う(ステップ121)。
装置内拡張ヘッダ内のセッション処理動作情報が新規セッションエントリ追加となっている場合(ステップ121−Yes)、セッションテーブル230−Nに新規セッションエントリを追加する(ステップ122)。セッションテーブル203−Nへのセッションエントリ追加では、入力パケットの送信元IPアドレス、送信元ポート番号、入力物理IF番号と、宛先IPアドレス、宛先ポート番号、出力物理IF番号とを入れ替えて登録する。セッションテーブル203−Nにおけるセッションエントリは、本パケットと逆向きのパケットフローに関するエントリとして生成する必要があるためである。
装置内拡張ヘッダ内のセッション処理動作情報が新規セッションエントリ追加でない場合(ステップ121−No)、装置内拡張ヘッダ内のセッション処理動作情報がセッションエントリ削除となっているか否かの判定を行う(ステップ131)。
装置内拡張ヘッダ内のセッション処理動作情報がセッションエントリ削除となっている場合は(ステップ131−Yes)、セッションテーブル230−N内の該当するセッションエントリ削除を行う(ステップ132)。
装置内拡張ヘッダ内のセッション処理動作情報がセッションエントリ削除となっていない場合は(ステップ131−No)、装置内拡張ヘッダ内のセッション処理動作情報がセッションエントリ更新となっているか否かの判定を行う(ステップ141)。
装置内拡張ヘッダ内のセッション処理動作情報がセッションエントリ更新となっている場合は(ステップ141−Yes)、セッションテーブル230−N内の該当するセッションエントリ更新を行う(ステップ142)。
図8のパケット転送処理(ステップ105)の処理フローは、前出の図7にて説明した内容と同じである。なお、出力側パケット転送処理においては、当該ネットワーク処理部200−N内のIF部のいずれかから、パケットが外部ネットワークへ出力されることが、既に判明している。従って、図7に示すフローでは、(ステップ70−No)→(ステップ72−Yes)→(ステップ74)→(ステップ75)が選択される。
一例としてクライアント2からサーバ3に対してTCPセッションが開始される際の動作を示す。
図18に本発明の実施例における、クライアント2からサーバ3に対してTCPセッションが張られる際のパケット中継装置の動作を示す。
(セッション開始)
(1)クライアント2→パケット中継装置1:SYNパケットポリシーテーブル210−1記載のポリシーにてパケット通過許可を判定し、セッションテーブル230−1に新規セッションを追加する。
(2)パケット中継装置1→サーバ3:SYNパケットセッションテーブル230−Nに新規セッションを追加する。
(3)サーバ3→パケット中継装置1:SYN、ACKパケットセッションテーブル230−Nにてパケット通過許可を判定し、状態を更新する。
(4)クライアント2→パケット中継装置1:ACKパケットセッションテーブル230−1にてパケット通過許可を判定し、状態を更新する。
(5)サーバ3→パケット中継装置1:ACKパケットセッションテーブル230−Nにてパケット通過許可を判定し、状態を更新する。
(セッション終了)
(6)クライアント2→パケット中継装置1:FINパケットセッションテーブル230−1にてパケット通過許可を判定。状態を更新し、セッション削除準備をする。
(7)サーバ3→パケット中継装置1:ACKパケットセッションテーブル230−Nにてパケット通過許可を判定。状態を更新し、セッション削除準備をする。
(8)サーバ3→パケット中継装置1:FINパケットセッションテーブル230−Nにてパケット通過許可を判定。(セッション削除準備中)
(9)クライアント2→パケット中継装置1:ACKパケットセッションテーブル230−1にてパケット通過許可を判定。状態を更新し、セッション削除をする。
(10)パケット中継装置1→サーバ3:ACKパケットセッションテーブル230−Nからセッション削除をする。
なお、上述した実施例において、TCPセッションに関するセッション管理についてその実現手段を説明したが、TCPセッションの終了判定をタイマーによるタイムアウト処理とすることも可能である。その場合は、図10、図11、図12のセッションテーブルおよび図14のIPフラグメンテーションテーブルにタイムアウト時間の項目を設け、図1のセッション管理部202−1〜202−N、セッションテーブル230−1〜230−N、IPフラグメンテーションテーブル240−1〜240−Nにてタイムアウト管理処理を追加することで実現可能である。より具体的には、例えば、次のようにして実現可能である。セッションテーブル230−1〜230−N、IPフラグメンテーションテーブル240−1〜240−Nに新規エントリを追加登録する際、セッション管理部202−1〜202−Nは、追加登録する新規エントリのタイムアウト時間の項目に予め定められているタイムアウト値を設定する。セッション管理部202−1〜202−Nは、一定時間毎に、セッションテーブル230−1〜230−N、IPフラグメンテーションテーブル240−1〜240−Nの各エントリに設定されているタイムアウト値を所定値減少させる処理を行う。そして、タイムアウト値が所定値以下になったエントリを削除する。
本機能追加により、TCPセッションを張っていたクライアントやサーバもしくはそれらを結ぶ回線が突如ダウンし、TCPセッションの終了シーケンスが発生しない場合でも、自動的にTCPセッション登録を解除することが可能となる。同様の手法によりUDPの擬似セッションについてもセッション管理が実現可能である。また、WebトラヒックにおけるURLやCookieによるセッションの場合でも、TCPパケット内に含まれるURLやCookieをセッションの識別子として抽出することによって、同様のセッション管理が実現可能である。
以上説明したように、本発明のパケット中継装置は、複数のネットワーク処理部でセッション管理を分散処理するため、システム全体のセッション管理能力を向上させることが可能となる。また、ネットワーク処理部単位でセッション管理能力を増設することができる。
また、本発明のパケット中継装置では、セッションテーブル、ポリシーテーブル、IPフラグメンテーションテーブルの検索処理は、外部ネットワークからパケットを受信したネットワーク処理部内のセッション管理部において、1回だけ実施されるため、テーブルの検索処理がボトルネックとなることはない。
また、本発明のパケット中継装置では、外部ネットワークから受信したパケットが新規セッションのパケットであった場合、即ちセッションテーブルに上記パケットが属するセッションに関する情報が登録されていなかった場合、入力側ネットワーク処理部にて自処理部内のセッションテーブルへセッションエントリを追加をすると共に、パケットを出力先となるIF部を有する出力側のネットワーク処理部に転送する際に追加指示も転送し、出力側ネットワーク処理部にて自処理部内のセッションテーブルへのセッションエントリの追加処理を実施している。これにより、入力・出力の対になる各ネットワーク処理部内のセッションテーブルにおいて、セッションテーブルの内容の同一化が自動的に実施されることとなり、特別なセッションテーブルの複写化処理を行うことなく、異なるネットワーク処理部内のセッションテーブルの同一性を保つことが可能となる。
また、本発明のパケット中継装置は、IPフラグメンテーションテーブルを備えているので、フラグメントIPパケットに対するセッション管理を実現できる。
Claims (12)
- パケットを中継するパケット中継装置において、
複数のネットワーク処理部を備え、
該複数のネットワーク処理部が、それぞれ、
外部ネットワークから受信したパケットの属するセッションに対して定められている出力先であるIF部が、他のネットワーク処理部に存在することを条件として、
前記パケットと前記IF部を特定するIF特定情報とを前記他のネットワーク処理部に送信することを特徴とするパケット中継装置。 - 請求項1に記載のパケット中継装置において、
前記各ネットワーク処理部が、
他のネットワーク処理部からパケットとIF特定情報とを受信したとき、前記パケットを前記IF特定情報によって特定されるIF部に出力することを特徴とするパケット中継装置。 - パケットを中継するパケット中継装置において、
複数のネットワーク処理部と、
該複数のネットワーク処理部を相互に接続するスイッチ部とを備え、
前記複数のネットワーク処理部が、それぞれ、
外部ネットワークからパケットを受信したとき、該パケットの属するセッションに対して定められている出力先のIF部が他のネットワーク処理部に存在することを条件にして、前記パケットと前記IF部を特定するIF特定情報とを前記スイッチ部に入力し、
前記スイッチ部が、
入力されたパケットとIF特定情報とを、該IF特定情報によって特定されるIF部を備えたネットワーク処理部に転送する構成を有することを特徴とするパケット中継装置。 - 請求項3に記載のパケット中継装置において、
前記各ネットワーク処理部が、前記スイッチ部を介してパケットとIF特定情報とを受信したとき、前記パケットを前記IF特定情報によって特定されるIF部に出力する構成を有することを特徴とするパケット中継装置。 - 請求項3又は請求項4に記載のパケット中継装置において、
前記複数のネットワーク処理部が、それぞれ、
セッションを特定するセッション特定情報に対応付けて、そのセッションに属するパケットの出力先とするIF部のIF特定情報が登録されたセッションテーブルと、
前記外部ネットワークからパケットを受信したとき、該パケットの出力先にするIF部のIF特定情報を前記セッションテーブルから検索するセッション管理部と、
該セッション管理部が前記セッションテーブルから検索した前記パケットの出力先にするIF部のIF特定情報が、他のネットワーク処理部に存在するIF部を示している場合は、前記パケットと前記IF特定情報とを前記スイッチ部に入力し、前記スイッチ部を介して他のネットワーク処理部からパケットとIF特定情報とが送られてきた場合は、前記パケットを前記IF特定情報によって特定されるIF部に出力するパケット処理部とを備えたことを特徴とするパケット中継装置。 - 請求項5に記載のパケット中継装置において、
前記各ネットワーク処理部が、それぞれ、
パケットの宛先IPアドレスに対応付けて、パケットの出力先にするIF部のIF特定情報が登録されたルーティングテーブルを備え、且つ、
前記セッション管理部が、
前記セッションテーブルから前記パケットの出力先にするIF部のIF特定情報を検索できなかった場合は、前記ルーティングテーブルから前記パケットの出力先にするIF部のIF特定情報を検索し、該検索したIF特定情報と前記パケットが属するセッションのセッション特定情報とを対応付けて前記セッションテーブルに登録し、前記スイッチ部を介してパケット、IF特定情報および追加指示が送られてきた場合は、前記セッションテーブルに、前記追加指示に含まれているIF特定情報を出力先のIF部を示すIF特定情報として登録すると共に、該IF特定情報に対応付けて前記パケットが属するセッションのセッション特定情報を登録する構成を有し、
前記パケット処理部が、
前記セッション管理部によって前記ルーティングテーブルから検索された前記パケットの出力先にするIF部のIF特定情報が、他のネットワーク処理部に存在するIF部を示している場合は、前記パケット、前記IF特定情報および前記パケットを受信したIF部のIF特定情報を含む追加指示を前記スイッチ部に入力する構成を有し、
前記スイッチ部が、
入力されたパケット、IF特定情報および追加指示を、前記IF特定情報によって特定されるIF部を備えたネットワーク処理部に転送する構成を有することを特徴とするパケット中継装置。 - 請求項6に記載のパケット中継装置において、
前記複数のネットワーク処理部が、それぞれ、
セッションを特定するセッション特定情報に対応付けて、そのセッションのポリシーが登録されたポリシーテーブルを備え、且つ、
前記セッション管理部が、
前記セッションテーブルから前記パケットの出力先にするIF部のIF特定情報を検索できなかった場合は、前記ポリシーテーブルに登録されている前記パケットが属するセッションのポリシーがパケット通過となっていることを条件にして、前記ルーティングテーブルから前記パケットの出力先にするIF部のIF特定情報を検索し、該検索したIF特定情報と前記パケットが属するセッションのセッション特定情報とを対応付けて前記セッションテーブルに登録し、前記スイッチ部を介してパケット、IF特定情報および追加指示が送られてきた場合は、前記セッションテーブルに、前記追加指示に含まれているIF特定情報を出力先のIF部を示すIF特定情報として登録すると共に、該IF特定情報に対応付けて前記パケットが属するセッションのセッション特定情報を登録する構成を有することを特徴とするパケット中継装置。 - 請求項6に記載のパケット中継装置において、
前記セッション管理部が、
前記外部ネットワークからセッションを終了させるパケットを受信したとき、前記セッションテーブルから前記パケットが属するセッションに関する情報を削除し、前記スイッチ部を介してパケット、IF特定情報および削除指示が入力されたとき、前記セッションテーブルから前記パケットが属するセッションに関する情報を削除する構成を有し、
前記パケット処理部が、
前記セッションを終了させるパケットの出力先とするIF部が他のネットワーク処理装置に存在する場合は、前記パケット、前記パケットの出力先とするIF部のIF特定情報および削除指示を前記スイッチ部に入力する構成を有することを特徴とするパケット中継装置。 - 請求項6に記載のパケット中継装置において、
前記セッション管理部が、
前記セッションテーブルに、セッション特定情報とIF特定情報との対を登録する際、予め定められているタイムアウト値も併せて登録する構成を有すると共に、所定時間毎にセッションテーブルに登録されている各タイムアウト値を一定値ずつ減算し、減算後のタイムアウト値が所定値以下となったエントリを削除する構成を有することを特徴とするパケット中継装置。 - 請求項5に記載のパケット中継装置において、
前記複数のネットワーク処理部が、それぞれ、
パケットの宛先IPアドレスに対応付けて、パケットの出力先にするIF部のIF特定情報が登録されたルーティングテーブルと、
パケットの送信元IPアドレス及び宛先IPアドレスに対応付けて、フラグメントオフセット及びパケットの出力先にするIF部のIF特定情報が登録されたエントリを有するIPフラグメンテーションテーブルとを備え、且つ、
前記セッション管理部が、
外部ネットワークを介してフラグメントIPパケットを受信したとき、前記IPフラグメンテーションテーブルを検索し、前記フラグメントIPパケットの送信元IPアドレス、宛先IPアドレス及びフラグメントオフセットと同一の送信元IPアドレス、宛先IPアドレス及びフラグメントオフセットが登録されているエントリが存在する場合は、前記エントリ中のIF特定情報を取得すると共に、前記フラグメントIPパケットのパケット長に基づいて、前記エントリ中のフラグメントオフセットを更新し、前記IPフラグメンテーションテーブルに該当するエントリが存在しない場合は、前記セッションテーブル或いは前記ルーティングテーブルから前記フラグメントIPパケットの出力先にするIF部のIF特定情報を検索し、該検索したIF特定情報と、前記フラグメントIPパケット中の送信元IPアドレス、宛先IPアドレス、フラグメントオフセットとを含むエントリを追加登録する構成を有することを特徴とするパケット中継装置。 - 複数のネットワーク処理部を備えたパケット中継装置におけるパケット中継方法であって、
該複数のネットワーク処理部が、それぞれ、
外部ネットワークからパケットを受信したとき、該パケットの属するセッションに対して定められている出力先のIF部が他のネットワーク処理部に存在することを条件にして、前記パケットと前記IF部を特定するIF特定情報とを前記他のネットワーク処理部に送信し、他のネットワーク処理部からパケットとIF特定情報とを受信したとき、前記パケットを前記IF特定情報によって特定されるIF部に出力することを特徴とするパケット中継方法。 - コンピュータを、複数のネットワーク処理部を備えたパケット中継装置の構成要素であるネットワーク処理部として機能させるためのプログラムであって、
前記コンピュータを、
外部ネットワークからパケットを受信したとき、該パケットの属するセッションに対して定められている出力先のIF部が他のネットワーク処理部に存在することを条件にして、前記パケットと前記IF部を特定するIF特定情報とを前記他のネットワーク処理部に送信し、他のネットワーク処理部からパケットとIF特定情報とを受信したとき、前記パケットを前記IF特定情報によって特定されるIF部に出力する手段として機能させるためのプログラム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003152156 | 2003-05-29 | ||
JP2003152156 | 2003-05-29 | ||
PCT/JP2004/007470 WO2004107683A1 (ja) | 2003-05-29 | 2004-05-25 | パケット中継装置及びパケット中継方法並びにプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2004107683A1 true JPWO2004107683A1 (ja) | 2006-07-20 |
JP4280932B2 JP4280932B2 (ja) | 2009-06-17 |
Family
ID=33487251
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005506523A Expired - Fee Related JP4280932B2 (ja) | 2003-05-29 | 2004-05-25 | パケット中継装置及びパケット中継方法並びにプログラム |
Country Status (4)
Country | Link |
---|---|
US (1) | US7792133B2 (ja) |
EP (1) | EP1628444A1 (ja) |
JP (1) | JP4280932B2 (ja) |
WO (1) | WO2004107683A1 (ja) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPWO2005027438A1 (ja) * | 2003-09-11 | 2006-11-24 | 富士通株式会社 | パケット中継装置 |
JP2005204002A (ja) * | 2004-01-15 | 2005-07-28 | Fujitsu Ltd | パケット中継装置 |
JP4564819B2 (ja) * | 2004-10-19 | 2010-10-20 | 日本電気株式会社 | データ送信装置、データ送信方法、データ送信プログラムおよび記録媒体 |
JP4407556B2 (ja) * | 2005-03-29 | 2010-02-03 | 日本電気株式会社 | セッション中継装置、セッション中継方法およびプログラム |
JP4481876B2 (ja) * | 2005-05-19 | 2010-06-16 | 富士通株式会社 | サーバ装置の制御方法、クライアント装置の制御方法、セッション制御方法 |
US20070156907A1 (en) * | 2005-12-30 | 2007-07-05 | Galin Galchev | Session handling based on shared session information |
CN101022451B (zh) * | 2006-02-14 | 2014-07-23 | 杭州华三通信技术有限公司 | 数据通信中连接状态的同步方法及其应用的通信节点 |
CN101461198B (zh) * | 2006-06-05 | 2012-03-14 | 株式会社日立制作所 | 中继网络系统及终端适配装置 |
JP4723672B2 (ja) * | 2007-03-29 | 2011-07-13 | 富士通株式会社 | 通信装置、及び、通信方法 |
JP5587530B2 (ja) * | 2007-03-29 | 2014-09-10 | 日本電気株式会社 | エンジン・プロセッサ連携システム及び連携方法 |
KR101409456B1 (ko) * | 2007-06-12 | 2014-06-24 | 삼성전자주식회사 | IP converged 시스템에서의 패킷 처리 방법 및그 시스템 |
EP2109339B8 (en) * | 2007-12-12 | 2016-05-25 | Panasonic Intellectual Property Management Co., Ltd. | Data transmitting and receiving system, terminal, relay device, and data transmitting method |
US8300532B1 (en) * | 2008-09-23 | 2012-10-30 | Juniper Networks, Inc. | Forwarding plane configuration for separation of services and forwarding in an integrated services router |
JP5246092B2 (ja) * | 2009-07-31 | 2013-07-24 | 沖電気工業株式会社 | 転送装置及び転送プログラム |
JP5407712B2 (ja) * | 2009-09-30 | 2014-02-05 | 富士通株式会社 | 通信装置および通信制御方法 |
JP5389193B2 (ja) * | 2010-02-04 | 2014-01-15 | 日本電信電話株式会社 | パケット転送処理装置、方法及びプログラム |
US8243618B2 (en) * | 2010-04-26 | 2012-08-14 | International Business Machines Corporation | Steering fragmented IP packets using 5-tuple based rules |
JP5194074B2 (ja) | 2010-08-20 | 2013-05-08 | 株式会社日立製作所 | 通信装置 |
US11095687B2 (en) * | 2011-11-18 | 2021-08-17 | Blue Armor Technologies, LLC | Network security system using statistical object identification |
CN103634228A (zh) * | 2013-11-25 | 2014-03-12 | 华为技术有限公司 | 一种网络报文的传送方法和设备 |
US9455908B2 (en) * | 2014-07-07 | 2016-09-27 | Cisco Technology, Inc. | Bi-directional flow stickiness in a network environment |
US9503363B2 (en) | 2015-03-16 | 2016-11-22 | Cisco Technology, Inc. | Segment routing label switch paths in network functions virtualization communications networks |
US9979629B2 (en) | 2015-08-21 | 2018-05-22 | Cisco Technology, Inc. | Distribution of segment identifiers in network functions virtualization and software defined network environments |
US20230254248A1 (en) * | 2020-07-01 | 2023-08-10 | Nippon Telegraph And Telephone Corporation | L2 switch, communication control method, and communication control program |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3515263B2 (ja) * | 1995-05-18 | 2004-04-05 | 株式会社東芝 | ルータ装置、データ通信ネットワークシステム、ノード装置、データ転送方法及びネットワーク接続方法 |
JP3490286B2 (ja) * | 1998-03-13 | 2004-01-26 | 株式会社東芝 | ルータ装置及びフレーム転送方法 |
JP2000354061A (ja) * | 1999-06-10 | 2000-12-19 | Nec Corp | コネクション情報検索装置 |
US6826613B1 (en) * | 2000-03-15 | 2004-11-30 | 3Com Corporation | Virtually addressing storage devices through a switch |
JP3963690B2 (ja) | 2001-03-27 | 2007-08-22 | 富士通株式会社 | パケット中継処理装置 |
JP4501310B2 (ja) * | 2001-05-28 | 2010-07-14 | 株式会社日立製作所 | パケット転送装置 |
US7305492B2 (en) * | 2001-07-06 | 2007-12-04 | Juniper Networks, Inc. | Content service aggregation system |
EP1511229A4 (en) * | 2002-05-31 | 2007-03-21 | Fujitsu Ltd | PACKET REPEATING INSTALLATION, NETWORK CONNECTION DEVICE, PACKET REPEATING PROCEDURE, RECORDING MEDIUM, PROGRAM |
TW589832B (en) * | 2002-11-12 | 2004-06-01 | Inst Information Industry | QoS router for effectively processing fragmented packets and method thereof |
US8228908B2 (en) * | 2006-07-11 | 2012-07-24 | Cisco Technology, Inc. | Apparatus for hardware-software classification of data packet flows |
-
2004
- 2004-05-25 EP EP20040734760 patent/EP1628444A1/en not_active Withdrawn
- 2004-05-25 WO PCT/JP2004/007470 patent/WO2004107683A1/ja active Application Filing
- 2004-05-25 JP JP2005506523A patent/JP4280932B2/ja not_active Expired - Fee Related
- 2004-05-25 US US10/546,718 patent/US7792133B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US20060153225A1 (en) | 2006-07-13 |
EP1628444A1 (en) | 2006-02-22 |
US7792133B2 (en) | 2010-09-07 |
JP4280932B2 (ja) | 2009-06-17 |
WO2004107683A1 (ja) | 2004-12-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4280932B2 (ja) | パケット中継装置及びパケット中継方法並びにプログラム | |
JP3403971B2 (ja) | パケット転送装置 | |
TWI354473B (en) | Packet coalescing | |
US9071529B2 (en) | Method and apparatus for accelerating forwarding in software-defined networks | |
JP5621778B2 (ja) | コンテンツベーススイッチシステム、及びコンテンツベーススイッチ方法 | |
EP2061190A1 (en) | Method, apparatus and system for complex flow classification of fragmented datagrams | |
EP1604270A2 (en) | Method and apparatus for providing integrated voice and data services over a common interface device | |
JP2004129196A (ja) | Ipパケットの発信元を決定するシステム及び方法 | |
JP2003258842A (ja) | パケット通信システム及び転送装置 | |
CN103460676A (zh) | 通过查询远程服务器的流路由协议 | |
US7477640B2 (en) | Packet processing system | |
JPWO2006093221A1 (ja) | 伝送制御装置およびその方法 | |
US20070104200A1 (en) | Network device with routing function and policy route setting method thereof | |
US7822056B2 (en) | LCR switch with header compression | |
JP4568846B2 (ja) | ゲートウェイ装置、送信方法、受信方法および情報記録媒体 | |
JPWO2006070542A1 (ja) | 通信装置、記憶媒体、集積回路および通信システム | |
US20050169272A1 (en) | Method for fragmenting an incoming packet into a first outgoing packet and a second outgoing packet | |
JP7178522B2 (ja) | 中継装置及びローカルブレイクアウトの転送方法 | |
Kurihara et al. | List interest: Packing interests for reduction of router workload in ccn 1.0 | |
US20070153828A1 (en) | System and method to negotiate the addition or deletion of a PPP link without data loss | |
JP4597102B2 (ja) | パケット交換装置 | |
US7733862B2 (en) | Method and apparatus for implementing IPSec engine in IXDP2851 | |
JP2008295082A (ja) | ゲートウェイ装置、送信方法、受信方法および情報記録媒体 | |
JP2003018205A (ja) | Tcpプロファイル設定方法およびプログラム | |
JP6424496B2 (ja) | パケット転送システム,及びパケット転送装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070423 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20081030 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081226 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081226 |
|
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: 20090218 |
|
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: 20090303 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120327 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120327 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130327 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130327 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140327 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |