JP5749673B2 - パケット転送装置 - Google Patents

パケット転送装置 Download PDF

Info

Publication number
JP5749673B2
JP5749673B2 JP2012054285A JP2012054285A JP5749673B2 JP 5749673 B2 JP5749673 B2 JP 5749673B2 JP 2012054285 A JP2012054285 A JP 2012054285A JP 2012054285 A JP2012054285 A JP 2012054285A JP 5749673 B2 JP5749673 B2 JP 5749673B2
Authority
JP
Japan
Prior art keywords
http
packet
processing unit
fast path
fast
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.)
Active
Application number
JP2012054285A
Other languages
English (en)
Other versions
JP2013186873A (ja
Inventor
陽介 古林
陽介 古林
隆伸 川邉
隆伸 川邉
宮奥 健人
健人 宮奥
拓弥 芝崎
拓弥 芝崎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone West Corp
Original Assignee
Nippon Telegraph and Telephone West Corp
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 Nippon Telegraph and Telephone West Corp filed Critical Nippon Telegraph and Telephone West Corp
Priority to JP2012054285A priority Critical patent/JP5749673B2/ja
Publication of JP2013186873A publication Critical patent/JP2013186873A/ja
Application granted granted Critical
Publication of JP5749673B2 publication Critical patent/JP5749673B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

この発明は、URLフィルタリングの高速化に向けたパケット転送装置に関する。
ユーザ端末がネットワークにアクセスするにあたり、ウイルスやワームが仕掛けられたサイトや、フィッシングサイト、成人向けサイトといった規制対象サイトにアクセスしないように、規制対象となるサイトへのアクセスをURLごとに遮断するURLフィルタリングが一般に行われている。家庭用ホームゲートウェイなどのゲートウェイにおいてURLフィルタリングする場合には、ユーザ端末から送信されるHTTPリクエストの中のURLアクセスメッセージを検出し、当該URLへのアクセスの可否を、規制対象サイトのURL一覧をデータベースとして保持するサーバに問い合わせて確認し、HTTPリクエストを通過させるか遮断するかを判断している。
ゲートウェイ上でユーザ端末から送信されるHTTPリクエスト中のURLアクセスメッセージを検出するには、例えば次のような方法が挙げられる。まず第一の方法としては、ゲートウェイ上でHTTPプロキシを提供し、HTTP通信を一旦ゲートウェイ上で終端中継する。しかしこの方法は、ゲートウェイ上でHTTP/TCP通信を一旦終端し、HTTPヘッダ情報の修正などの処理を行う必要があるため、ゲートウェイにかかる処理負担が大きく、転送性能は大きく劣化してしまう。
これに対して第二の方法として、HTTP/TCP通信をゲートウェイ上で終端させることなく、中継するパケットのペイロード内容を解析し、パケット中のHTTPヘッダ情報を読み取って、リクエストを通過させるか否かを判断させる方法がある。しかし、ホームゲートウェイなどに用いるCPUに搭載されている、高速パケット転送用の機構である「ファストパス」は、IP、TCPヘッダのビットのみを読み取って処理することで高速化するものであり、ヘッダより先のペイロードを解析しなければならないこの第二の方法では「ファストパス」が利用できない。そのため、この方法でも転送速度の低下を招くことになる。
特許文献1には、上記の第二の方法において、ダウンリンクのみファストパスを適用し、転送性能を改善する方式が提案されている。これは、受信したパケットのTCPヘッダを解析してURLアクセス要求メッセージでない、すなわちダウンロードされるファイルのパケットについては、それを要求するHTTPリクエストの段階で遮断すべきか否かの判断が既に終わって通過が認められたものであると判断して、ファストパスで処理するようにしたものである。
また、特許文献2には、VPN(VirtualPrivateNetwork)におけるVoIP(Voice over IP)ゲートウェイにおいて、VoIPパケットをファストパス処理することが記載されている。
特開2010−244134号公報 特開2011−114391号公報
しかしながら、特許文献1の方法では、あくまで要求を確認した後のダウンリンクのみしかファストパスを適用できず、クラウドを利用するようなアップリンクも多いケースでは十分にファストパスを活用できなかった。
また、特許文献2に記載の方法ではVoIPやそれに類似するストリーミング形式のデータパケットに対してしかファストパスを活用できなかった。
そこでこの発明は、URLフィルタリングシステムとしてゲートウェイを用いる際に、アップリンクダウンリンクの区別無く、汎用的にファストパスを活用してゲートウェイにおける転送処理を高速化することを目的とする。
この発明の第一の実施手段としては、URLフィルタリング装置に
上記ユーザ端末と上記ウェブサーバとの間で送受信されるパケットを中継するパケット転送処理部と、パケット転送処理部を通過するTCPパケットのヘッダ部分を読み取りTCP層の処理を行うTCP層パケット処理部と、上記TCPパケットのデータ部分に含まれるHTTP構文を読み取り解析を行うHTTP構文解析処理部と、上記の解析されたHTTP構文に含まれるURLへのアクセスを通過させるか否かを判定処理する要求URL通過判定処理部とともに、
上記ファストパス機能によってファストパスを行うか否かの条件を一時的に保持するファストパス判断テーブルを有するものとし、
上記HTTP構文解析処理部は、受信完了したHTTPヘッダ部でHTTPメッセージのサイズ情報を取得した際には、上記TCP層パケット処理部に対してHTTPメッセージのサイズ情報を通知する転送量通知機能を実行し、
上記サイズ情報を取得したTCP層パケット処理部は、その上記サイズ情報から転送すべきHTTPメッセージのシーケンス番号の上限値を計算して、その上限値以下のシーケンス番号でありファストパスの対象となるファストパス条件を上記ファストパス判断テーブルへ設定する第一ファストパス登録機能を実行し、
上記パケット転送処理部は、受信したパケットについて上記ファストパス判断テーブルのファストパス条件に合致するパケットをファストパスさせるファストパス判断機能を実行するものとすることで、上記の課題を解決したのである。
すなわち、HTTPメッセージのサイズ情報(Content−Length)を見れば、そのHTTPアクセスでアップロード又はダウンロードされるファイルの実サイズが分かる。このため、シーケンス番号の初期値にこのファイルの実サイズを加算すれば、最後の一連のファイルを転送する最後のパケットのとりうるシーケンス番号の最大値がわかる。より具体的には、シーケンス番号の初期値に「Content−Length」の値を加算した後、最後のパケット分に相当するURLフィルタリング装置のMRU(MaximumReceiveUnit)を引いた値が、そのファイルの最後に流れてくるパケットのシーケンス番号の最大値となる。よって、この最大値以下のシーケンス番号を有するパケットは、既にURLフィルタリングで通過との判定が終わっている一連のパケットであるとわかるので、HTTPのペイロードを見ることなくヘッダ部分のシーケンス番号を確認することで、ファストパス処理が可能であると判断できる。
また、この発明の第二の実施手段として、
上記HTTP構文解析処理部は、受信したHTTPヘッダ部のHTTPバージョンが1.0であるか、又はHTTPヘッダ部のConnectionにCloseが指定されている際には、上記TCP層パケット処理部に対して、同一TCPセッションの全パケットをファストパス通過対象とする通知をするファストパス通達機能を実行し、
上記の通過対象とする通知を受けたTCPパケット処理部は、上記同一TCPセッションの全パケットをファストパスの対象とするファストパス条件を上記ファストパス判断テーブルに設定する第二ファストパス登録機能を実行し、
上記パケット転送処理部は、受信したパケットについて上記ファストパス判断テーブルのファストパス条件に合致するパケットをファストパスさせるファストパス判断機能を実行するものとすることでも実行できる。
HTTP/1.0ではファイルごとにセッションを確立するため、既にフィルタリングを通過して、セッションが確立されたHTTP/1.0での通信については、そのセッションの終わりまでは同一ファイルのダウンロード又はアップロードであると分かるので、同一TCPセッションをまとめてファストパスで処理することができる。Connectionにcloseが設定されている場合も、そのTCPセッションの最後のファイルの送信であることが確立しているので、同一TCPセッションはまとめてファストパスで処理することができる。
第一の実施方法と第二の実施方法は両立できる。同一TCPセッションでまとめてファストパス処理できるものと、一のTCPセッションの中でシーケンス番号が最大値以下であると判断してファストパス処理できるものとがあると、それぞれどちらもファストパス処理できるので、その分処理全体を軽くできる。
ただし、Content−Lengthで判断する場合、HTTPヘッダ部にTransfer−Encodingが指定されており、その指定がidentityで無い場合には、上記転送量通知機能を実行させないものとする。いわゆる生データではなく圧縮されているために長さが単純にContent−Length分の加算とはならないためである。
この発明により、アップロード及びダウンロードの区別なく、既にURLフィルタリングを通過したアドレスとのHTTP通信については、ファストパスで処理できるパケットの数を増やし、URLフィルタリング装置の転送処理性能を向上させることができる。
この発明にかかるURLフィルタリング装置の機能ブロック図 この発明にかかるURLフィルタリング装置の機能フロー例の前半図 この発明にかかるURLフィルタリング装置の機能フロー例の後半図 HTTP構文解析処理部がファストパス登録の通知を出す際のフロー例図 (a)Content−Lengthを指定されたHTTPヘッダの例、(b)Connection:closeを指定されたHTTPヘッダの例 ファストパス判断テーブルの例図 ファストパス判断部のフロー図
以下、この発明について具体的な実施形態の例を挙げて詳細に説明する。
図1は、この発明にかかるURLフィルタリング装置11の機能ブロック図及びそれと通信する装置について示す構成図である。
URLフィルタリング装置11は、ユーザ端末12と、ウェブサーバ13との間にある中継装置であり、例えば家庭用ルータなどのホームゲートウェイのようなゲートウェイとして機能する装置である。具体的には、ユーザ端末12からのHTTP通信と、ウェブサーバ13からのHTTP通信を中継するとともに、別途運営されているアクセス規制対象となるURLリストのデータベースを保有するセキュリティサーバ14に当該HTTP通信のアクセス要求先へのアクセスが規制されているか否かを確認し、規制されている場合にはそのアクセスを遮断する装置である。
ユーザ端末12は、パソコン、スマートフォン、タブレット端末など、HTTP通信を行う端末であれば特に限定されない。
ウェブサーバ13は、ユーザ端末12からのリクエストに応じてコンテンツを送信するHTTPサーバ機能を有するサーバである。図1中では一つであるが、実際には多数のサーバがインターネット上に存在しており、URL(Uniform Resource Locator)によって指定される。
セキュリティサーバ14は、アクセスを規制するページのアドレスを保有するデータベースを有し、URLフィルタリング装置11からの照会に対して、それがフィルタリングで遮断すべきページか否かを応答可能なサーバである。例えば、セキュリティ会社などが運営するものであったり、会社内で独自に用意するものであったりしてもよい。
これらの装置間での通信に対して、URLフィルタリング装置11は、通過するパケットに対してルーティング機能41を発揮するパケット転送処理部21と、パケットのTCP層の処理を行う処理を行うTCP層パケット処理部22と、パケットのデータ部内にあるHTTP構文を解析するHTTP構文解析処理部23と、セキュリティサーバ14に照会して接続要求先のアドレスが遮断されるべきものか否かを判定する要求アドレス通過判定処理部24と、遮断する際のエラーメッセージや代替テキストを供給するHTTP+応答作成処理部25と、TCP終端処理を行うTCP終端処理部26と、後述するファストパス機能42を実行してファストパスを行うか否かの条件を一時的に保持するファストパス判断テーブル27とを有する。
このうち各部(21〜26)は独立したチップでもよいし、ソフトウェア上で実現するものでもよい。URLフィルタリング装置11は、これらを実現するための処理部たるプロセッサと、記憶部たる揮発性メモリ及び不揮発性メモリを有する。このうち、プロセッサはパケットのヘッダ部分のみを読み取って高速で転送処理を行う、いわゆる「ファストパス」機能を有するものである必要がある。また、ファストパス判断テーブル27は、記憶部に存在するテーブルデータである。
URLフィルタリング装置11は、ユーザ端末12からウェブサーバ13へ向かうアップリンクのデータの経路であるアップパケット経路51と、ウェブサーバ13からユーザ端末12へのダウンリンクのデータ経路であるダウンパケット経路52とを有する。
なお、アップパケット終端経路53はユーザ端末12からURLフィルタリング装置11への上り方向の終端処理を行う場合の経路であり、ダウンパケット終端経路54は、ウェブサーバ13からURLフィルタリング装置11への下り方向の終端処理を行う場合の経路である。
本願発明において、ファストパス機能42を発揮させるか否かの判断は、上記の経路のうち、アップパケット経路51と、ダウンパケット経路52を通るパケットに対して実行する。
これらの構成を有するURLフィルタリング装置11の動作を、図2及び図3を用いて、情報処理の流れに沿って説明する。まず(S100)、HTTP通信の前に、新規なTCPセッションを確立する(S101)。このセッションの確立は、一般的な3way−handshakeの処理による。すなわち、ユーザ端末12が、接続要求であるSYNパケットをURLフィルタリング装置11経由でウェブサーバ13に送信し、ウェブサーバ13は接続許可であるACKパケットと、接続要求であるSYNパケットとを組み合わせてユーザ端末12に返送する。これに対してユーザ端末12がACKパケットを返答する。以上の三手順を経てユーザ端末12とウェブサーバ13との間のコネクションが確立する。より具体的には、このときパケット転送処理部21は、受信するパケットのプロトコルの種別、宛先と送信元のIPアドレス及びポート番号等に基づいて、HTTPセッションに属するTCPパケットを判別し、HTTPセッションであると判別されたTCPパケットをTCP層パケット処理部22に通知するセッションパケット抽出機能46を実行する。TCP層パケット処理部22は、パケット転送処理部21から受け取ったパケットが、3way−handshakeのためのパケットであると判別したらこれをそのままパケット転送処理部21へ出力する開始パケット経過機能62を実行し、パケット転送処理部21はルーティング機能41によりこれをそれぞれの宛先(ユーザ端末12又はウェブサーバ13)へ向けて転送する。これが一往復半されて3way−handchakeが成立する。
TCPセッションが確立した後、ユーザ端末12は、ブラウザソフトその他のソフトが有するHTTP通信機能45により、アクセスを要求するHTTPメソッド及びURLを含むTCPパケットを送信する(S111)。HTTPメソッドは、一般的には、ダウンリンクであればGETであり、アップリンクであればPOSTである。このTCPパケットを受信したURLフィルタリング装置11は次のような処理を行う。まず、この時点ではファストパスの処理の有無が決まっていないので(S112)、パケット転送処理部21のセッションパケット抽出機能46が、この受信したTCPパケットをTCP層パケット処理部22に転送する(S113)。TCP層パケット処理部22は、そのパケットを保持しながらTCPパケットのデータ部(ペイロード)を抽出するペイロード抽出機能63を実行し(S114)、抽出したペイロードをHTTP構文解析処理部23へ送るペイロード転送機能64を実行する(S115)。
なおここで、ペイロードとしてURLを抽出した際には、そのURLについてキャッシュ30に問い合わせるキャッシュ問合機能70を実行するとよい。後述するように既に判定が終わっているURLへの二度目のアクセスである場合に、以下に記載のHTTP構文解析処理部23や要求アドレス通過判定処理部24での処理を行うまでもなく、速やかに遮断すればよいからである。よって、問い合わせの結果、当該URLへのアクセスが不可であれば、TCP層パケット処理部22は、HTTP応答作成処理部25へ直接に、拒否対応指示機能86(後述する83と同様の内容)を実行すると速やかな処理ができる。
HTTP構文解析処理部23では、まず受け取ったペイロードがHTTPであるか否かを判断するHTTP判別機能71を実行する(S121)。ペイロードがHTTPでなかったら、そのセッションの通信はHTTPではないということであり、以後そのセッションのデータは中身を解析しようがないので、ファストパスで処理することになる。そこでHTTP構文解析処理部23のファストパス通達機能72は、TCP層パケット処理部22へ、当該セッションをファストパスで処理するように通知する(S122)。TCP層パケット処理部22は、第二ファストパス登録機能34を実行して、ファストパス判断テーブル27に、当該セッションをファストパスで処理する旨を登録する(S123)。その上で、TCP層パケット処理部22は、保持していたパケットをパケット転送処理部21へ返送するパケット返送機能65を実行し(S124)、以後はアップパケット経路51又はダウンパケット経路52をファストパスで通過させるように登録する(S125)。
なお、上記のフローのS121〜S125に対応する例外として、TCP層パケット処理部が受け取ったパケットが、TCP層のヘッダまでしか存在せず、ペイロードが実質的に存在していない場合は、そのパケットをTCP層で終端するように、TCP終端処理部26へ要求する終端処理指示機能98を実行する。
上記のHTTP判別機能71での判断においてペイロードがHTTPであれば(S121)、HTTP構文解析処理部23は、GET又はPOSTのHTTPメソッドとしてHTTP構文の一行目に記載されているアドレスを、要求アドレス通過判定処理部24へ転送する判定要求機能73を実行する(S131)。なお、この判定要求機能73はHTTPヘッダを全て受信してから実行してもよいが、アドレスはHTTP構文の一行目にあるため、一行目を受信した段階でこの判定要求機能73を実行してもよい。
要求アドレス通過判定処理部24は、転送されてきたアドレスについて、規制対象となるアドレス群を記録した規制対象データベースを有するセキュリティサーバ14に対して、規制対象のアドレスであるか否かを照会する接続可否問合機能81を実行する(S132)。セキュリティサーバ14はこの照会に対して、規制対象データベースを検索して、規制対象であるか否かを返答する接続可否返答機能82を実行する(S133)。なお、規制対象データベースは必ずしも外部サーバに置いておく必要はなく、応答速度を優先するためにURLフィルタリング装置11内に保持していてもよい。ただし、規制対象となるアドレスの更新等、装置への負担はかかる。
上記の接続可否返答機能82による返答が、規制対象であるとの内容であった場合(S134→S141)、要求アドレス通過判定処理部24は、HTTP応答作成処理部25に対して、その結果を通知するとともにTCP終端処理の開始を指示する拒否対応指示機能83を実行する(S142)。HTTP応答作成処理部25は、通知された結果に対応する応答メッセージが含まれるHTMLドキュメントを生成するメッセージ生成機能91を実行する(S143)。応答メッセージとしては、規制対象であることを示す「403 forbidden」であったり、それに関連する英語や日本語等の説明を加えたHTMLドキュメントであるとよい。またそれとともにHTTP応答作成処理部25は、TCP終端処理部26へTCP終端処理の開始を指示する終端処理指示機能92を実行し(S144)、作成したHTMLドキュメントを送信する。
TCP終端処理部26は、ユーザ端末12との通信経路を、アップパケット終端経路53に変更させ、ウェブサーバ13との通信経路をダウンパケット終端経路54に変更する経路終端変更機能93を実行する(S145)。その上で、HTTP応答作成処理部が生成したメッセージをユーザ端末12へ送信するアクセス拒否通知機能94を実行するとともに(S146)、ユーザ端末12に対して当該TCPセッションの終端処理を行う端末切断機能95を実行する(S147)。具体的には、FIN/ACKパケットの往復による。さらに、ウェブサーバ13に対しても、当該TCPセッションの終端処理を行うサーバ切断機能96を実行する。これも具体的にはFIN/ACKパケットの往復による(S147)。その上で、当該URLへのアクセスが不可である情報を、URL又はHTTPの構文情報とともにキャッシュ30に記録するキャッシュ記録機能97を実行する(S148)。キャッシュ30は時間制限付きでこれらの情報をデータベースとして保持する。これで当該TCPセッションは終了する(S149)。なお、これらの終端処理とキャッシュ30への書き込みとは順番が前後してもよい。
「次に、上記の接続可否返答機能82による返答が、規制対象ではないとの返答であった場合(S141)、要求アドレス通過判定処理部24は、要求のあったアドレスへの転送を許可する旨をHTTP構文解析処理部23へ指示する許可対応指示機能84を実行する(S151)。
これを受けたHTTP構文解析処理部23は、上記のファストパス通達機能72及び転送量通知機能31(後述)を実行し、通知を受けたTCP層パケット処理部22は、第一ファストパス登録機能32、第二ファストパス登録機能34を実行する(S152)。
このファストパス登録機能を含めた、HTTP構文解析処理部23内でファストパス登録機能(32,34)を実行するか否かを判断するファストパス判断機能33を構成する一連の機能の実行フローについて、図4を用いて説明する。TCP層パケット処理部22からデータを受信すると(S115)、それがHTTPであるか否かを判断するHTTP判別機能71を実行し(S121)、HTTPでなければTCP層パケット処理部22へファストパス処理を通知する(S122)。通知を受け取ったTCP層パケット処理部22は、第二ファストパス登録機能34を実行する(S123)。このフローまでは上記の通りである。
HTTPであれば、S131以降の外部処理を経て、HTTPの指定するアドレスが規制対象であるか否かを判別する。規制対象であれば上記の通りセッションが終了し(S148まで)、規制対象でない場合、HTTPヘッダを全て受信した上で(S211)、S152として次のような判断を行う。なお、参考までにHTTPヘッダの例を図5(a)、(b)に示す。まず、HTTPのバージョンが1.1以上であるか否かについて判断するバージョン判定機能74を実行する(S212)。1.1より低いバージョン、すなわちHTTP/1.0であった場合、規定上一つのセッションについて一つのファイルしか送信しないため、当該セッションについては、既に規制対象となるアドレスとの通信ではないことが確認されたそのファイルの送受信が終わるセッションの終了まで、ファストパスで通過して構わないということになる。従って、HTTP/1.0であったら、TCP層パケット処理部22へ当該セッションについて以後のファストパス処理をするよう通知するファストパス通達機能72を実行する(S122)。これを受けたTCP層パケット処理部22は、第二ファストパス登録機能34を実行して、同一TCPセッションの全パケットをファストパス中継するようにファストパス判断テーブル27に登録する(S123)。
なお、HTTPのバージョンは、HTTPヘッダの一行目に記載されるため、上記のバージョン判定機能74の実行は、必ずしもHTTPヘッダ部の受信を全て終えてから行わなくてもよい。具体的には、S211とS212の順番は逆でもよい。
次に、HTTPヘッダ中の「Connection」の項目が、図5(a)のような「keep−alive」ではなく、図5(b)のような「close」に成っているかいなかを判断するコネクション判定機能75を実行する(S213)。HTTP/1.1以降では、一のTCPセッションで複数のファイルを送ることができるが、「Connection:close」が指定されている場合は、それが当該TCPセッションにおいて最後に送信すべきファイルであって、当該ファイルの送信後はTCPセッションを閉じることを意味する。従って、そのTCPセッションでは、既に規制対象ではないとの判定を終えたそのHTTPデータが最後の送信分となるため、当該TCPセッションについては、最後までファストパスで処理してよいということになる。従って、TCP層パケット処理部22へ当該セッションについて以後のファストパス処理をするよう通知するファストパス通達機能72を実行する(S122)。これを受けたTCP層パケット処理部22は、第二ファストパス登録機能34を実行して、同一TCPセッションの全パケットをファストパス中継するようにファストパス判断テーブル27に登録する(S123)。
次に、HTTPヘッダに、Transfer−Encodingが指定されているか否か(S214)、そして、指定されているのならば、その項目がidentyty」であるか否か(S215)を判断する転送エンコーディング判定機能76を実行する。これは、Transfer−Encodingの項目に「Chunked」が指定されていると、厚切りエンコーディングされて送信されるので、実際に送信されるデータ量が、本来送信されるべきデータの大きさと完全には一致しないことがある。この場合、後述するContent−Lengthの数値では実際に送られるデータサイズが予見できなくなるので、ファストパスへの登録は行わず、すなわち転送量通知機能31を実行せず、通常の転送処理を行うことになる(S217)。一方、Transfer−Encodingの項目が無ければ、データサイズの変更は無いということであり(S214→S216)、Transfer−Encodingの項目があっても、「identity」と指定されていれば同じくデータサイズの変更は無いということであるので(S215→S216)、次のデータ長判定機能77の実行(S216)へ移る。
HTTPヘッダが、図5(a)のように、Content−Lengthを指定しているのであれば(S216)、そのHTTP通信で送信されるHTTPメッセージのサイズ情報をその値から取得することができる。そこで、当該TCPセッションについて、その取得されたサイズ情報の値の分だけデータが転送される間は、そのウェブサーバ13との通信は、既に規制対象ではないとのフィルタリングを通過したアドレスとの通信であることが確約できるため、そのHTTPメッセージのサイズ情報分だけの通信については、ファストパスで処理するようにTCP層パケット処理部22へ通知する転送量通知機能31を実行する(S221)。
上記サイズ情報を取得したTCP層パケット処理部は、その上記サイズ情報から、転送されるHTTPメッセージのシーケンス番号の上限値を計算して、その上限値以下のシーケンス番号でありファストパスの対象となるファストパス条件をファストパス判断テーブル27へ設定する第一ファストパス登録機能32を実行する(S222)。シーケンス番号は、セッションの開始に基準値が定まり、それから通信するパケットごとに、それまでに送信したデータ量と同じだけ加算されていく。従って、そのHTTPメッセージを構成する一連のパケットのうち、最後のパケットのシーケンス番号は、元の基準値(又は一つ前のHTTPメッセージ送信完了時の値)に上位機のサイズ情報を加算した値を超えることはない。より具体的には、最後のパケットは、パケットの最大設定値だけのデータを送信できるので、そのHTTPメッセージを含む最後のパケットのシーケンス番号は、「(当該HTTPメッセージの開始時点でのシーケンス番号+上記サイズ情報(Content−Lengthの値)−URLフィルタリング装置のMRU(Maximum Transmission Unit)」以下となる。よって、この上限値以下のシーケンス番号であるパケットは、既にURLフィルタリングを通過した規制対象ではないファイルの送信であるということになる。そして、シーケンス番号は、TCPヘッダに含まれる情報であるため、ヘッダだけを見れば、それが上記の上限値以下であるか判断できるため、ファストパスで処理することができる。従って、そのシーケンス番号の条件を、上記ファストパス判断テーブル27に記載しておくことで、その条件との対比でファストパス処理が可能かどうか判断できるということになる。
上記のファストパス判断テーブル27の例を図6に示す。ファストパスで処理すると判断されたセッションごとに一つのレコードを形成する。すなわち、IPヘッダに記録される送信元アドレスと宛先アドレスとともに、プロトコルの種別、そしてTCPヘッダに記録される送信元ポート番号、宛先ポート番号と、シーケンス番号とを記録している。このうち、宛先ポート番号までは、従来ファストパスを実行するか否かの判断で用いられてきた要素であり、シーケンス番号の項目を設けたことがこの発明の特徴である。シーケンス番号の項目は、データがある場合とnullの場合があり、第一ファストパス登録機能32で登録された場合にはシーケンス番号として上記上限値が入り、第二ファストパス登録機能34で登録された場合にはnullが入る。
一方、データ長判定機能77を実行しても、Content−Lengthが指定されていない場合は上記の通知ができないため、当該HTTPメッセージの終わりまで通常の転送処理を行うことになる(図3:S161→S171、図4:S218→S217)。当該HTTPメッセージの受信が全て終わったら、持続するTCPセッションにおいて、同じウェブサーバ13に対して次のHTTP要求を出すことになる(図3:S172→S111、図4:S218→S115)。
これら(S123、S222)の設定A,Bに示すファストパス登録がされたら、そのTCPセッションのそれ以後のパケットは、ファストパス判断テーブル27の条件を満たす限り、パケット転送処理部21のファストパス判断機能33が、ファストパスしてよいものと判断して、URLフィルタリング装置11のCPUに搭載されたファストパス機能を利用して、高速な転送処理を行う(162)。
この転送処理の実際のフローについて、図7を用いて説明する(S311)。TCPパケットを受信したら(S312)、パケット転送処理部21のファストパス判断機能33は、そのパケットのヘッダだけを見て、ファストパス判断テーブル27を参照し、当該セッションの送信元IPアドレス、宛先IPアドレス、送信元ポート番号、宛先ポート番号の全ての条件と一致するものがあるか否か検索する。すなわち、図6の左から5項目分が一致するものがあるか否かを調べることで、ファストパス中継対象のTCPセッションであるか否かを判断する(S313)。該当するレコードがなければ、パケット転送処理部21は、TCP層パケット処理部22へパケットを送信して、通常のルーティング機能41により、スローパス中継する(S314)。該当するレコードがあれば(S313)、まず、そのレコードのシーケンス番号を見て、nullか否か判断する(S315)。すなわち、当該セッションのパケットは、全て転送対象となる第二ファストパス登録機能34により登録された「設定A」のセッションであれば、当該セッションのパケットは全てファストパスで行う(S317)。一方、そのレコードのシーケンス番号に上記上限値が記録されていれば、判断するTCPパケットのシーケンス番号が、上記最大値以下であるか否か判断する(S316)。最大値以下であればファストパスの対象であり(S317)、最大値を超えていれば、同一TCPセッションでも、別のアドレスへのアクセスであるため、ファストパスは行わない(S314)。
なお、上記のファストパスの登録が、上記の第二ファストパス登録機能34による設定Aである場合は(S163)、そのファストパスによる通信が終わったところで当該セッションが終了する(S164)。一方、第一ファストパス登録機能による設定Bである場合には(S163)、HTTPメッセージが終わり、送られてきたパケットのシーケンス番号が上記上限値を超えて上記「設定B」のファストパス中継が終わってもセッションは続き、次のHTTPメッセージをパケットとして受け取るので、最初からフローを開始する(S165→S111)。このとき、HTTP構文解析処理部では、図4中Xの項目からフローを開始する(S219→S217)。
11 URLフィルタリング装置
12 ユーザ端末
13 ウェブサーバ
14 セキュリティサーバ
21 パケット転送処理部
22 TCP層パケット処理部
23 HTTP構文解析処理部
24 要求アドレス通過判定処理部
25 HTTP応答作成処理部
26 TCP終端処理部
27 ファストパス判断テーブル
30 キャッシュ
31 転送量通知機能
32 第一ファストパス登録機能
33 ファストパス判断機能
34 第二ファストパス登録機能
41 ルーティング機能
42 ファストパス機能
45 HTTP通信機能
46 セッションパケット抽出機能
51 アップパケット経路
52 ダウンパケット経路
53 アップパケット終端経路
54 ダウンパケット終端経路
62 開始パケット経過機能
63 ペイロード抽出機能
64 ペイロード転送機能
65 パケット返送機能
70 キャッシュ問合機能
71 HTTP判別機能
72 ファストパス通達機能
73 判定要求機能
74 バージョン判定機能
75 コネクション判定機能
76 転送エンコーディング判定機能
77 データ長判定機能
81 接続可否問合機能
82 接続可否返答機能
83 拒否対応指示機能
84 許可対応指示機能
86 拒否対応指示機能
91 メッセージ生成機能
92 終端処理指示機能
93 経路終端変更機能
94 アクセス拒否通知機能
95 端末切断機能
96 サーバ切断機能
97 キャッシュ記録機能
98 終端処理指示機能

Claims (4)

  1. ユーザ端末とウェブサーバとのHTTPプロトコルを用いた通信に対してURLフィルタリングを行う、ファストパス機能を有するURLフィルタリング装置であって、
    上記ユーザ端末と上記ウェブサーバとの間で送受信されるパケットを中継するパケット転送処理部と、
    パケット転送処理部を通過するTCPパケットのヘッダ部分を読み取りTCP層の処理を行うTCP層パケット処理部と、
    上記TCPパケットのデータ部分に含まれるHTTP構文を読み取り解析を行うHTTP構文解析処理部と、
    上記の解析されたHTTP構文に含まれるURLへのアクセスを通過させるか否かを判定処理する要求アドレス通過判定処理部と、
    上記ファストパス機能によってファストパスを行うか否かの条件を一時的に保持するファストパス判断テーブルと
    を備えており、
    上記HTTP構文解析処理部は、受信完了したHTTPヘッダ部でHTTPメッセージのサイズ情報を取得した際には、上記TCP層パケット処理部に対してHTTPメッセージのサイズ情報を通知する転送量通知機能を実行し、
    上記サイズ情報を取得したTCP層パケット処理部は、その上記サイズ情報から、転送されるHTTPメッセージのシーケンス番号の上限値を計算して、その上限値以下のシーケンス番号でありファストパスの対象となるファストパス条件を上記ファストパス判断テーブルへ設定する第一ファストパス登録機能を実行し、
    上記パケット転送処理部は、受信したパケットについて上記ファストパス判断テーブルのファストパス条件に合致するパケットをファストパスさせるファストパス判断機能を実行するURLフィルタリング装置。
  2. ユーザ端末とウェブサーバとのHTTPプロトコルを用いた通信に対してURLフィルタリングを行う、ファストパス機能を有するURLフィルタリング装置であって、
    上記ユーザ端末と上記ウェブサーバとの間で送受信されるパケットを中継するパケット転送処理部と、
    パケット転送処理部を通過するTCPパケットのヘッダ部分を読み取りTCP層の処理を行うTCP層パケット処理部と、
    上記TCPパケットのデータ部分に含まれるHTTP構文を読み取り解析を行うHTTP構文解析処理部と、
    上記の解析されたHTTP構文に含まれるURLへのアクセスを通過させるか否かを判定処理する要求アドレス通過判定処理部と、
    上記ファストパス機能によってファストパスを行うか否かの条件を一時的に保持するファストパス判断テーブルと
    を備えており、
    一のTCPセッションに対して、
    上記HTTP構文解析処理部は、受信したHTTPヘッダ部のHTTPバージョンが1.0であるか、又はHTTPヘッダ部のConnectionにCloseが指定されている際には、上記TCP層パケット処理部に対して、同一TCPセッションの全パケットをファストパス通過対象とする通知をするファストパス通達機能を実行し、
    上記の通過対象とする通知を受けたTCPパケット処理部は、上記同一TCPセッションの全パケットをファストパスの対象とするファストパス条件を上記ファストパス判断テーブルに設定する第二ファストパス登録機能を実行し、
    上記パケット転送処理部は、受信したパケットについて上記ファストパス判断テーブルのファストパス条件に合致するパケットをファストパスさせるファストパス判断機能を実行するURLフィルタリング装置。
  3. 上記HTTP構文解析処理部は、受信したHTTPヘッダ部のHTTPバージョンが1.0であるか、又はHTTPヘッダ部のConnectionにCloseが指定されている際には、上記TCP層パケット処理部に対して、同一TCPセッションの全パケットをファストパス通過対象とする通知をするファストパス通達機能を実行し、
    上記の通過対象とする通知を受けたTCPパケット処理部は、上記同一TCPセッションの全パケットをファストパスの対象とするファストパス条件を上記ファストパス判断テーブルに設定する第二ファストパス登録機能を実行する、
    請求項1に記載のURLフィルタリング装置。
  4. 上記HTTP構文解析処理部は、
    HTTPヘッダ部にTransfer−Encodingが指定されており、その指定がidentityで無い場合には、上記転送量通知機能を実行させないものとする、
    請求項1又は3に記載のURLフィルタリング装置。
JP2012054285A 2012-03-12 2012-03-12 パケット転送装置 Active JP5749673B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012054285A JP5749673B2 (ja) 2012-03-12 2012-03-12 パケット転送装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012054285A JP5749673B2 (ja) 2012-03-12 2012-03-12 パケット転送装置

Publications (2)

Publication Number Publication Date
JP2013186873A JP2013186873A (ja) 2013-09-19
JP5749673B2 true JP5749673B2 (ja) 2015-07-15

Family

ID=49388195

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012054285A Active JP5749673B2 (ja) 2012-03-12 2012-03-12 パケット転送装置

Country Status (1)

Country Link
JP (1) JP5749673B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106100839B (zh) * 2016-08-16 2019-05-10 电子科技大学 一种基于tcp数据包和自定义算法的网络通信安全方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4976121B2 (ja) * 2006-12-19 2012-07-18 株式会社エヌ・ティ・ティ・ドコモ 移動通信ネットワークシステム及びサーバ装置
JP5219903B2 (ja) * 2009-04-01 2013-06-26 三菱電機株式会社 Urlフィルタリング装置およびurlフィルタリング方法
JP2011114391A (ja) * 2009-11-24 2011-06-09 Oki Networks Co Ltd パケット処理装置及びネットワークシステム

Also Published As

Publication number Publication date
JP2013186873A (ja) 2013-09-19

Similar Documents

Publication Publication Date Title
US9118717B2 (en) Delayed network protocol proxy for packet inspection in a network
KR101567386B1 (ko) 콘텐츠 라우터 기반의 인터넷 프로토콜을 위한 방법 및 장치
US10498736B2 (en) Third party program integrity and integration control in web based applications
US7990847B1 (en) Method and system for managing servers in a server cluster
RU2560819C2 (ru) Способ, устройство и система для перенаправления данных в системе связи
JP5645269B2 (ja) ネットワークシステム
WO2012006885A1 (zh) 代理网关防病毒实现方法,预分类器和代理网关
US9602469B2 (en) Method and apparatus for optimizing hypertext transfer protocol (“HTTP”) uniform resource locator (“URL”) filtering service
CN112104744B (zh) 流量代理方法、服务器及存储介质
EP3155788B1 (en) Proxy node for transferring packets between a server and a client using port sharding
US9787770B2 (en) Communication system utilizing HTTP
US10044624B2 (en) Network traffic management using stream-specific QoS bits
US7564848B2 (en) Method for the establishing of connections in a communication system
US8539099B2 (en) Method for providing on-path content distribution
Liu et al. Can HTTP/2 really help Web performance on smartphones?
JP4818365B2 (ja) 直列クラスタリング
JP5749673B2 (ja) パケット転送装置
JP5764511B2 (ja) Urlフィルタリング装置
US9848050B2 (en) Information processing device for packet and header inspection
US11223567B2 (en) Transmission control protocol session mobility
JP6184381B2 (ja) 暗号化されたデータフローを分類する方法および装置、コンピュータプログラム、ならびに情報記憶手段
KR20190074002A (ko) Tls/ssl 통신에서 도메인 정보를 이용하는 바이패스 처리 장치 및 그 방법
JP2014236423A (ja) 通信装置、通信方法、通信プログラムおよび通信システム
Abujoda et al. Invariant Preserving Middlebox Traversal

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140811

RD13 Notification of appointment of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7433

Effective date: 20140811

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150415

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150514

R150 Certificate of patent or registration of utility model

Ref document number: 5749673

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250