(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0013】
実施形態について図面を参照し説明する。
【0014】
図1は、通信装置1の構成図で、通信装置1を制御する装置制御部10と、装置制御部10と信号線L10で接続されたクロスバースイッチ20と、クロスバースイッチ20と信号線L20で接続された、パケット処理部30と、クロスバースイッチ20とL20nで接続されたパケット処理部30nと、信号線L30で接続されたパケット解析部40と、信号線L50で接続された回線インタフェイス部50と、パケット処理部30nと信号線L60で接続された拡張機能ボード60と、パケット処理部30nと信号線L4nで接続されたパケット解析部40nで構成されている。
【0015】
また、通信装置1は、テーブル情報や、パケット解析プログラムのアップデートを行う管理端末2と接続される。
【0016】
装置制御部10は、装置制御プロセッサ11と、装置制御プロセッサ用のメモリ12と、メモリ12内に、テーブル変換用の情報領域であるテーブル情報120と、パケット解析部40や、拡張機能ボード60の処理内容を更新するプログラム領域である処理プログラム情報部121と、パケット処理部30、パケット解析部40、拡張機能ボード60に、プログラムを格納するために接続された、信号線L10〜L1nで構成される。装置制御プロセッサ11は、信号線を介して管理端末2からの入力に応じて、パケット解析部40や拡張機能ボード60の処理内容を更新する。また、装置制御プロセッサ11は、パケット解析部40が利用するテーブルの設定を行なう。
【0017】
パケット処理部30は、パケット処理に特化した、パケット処理専用ハードウェア301と、パケット処理専用ハードウェア301内で、入力パケットの宛先検索を行うパケット検索部302と、パケット検索部302が入力パケットの宛先検索とパケット変換情報を決定する、パケット検索テーブル3030を格納したメモリ303と、パケット解析部40で使用するパケット変換情報を付加する、パケット変換情報付加部304で構成される。
【0018】
パケット検索部302は、内部に通常のL2フレーム(OSI参照モデルの第2層であるデータリンク層で規定されるフレーム)/L3パケット(OSI参照モデルの第3層であるネットワーク層で規定されるパケット)、パケット解析プロセッサで変換された特定のフォーマットを検索する機能と、出力先を決定する機能とを有する。パケット変換情報付加部304は、パケット検索部302にて、入力パケットの宛先検索結果として出力されるパケット変換情報を、入力パケットにヘッダとして付加する。
【0019】
パケット処理専用ハードウェア301は、検索結果として、出力先情報と、パケット変換情報を出力する。パケット変換情報付加部304で付加された、パケット変換情報はパケット解析プロセッサ401がパケットを生成するときに参照される。
【0020】
また、パケット処理部30は、パケット解析部40が接続されているか、判定する。パケット解析プロセッサが接続されていない場合、パケット処理部30は、パケット変換情報を削除し、パケット解析プロセッサが接続されている場合は、パケット変換情報を出力先ポート情報と共に出力側のパケット解析プロセッサへ転送する。
【0021】
パケット解析部40は、パケット解析プロセッサ401とネットワークインタフェイス部405と、メモリ404、とを有する。パケット解析プロセッサ401は、入力パケットフォーマット解析を行うパケットフォーマット解析部402と、解析後にパケットフォーマットを変換するパケット変換部403とを有する。
【0022】
メモリ404は、パケットフォーマット解析部402またはパケット変換部403で使用する、テーブル情報と、プログラム情報を格納する。具体的には、メモリ404は、パケットフォーマット解析部402、パケット変換部403の処理内容を決定するプログラムを格納する領域4040を備える。メモリ404は、イーサネットタイプ検索テーブル4041と、入力パケット変換テーブル4042と、出力パケット変換テーブル4043と、を格納する(イーサネット、Ethernetは、登録商標)。
【0023】
イーサネットタイプ検索テーブル4041は、入力パケットのイーサネットタイプから、パケット処理部30で処理可能なパケットであるかを判別するために用いられる。入力パケット変換テーブル4042は、イーサネットタイプ検索テーブルで処理不可と判定された場合に参照される。出力パケット変換テーブル4043は、パケット処理部30にて入力パケットの宛先検索が終了してから、出力ネットワークのフォーマットに合わせるために参照される。
【0024】
パケット解析プロセッサ401は、ネットワーク(回線N10)に接続されるネットワークインタフェイス部405と、パケット処理専用ハードウェア301用のインタフェイスを持ち、パケット処理専用ハードウェア301はパケット解析プロセッサ401と接続するためのインタフェイスを持つ。
【0025】
パケット解析プロセッサ401は、パケット解析プロセッサ401用のメモリ404にパケット処理専用ハードウェア301が処理できるフォーマットの情報(例:タイプ情報)を格納する。パケット解析プロセッサ401は、ネットワークインタフェイス部405からパケットが入力されると、フォーマットの情報を参照して、処理可能であれば、パケット変換処理は行わず、そのままパケット処理専用ハードウェア301側のインタフェイスへ転送する。パケット解析プロセッサ401は、パケット処理専用ハードウェア301が処理出来ないイーサネットタイプの場合は、パケット処理専用ハードウェア301が処理可能な、特定のフォーマットへ変換し、パケット処理専用ハードウェア301側のインタフェイスへ転送する。
【0026】
パケット解析プロセッサ401は、パケット処理専用ハードウェア301から出力されたパケットを受信し、そのパケットが通常のL2フレーム/L3パケットであれば、そのまま接続されたネットワークに出力する。一方パケット処理専用ハードウェア301から、パケット変換情報の入ったヘッダ付パケットを受信した場合、パケット解析プロセッサ401は、変換情報を元に、出力するネットワークのフォーマットに合わせたパケットを作成し、転送する。
【0027】
拡張機能ボード60は、パケットのPayload部を解析する、DPI処理部602とDPI処理部602を制御する、拡張機能ボード制御プロセッサ601と、DPI処理のデータベースとして搭載されるメモリ604で構成される。
【0028】
回線インタフェイス部50は、パケット処理部30のインターフェイスであり、パケット処理部30に受信パケットを出力し、または、パケット処理部30が決定した宛先に向けて、ネットワークにパケットを出力する。
なお、通信装置1は、同様の構成を備える複数のパケット処理部30、30n、及び複数のパケット解析部40、40nを含んでもよい。パケット解析部40、40nは、ネットワーク(回線N10、N30)に接続される。
図2は、パケット解析部40内のメモリ404に格納した、イーサネットタイプ検索テーブル4041である。イーサネットタイプ検索テーブル4041は、パケットのプロトコルごとに、パケット解析部40がそのパケットに対して実行するアクションが定義される。イーサネットタイプ検索テーブル4041は、パケットに含まれるプロトコルを特定するタイプ情報40410ごとに、パケット解析部40がそのパケットに対して実行するアクションが定義される。タイプ情報40410は、イーサネットタイプ情報(Ethernetタイプ番号)である。イーサネットタイプ情報(Ethernetタイプ番号)は、パケットに含まれるデータ部についてイーサネットプロトコルより上位層のプロトコルを識別する為の番号のことであり、Ethernetヘッダに含まれる16ビットの情報である。例えば、タイプ番号が0800の場合はInternet IP(IPv4)、0806の場合はAddress Resolution Protocol(ARP)のプロトコルであることを示す番号である。また、タイプ番号が8847の場合はMPLS(Multi Protocol Label Switching)のユニキャストパケットであることを示す番号で、8848の場合は、MPLSのマルチキャストパケットであることを示す番号である。また、タイプ番号が8863の場合はPPPoE Discovery Stageであることを示す番号である。
【0029】
本テーブル4041では、タイプ情報40410は検索キーであり、検索結果40411の「入力パケットに対する処理」は、パケット処理専用ハードウェア301が処理可能なパケットフォーマットの場合と、処理不可能なパケットフォーマットの場合にパケット解析部40が行う処理を示す。「入力パケットに対する処理」40411には、処理不可能なパケットフォーマットの場合は、そのタイプ番号で特定されるプロトコルのパケットの特定の項目を参照して変換する、という記述があってもよい。イーサネットタイプ検索テーブル4041は、パケット解析部40が、パケットのフォーマット変換の要否を判断する場合に参照される。そして、パケット解析部40は、入力パケットフォーマットを解析し、解析結果とイーサネットタイプ検索テーブル4041とにより、入力パケットのフォーマット変換が必要か、判定する。
【0030】
図3は、パケット解析部40内のメモリ404に格納される、入力パケット変換テーブル4042を示す。パケット変換テーブル4042は、イーサネットタイプ検索テーブル4041でパケット処理専用ハードウェア301で処理不可と判定されたパケットをパケット解析部40からパケット処理部30へパケットを転送する際に使用される。
入力パケットヘッダ情報40420は、入力パケットのヘッダのどの項目をみるかを指定する情報である。例えば、IPv4であれば宛先アドレス、MPLSであればラベル情報、DPIであればVLANタグが指定される。入力パケットヘッダ情報40420は、検索キーとなる。パケット検索部302用検索キー40421は、本テーブルの検索結果で、入力パケットヘッダ情報40420に対応する検索キー40421がパケットに付加され、パケット処理専用ハードウェア301内のパケット検索部302が処理できるフォーマットとなる。
【0031】
パケット変換テーブル4042は、パケット検索部302が処理できない、入力パケットの宛先検索に使用する情報を、パケット検索部302が処理可能なフォーマットへの変換を示し、入力パケットをパケット検索部302が処理できる、パケットフォーマットに変換する。
【0032】
図4はパケット検索テーブル3030を示す。パケット検索テーブル3030は、パケット処理部30内のメモリ303に格納される。パケット検索部302は、パケット検索テーブル3030を使用し、
図3のパケット変換テーブル4042検索結果、もしくは入力パケットのヘッダ情報をパケット検索部302用検索キー30300として、入力パケットの宛先を検索する。検索キー30300にて、入力パケットの宛先検索の結果として、出力パケット変換情報30301、MACアドレス30302、出力ポート30303を決定し、パケット検索部302にてNext hopの決定を行う。
【0033】
なおパケット検索部302は、出力パケット変換情報30301を、入力パケットのヘッダ情報で検索の場合は、そのままNext Hopを示す情報とし扱い、それ以外は、パケット解析部40で使用する、パケット変換情報として扱う。
【0034】
図5は、出力パケット変換テーブル4043を示す。出力パケット変換テーブル4043は、パケット解析部40内のメモリ404に格納される。パケット変換テーブル4043は、
図4に示したパケット処理部30のパケット検索部302で決定した、パケット変換情報30301を使用し、パケット解析部40で、出力パケットフォーマットを変換するために使用される。出力パケット変換情報40430は、パケット検索テーブル3030の検索結果30301で、本テーブルの検索キーである。出力パケットヘッダ情報は、本テーブルの検索結果40431である。
図5は、
図3の逆変換を示すテーブルに対応していてもよい。
【0035】
パケット変換部403は、出力パケット変換テーブル4043で、出力先のネットワークのパケットフォーマットに対応するパケットフォーマットを変換する。
【0036】
図6は、通信装置1の処理を示したフローチャートである。
図1の通信装置1で、IP転送、MPLS転送、DPIによるフィルタ処理を実施した場合の例をそれぞれ示す。
【0037】
図6は、通信装置1の処理を示したフローチャートである。まず、通信装置1の処理を、
図6に示したフローチャートに沿って説明する。ネットワークからパケットがパケット解析部40に入力される(ステップ50)。パケット解析部40は、パケットが入力されると、パケットに含まれるイーサネットタイプに基づいてパケット処理部30で検索可能なパケットフォーマットか判別し、検索可能でないフォーマットについては、パケット変換情報をパケットに付与する。変換情報が付与されたパケットあるいは、検索可能な場合は入力パケットのままで、パケット処理部30へパケットを転送する(ステップ51)。
【0038】
パケット解析部40からパケットを受信したパケット処理部30は、パケット解析部40で付加したパケット変換情報、もしくは入力パケットヘッダの宛先アドレスをキーに、入力パケットの宛先検索を行い、クロスバースイッチ20へパケットを転送する(ステップ52)。クロスバースイッチ20では、パケット処理部30の検索結果に基づき、次に転送すべきパケット処理部30〜30nを決定し、再びパケットを送信する(ステップ53)。
【0039】
本例では、パケット処理部30に転送する。クロスバースイッチ20から、パケットを受信したパケット処理部30は、検索結果から、所定のボードにパケットを送信する。本例の構成では、パケット
解析部40、回線インタフェイス部50、拡張機能ボード60のいずれかにパケットが送信される(ステップ54)。パケット処理部30からパケット解析部40に転送された場合、パケット解析部40は、パケットにパケット変換情報が付加された場合には、パケット変換情報を元に、パケット変換テーブル4043で出力先のパケットフォーマットに変換し、パケット変換情報が削除されている場合には、フォーマットを変換することなく、ネットワーク(N10、N30)へパケットを出力する。
【0040】
パケット処理部30から拡張機能ボード60に転送された場合には、入力したパケットに対し、DPI処理部602にて、payload部を参照し、予め設定された、条件に該当するか判定し、該当する場合は廃棄し、該当していない場合は、パケット処理部30nへ再度転送する。回線インタフェイス部50に転送された場合は、回線インタフェイス部50は、パケット処理部30にて決定したパケットの宛先情報
を元に、出力するインタフェイスを決定し、回線N20に出力する(ステップ55)。
【0041】
図7は、通信装置1内で、IPv4パケット処理時の、パケットフォーマット遷移図である。
図6のフローチャートに沿って説明する。パケット900は通信装置1に入力したIPパケットであり、ステップ50のときのパケットフォーマットである。パケット900には、宛先MACアドレス90、送信元MACアドレス91、タイプ情報(Ethernetタイプ番号)92、IPヘッダ93、payload94とFCS95を含む。 ステップ51にて、タイプ92とイーサネットタイプ検索テーブル4041とに基づいて、入力パケットヘッダ情報40420に対応する検索キー40421が検索キー96としてパケット900に付加され、パケット901のフォーマットとなる。
パケット901は、ステップ52にて、検索処理の結果、パケット変換情報が必要な場合は、パケット903のフォーマットとなり、クロスバースイッチ20へ転送される。パケット903は、パケット901に比べて、検索キー96が外れ、宛先MACアドレス90及び送信元MACアドレス91が更新され、更新された宛先MACアドレス97及び送信元MACアドレス98が含まれる。さらに、パケット変換情報99が、パケット903の先頭に付加される。
【0042】
一方、パケット変換情報が必要ない場合にはパケット902が、クロスバースイッチ20へ転送される。パケット902は、パケット900に比べて、検索キー96が外れ、宛先MACアドレス90及び送信元MACアドレス91が更新され、更新された宛先MACアドレス97及び送信元MACアドレス98が含まれる。パケット902の場合、ステップ53ではフォーマットの変換はない。ステップ54にて、パケット解析部40へパケットが送信された場合、パケット903の場合には、403用パケット変換情報99を元にパケット変換を行い、パケット902の場合は、変換せずパケットを出力する。
【0043】
次に、
図6のフローチャートの各ステップについて、IPv4パケット、MPLSラベル転送を例に説明する。
図8は、ネットワークインタフェイス部405からパケット解析部40に入力した場合の、パケット解析プロセッサ401の処理を示したフローチャートである。
IPv4のパケットが、ネットワークインタフェイス部405からパケット解析部40内部のパケット解析プロセッサ401に入力され、パケット解析プロセッサ401は、
図8のフローチャートに沿って処理をする。
【0044】
ノードに接続されたネットワークから、パケット900が、ネットワークインタフェイス部405に入力し、パケット解析プロセッサ401に転送される(ステップ510)。パケット解析プロセッサ401は、入力パケット900のイーサネットタイプ92に格納されている0800をキーに、パケット処理専用ハードウェア301が検索可能なフォーマットか、イーサネットタイプ検索テーブル4041で検索する(ステップ511)。検索の結果から、パケット解析プロセッサ401は、パケット処理専用ハードウェア301が処理可能なパケットフォーマットか判定する(ステップ512)。
【0045】
パケットフォーマット解析部402は、イーサネットタイプ0800を、パケット処理専用ハードウェア301が処理できるパケットフォーマットと判定し、パケット変換部403にパケットを送信する(ステップ513)。パケット900は、パケット処理専用ハードウェア301が処理可能なフォーマットのため、パケット変換部403で処理はせず、パケット処理部30にパケット900のフォーマットのまま送信される(ステップ514)。
【0046】
なお、本例ではパケット900を送信したが、パケット処理専用ハードウェア301が処理可能なフォーマットであっても、パケット検索部302用の検索キー96を、付加したパケット901で、転送してもよい。またステップ512にて処理不可能と判定した場合には、パケット変換部403のパケット変換テーブル4042により、パケット検索部302が処理可能なフォーマットに変換する(ステップ516)。詳細は、後述するMPLS転送の実施例に示す。
【0047】
図9は、パケット処理部30内、パケット処理専用ハードウェア301の処理を示したフローチャートである。パケット解析部40からのパケット900を受信した、パケット処理部30内のパケット処理専用ハードウェア301は、
図9のフローチャートに沿って処理を行う。
【0048】
パケット処理専用ハードウェア301は、パケット900が入力すると(ステップ520)、クロスバースイッチ20からのパケットか、パケット解析部40からのパケットか判定する(ステップ521)。パケット検索部302において、検索結果を出力する際に、検索が完了したことを示すフラグ情報をパケットに付加している。よってクロスバースイッチからパケットが転送される場合は、すでにパケット検索部302にて検索が行われているため、クロスバースイッチからの転送判定は、パケット検索部302にて付加された、フラグ情報を元に行われる。
パケット解析部40からのパケットと判定した場合、パケット処理専用ハードウェア301は、パケット検索部302にて、タグVLANによる転送か判定する。タグVLANでないと判定した、パケット検索部302は、パケット解析部40で付加される、302用検索キー96がヘッダとして付加されている、パケットフォーマット901か、入力パケットフォーマット900か、判定する(ステップ525)。
【0049】
302用検索キー96が付加されていないと判定した場合、パケット検索部302は、IPヘッダ93内の宛先IPアドレスをキーに、パケット900の宛先を検索する。検索は、パケット検索部302にて、メモリ303内の検索テーブル3030を使用し、実行される(ステップ526)。パケット検索部302は、検索の結果として出力パケット変換情報99の決定と、出力先ポートの決定と、MACアドレスの解決を行う(ステップ527)。
【0050】
パケット検索部302では、MACアドレス解決の結果から、パケット900の、宛先MACアドレス90と、送信元MACアドレス91を書き換え、宛先MACアドレス97と、送信元MACアドレス98を含む、パケット902を作成する(ステップ528)。
【0051】
パケット902は、パケット変換情報付加部304に転送され、パケット変換情報99を付加されることなく、クロスバースイッチ20へパケットを転送される(ステップ529)。なお、本例では、パケット処理専用ハードウェア301が処理可能なパケットフォーマットのため、パケット変換情報99を削除したが、削除せずにパケット903として、パケット解析プロセッサ401に転送してもよい。
【0052】
クロスバースイッチ20に転送されたパケット902は、パケット検索部302で決定した出力先ポート情報に従い、パケット処理部30〜30nのいずれかに転送される。本例では、パケット処理部30に転送するものとする。
【0053】
クロスバースイッチ20経由でパケット902を受信したパケット処理部30内部のパケット処理専用ハードウェア301は、
図9の処理フローチャートに従い処理を行う。クロスバースイッチ20からパケット処理専用ハードウェア301へ、パケットが入力すると(ステップ520)、パケット処理専用ハードウェア301内のパケット検索部302は、パケット解析部40からのパケットか、クロスバースイッチ20からのパケットか判定する(ステップ521)。クロスバースイッチ20からのパケットと判定した、パケット検索部302は、出力先ポートへパケット902を転送する。本例では、出力先にパケット解析部40が接続されているものとする。
【0054】
IPパケット転送以外で、タグVLANによる転送の場合は、DPI処理を実施するため、拡張機能ボード60へ転送(ステップ523)し、DPI処理を実施する(ステップ524)。またパケットフォーマットが、パケット解析部40にて変換されている場合には、パケット解析部40で付加されたヘッダでパケットの宛先を検索し(ステップ530)、パケット変換情報を決定する(ステップ531)。
【0055】
図10は、パケット処理部30から、パケット解析部40にパケットが転送された場合の、パケット解析プロセッサ401の処理を示したフローチャートである。
【0056】
パケット処理部30からパケット902を受信したパケット解析部40内のパケット解析プロセッサ401は、
図10のフローチャートに沿って処理を行う。
パケット解析プロセッサ401にパケット902が入力される(ステップ550)。パケット解析プロセッサ401内のパケットフォーマット解析部402は、パケット変換情報99の有無を判定する(ステップ551)。パケット変換情報99がなく、パケットフォーマット902での転送と判定した、パケットフォーマット解析部402は、フォーマットを変更することなく、接続されたネットワークへパケットを転送する(ステップ552)。
図12は実施例1で示すMPLS網の構成図である。MPLS網81は、IP網80、82に接続される。MPLS網は、複数のノード810、811、812、813、814、815、816を含み、ノード間でMPLS転送が行なわれる。本実施例では、MPLS網81内のノード812が、
図1の装置構成を有するものとして説明する。ノード812は、MPLSエッジノード810から入力したパケットは、ノード812を経由して813へ転送される。
図13は、本実施例における、イーサネットタイプMPLSの、パケットフォーマット遷移図である。MPLSの検索に使われるShimヘッダ904の構成として、検索キーになるラベル情報103、QoS情報をあらわすExP 104、ラベルの終了を表すS105、TTL(Time To Live)情報106である。そのほか、
図7のパケット900と同様に、パケット905は、宛先MACアドレス100、送信元MACアドレス101、タイプ情報(Ethernetタイプ番号)102、IPヘッダ107、payload108とFCS109を含む。
【0057】
図13のMPLS転送時のパケット遷移を、
図6のフローチャートに沿って説明する。ステップ50で、パケット解析部40にパケット905が入力する。パケット905を受信したパケット解析部40は、ステップ51にて、パケットフォーマットの解析を行い、パケットに含まれるタイプ102を用いてイーサネットタイプ検索テーブル4041を検索すると、タイプ番号が8847または8848に該当するので、処理不可能と判定する。パケット解析部40は、「入力パケットに対する処理」40411に従ってパケット処理部30が検索可能な、パケットフォーマット906に変換する。変換されたパケットフォーマット906は、パケット905に検索キー110が付加される。パケット処理部30は、ステップ52にて、パケット906を参照して、入力パケットの宛先検索を実施、検索結果として更新した宛先MACアドレス112及び送信元MACアドレス113、パケット変換情報111を付加する。パケット907は、パケット906に比較すると、検索キー110が外れパケット変換情報111が付加され、宛先MACアドレス及び送信元MACアドレスが更新されたものとなる。パケット処理部30は、パケット907を、クロスバースイッチ20へ転送する。ステップ55で、パケット解析部40にパケットが入力され、パケット907に含まれるパケット変換情報111を用いて、パケット解析部40にてパケット909が生成される。パケット909は、パケット907からパケット変換情報111が削除され、更新されたLabel114、TTL115を含むshimヘッダ908を有する。
【0058】
図1に示す、通信装置1がMPLSのパケット905をネットワークから受信した場合の、パケット処理部40内の、パケット解析プロセッサ401は、IPv4パケット同様に
図8のフローチャートに沿って処理を行う。
【0059】
MPLSのパケット905がパケット解析プロセッサ401に入力する(ステップ510)。パケット解析プロセッサ401は、IPパケット検索時と同様に、イーサネットタイプ8847で特定されるプロトコルのフォーマットが、パケット処理専用ハードウェア301が処理できるフォーマットか、パケットフォーマット解析部402にて判定する(ステップ511)。検索の結果、MPLSに対応するタイプ番号8847は、パケット処理専用ハードウェア301が処理不可能と判定される(ステップ512)。処理不可能と判定されたパケット905は、パケット変換部403に転送される(ステップ515)。パケット変換部403は、「入力パケットに対する処理」40411に従ってMPLSのshimヘッダ904のラベル103の値をキーに、パケット変換テーブル4042を参照し、パケット処理専用ハードウェア301が検索可能な、パケット906を生成する(ステップ516)。
【0060】
例えば、shimヘッダ904内のラベル値103が“A”の場合、ラベル"A"をキーに、変換テーブル4042で検索し、検索結果としてラベルAに対応している0.0.0.Aを出力する。検索結果0.0.0.Aは、パケット変換部403にて、ヘッダ110として入力パケット905に付加され、パケット906として、パケット処理専用ハードウェア301へ転送される(ステップ514)。ただしパケット906は一例であり、別のフォーマットにしてもよい。
【0061】
パケット解析プロセッサ401から、パケット906を受信した、パケット処理専用ハードウェア301は、
図9のフローチャートに従い処理を行う。パケット処理専用ハードウェア301にパケット906が入力する(ステップ520)。IPv4パケット検索時と同様に、ステップ521にて、パケット解析プロセッサ401からのパケットと判定し、ステップ522でVlan Tag付のパケットでないと判定し、ステップ525にて、ヘッダ110でパケット906の宛先検索と判定する。ヘッダ110の検索と判定したパケット検索部302は、メモリ303内の検索テーブル3030を使用し、パケット906の宛先検索を実行する(ステップ530)。検索は、パケット検索部302で、ヘッダ110の0.0.0.Aをキーに検索テーブル3030を使用し実行する。パケット検索部302は、検索結果として0.0.0.Aに対応した0.0.0.Eをパケット変換情報111として出力し、出力先ポート決定と、MACアドレス解決を行い、パケット変換情報付加部304に転送する(ステップ531)。
【0062】
またパケット変換情報付加部304は、パケット変換情報111を付加し、
図13のパケットフォーマット907を作成する(ステップ532)。L2ヘッダはIPv4パケットの場合と同様にパケット検索部302で更新され、クロスバースイッチ20へパケット907を転送する(ステップ529)。
【0063】
クロスバースイッチ20に転送されたパケット907は、IPv4パケット検索と同様にクロスバースイッチ20から、パケット処理部30に転送され、その後パケット解析部40に転送される。
【0064】
パケット処理部30からパケットを受信した、パケット解析部40内のパケット解析プロセッサ401は、
図10のフローチャートに従い処理を行う。パケット解析プロセッサ401内のパケット解析部402にパケット907が入力する(ステップ550)。パケットフォーマット解析部402は、ヘッダ111を認識し(ステップ551)、パケット変換情報111に格納されている変換情報0.0.0.Eをキーに、メモリ404に格納された、
図5に示す変換テーブル4043で検索し、出力先のラベル情報”E”を決定する。決定したラベル値“E”は、パケット変換部403にて、Shimヘッダのラベル情報の更新に使用され、新たなラベル114を生成し、減算したTTL115を入れ、パケット909を生成する(ステップ553)。生成したパケット909を接続されたネットワークへ転送する(ステップ552)。以上の実施例により、通信装置1は、タイプ102で識別されるプロトコルがMPLSのように、パケット処理専用ハードウェア301が認識できないプロトコルのパケットであってもパケット転送処理を行う。
【0065】
次に回線インタフェイス部50を接続した場合の処理例を示す。回線インタフェイス部50は、パケットの送・受信を行う。パケット処理部30は、単独でも動作が可能なハードウェアであるため、処理可能なフォーマットであれば、パケット解析部40が接続されていなくても、パケットの宛先検索を行う。検索は、IPv4転送の例に示したパケット処理専用ハードウェア301処理と同じである。
【0066】
次に拡張機能ボード60に転送する例を示す。本例では、イーサネットタイプ8100のパケットを拡張機能ボード60のDPI処理部603で、URLを参照したフィルタリングを実施した場合を示す。
【0067】
パケット解析部40にて
図8のフローチャートに従い、IPv4転送の例と同じように、パケット処理専用ハードウェア301が処理可能なフォーマットと判定し、パケット処理専用ハードウェア301にパケットを転送する。パケット処理専用ハードウェア301では、
図9のフローチャート(ステップ521、522)に従い、パケットを拡張機能ボード60へ転送する。
図9のステップ521にて、パケットがクロスバースイッチ20からでないと判定したパケット検索部302は、入力パケットVLAN tagによる転送か判定し(ステップ525)、VLAN tagが付加されている場合、パケット検索部302は拡張機能ボード60へパケットを転送する(ステップ523)。VLAN tagは、タイプ8100として、
図7のパケット900の送信元MACアドレス91及びタイプ92の間に挿入されている。拡張機能ボード60に転送されたパケットは、
図11のフローチャートに沿って処理を行う。
【0068】
図11は、拡張機能ボード60の処理をフローチャートで示したものである。
【0069】
図11のフローチャートよりパケット処理専用ハードウェア301から、パケットが拡張機能ボード60へ入力する(ステップ700)。パケットを受信した拡張機能ボード60は、内部のDPI処理部602にパケットを転送する(ステップ701)。DPI処理部602では、入力パケットのpayload部を、予め管理者によってメモリ604に登録したアクセス禁止URLリストを参照し、アクセス禁止のURL宛のパケットか判定する(ステップ702)。リストに一致したURLの場合は、DPI処理部602で廃棄し(ステップ704)、不一致の場合は、VLAN tagを削除し、パケットの宛先検索のため、再びパケット処理部30へ転送する(ステップ703)。ステップ703以降の処理は、パケット検索部302での処理となり、
図9のステップ524から処理を実行する。ステップ525から処理とパケットフォーマットは、IPv4転送の例に示したものと同じである。
【0070】
本例ではVLAN tagとしたが、MPLS検索の例ように、パケット処理専用ハードウェア301が処理不可能なフォーマットの場合、パケット解析部40にて、VLAN tagに相当する、拡張機能ボード60に転送するためのデータを含む、パケットフォーマットに変換し、その付加した情報を元に、拡張機能ボード60へパケットを転送してもよい。また、拡張機能ボード60の処理の例として、DPI処理部602を有する例を説明したが、DPI処理部602以外の例えば、処理不可能なフォーマットの履歴を管理するログ管理部を有してもよい。この場合、パケット解析部40は、処理不可能なフォーマットとして判断し、拡張機能ボード60に転送するためのデータを含む、パケットフォーマットに変換し、拡張機能ボード60に転送する。転送されたパケットを、ログ管理部が、処理不可能なフォーマットであるパケットを受信した履歴を管理する。
次にパケット解析部40の各種テーブル情報と、処理内容を記述したプログラムのアップデート方法を示す。
通信装置1に接続された、管理端末2より、装置制御部10内のメモリ12へ、更新に必要なテーブル情報が格納される。装置制御プロセッサ11は、信号線L10〜L1n経由でメモリ12内の情報を、パケット解析部40内の、テーブル4041、4042、4043からアップデートするテーブルを選択し、テーブル情報を更新する。
【0071】
テーブルの更新は、通信装置1が設置されるネットワーク環境で、新たなパケットフォーマットによる転送が必要になった場合や、使用しなくなったプロトコルに対応した処理プログラムや、テーブル情報を削除する際に、実施される。
例えば、実施例に記述したMPLS転送の場合、管理端末2より、パケット変換テーブルの検索キーにMPLSのラベル情報を、検索結果にパケット変換情報を、それぞれ追加し、信号線L2経由でテーブル情報120に更新したテーブル情報を登録し、信号線L10経由でパケット変換テーブル4042,4043をそれぞれ更新する。また管理端末2より、処理プログラム情報部121に信号線L2経由で、イーサネットタイプMPLSのフォーマット情報と、ラベル情報抽出処理と、抽出したラベル情報の変換処理、を実行するプログラムを登録し、信号線L10経由でプログラム用メモリ領域4040に格納している処理内容を更新する。
【0072】
また使用しなくなったプロトコルを削除する場合も、管理端末2より設定する。例えば、パケット変換テーブル4042,4043からラベル情報を削除したい場合、テーブル情報を追加する場合と同様に、管理端末2でMPLS転送関連の検索キー、検索結果を削除したテーブルを、テーブル情報120に登録し、パケット変換テーブル4042,4043を上書きする。また処理プログラムの削除も処理プログラム追加の例と同様に、管理端末2より、MPLS転送の一連の処理を削除したプログラムを、処理プログラム情報部121から信号線L10経由でプログラム用メモリ領域4040に登録する。よって管理端末2にて、テーブルおよび処理プログラムの追記、削除を行い、データをテーブルや処理プログラム用のメモリに書き込むことで、テーブル更新、処理プログラム更新を行う。本例では、パケット変換テーブル情報全体を更新したが、特定の検索キー、と検索結果を指定して削除してもよい。
【0073】
またパケット解析部40の処理内容を決定するプログラムのアップデートは、管理端末2でプログラムを作成し、装置制御部10の、装置制御用メモリ12に、処理内容を書き込む。テーブル情報のアップデート同様に、信号線L10〜L1n経由でパケット解析部40内のメモリ404内、プログラム用メモリ領域4040にアクセスし、プログラムを書き換える。
【0074】
つまり、通信装置1は、パケット解析部40のパケット変換テーブル4042,4043と、処理内容を記述したプログラムを更新するだけで、パケット処理専用ハードウェアが処理できないパケットフォーマットに対しても、ハードウェアによる高速検索処理が可能になる。よって新たなプロトコルを処理するためには、テーブルの更新とパケット解析プロセッサの処理内容を変更で済む。
図14は、通信装置1の変形例3を示す。通信装置3では、クロスバースイッチ20を設けていない点を除いては、
図1の構成と同様である。またこの通信装置3も、上述の実施例のように、IPパケット転送、MPLSラベル転送を行う。
【0075】
上述の実施例により、パケット転送プロセッサのハードウェアの性能を維持し、プログラマブルデバイスを用いたパケットの転送処理を行える。
【0076】
上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、ICカード、SDカード、DVD等の記録媒体に置いてもよい。 また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
【0077】
変形例としては、以下の態様がある。通信装置において、パケット検索・転送処理、フィルタ処理、QoS処理を行うパケット処理専用ハードウェアと、パケット処理専用ハードウェアが検索で参照するテーブル情報を格納するメモリとを搭載したパケット処理部と、プログラマブルにパケットフォーマット解析、パケット転送処理が可能なパケット解析プロセッサと、パケット解析プロセッサが、検索やパケット変換を行う際に使用するメモリとを搭載したパケット解析部を設ける。パケット解析プロセッサは、ネットワークのインタフェイスと、パケット処理専用ハードウェア用のインタフェイスを持ち、パケット処理専用ハードウェアはパケット解析プロセッサと接続するためのインタフェイスを有する。
【0078】
パケット解析プロセッサは、パケット解析プロセッサ用のメモリにパケット処理専用ハードウェアが処理できるフォーマットの情報(例:タイプ情報、プロトコル)を格納しており、ネットワークのインタフェイス部からパケットが入力されると前記フォーマットの情報を参照して、処理可能であれば、パケット変換処理は行わず、そのままパケット処理専用ハードウェア側のインタフェイスへ転送する。パケット処理専用ハードウェアが処理出来ないタイプやプロトコルの場合は、パケット処理専用ハードウェアが処理可能な、特定のフォーマットへ変換し、パケット処理専用ハードウェア側のインタフェイスへ転送する。
【0079】
パケット処理専用ハードウェアは、通常のL2(OSI参照モデルで規定される第2層(レイヤ2)のフォワーディング機能)フレーム/L3(OSI参照モデルで規定される第3層のルーティング機能、IPプロトコル)パケット、パケット解析プロセッサで変換された特定のフォーマットを検索する機能と、出力先を決定する機能とを持ち、検索結果として出力先情報と、パケット変換情報を出力する。パケット変換情報はパケット解析プロセッサがパケットを生成するときに使われ、パケット解析プロセッサが接続されていない場合は削除し、パケット解析プロセッサが接続されている場合は出力先ポート情報と共に出力側のパケット解析プロセッサへ転送する。
パケット処理専用ハードウェアから出力されたパケットを受信するパケット解析プロセッサでは、通常のL2フレーム/L3パケットであれば、そのまま接続されたネットワークに出力する。一方パケット処理専用ハードウェアから、パケット変換情報の入ったヘッダ付パケットを受信したパケット解析プロセッサは、変換情報を元に、出力するネットワークのフォーマットに合わせたパケットを生成し、転送する。
【0080】
本実施例によると、パケット処理専用ハードウェアにとって、未知のパケットフォーマットであっても、ハードウェアを更新することなく、処理することが可能となる。
【0081】
本実施例によると、パケット解析用プロセッサに搭載する機能を、入力パケットフォーマット解析、パケット変換、パケット転送に限定できるため、パケット解析プロセッサのプログラムリソースを確保することができ、性能劣化を抑えつつ拡張性を保持することができる。
【0082】
本実施例によると、パケット処理専用ハードウェアは通常のL2フレーム/L3パケットを検索することができるため、プログラマビリティが不要な場合には転送専用ハードウェアだけで装置を構成することが可能であり、必要に応じてパケット処理専用ハードウェアの入力側と、出力側にそれぞれパケット解析プロセッサを配備することができ、性能、コスト、電力において最適なモジュール構成で装置を構成することが可能になる。以上が別の態様例である。