JP2008042892A - ネットワーク監視システムとその動作方法 - Google Patents
ネットワーク監視システムとその動作方法 Download PDFInfo
- Publication number
- JP2008042892A JP2008042892A JP2007165587A JP2007165587A JP2008042892A JP 2008042892 A JP2008042892 A JP 2008042892A JP 2007165587 A JP2007165587 A JP 2007165587A JP 2007165587 A JP2007165587 A JP 2007165587A JP 2008042892 A JP2008042892 A JP 2008042892A
- Authority
- JP
- Japan
- Prior art keywords
- packet
- session
- data
- protocol
- kamal
- 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
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/18—Protocol analysers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
【解決手段】ハードウェアベースのネットワーク監視システムとする。該システムは、パケット処理エンジン及び/またはセッションレベル解析のためのアプリケーション層プロセッサを有する。そのパケットエンジンは、(a)パケットをスニフしてトラフィックを解析するネットワークプロセッサと、(b)パケット処理のためのコアエンジンであって、プロトコルレベルとアプリケーションレベルとにおいてプロトコル解析データを構成するためにプロトコルを抽出する手段と、パケットのプロトコルベースの解析手段とを有するコアエンジンとを有するパケット処理エンジンを有する。また、アプリケーション層プロセッサは、(a)すべてのセッションを抽出し、セッションデータを構成する手段と、(b)パケットセッションベースを解析する手段とを有する。
【選択図】図13
Description
(i)パケット処理エンジンであって、
(a)パケットをスニフしてトラフィックを解析するネットワークプロセッサと、
(b)パケット処理のためのコアエンジンであって、
・プロトコルレベルとアプリケーションレベルとにおいてプロトコル解析データを構成するためにプロトコルを抽出する手段と、
・前記パケットのプロトコルベースの解析手段を有するコアエンジンとを有するパケット処理エンジン、及び/または、
(ii)セッションレベル解析のためのアプリケーション層プロセッサであって、
(a)すべてのセッションを抽出し、セッションデータを構成する手段と、
(b)前記パケットセッションベース解析をする手段を有するアプリケーション層プロセッサとを有する。
a.パケットをスニフする段階と、
b.フラグメンテーションと再組立のために前記スニフされたパケットをチェックする段階と、
c.前記チェックされたパケットのプロトコルを解析する段階と、
d.前記解析されたパケットをホストメモリに保存する段階と、
e.前記保存されたパケットからセッションを生成する段階と、
f.前記セッションを解析して分離する段階と、
g.前記分離したセッションを前記ホストメモリにアップロードする段階とを有する。
下記に本発明の具体化されたものを列記する。
・ネットワークプロセッサがPCI(Peripheral Component Interface)を使って主要システムに付加されたこと。
・ネットワークプロセッサによってPCIのマスターとスレーブの役割を努めるように設定されること。
・パケット処理エンジンはシステムにおけるルックアップテーブル(lookup table)を使い自由に選択することが出来るコンテントアドレサブルメモリ(Content Addressable Memory)を持っている。
・パケット処理エンジンが中核となるネットワークでリアルタイムIPデータ分析情報を提供するリアルタイムの処理能力を持っている。
・ネットワークプロセッサがRDRAM(Rambus dual rate random access memory)のチャネンルをコントロールするためのコントローラを持っている。
・ネットワークプロセッサが4チャネンルのためのQDR(Quad data rate)スタティックなランダムアクセスメモリコントローラ(random access memory controller)を持っている。
・ネットワークプロセッサの4番目のチャネンルは選択が自由なTCAM(Ternary Content Addressable Memory)プロセッサに付くQDRへ合図する動作を助ける。
・ネットワークプロセッサがスイッチを通して來入するネットワーク内のパケットを常にスニフ(sniff)し、そしてその逆も同様に行う。
・ネットワークプロセッサは媒体とスイッチ構造のインターフェイスを使ってポート(port)に接続する。
・中核となる該エンジンの8/12のマイクロエンジンとARMコアエンジンから構成されている。
・ネットワークプロセッサの周波数はオンチップフェーズロックループ(on−chip Phase lock loop)によって生成される。
・UART(Universal Asynchronous Receiver Transmitter)が該パケット処理エンジンのデバッギング(debugging)目的と開発のために使用される。
・ネットワークプロセッサはバスインターフェイス(Bus interface)を使ってUARTに付けられる。
・類似のデータベースが他のアプリケーションプロトコルを使ったセッションのために構築される。
・セッションレベル分析は、ボード(基板)上のメモリが十分ではない場合に自動的にホストメモリを使う。
・PCIインターフェイスを使ったホスシステムに付けられたセッションレベルアナライザインターフェイスである。
・マイクロエンジンがTCP(Transmission Control Protocol)、UDP(User Data Protocol)、HTTP (Hyper Text Transfer Protocol)、SMTP/POP3(Simple Mail Transfer Protocol/Post Office Protocol 3) 、RTP(Real−Time Transport Protocol)、SIP (Session Initiation Protocol)、H.323 (real−time voice and video conferencing over packet networks)、 VoIP(Voice over Internet Protocol)、ICMP(Internet Control Message Protocol)、Telnet、FTP(File Transfer Protocol) 、DNS(Domain Name System) 等のパケットの解析を可能にすることである。
・ネットワークデータトラフィックを監視する方法として、該方法を構成している手順であると言いました、パケットをスニフ(sniff)して、フラグメント(fragmentation)するためにスニフした後のパケットを確認して再び組み立てる、そしてプロトコルのために確認後のパケットを分析する、そしてホストメモリに分析されたパケットを保管する、そして該保管パケットからセッションをつくる、そして分析して、該分析の結果でセッションに分けられる、そして該ホストメモリに分けられたセッションとしてアップロードされる。
・パケット処理を全二重で行う。
・パケットはフラグメントされてそして該パケットの身分を確認する場所を使ってデフラグメント(de−fragment)される。
・ソースIP(Source IP)、デスティネーションIP(Destination IP)、プロトコルフィールド(Protocol field)、データロード(data load)、パケットカウンタ(packet counter)、パケットサイズ(packet size)、タイムスタンプ (time stamp)、ソースMACアドレス(Source MAC Address)、デスティネーションMACアドレス(Destination MAC Address)、ソースポート(source port)、デスティネーションポート(destination port)、TCPコントロールフラグ( TCP control flags)、TCPタイプサービス(TCP type of service)を使ってパケットを分析している。
・データベースを更新する、そしてタイムスタンプを付けてホストメモリにアップロードする。
・ホストシステムのメモリは該基板上のメモリあるいは該システムのハードディスクの双方である。
・TCP(Transmission Control Protocol)、UDP (User Data Protocol)、HTTP(Hyper Text Transfer Protocol)、SMTP/POP3(Simple Mail Transfer Protocol/Post Office Protocol 3)、
RTP(Real−Time Transport Protocol)、SIP (Session Initiation Protocol)、H.323(real−time voice and video conferencing over packet networks)、VoIP(Voice over Internet Protocol)、ICMP(Internet Control Message Protocol)、Telnet、FTP(File Transfer Protocol) 、DNS(Domain Name System)から構成されている群れから選択されたプロトコルに対応したパケットに分ける。
・HTTP(Hyper Text Transfer Protocol)は、要求方法、ウエッブサイト名、URL、コンテントタイプ(content type)をセッションの開始と終了のタイムスタンプから分けて構成されて抽出された情報とともに分離される。
・SMTP/POP3セッションはユーザー名、パスワード、送られてきた先(from)、送られる先(to)、主題、添付ファイル等の抽出された情報と一緒に分けられる。
・“キープアライブ”(keep alive)パラメータといっしょにネットワークトラフィックは単一セッションとして処理され、そして多数のセッションは別個のセッションとして扱われる。
・検索、集約、図とテーブルを示すことを助けするためのファイルのインデックスを付けることそしてクエリ/クエリスクリプト/言語の作業を助けるためのファイルのインデックスを付けることを行う。
・セッションは該システムのインデックスファイル(index file)とデータファイル(date file)と呼ばれる2つの部分で保管される。
・インデックスファイルが固定長レコードで出来ていると言いました、データファイル内のネットワークから入ってきたオリジナルパケットデータ(raw packet data)が記録する通信のためのポインターからだけで出来ており、ネットワークから入来するオリジナルパケットデータから出来ているわけではない。
・該データファイルは可変長レコードから出来ている、そして可変長であるネットワークから入来する実際のオリジナルパケットデータを含む。
・上記の処理方法としてプロトコルとセッションレベルと両方のプロトコルにおいてパケット分析を実行する。
・処理方法はコンテントマッチ(content match)とフィルター基準を基本としたパケットの集合体を提供する。
・処理方法はハードウェアレベルにおいてオンザフライ(on the fly)基準を実施する。本発明の他の具体化は、パケットフラグメント(fragment)のデフラグメント(de−fragment)を実施して再度組み立てられたパケットとしてパケットの分析を行う。
・不完全なセッションは利用可能な範囲で利用して、それぞれのパケットとすべてのパケットが確実に利用できるようにする。
・当該方法はネットワークのトラフィックの起源を追跡する。
・トラフィックの起源はMACアドレスのソースとセッションの送り先を使って識別される、セッションの開始及び終了時刻、そして一意的タグ(unique tag)は処理エンジンとアプリケーション層プロセッサボードに割り当てられた。
・パケットの分析はマイクロエンジンのアーキテクチャによって実行される。
・マイクロエンジンのアーキテクチャに統合されたパイプライン方式の特徴を可能にする。
・パケットの正当性を返すこととコントロールプログラムに対するフラグメント処理はマイクロエンジンによって実施される。
・パケット処理エンジンボード(以降同じくKAMALと称される)は強力な全二重のパケットを処理するエンジンである、インテルのIXPシリーズネットワークプロセッサはネットワークプロトコル分析をするために構成することが出来る、そしてユーザー定義に基づいたフィルター基準に従ってパケットの集合体をつくる、そしてリアルタイム(real−time)で100Mbpsあるいは1Gbpsまたは100Mbpsと1Gbpsの両方のモードでアプリケーション層の分析を行う。
プロトコルレベルとアプリケーションレベルにおいてリアルタイムに起きる、そして該システムは特にネットワークセキュリティのような敏感なアプリケーションと広範囲なLAN/WAN環境を超えたネットワーク上でパケットをスニフ(sniff)することを要求されるネット監視とそれぞれのパケットとすべてのパケットはそれぞれのアプリケーションとすべてのアプリケーションと同じように種々のフィールドに展開することが出来る。
パケット処理エンジンの特徴
1.1Gbps までのリアルタイムギガビットネットワークトラフィックをサポートする。 効率的なリソースを使うためにサポートされた最大の稼動スピードは100Mbps/1Gbpsで実行することが出来る。
2.完全にパケットの再度組み立てを行う。
3.ユーザーによりフィルター基準を定義した該内容と同じ集合体。該フィルター基準はパケット内の正しいパラメータと一致することに基づいている。例えば、IPアドレス、ポート番号等のようにパケット内にあるように。
4.音声、ビデオとオーディオデータのためのペイロードタイプを含む内容分析。
5.IP(Internet Protocol)の設定範囲: ビットマスキング(bit masking)をフィルター基準として使用してIPの 範囲を指定することが可能である、例えば192.168.1.64から192.168.1.127。
6.タイムスタンプ(time stamp):時間−分−秒−ミリセカンド−マイクロセカンドを使ってのそれぞれの IP パケットのためのタイムスタンプ。
7.プロトコル(protocols)− KAMALは次のプロトコルの解析を可能にする:TCP、UDP、HTTP、SMTP/POP3、RTP、SIP、H.323、VoIP、ICMP、Telnet、FTP 、DNS 。
8. PCIインターフェイスのボード(基板)に対する要求。
9.定義されたフィルターのためにそして、動的にどんなプラットホーム(Windows(登録商標)又はLinux)上でもコンフィギュレーションパラメータ(configuration parameters)のためのGUIインターフェイスの開発用にC言語を呼び出すことが可能な機能。
パケット処理エンジンは、強力な全二重で動作するアプリケーションレベルネットワーク処理エンジンである、インテルのIXPシリーズネットワークプロセッサの周りに構築されてそしてリアルタイムで100Mbpsと1Gbpsモードの両方あるいは100Mbps と1Gbpsモードのアプリケーション層の分析が出来る。
図13にあるように例として、ネットワーク10を含むローカルエリアネットワーク(LAN)21と22に複数のパーソナルコンピュータ、ワークステーションと、あるいはサーバーのそれぞれが接続している。LAN22は事実上のLANを含む。LAN21と22はスイッチングハブ25と直接的に接続している(LAN21の場合には)、そしてローカルHUB24(LAN22の場合には)に間接的に接続している。LAN21と22は正当に評価されて、LAN21、22はスイチングHUB25と無線接続されている。スイッチングHUB25はLAN内の機器からはあらゆる非認証されたパーティーには接続ルーター28を通ってファイアウォール27に接続することが出来る。LAN21と22の範囲にあるパーソナルコンピュータと、あるいはワークステーションのユーザーは、インターネットからルーター28を通って接続出来る能力を持っている。
KAMAL30によってパケットとGULAB50により再度構成されパケットは図13に見られる通りに該ホストメモリ40に保管されるためにアップロードされる、そして該処理は正当に評価されるKAMAL30により取り込まれたパケットとGULAB50 によって再構築されたパケットが サーバー70でそして/あるいはから供給された異なったホストメモリでアップロードされる(保管)ことが理解される。
セッションアナライザの特徴
1.すべてのセッションの抽出とセッションデータの構築を行うことが出来る。
2.不完全なセッションがそれぞれのパケットとすべてのパケットが確実に実施することが出来るように利用可能な程度に同じくコンパイルされる。
3.HTTP(Hyper Text Transfer Protocol)は、要求方法、ウエッブサイト名、URL、コンテントタイプ(content type)をセッションの開始と終了のタイムスタンプから分けられて、構成されて抽出された情報とともに分離される。
4.POP3/SMTPは、”user name” “password” “from” “ to” “subject” attached file namw/s”のような情報から組み立てられている。
5. 類似したデータベースはその他のアプリケーションプロトコルのために組み立てられる。
6.“キープアライブ”(Keep alive)”と多数のセッションは適切に処理される。
7.KAMALから抽出されたすべてのパラメータと同じくソースIP(source IP)、デスティネーションIP(destination IP)、MACアドレス(MAC address)、ソースポート(source port)、デスティネーションポート(destination port)等も有用な情報として抽出されて使用される。
8.検索、ソート、集約、グラフとチャートのテーブルの表示の手助けをするためにファイルにインデックスを付けることを行うそして該インデックスを付けたことが、クエリ/クエリスクリプト/言語等のサポートをする。
イントロダクション
該書類はKAMALハードウェアデザインについて要約したものである。それはKAMALの機能について要約記述を持ったシステム概要とハードウェアブロック図を持っている仕様とソフトウェアフローチャートを含む。
システムの概要
この分野のKAMALと一緒のすべてのシステムは図2で例証される。
KAMALは2つの独立した10/100/1000ベースTAP(test point)によってネットワークと接続されているそしてそれは順番にトラフィックが分析される必要があるネットワークサブシステムに接続している。KAMALはイーサネット(登録商標)パケット(Ethernet(登録商標) packet)を集めてアルゴリズムによりPCIインターフェイスを経由してホストメモリにアップロードされてテーブル内に結果を保管する。KAMALはKAMALの代わりとなるホスト上でWindows(登録商標)/Linux OSベースの環境で動作するGUI(Graphical User Interface)を使ってコントロールすることが出来る。本発明の目的で、KAMALはWindows(登録商標)環境でPC(Personal Computer)によりコントロールされる。KAMALはPCI インターフェイスを使って主装置に付けられるインテルの IXP2400/IXP2800ネットワークプロセッサをベースとしたギガビットネットワークの監視装置である。当該ギガビットネットワークの監視装置は、ルーターから LANまでにくるネットワーク内のパケットをスニフして、そして必要条件に従ってトラフィックを分析する。KAMALの動作はGUIを使って構成することが出来る。すべての集められたデータと解析されたデータはアプリケーションによってあらゆる処理をするために確かなファイル形式にされてPCIインターフェイスを使ってホストメモリにアップロードされる。
システム構成
次のブロック図は仕様を理解するためのシステムのハイレベルの流れを示す。
図3:KAMAL:機能的なブロック図、
図3で、入来パケットはフラグメントされて、そしてRFC791に従ってデフラグメントされる、デフラグメントされたパケットはパケットのプロトコルフィールド(protocol field)とタイムスタンプ(timestamp)を使って分析される。 分析されたデータはホストメモリに保管される。KAMALのハードウェアを使ってリアルタイムにてデータを分析することが上記同様に可能である。これはKAMAL自身の上に適切なハードウェアを実装することによってKAMALがオンザフライ(on the fly)で入来パケットを監視することを意味する。
システムの機能的なブロック図
KAMALの高度なレベルでハードウェアを実現していることが図4に示されている。
当該システムはネットワークに接続する中核となるエンジンにパケットを届ける2ギガビットの PHYポートを持っている。このエンジンはIXP2400/IXP2800、インテルからのアドバンスネットワークプロセッサを使って実行される。該中核エンジンはフラグメントされたパケットのデフラグメンテーションとパケットの解析を行う。図4に示すように分析されたデータはホストメモリにパケットとともにPCIインターフェイスを使って保管される。
機能的な要求仕様:
KAMALのサポートされている特徴
・100Mbps/1Gbps以上の全二重のリアルタイムネットワークトラフィックをサポートしている。
・パケットの完全デフラグメンテーションを行う。
・プロトコルの集合体モジュールを形成している。
・音声、ビデオ、オーディオのためのペイロードタイプ(PAYLOAD TYPE)を持っている内容分析を行う。
・リアルタイム能力:KAMALは核となるネットワークでリアルタイムIPデータ分析情報を提供する。
・オペレーティングシステム:RedHat Linuxがはじめにサポーした。Suse Linux 、Timesys OSのサポートを行う。
・タイムスタンプ:時間−分−秒−ミリセカンド−マイクロセカンドを使ってそれぞれのIPパケットのためのタイムスタンプの付加を行う。
・プロトコル:KAMALは次のプロトコルの分析を可能にしている。
・UDP
・HTTP
・SMTP/POP3
・RTP
・SIP
・H.323
・VoIP
・ICMP
・Telnet
・FTP
・DNS
・KAMALはPCIの要求に対応している。
・Windows(登録商標)あるいはLinuxのようなプラットホームでも動的に定義されたコンフィグレーションパラメータ(configuration parameter)に対してGUIインターフェイス(Graphical User Interface)の開発のためにC言語が呼び出し可能な機能。
・システムインターフェイス
・ハードウェアインターフェイス
インテルの IXP2800 を使っているKAMALのより詳細なブロック図を図5に示す。該ボード(基板)はRAM(random access memory)、フラッシュ(flash)メモリと他のチップのような資産を持っている。該ボードはシステムの開発のためとプロセッサ上のOSと同様にソースコードをロードするために同じく10/100Mbps のイーサネット(登録商標)とUARTポートを持っている。該ボードはシステムのルックアップテーブルとして使うことができるオプションのCAM(content address memory)を持っている。インテルのIXP2400/IXP2800は8/12のマイクロエンジンと1つのARMコアを持っている。パケット処理はマイクロエンジンを使って行われる(1GHz から2.4GHzで使用できる可変クロック)。ARMコアはシステムコントロールのためにLinux OSを持ってそして遅いパス機能のために使うことが出来る。インテル IXP2400/IXP2800ネットワークプロセッサは無制限のプログラミングフレキシビリティを提供することによって完全な内容の早い実装を可能にする、そしてコードの再利用と高性能な処理をする。該ネットワークプロセッサはOC−3からOC−192までの通常の広範囲で、基板上のスピードの範囲にたいするサポートを必要とする多種多様なWANとLANアプリケーションをサポートする。高性能でスケーラブルな革新的なマイクロエンジンアーキテクチャを通してソフトウェアにパイプライン方式の特徴を可能にするマルチ−スレッド(multi−threaded)分配キャシュアーキテクチャによって達成される。利用可能な設定された標準的な特徴のほかにIXP2400/IXP2800が2/10Gbit/s.で安全なネットワークトラフィックで機能性を統合する。これは安全なネットワーク装置を事前の設計を可能にして、そして電力消費と、ボードの持つ資産とシリコンへの投資に低い全体的なシステムコストをもたらす結果となる。
■12個の統合化されたマイクロエンジン
・最高1.4GHzで動作
・マイクロエンジン毎に4つあるいは8つのスレッド(threads)に構成可能
・マイクロエンジン毎にローカルメモリの640のDwords
・シングルサイクルルックアップを持ったマイクロエンジン毎に16項目のCAM
・次の隣のバスが隣接したマイクロエンジンにアクセスする
・マイクロエンジン毎のCRCユニット
・マイクロエンジン毎に8Kの命令制御記憶装置
・一般化されたスレドのために合図することをサポート
■統合化されたインテルXScaleコア
・最高700MHzで動作
・高性能なローパワーの32bitエンベデッドRISCプロセッサ
・32Kbyte命令キャッシュ
・32Kbyteデータキャッシュ
■3つのインダストリアル標準RDRAMインターフェイス
・2.1Gbyte/sのピークバンド幅
・800MHzそして1066MHz のRDRAM
・エラー訂正コード(ECC)
・インテルXScaleコア、マイクルエンジン、そしてPCIからのアドレスができる
■インダストリアル標準な32ビットQDRSRAMインターフェイス用に
・1.9Gbyte/チャンネル毎
・最高233MHzまでのSRAM
・リンクリストとリングオペレーションに対するハードウェアサポート
・アトミックビットオペレーション
・アトミックアリスマティックをサポート
・ インンテルXScaleコア、マイクロエンジンそしてPCIからのアドレスできる
■統合化されたメディアスイッチ構造インターフェイス
・ユニダイレクショナル16buildsデータインターフェイス
・チャンネル毎に最高500MHz
・SPI−4あるいはCSIXプロトコルのために別に構成可能
■インダストリアル標準PCIバス
・PCIローカルバス仕様、64bit 66MHzのI/O用バージョン2.2インターフェイス
■追加の統合化された特徴
・ハードウェアハッシュユニット(48、64、と128ビット)
・16Kbyteのスクラッチパッドメモリ
・デバッギングのためのシルアルUART ポート
・8本の多目的 I/O ピン
・4の32bitタイマー
■1356のボールFCBGA パッケージ
・37.5mm x 37.5mm寸法
・1mm半田付けボールピッチ
IXP2400/IXP2800オペレーションフリケンシィとKAMALのためのインターフェイスのバス幅はまだ完了されるはずである。
RDRAM
インテルIXP2800 ネットワークプロセッサは3つのRambusDRAM(RDRAM)チャネルのためにコントローラを持っている。コントローラのそれぞれが独立してそれ自身のRDRAMにアクセスしてそして同時に他のコントローラ(すなわちそれらは1つのより広いメモリとして稼働していません)で動作することが出来る。DRAMが高密度の、高いバンド幅ストレッジを供給して、そしてしばしばデータバッファのために使われる。64、128、256そして512MBのDRAMサイズ、そして1GBが支援される。しかしながらKAMALはチャネンル毎に最高256MBのRDRAMを使用するかも知れない。
QRDSRAMとTCAM
IXP2800が4チャネルのために4つの独立したSRAMコントローラを持っている。 それぞれのチャネルが最高64MbyteのSRAMをサポートする。イングレスネットワークプロセッサの4番目のチャネルは同じく合図してQDRに付着するオプションのターナリコンテントアドレスメモリ(Ternary Content Address Memory)コプロセッサをサポートする。 もしアプリケーションがそれらを使う必要がないならどれかあるいはすべてのコントローラがそこに居ることがないままにしておくことが出来る。SRAMはマイクロエンジン、インテルXScaleコアとPCIユニット(外部のバスマスタとDMA)によりアクセス可能である。
フラッシュメモリシステムで使われたフラッシュメモリはIXP2400/IXP2800 の遅いポートを利用する。遅いポートは8bit非同期データバス以外の何ものでもない。フラッシュメモリは16MBサイズであろう。
PCI インターフェイス
PCIコントローラは64bit、66MHz有能なPCIローカルバス仕様、インテルIXP2400/IXP2800へのバージョン2.2のインターフェイスを提供する。 それは32bitの、そして/あるいは33MHz の PCIコントロ−ラに同じく互換性がある。 PCIコントローラは次の機能を提供する:
・目標アクセス(SRAM、DRAMとCSRsへの外部バスマスターアクセス)
・マスターアクセス(マイクロエンジンがPCIターゲットデバイスのアクセスをするかあるいはインテルXScale コア)
・2 DMAチャネッル
・PCI 調停者
ネットワークプロセッサはそれが PCI リセットシグナルを提供するところあるいはADD−In装置としてそれが PCIリセットシグナルをチップリセットとして使用するPCIの中心的な機能(独立したシステムとして使うために)の役を務めるように設定することが出来る。
PHYインターフェイス
図5に示されるようにメディアとスイッチ構成(MSF)インターフェイスはインテルIXP2400/IXP2800ネットワークプロセッサを物理層装置(PHY)と接続する。
UARTと10/100Mbpsのイーサネット(登録商標)
これらのインターフェイスは開発段階にフィールドオペレーション上と同様にKAMALの開発とデバッギング目的の用途で使用出来る。 UARTはRS−232標準。
クロックモジュール
IXP2400/IXP2800ネットワークプロセッサに関する速い周波数は選択可能な乗数によってリファレンス周波数を増やすPLL がボード(基板)上のLVDS 発振器によって提供した on−chip(周波数100MHz)によって生成される。 乗数限界は16と48の間の倍数である、それで PLL は(100MHzの参考周波数で)1.6GHz から4.8GHzのクロックを生成することが出来る。
パワーモジュール
パワーモジュールがホストシステムからPCIバスから3.3vのリファレンスパワーをとるそして適当なパワーコンバーターとレギレータをシステムに異なったモジュールとチップセットのための異なった電圧のセットを得るために使用する。
ソフトウェアインターフェイス
図6に示されるようにソフトウェアスタック(software stack)はマイクロエンジンを通して入ってくるイーサネット(登録商標)フレームを処理する。すべてのパケット処理と分析は同じくマイクロエンジンによって実施される。IXP2400/IXP2800(ARMプロセッサ)コアは組み込みがたLinux OSを持っている。これは全部のインターフェイスと入出力関連のタスクとそれらのデバイス・ドライバを処理する。OSは同じくホストインターフェイスとGUI関連のタスクを処理する。パケットがプロセッサに入って来る途端にそれは分解されるかあるいは、必要とされるようにデフラグメントされてマイクロエンジンにおいて分析されてそして次にXScaleコアに転送される。XScaleはホストメモリにPCIインターフェイスを経由してすべての適切なデータを転送してそして保管する。図7に示すKAMALのための基本的なソフトウェアフローチャート。
基本的なアルゴリズム:
1.ネットワークインターフェイスからパケットを取り込むためにパケットをスニフ(sniff)する。
2.フラグメンテーションビト(fragmentation bit)の部分を調べる。 もし調べて該フラグメンテーションビトがセットされることが出来るならすべてのフラグメントされたパケットを集めて、該システム内の身元確認場所を使ってデフラグメントする。 それから第4番目ステップに進む。
3.もしデフラグメントビット(fragmentation bit)が設定されなければ第4番目ステップに進む。
4.ソース IP(source IP) 、デスティネーションIP(destination IP) プロトコルフィールド(protocol field)、データロード(data load)を使っているパケットを分析する。
5.データベースを更新してタイムスタンプを付けてホストシステムメモリに更新したデータベースをアップロードして、そして同じくパケットを該ホストメモリに保管する。
アップロードする必要が示されたファイルのマトリックス、
上記のマトリックスはどんな入力ででも増すことができIPパケットのどんなフィールドにでも属する。
例えば、
・ソースポート(source port)、デスティネーションポート(destination port)
・TTL(time to live)
・データ長(data length)、等。
GULAB
イントロダクション
GULABはホストシステムとコミュニケーションをするためにPCIインターフェイスを利用するためのボードとして付加された。GULABはKAMALによって処理された後に(例えばホストシステムのメモリ/ハードディスク装置で)ホストシステムに保管されたパケットを受け入れる、そしてパケットのセッションベースの分析を行う。セッションに従ってパケットを分ける、特定のセッションに属するすべてのパケットを編集した後に該パケットはこれらのセッションのそれぞれに分けられてホストにアップロードする。フィールドのシステムは図8に示す。
RDRAMメモリマネージメント
GULABはオプションとして最高3GBまでのボード上のメモリを持っている。図9に示すようRAMは配置されるべきである。当該ボード上のメモリの内で最初の128MBメモリはオペーレションシステム、ソフトウェア、スクラッチデータ等のために利用されるであろう、どのユーザーがアクセスを持たないであろうかにかかわらず。当該基板上のメモリの内で残っている2944MBは種々のセッションの間に配置される。セッションの数とそれぞれのセッションに割り当てられたメモリはユーザーから入力されるそしてセッションベースの分析のための RDRAM はそれに応じて分割されるであろう。
GULAB のオペレーション
PCIインターフェイスのみを持っているホストシステムへの GULABのインターフェイス。 オリジナルパケット(raw packet)がこのPCIインターフェイスを経由してホストから GULABに送られる。
GULABはセッションに基づいてこれらのパケットを分けてPCIインターフェイスを経由してホストに戻って分離したパケットデータを書く。1つのシナリオは、KAMALによってホストにアップロードされたプロトコルによって分析されたパケットは、ホストのハードディスクに保管される。保管された該パケットはハードディスクからホストによってPCIインターフェイスを経由してGULABにアップロードされる。GULABは該パケットが属するセッションに従ってこれらのパケットを分ける。セッションが完全である途端に上記のパケットはセッションレベルにおいて組み立てられたこれらすべてのパケットはタイムスタンプ、オリジネータとパケットカウンタ他のようなセッション情報とともにホストにアップロードされる。 例が下図10に示す。
概要背景
KAMALはギガビットレベルの全二重のパケット処理エンジンである。GULABは典型的にKAMALの出力を使うセッションレベル分析器である。KAMALはKAMALとGULABに変形したものである。
KAMAL1:プロトコルレベルの分析を行う。
KAMAL2:フィルター基準とコンテントマッチ(content match)に基づいて集合体をつくる。
KAMAL 1
概観
図1はパケット処理エンジンソフトウェアの典型的なシナリオを示す。
ソフトウェアの主な部品:
1.ボード上のアプリケーションソフトウェア
a.ネットワークインターフェイス
i.MAC初期化
ii.UART初期化
iii.MACのための動的な構成(もしあるとしたら)
b.パケットプロセッサ
i.IPパケットの立証(IPv4のための)
ii.フラグメントの立証
iii. パケットの再組み立て
iv. プロトコルの分析
v. テーブルを形成する
c.メモリインターフェイス
i. RDRAMメモリマネジャ
ii.SRAMメモリマネジャ
d.ホストインターフェイ
i. 構成
ii. パケットのダウンロード
iii. テーブルのダウンロード
e.デバッグモニターインターフェイス(debug monitor interface)(もし利用可能であれば)
2.ホストソフトウェア
a.PCIデバイス・ドライバー
i.KAMALを見つける
ii. 初期化
iii. システムの日時設定
iv.Time to live設定
v. テーブルダウンロードの間隔の設定
vi.タグを読む
vii.パケットを読む
b.ソケット・インターフェイス
i.ソケットを作る
ii.束ねる
iii.聴き取る
iv. 受け入れる
v. 読み取る
vi. 書き取る
正しいネットワークフォーマット(big endian)。 絶対的に必要とされないなら変換を避けてコーディングスタンダード命名法で必ず区別する。(例えば、すべての小さいエンディアンは le_xxx 名を持つことが出来る)。
マイクロエンジンの並列処理性能を利用する
PCI:PCI の取り扱いは低いレベルで使われるべきである。モジュールは最適化された方法のマルチチャンネルDMA転送、マスターモードデータ転送、割り込みの取り扱いと基本的なデータ転送を含む。
Linuxのエンタープライズ版:PCIドライバとAPI(Application Program Interface) ライブラリモジュールはLinux OSの32と64bitバージュンが使用出来る。
IXP2400/IXP2800チップ上にLinux OSをポーティングする。
Ixf1104MACのためのデバイス・ドライバ
MACプログラミング
idtt用のデバイス・ドライバ
TCAMプログラミング
チップ上のPCIのためのデバイス・ドライバ
ボード上とホストのコミュニケーション
來入するパケットのIXP2400/IXP2800マイクロエンジンレベルでの取り扱い
マイクロエンジンレベルでのPCIの取り扱い
マイクロエンジンレベルでのメモリインターフェイスの取り扱い
オンチップメモリにリソース割り当てを行うためのメモリマネージャ(異なったモジュールからの多数のメモリの同時の接続要求の取り扱い)
マルチスレッド(multi−threading)の使用法、プロセスの同期化、XSCALアーキテクチャとマイクロエンジンの力を利用するためのIXP2400/IXP2800チッププログラミング。
パケットプロセッサ
vii. IPパケッとの立証:
上記のルーチンは最初のマイクロエンジン(ME1.)上で動作する。パケットあるいはフラグメントが受け取られるときは、順番に当該機能を呼び出すixp を中断させます。IPパケットヘッダはIPv4パケットであるかを調べるために検証する。 当該ステータスは主のARMプロセッサに送られる。
viii. フラグメントの立証:
フラグメントビット(fragment bit)が設定されるか確かめる。 確かめた後に、その状況に応じてメモリマネージャに該ステータスを通知する、プロトコル分析、パケット記憶装置とホストへの転送がIXP2400/IXP2800プロセッサの内部で行われなければならない。
KAMALハードウェアを使ってネットワークの監視をするハードウェアソリューション。それ故に、KAMALは平行してIXP2400/IXP2800チップの他の特別な特徴を利用してハードウェアソリューションとして構築される必要がある。
多くのプロセスが真の平行したアーキテクチャ上で動作して共通のリソースを共有しなければならないのでKAMALの発明は一層のハードウェア(VHDL又はVerilog−HDLプラットホーム上で開発する)の解決となる。
ここで示すパケット取り扱いのフロント−エンドとPCIドライバは典型的な例である。伝統的に通話の定められた手順がプロトコルを分析するために順番に定められた手順を呼び出すことができるように、我々はsofからeofまで、そして次に「リターン」から「呼び出し手順」まで1つのパケットを集めるためのソフトウェアを開発することが出来る。しかしながら、当該ハードウェアソリューションとしては、我々がすべての入ってくるquad−octetsは調べる必要がある、そして次のquad−octetsが到着する前に決断しなければならない。当該手順がPCIインターフェイスを持った場合に行なわれる手順である。すべてのKAMALの発明はKAMALがハードウェアプラットホームであると同様に開発を行なうべきである。ソフトウェアで該システムを開発する場合はプログラミングを行なう容易さの範囲にだけでは有効であるが。
KAMALデータアップロードフォーマット
/* KAMAL STRUCTURES */
struct KAMAL_FIXED_HEADER_FORMAT
{
unsigned char KAMAL_ID_STRING[5];
上記が示す当該ボードの認識。常に KAMALのための文字列には“KAMAL”を含んでいる。GULABのためには“GULAB”を含んでいる。
unsigned char KAMAL_VERSION_STRING[2];
上記が示すKAMALバージョン番号。 最新バーションは00番号である。
unsigned char KAMAL_RELEASE_STRING[2];
上記が示すKAMALリリース番号: 最新版は0.9番です(バージョン0.9)
unsigned char KAMAL_PKT_TYPE_IDENTIFIER;
上記が示すレコードタイプ 、
0 = レコードはプロトコル解析テーブル列(ぴったりあった列)
1= レコードはオリジナルパケットデータ(レイヤーII)
unsigned short total_length;
上記が示すレコードの全長、
ぴったりあった列レコードのために:
レコードヘッダのサイズ(28) + ぴったりあった列のサイズ(152) =180
オリジナルパケットデータレコードのために:
レコードヘッダのサイズ(28 )+ レイヤIIオリジナルパケットデータ変数= 変数
unsigned long KAMAL_BOARD_TAG;
上記が示すパケットを処理したユニークなKAMALタグ.
unsigned long packet_counter;
上記が示す連続的なパケット番号
struct timeval epoch_time_stamp;
上記の<sys/time.h>に定義されたと同様に構造的な時間値に関するパケット到着を示す64bitのタイムスタンプ。
−32bit:エポック(epoch)を開始することからのマイクロセカンドの数
} __attribute__((__packed__));
struct mac_address_format
{
unsigned char mac_address[6];
} __attribute__((__packed__));
struct KAMAL_ip_details_format
{
struct mac_address_format KAMAL_eth_src_mac_address;
struct mac_address_format KAMAL_eth_dst_mac_address;
unsigned char KAMAL_type_of_service;
unsigned char KAMAL_ip_protocol;
unsigned short KAMAL_ip_packet_length;
unsigned long KAMAL_ip_source_ip_address;
unsigned long KAMAL_ip_destination_ip_address;
} __attribute__((__packed__));
struct KAMAL_tcp_details_format
{
unsigned short KAMAL_tcp_source_port;
unsigned short KAMAL_tcp_destination_port;
unsigned char KAMAL_tcp_control_flags;
unsigned char KAMAL_application_description_type;
上記がテーブル表すフィールドは(KAMAL_application_description_stringに送られる)抽出された情報のタイプを表すコードを含む。アプリケーションプロトコルに依存する。
例:
アプリケーションタイプ フィールド KAMAL_application_description_string
HTTP 1 ウェブサイトのアドレッス
POPSメール 1 メールユーザー番号
SMTPメール 1 誰にメールを送ったのかのメールの身元確認番号
誰から受け取ったメールであるかを識別する身元確認番号
FTP 1 ログギングした場合の確認番号
unsigned short KAMAL_tcp_application_protocol;
上記はアプリケーションレベルプロトコルを示す2byteのコードです。
例:HTTPのための80、ssl―httpsのための443、POP3メールのための1110、SMTP メールのための25。
} __attribute__((__packed__));
struct KAMAL_application_analysis_format
{
unsigned char KAMAL_application_protocol_text[40];
上記が示す空(NULL)で終えたアプリケーションプロトコルのテキスト記述。
例: HTTP、ssl−https、POP3メール、SMTPメール。
[次のバージュン(v1.01)でこのフィールドは削除されます。アプリケーションはクライアントGUIの当該フィールドにテーブル表示されるために KAMAL_tcp_application_protocolをデコードすることが出来る。使用するコードが標準化されるまでベータバージョンでコードはKAMALによってデコードされて通信する列はこのフィールドに送られる]
unsigned char KAMAL_application_description_string[80];
空(NULL)で終わった記述が列に含まれている場合はパケットのパラメータを抽出したものである。
例: ウエッブサイトアドレス、ユーザー身元確認、誰に送られたのかを示す電子メールの身元確認、誰から送られてきたのか示す電子メールの身元確認。
} __attribute__((__packed__));
struct KAMAL_pat_row_format
{
struct KAMAL_ip_details_format KAMAL_ip_details;
struct KAMAL_tcp_details_format KAMAL_tcp_details;
struct KAMAL_application_analysis_format application_analysis;
} __attribute__((__packed__));
KAMAL
データを設定する: KAMAL/GULABボードのタイムスタンプを設定する。
データを取得する: 上記のKAMAL/GULABボードの当該日付/時間を返す。
フィルターテーブルを読む:KAMAL−IIで全部のフィルターテーブルを読む
フィルターテーブルをアップロードする:KAMAL−II で新しいフィルターテーブルをつくる
1つのフィルター列を読む:KAMAL−II で1つのフィルター列を読む
1つのフィルター列をセットする:KAMAL−II で1つのフィルター列を修正する
1つのフィルター列を加える:KAMAL−II で新しいフィルター列を加える
1つのフィルター列を削除する:KAMAL−IIで新しいフィルター列を削除する
KAMALタグを取得する
プロトコルテーブを取得する
プロトコルテーブルを加える
プロトコルテーブルを削除する
デフォルト設定に設定する
大部分のKAMALの呼び出しが内部使用のためにあります、そしてGULABセッション分析インターフェイスが mss のために必要とされるように以下にGULAB ボードについてのより詳細な説明に入りました。
GULABボード
GULAB ボードの初期化:
当該ボードを初期化するために使用できる。仮にGULABボードは既に誰かによってinit値が他のプログラムによって構成を設定されたならば、そしてもし最新のプログラムが該init値をリセットすることを望むならば、該関数を呼び出すことが出来る。この関数に対して呼び出しが行なわれる時、GULABボードの機能は工場設定時と同じように初期化される。
アプリケーションテーブルをセットする:
当該機能はどのアプリケーションが分析されるはずであるかを決定するために使われるテーブルをGULAB ボードに作る。このテーブルはいくつかの列から出来ている。 該テーブル内のそれぞれの列がアプリケーションタイプ、アプリケーションのテキストテーブルから出来ていて、そしてフラグをたてることを可能にする。
例として、
#APPLICATION_NUMBER APPLICATION_NAME ENABLE/DISABLE
1 HTTP 1
2 SMTP 1
3 RTP 0
enable/disableフィールドが“1”の値は上記の通りにこのタイプのアプリケーションのためのセッションが組み立てられるために必要となる。該フィールがゼロ“0”を示す場合は上記の通りにこのタイプのアプリケーションのためのセッションが組み立てられる必要がないことを示す。
アプリケーションテーブルを取得する:
すべてのアプリケーションテーブルとともに当該アプリケーションに付いているenable/disable状態を読む。
アプリケーション列の詳細:
将来の拡張のためには、新しいアプリケーションプロトコルを定義することが予想される、そして加えられるかあるいは削除されることもありえる。
アプリケーション列を加える:
将来の拡張のために。 将来、それは新しいアプリケーションプロトコルを定義することが予想される、そして加えられるかあるいは削除することも出来る。
アプリケーション列をセットする:
アプリケーションテーブルのアプリケーション列をenableにするかあるいはdisableにするためには、1つのアプリケーションのためにセッション分析をenableにするか、あるいはdisableにする該機能を使う。
アプリケーション列を取得する:
アプリケーション列とenable/disableの状態を読む。この機能はアプリケーションのテキストの記述とenable/disableのフラグの状態を読む。
ファイル名ベースをセットする:
GULABは種々のフォーマットでデータベースをつくることが出来る。例えば、毎日、毎週、あるいは毎月それぞれのアプリケーションタイプのために別個のファイルをつくることが出来る。 該機能を呼び出すアプリケーションを使ってGULABが異なったファイルをつくる基本となるファイル名を提供することが出来るようにする。
実行可能なフォーマットが下に示される。
SetFilenameBase (int APPLICATION_TYPE, int METHOD_TYPE, unsigned char *base_string[]):
下記は実行例である。
SetFilenameBase ( SMTP_APPLICATION, MONTH_WISE, “mss_smtp_sessions_”, GULAB_MONTH_STRING, ”_2006”, NULL);
下記の列のようなファイルをつくる。
mss_smtp_sessions_JUN_2006.glb
mss_smtp_sessions_JUL_2006.glb
下記の関数に従う呼び出し機能が少し異なったファイルタイプをつくる。
SetFilenameBase ( SMTP_APPLICATION, MONTH_WISE, “mss_smtp_sessions_”, GULAB_MONTH_NUMERICAL, ”_2006”, NULL);
mss_smtp_sessions_06_2006.glb
mss_smtp_sessions_07_2006.glb
下記に他の例を示す。
SetFilenameBase (ALL_APPLICATIONS, DATE_MONTH_WISE, “mss_application_sessions_2006”, GULAB_MONTH_DATE_ NUMERICAL, NULL);
Will create
mss_application_sessions_20060601.glb
mss_application_sessions_20060602.glb
mss_application_sessions_20060630.glb
etc
ファイル名ベースを取得する:
現在使用中のファイル名を基本としたタイプを返す 。
所定のアプリケーション用のファイル名を取得する:
将来使用するために、不完全なセッションの分析をすることを計画した。
GULABタグを取得する:
GULABの一意的なタグを返す。ファイル名を基本としたかあるいは分析テーブルをつくるために使うことが出来る。
GULABデータアップロードフォーマット
struct GULAB_FIXED_HEADER_FORMAT
{
unsigned char GULAB_ID_STRING[5];
ボードの認識。常に GULABのために列に“GULAB”を含む。
unsigned char GULAB_VERSION_STRING[2];
GULABバーション番号
unsigned char GULAB_RELEASE_STRING[2];
GULABリリース番号
unsigned char GULAB_PKT_TYPE_IDENTIFIER;
レコードタイプ、
0= レコード、はセッション解析テーブル列(ちょうどあてはまる列)
1= レコード、はセッションデータ列
unsigned short total_length;
レコードの全長、
列記録の設定のために:
ヘッダレコードのサイズ + 設定する列のサイズ
オリジナルパケトデータレコードのために:
レコードヘッダサイズ(28) + オリジナルセッションデータサイズ(変数)
unsigned long GULAB_BOARD_TAG;
パケットを処理したユニークなGULABボードタグ
unsigned long session_counter;
連続的なセッション番号
} __attribute__((__packed__));
struct GULAB_session_details_format
{
struct timeval start_epoch_time_stamp;
<sys/timeh>に定義されたと同様に定義された構造的な時間値の条件におけるセッション開始の64bitタイムスタンプ。
−32bit:エポック開始からのマイクロセカンド数
struct timeval end_epoch_time_stamp;
<sys/timeh>に定義されたと同様に定義された構造的な時間値の条件におけるセッション終了の64bitタイムスタンプ。
−32bit:エポック開始からのマイクロセカンド数
長期に無署名な場合 no_of_packets
1つのGULABセッションをつくるために組み立てられた個別のパケットの番号を含む。
長期に無署名な場合 session_data_size
セッションを構成するbyteの合計数を含んでいる。
長期にcharに無署名な場合 GULAB_application_type;
このフィールドにはアプリケーションのタイプを示すコードを含む。
例:
アプリケーションタイプ フィールド
HTTP 1
POP3 2
SMTP 3
FTP 4
Padding bytes
} __attribute__((__packed__));
struct GULAB_application_information
{
charに無署名な場合 *KAMAL_pointer_to_description_string[TBD][TBD];
それぞれのアプリケーション記述列の差し引き計算値、空“NULL”のポインターを持っているリストの終わり。
空(NULL)で終わった列がパケットの抽出されたパラメータを含む、
例:SMTPのために、
FROM, TO, From, To, Cc, Subject, attachment file names
HTTPのために、
HTTP request, Website, url, Content−Type
} __attribute__((__packed__));
struct GULAB_sat_row_format
{
struct GULAB_session_details_format
GULAB_session_details;
struct GULAB_application_information
GULAB_application_information;
} __attribute__((__packed__));
GULABデータとインデックスファイル構造
1.KAMALから受け取ったすべてのパケットはGULABによって処理される。
2.不完全なセッションは可能なかぎりに組み立てられる、そしてこれらの不完全なセッションデータは同じく別にタグを付けられたファイルに保管される。
3.最終バージョンは要求されるようにすべてのプロトコル分析機能を持つ。
要求されるRTP、SIP、H.323、VoIP、ICMP、Telnet、FTP、DNSのセッションから抽出されたどのようなパラメータに対しても分析する。
4.“キープアライブ”を持っているHTTP セッションと多くのセッションが適切に GULAB によって処理される。
5.複数のメールが異なったセッションとして処理される。
6.KAMALとGULABボードがインストールされるとデバイス・ドライバはLinu
OSのもとで稼動する。GULABのためのデバイス・ドライバとホストのハードディスク・ドライバは完全に結ばれている。従って、複数の部分にコピーされているセッションデータのオーバーヘッドを避けることが出来る。
7.GULABはアプリケーション毎に1つのファイルをつくります。加えるにすべての“不完全なセッション”を集めるために同じく1つのファイルをつくります。ハイレベルな詳細は次の通りである。
GULABセッションは下記のインデックスファイルとデータファイルの2つの部分に保管される。
インデックスファイル
データファイル
上記の1.は、“GULAB インデックスファイル”と呼ばれる固定長記録から出来ている、オリジナルパケットデータを含むが、“GULABデータファイル”(上記のデータファイル)は通信したオリジナルパケットデータへのポインターから出来ているだけが記録されている。
21、22 ローカルエリアネットワーク
25 スイッチングハブ
26 TAP
27 ファイアウォール
28 ルーター
30 KAMAL
50 GULAB
70 サーバー
Claims (22)
- ネットワークデータトラフィックを監視するためのハードウェアベースのネットワーク監視システムであって、
(i)パケット処理エンジンであって、
(a)パケットをスニフしてトラフィックを解析するネットワークプロセッサと、
(b)パケット処理のためのコアエンジンであって、
・プロトコルレベルとアプリケーションレベルとにおいてプロトコル解析データを構成するためにプロトコルを抽出する手段と、
・前記パケットのプロトコルベースの解析手段を有するコアエンジンとを有するパケット処理エンジン、及び/または、
(ii)セッションレベル解析のためのアプリケーション層プロセッサであって、
(a)すべてのセッションを抽出し、セッションデータを構成する手段と、
(b)前記パケットセッションベース解析をする手段を有するアプリケーション層プロセッサとを有するネットワーク監視システム。 - セッションレベルアナライザは、オンボードメモリが十分ではないとき、自動的にホストメモリを使用する、請求項1に記載のネットワーク監視システム。
- セッションレベルアナライザはPCIインターフェイスを用いてホストシステムとインターフェイスする、請求項1に記載のネットワーク監視システム。
- 前記マイクロエンジンはTCP、UDP、HTTP、SMTP/POP3、RTP、SIP、H.323、VoIP、ICMP、Telnet、FTP、DNSパケットのうち少なくとも1つを解析可能である、請求項1に記載のネットワーク監視システム。
- ネットワークデータトラフィックを監視するハードウェアベースの方法であって、
a.パケットをスニフする段階と、
b.フラグメンテーションと再組立のために前記スニフされたパケットをチェックする段階と、
c.前記チェックされたパケットのプロトコルを解析する段階と、
d.前記解析されたパケットをホストメモリに保存する段階と、
e.前記保存されたパケットからセッションを生成する段階と、
f.前記セッションを解析して分離する段階と、
g.前記分離したセッションを前記ホストメモリにアップロードする段階とを有する方法。 - パケットは識別フィールドを用いてフラグメント化及びデフラグメントされる、請求項5に記載の方法。
- 前記パケットは、ソースIP、デスティネーションIP、プロトコルフィールド、データロード、パケットカウンタ、パケットサイズ、タイムスタンプ、ソースMACアドレス、デスティネーションMACアドレス、ソースポート、デスティネーションポート、TCPコントロールフラグ及びTCPタイプのサービスを用いて解析される、請求項5に記載の方法。
- 前記方法はデータベースを更新し、それを前記ホストメモリにタイムスタンプを付してアップロードする、請求項5に記載の方法。
- 前記方法は前記パケットを、TCP、UDP、HTTP、SMTP/POP3、RTP、SIP、H.323、VoIP、ICMP、Telnet、FTP、DNSよりなる群から選択されたプロトコルに分離する、請求項5に記載の方法。
- 前記HTTPセッションは、前記セッションの開始時刻及び終了時刻以外にリクエスト方法、ウェブサイト名、URL、コンテンツタイプにより分離される、請求項5に記載の方法。
- 前記SMTP/POP3セッションは、ユーザー名、パスワード、from、to、サブジェクト、添付ファイル名よりなる抽出情報により分離される、請求項5に記載の方法。
- 「キープアライブ」パラメータを有するネットワークトラフィックは単一セッションとして処理され、複数セッションは別々のセッションとして処理される、請求項5に記載の方法。
- 前記方法は、検索、ソート、集約、グラフとチャートの表示、及びクエリ/クエリスクリプト/言語のサポートを支援するために、ファイルにインデックスを付ける、請求項5に記載の方法。
- 前記セッションはインデックスファイルとデータファイルの2つのセグメントとして保存される、請求項5に記載の方法。
- 前記インデックスファイルは固定長レコードを有し、生パケット(オリジナルパケット)データは含まず、前記データファイル中の対応する生パケットデータレコードへのポイントを有する、請求項14に記載の方法。
- 前記データファイルは可変長レコードを有し、実際の可変長の生パケット(オリジナルパケット)データを含む、請求項14に記載の方法。
- 前記方法はフィルター基準及びコンテンツマッチに基づきパケットを集約する、請求項14に記載の方法。
- 前記方法はハードウェアレベルにおいてオンザフライでフィルター基準を実行する、請求項14に記載の方法。
- 前記方法は、フラグメント化されたパケットのデフラグメントと、再組み立てされたパケットに基づきパケットの解析を行う、請求項14に記載の方法。
- 不完全なセッションも取得できるかぎり蓄積され、一つ一つのパケットを確実に捕捉する、請求項14に記載の方法。
- 前記方法はネットワーク中のトラフィックの始点をたどる、請求項14に記載の方法。
- 前記トラフィックの始点は、前記セッション(session)のソース(source)及びデスティネーション(destination)のMACアドレス、前記セッションの開始及び終了時刻、及び処理エンジンとアプリケーション層プロセッサカードに割り当てられた一意的タグを用いて特定される、請求項21に記載の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP06253291A EP1871038B1 (en) | 2006-06-23 | 2006-06-23 | Network protocol and session analyser |
EP06253291.6 | 2006-06-23 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2008042892A true JP2008042892A (ja) | 2008-02-21 |
JP5167501B2 JP5167501B2 (ja) | 2013-03-21 |
Family
ID=36845422
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007165587A Expired - Fee Related JP5167501B2 (ja) | 2006-06-23 | 2007-06-22 | ネットワーク監視システムとその動作方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8144609B2 (ja) |
EP (1) | EP1871038B1 (ja) |
JP (1) | JP5167501B2 (ja) |
DE (1) | DE602006014667D1 (ja) |
Families Citing this family (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090041013A1 (en) * | 2007-08-07 | 2009-02-12 | Mitchell Nathan A | Dynamically Assigning A Policy For A Communication Session |
US20090041014A1 (en) * | 2007-08-08 | 2009-02-12 | Dixon Walter G | Obtaining Information From Tunnel Layers Of A Packet At A Midpoint |
US20090259577A1 (en) * | 2008-04-10 | 2009-10-15 | Cisco Technology, Inc. | Providing Billing Instructions Associated With a New Protocol in a Network Environment |
US8438269B1 (en) | 2008-09-12 | 2013-05-07 | At&T Intellectual Property I, Lp | Method and apparatus for measuring the end-to-end performance and capacity of complex network service |
US7829118B1 (en) | 2009-07-30 | 2010-11-09 | Carbylan Biosurgery, Inc. | Modified hyaluronic acid polymer compositions and related methods |
FR2949934B1 (fr) * | 2009-09-09 | 2011-10-28 | Qosmos | Surveillance d'une session de communication comportant plusieurs flux sur un reseau de donnees |
KR101286647B1 (ko) * | 2009-11-30 | 2013-08-23 | 한국전자통신연구원 | 세션 관리 방법 |
US9191284B2 (en) | 2010-10-28 | 2015-11-17 | Avvasi Inc. | Methods and apparatus for providing a media stream quality signal |
US9032427B2 (en) * | 2010-10-28 | 2015-05-12 | Avvasi Inc. | System for monitoring a video network and methods for use therewith |
US9037743B2 (en) | 2010-10-28 | 2015-05-19 | Avvasi Inc. | Methods and apparatus for providing a presentation quality signal |
US8683568B1 (en) * | 2011-09-22 | 2014-03-25 | Emc Corporation | Using packet interception to integrate risk-based user authentication into online services |
CN102761538B (zh) * | 2012-04-27 | 2014-10-22 | 南大傲拓科技江苏有限公司 | 应用于多种通讯接口网关的通信共享数据区设计管理方法 |
US10366101B2 (en) | 2014-04-15 | 2019-07-30 | Splunk Inc. | Bidirectional linking of ephemeral event streams to creators of the ephemeral event streams |
US10700950B2 (en) | 2014-04-15 | 2020-06-30 | Splunk Inc. | Adjusting network data storage based on event stream statistics |
US10693742B2 (en) | 2014-04-15 | 2020-06-23 | Splunk Inc. | Inline visualizations of metrics related to captured network data |
US10360196B2 (en) | 2014-04-15 | 2019-07-23 | Splunk Inc. | Grouping and managing event streams generated from captured network data |
US9762443B2 (en) | 2014-04-15 | 2017-09-12 | Splunk Inc. | Transformation of network data at remote capture agents |
US11086897B2 (en) | 2014-04-15 | 2021-08-10 | Splunk Inc. | Linking event streams across applications of a data intake and query system |
US9838512B2 (en) | 2014-10-30 | 2017-12-05 | Splunk Inc. | Protocol-based capture of network data using remote capture agents |
US10462004B2 (en) | 2014-04-15 | 2019-10-29 | Splunk Inc. | Visualizations of statistics associated with captured network data |
US11281643B2 (en) | 2014-04-15 | 2022-03-22 | Splunk Inc. | Generating event streams including aggregated values from monitored network data |
US10523521B2 (en) | 2014-04-15 | 2019-12-31 | Splunk Inc. | Managing ephemeral event streams generated from captured network data |
US10127273B2 (en) | 2014-04-15 | 2018-11-13 | Splunk Inc. | Distributed processing of network data using remote capture agents |
US9923767B2 (en) | 2014-04-15 | 2018-03-20 | Splunk Inc. | Dynamic configuration of remote capture agents for network data capture |
KR101610715B1 (ko) * | 2014-06-11 | 2016-04-08 | 한국전자통신연구원 | 단방향 데이터 송수신 시스템 및 방법 |
US9596253B2 (en) | 2014-10-30 | 2017-03-14 | Splunk Inc. | Capture triggers for capturing network data |
US10334085B2 (en) | 2015-01-29 | 2019-06-25 | Splunk Inc. | Facilitating custom content extraction from network packets |
US10404732B2 (en) | 2016-06-14 | 2019-09-03 | Sdn Systems, Llc | System and method for automated network monitoring and detection of network anomalies |
US10644983B2 (en) * | 2017-07-28 | 2020-05-05 | Cisco Technology, Inc. | Control plane analytics and policing |
CN111294383B (zh) * | 2019-12-30 | 2023-01-31 | 欧普照明股份有限公司 | 物联网服务管理系统 |
CN111651789B (zh) * | 2020-06-05 | 2023-04-14 | 北京明朝万达科技股份有限公司 | 一种基于扫描系统的多线程安全批量反馈的方法及装置 |
CN112291207B (zh) * | 2020-10-16 | 2022-11-25 | 武汉中科通达高新技术股份有限公司 | 一种前端设备目录获取方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01256248A (ja) * | 1988-04-06 | 1989-10-12 | Hitachi Ltd | 階層化プロトコル並列処理装置 |
JPH09511105A (ja) * | 1993-12-24 | 1997-11-04 | ニューブリッジ ネットワークス コーポレイション | パケット系ネットワーク用探索エンジン |
JP2001203691A (ja) * | 2000-01-19 | 2001-07-27 | Nec Corp | ネットワークトラフィック監視システム及びそれに用いる監視方法 |
JP2002281086A (ja) * | 2001-03-19 | 2002-09-27 | Kddi Corp | トラヒック監視方法およびシステム |
WO2005027539A2 (en) * | 2003-09-10 | 2005-03-24 | Fidelis Security Systems | High-performance network content analysis platform |
JP2005513957A (ja) * | 2001-12-28 | 2005-05-12 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | ネットワークルーチング装置を自動的に構成する方法 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5101402A (en) * | 1988-05-24 | 1992-03-31 | Digital Equipment Corporation | Apparatus and method for realtime monitoring of network sessions in a local area network |
US6263444B1 (en) * | 1997-03-11 | 2001-07-17 | National Aerospace Laboratory Of Science & Technology Agency | Network unauthorized access analysis method, network unauthorized access analysis apparatus utilizing the method, and computer-readable recording medium having network unauthorized access analysis program recorded thereon |
US7284070B2 (en) * | 1997-10-14 | 2007-10-16 | Alacritech, Inc. | TCP offload network interface device |
US7263558B1 (en) * | 1999-09-15 | 2007-08-28 | Narus, Inc. | Method and apparatus for providing additional information in response to an application server request |
SG143052A1 (en) * | 2000-05-12 | 2008-06-27 | Niksun Inc | Security camera for a network |
US7362707B2 (en) * | 2001-07-23 | 2008-04-22 | Acme Packet, Inc. | System and method for determining flow quality statistics for real-time transport protocol data flows |
US7650634B2 (en) * | 2002-02-08 | 2010-01-19 | Juniper Networks, Inc. | Intelligent integrated network security device |
US20030196081A1 (en) * | 2002-04-11 | 2003-10-16 | Raymond Savarda | Methods, systems, and computer program products for processing a packet-object using multiple pipelined processing modules |
US7885803B2 (en) * | 2003-05-28 | 2011-02-08 | Alcatel-Lucent Usa Inc. | System and method for simulating traffic loads in packetized communication networks |
GB2402845A (en) * | 2003-06-14 | 2004-12-15 | Agilent Technologies Inc | Service usage records for mobile data communications |
US7463590B2 (en) * | 2003-07-25 | 2008-12-09 | Reflex Security, Inc. | System and method for threat detection and response |
US7535851B2 (en) * | 2003-08-26 | 2009-05-19 | Finisar Corporation | Discovering diagnostic port functionality in a distributed system |
US20050141430A1 (en) * | 2003-12-30 | 2005-06-30 | Borkowski Nancy S. | Monitoring network information |
WO2005071923A1 (en) * | 2004-01-20 | 2005-08-04 | Intrusic, Inc | Systems and methods for monitoring data transmissions to detect a compromised network |
US7660248B1 (en) * | 2004-01-23 | 2010-02-09 | Duffield Nicholas G | Statistical, signature-based approach to IP traffic classification |
EP1716668B1 (en) * | 2004-01-27 | 2010-08-11 | Actix Limited | Monitoring system for a mobile communication network for traffic analysis using a hierarchical approach |
US7594011B2 (en) * | 2004-02-10 | 2009-09-22 | Narus, Inc. | Network traffic monitoring for search popularity analysis |
US7379930B2 (en) * | 2004-02-25 | 2008-05-27 | Ricoh Company, Ltd. | Confidential communications executing multifunctional product |
-
2006
- 2006-06-23 DE DE602006014667T patent/DE602006014667D1/de active Active
- 2006-06-23 EP EP06253291A patent/EP1871038B1/en not_active Expired - Fee Related
-
2007
- 2007-06-20 US US11/821,534 patent/US8144609B2/en not_active Expired - Fee Related
- 2007-06-22 JP JP2007165587A patent/JP5167501B2/ja not_active Expired - Fee Related
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01256248A (ja) * | 1988-04-06 | 1989-10-12 | Hitachi Ltd | 階層化プロトコル並列処理装置 |
JPH09511105A (ja) * | 1993-12-24 | 1997-11-04 | ニューブリッジ ネットワークス コーポレイション | パケット系ネットワーク用探索エンジン |
JP2001203691A (ja) * | 2000-01-19 | 2001-07-27 | Nec Corp | ネットワークトラフィック監視システム及びそれに用いる監視方法 |
JP2002281086A (ja) * | 2001-03-19 | 2002-09-27 | Kddi Corp | トラヒック監視方法およびシステム |
JP2005513957A (ja) * | 2001-12-28 | 2005-05-12 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | ネットワークルーチング装置を自動的に構成する方法 |
WO2005027539A2 (en) * | 2003-09-10 | 2005-03-24 | Fidelis Security Systems | High-performance network content analysis platform |
JP2007507763A (ja) * | 2003-09-10 | 2007-03-29 | フィデリス・セキュリティー・システムズ | 高性能のネットワーク内容解析プラットフォーム |
Also Published As
Publication number | Publication date |
---|---|
US8144609B2 (en) | 2012-03-27 |
JP5167501B2 (ja) | 2013-03-21 |
EP1871038B1 (en) | 2010-06-02 |
DE602006014667D1 (de) | 2010-07-15 |
EP1871038A1 (en) | 2007-12-26 |
US20080002595A1 (en) | 2008-01-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5167501B2 (ja) | ネットワーク監視システムとその動作方法 | |
CN108400909B (zh) | 一种流量统计方法、装置、终端设备和存储介质 | |
US20200228433A1 (en) | Computer-readable recording medium including monitoring program, programmable device, and monitoring method | |
US9876701B1 (en) | Arrangement for efficient search and retrieval of indexes used to locate captured packets | |
Moore et al. | Architecture of a network monitor | |
US10691748B2 (en) | Methods and apparatus to process call packets collected in a communications network | |
US20120182891A1 (en) | Packet analysis system and method using hadoop based parallel computation | |
US9210090B1 (en) | Efficient storage and flexible retrieval of full packets captured from network traffic | |
US9838454B2 (en) | Policy-based payload delivery for transport protocols | |
US9356844B2 (en) | Efficient application recognition in network traffic | |
JP2009510815A (ja) | サーチ前のパケットのリアセンブル方法及びシステム | |
JP2004172917A (ja) | パケット検索装置及びそれに用いるパケット処理検索方法並びにそのプログラム | |
Kim et al. | ONTAS: Flexible and scalable online network traffic anonymization system | |
Vormayr et al. | Why are my flows different? a tutorial on flow exporters | |
US10965600B2 (en) | Metadata extraction | |
Plagemann et al. | Using data stream management systems for traffic analysis–a case study– | |
US20090074008A1 (en) | Multiple packet UDP data transfers | |
JP2006338415A (ja) | データベースシステムに接続せずにデータベースシステムをモニタリングする方法 | |
Get’man et al. | Data representation model for in-depth analysis of network traffic | |
WO2024105892A1 (ja) | 変換装置、変換方法及び変換プログラム | |
CN116192463B (zh) | 一种数据过滤方法、装置、电子设备及存储介质 | |
Hall | Multi-layer network monitoring and analysis | |
Lhotka | Deliverable DJ2. 2.2 v1: User and Test Report on the Netflow Probe | |
Chitpinityon et al. | Achieving 100 Gb/s URL filtering with cots multi-core systems | |
Chen et al. | Research on network business identification technology based on IP packets |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100608 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110930 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120313 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120514 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120828 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20121029 |
|
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: 20121113 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20121203 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20121203 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20121203 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5167501 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: 20160111 Year of fee payment: 3 |
|
R154 | Certificate of patent or utility model (reissue) |
Free format text: JAPANESE INTERMEDIATE CODE: R154 |
|
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 |
|
LAPS | Cancellation because of no payment of annual fees |