(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0015】
本実施例のネットワーク装置は、所定の有効時間内に通信した端末のみの通信を許可することによって、IPネットワークを設定する際に接続された端末のみの通信を可能にする。
【0016】
以下において、図面を参照しながら本実施例のパケット転送装置を説明する。
【0017】
図1は、本実施例のネットワークシステムを示すブロック図である。
【0018】
本実施例のネットワークシステムは、ネットワーク10、少なくとも一つのパケット転送装置100(100a〜100c)、少なくとも一つのサーバ410、及び、複数の端末400(400a〜400e)を有する。ネットワーク10は、例えば、IPネットワークである。
【0019】
パケット転送装置100は、ネットワーク10に設置され、端末400及びサーバ410から送信されるパケットを受信する。また、パケット転送装置100は、他のパケット転送装置100から送信されたパケットを受信する。パケット転送装置100は、プロセッサを有するネットワーク装置である。
【0020】
端末400は、プロセッサを有する計算機であり、例えば、ユーザが直接使用するパーソナルコンピュータであってもよい。また、端末400は、例えば、温度等を測定するためのセンサを備える端末であってもよい。
【0021】
サーバ410は、パケット転送装置100を介して端末400と通信する。サーバ410は、プロセッサを有する計算機である。サーバ410は、例えば、アプリケーションによるサービスを端末400に提供する計算機であってもよく、また、端末400が測定した結果を収集し、集計し、集計した結果をユーザに提供する計算機であってもよい。
【0022】
また、サーバ410は、入出力装置500を有してもよい。入出力装置500は、ユーザが、サーバ410を介してパケット転送装置100に指示を入力するために用いられる装置である。また、入出力装置500は、パケット転送装置100における処理結果を、ユーザに出力するための装置である。
【0023】
入出力装置500は、例えば、ディスプレイ、プリンタ、キーボード、マウス、又はタブレット端末を備える装置である。なお、入出力装置500は、パケット転送装置100が有してもよい。
【0024】
図1に示すパケット転送装置100aは、複数の端末400(400a、400b)及びサーバ410に接続される。パケット転送装置100は、制御部202、転送部300及び少なくとも一つのインタフェース110を有する。
【0025】
制御部202は、プロセッサ及びメモリを有する。プロセッサは、メモリ204が保持するプログラムを実行することによって制御部202の機能を実装する。
【0026】
制御部202は、アドレス管理部200及び少なくとも一つのアドレステーブル201を有する。アドレス管理部200は、端末400及びサーバ間で送受信されるパケットを転送するためのアドレスを管理する機能部である。
【0027】
アドレス管理部200は、ユーザからの指示1501を受け付ける。指示1501は、入出力装置500を介して、コンソールケーブルにてパケット転送装置100に送られる。なお、入出力装置500からパケット転送装置100への通知は、インタフェース110を介したパケット通信でもよい。
【0028】
なお、アドレス管理部200は、プログラムによって実装されてもよいし、制御部202に組み込まれる集積回路等の物理的な装置によって実装されてもよい。また、制御部202は、プログラムによって実装されてもよいし、パケット転送装置100に組み込まれる集積回路等の物理的な装置として実装されてもよい。
【0029】
アドレステーブル201は、パケット転送装置100を介して通信できる端末400又はサーバ410のアドレスを示す。さらに、本実施例のアドレステーブル201は、アドレス管理部200がアドレステーブル201にアドレスを設定することができるか否かを示す学習情報を保持する。また、アドレステーブル201は、学習してもよいアドレスを保持する。
【0030】
本実施例における学習情報は、パケット転送装置100がアドレスを学習できるか否かを示す。例えば、学習情報は、単なる「学習可」又は「学習不可」を示してもよいし、アドレスを学習できる時間を、有効時間として示してもよい。
【0031】
以下において、アドレステーブル201が有する学習情報が、有効時間(後述する有効時間211)である場合を説明する。
【0032】
制御部202は、アドレステーブル201を、インタフェース110に対応させて保持してもよい。このため、アドレステーブル201は、パケット転送装置100が接続される端末400、又は、サーバ410ごとに設定されてもよいし、同一のネットワークアドレスを持つ装置で構成されるネットワークセグメントごとに設定されてもよい。
【0033】
転送部300は、パケットを転送するための装置である。転送部300は、プロセッサ及びメモリを有する。また、転送部300は、機能部としてデータ転送部303を有し、情報として、転送テーブル301、フィルタテーブル302及び有効時間305を保持する。
【0034】
データ転送部303は、プログラムによって実装されてもよいし、転送部300に組み込まれる集積回路等の物理的な装置によって実装されてもよい。また、転送部300は、プログラムによって実装されてもよいし、パケット転送装置100に組み込まれる集積回路等の物理的な装置として実装されてもよい。
【0035】
転送テーブル301は、パケット転送装置100を介して通信できる端末400又はサーバ410のアドレスを示す。
【0036】
フィルタテーブル302は、パケット転送装置100が転送しないパケットの送信元のアドレスを示す。
【0037】
有効時間305は、アドレス管理部200に設定された有効時間211に対応する。具体的には、有効時間211がユーザの指示に従って設定された際、データ転送部303は、アドレステーブル201の有効時間211に基づいて、有効時間305を更新する。有効時間211が複数のインタフェース110に対応して複数設定される場合、有効時間305は、インタフェース110に対応して値を保持してもよいし、複数の有効時間211をマージした値を保持してもよい。
【0038】
例えば、1時〜3時を示す有効時間211aと2時〜4時を示す有効時間211bとがアドレステーブル201に設定されていた場合、データ転送部303は、1時〜3時と2時〜4時とを、1時〜4時に変換することによってマージし、1時〜4時を示す値によって有効時間305を更新してもよい。これによって、有効時間305が保持する情報量を低減できる。
【0039】
また、有効時間211が時間ではなく、「学習可」又は「学習不可」を示す場合、データ転送部303は、少なくとも一つの有効時間211が「学習可」を示す場合、有効時間305として「学習可」を保持してもよい。
【0040】
本実施例において、アドレステーブル201のアドレス及び転送テーブル301のアドレスは、同じである。アドレステーブル201は、転送テーブル301にアドレスを設定するためのテーブルである。
【0041】
また、本実施例におけるアドレスの学習は、アドレステーブル201にアドレスを設定し、アドレステーブル201のアドレスを転送テーブル301に格納することである。
【0042】
インタフェース110(110a、110b)は、端末400又はサーバ410と接続するためのネットワークインタフェースである。本実施例のインタフェース110は、例えば、ポートである。また、インタフェース110は、他のパケット転送装置100のインタフェース110と接続されてもよい。
【0043】
インタフェース110は、端末400又はサーバ410が属するネットワークセグメントの各々と接続されてもよいし、端末400の各々と接続されてもよいし、サーバ410の各々と接続されてもよい。
【0044】
以下において、端末400aは、IPアドレスとして192.168.1.1が割り当てられており、さらに、MACアドレスとして0000.1111.1401が割り当てられる。また、端末400bは、IPアドレスとして192.168.1.2が割り当てられており、さらに、MACアドレスとして0000.1111.1402が割り当てられる。また、端末400a及び端末400bは、IPアドレスのうち上位24ビットがネットワークアドレスであり、端末400a及び端末400bはネットワークアドレスが192.168.1.0である一つのネットワークセグメントに属する。
【0045】
サーバ410は、IPアドレスとして10.0.0.1が割り当てられ、MACアドレスとして0000.1111.1403が割り当てられる。また、サーバ410が属するネットワークは、端末400a及び端末400bが属するネットワークとは異なるネットワークセグメントに属する。サーバ410のIPアドレスは上位8ビットがネットワークアドレスであり、サーバ410が属するネットワークセグメントのネットワークアドレスは、10.0.0.0である。
【0046】
図2は、本実施例のアドレステーブル201を示す説明図である。
【0047】
アドレステーブル201(201a、201b)は、有効時間211(211a、211b)、アドレス212(212a、212b)及び許可アドレス213(213a、213b)を含む。有効時間211は、アドレス212にアドレスを設定できる期間である。
【0048】
有効時間211は、時間、終了時刻、又は、開始時刻及び終了時刻等、所定の期間を示すことができれば、いずれの方法によって指定されてもよい。また、有効時間211は、前述の学習情報の内容を示してもよく、例えば、「学習可」又は「学習不可」を示してもよい。
【0049】
アドレス管理部200は、指示1501によってユーザから学習情報として有効時間を入力された場合、アドレステーブル201の有効時間211に入力された有効時間を格納する。そして、アドレス管理部200は、例えば、有効時間211が、開始時刻を含まず、時間によって指定される場合、ユーザから入力された有効時間を有効時間211に格納した時から、有効時間211が示す時間、アドレス212を更新できる。
【0050】
また、アドレス管理部200は、指示1501によって学習情報として「学習可」又は「学習不可」を入力された場合、アドレステーブル201の有効時間211に入力された値を格納する。
【0051】
アドレス212は、パケット転送装置100を介して通信できる端末400又はサーバ410のアドレスを示す。本実施例のアドレス212は、IPアドレス及びMACアドレスを格納する。
【0052】
許可アドレス213は、学習が許可されたアドレスを示す。具体的には、許可アドレス213は、アドレス212に設定することができるアドレスを示す。なお、許可アドレス213は、学習を許可されていないアドレスを示してもよい。
【0053】
メモリ204は、一つのインタフェース110に対して一つのアドレステーブル201を有してもよいし、複数のインタフェース110に対して一つのアドレステーブル201を有してもよい。
【0054】
すなわち、メモリ204は、パケット転送装置100に接続する端末400又はサーバ410が属するネットワークセグメントに対して、一つのアドレステーブル201を有してもよく、また、パケット転送装置100に接続する端末400の各々に対して、一つのアドレステーブル201を有してもよい。
【0055】
インタフェース110に対してアドレステーブル201を有し、さらに、インタフェース110に対して有効時間211を有することによって、ユーザは、パケット転送装置100に、インタフェースの各々について、アドレスを学習させることができる。
【0056】
図2に示すアドレステーブル201aは、端末400a及び端末400bが属するネットワークセグメントに対応するアドレステーブルである。また、
図2に示すアドレステーブル201bは、サーバ410が属するネットワークに対応するアドレステーブルである。
【0057】
また、
図2に示すアドレス212aは、端末400a及び端末400bが属するネットワークセグメントにおいて、パケット転送装置100を介して通信することを許可された装置がないことを示す。また、
図2に示すアドレス212bは、サーバ410が属するネットワークセグメントにおいて、サーバ410のみがパケット転送装置100を介して通信することを許可されていることを示す。
【0058】
図3Aは、本実施例の転送テーブル301を示す説明図である。
【0059】
転送テーブル301は、インタフェース3011、IPアドレス3012及びMACアドレス3013を含む。インタフェース3011は、パケット転送装置100のインタフェース110を示す。
【0060】
IPアドレス3012は、インタフェース3011が示すインタフェース110に接続される装置のIPアドレスであり、かつ、パケット転送装置100を介して通信する装置のIPアドレスを示す。
【0061】
MACアドレス3013は、インタフェース3011が示すインタフェース110に接続される装置のMACアドレスであり、かつ、パケット転送装置100を介して通信する装置のMACアドレスを示す。
【0062】
図3Aに示す転送テーブル301は、パケット転送装置100が、サーバ410が属するネットワークセグメントが接続されるインタフェース110bから、サーバ410を宛先とするパケットのみを送信できることを示す。
【0063】
パケット転送装置100が受信したパケットの宛先へのネクストホップが、転送テーブル301が示すIPアドレス3012及びMACアドレス3013と一致しない場合、転送部300は、受信したパケットを破棄してもよい。これによって、データ転送部303は、学習していないアドレスへのパケットの転送を防ぐことができる。そして、不正なデータがIPネットワークに流入することを防ぐことができる。
【0064】
パケット転送装置100が受信したパケットの宛先へのネクストホップが、転送テーブル301が示すIPアドレス3012及びMACアドレス3013と一致する場合、データ転送部303はパケットの宛先に従ってパケットを転送する。
【0065】
図3Bは、本実施例のフィルタテーブル302を示す説明図である。
【0066】
フィルタテーブル302は、フィルタチェック順番3021、送信元IPアドレス3022、送信元MACアドレス3023、及び転送許可3024を含む。フィルタチェック順番3021は、フィルタテーブル302のエントリを採用する優先順位を示す。
【0067】
具体的には、本実施例のデータ転送部303は、フィルタチェック順番3021の数字が低い順に、フィルタテーブル302のエントリを検索する。そして、データ転送部303は、エントリが示すアドレスの条件が一致した場合、一致したエントリの転送許可3024に従って、パケットを転送するか否かを決定する。データ転送部303は、フィルタテーブル302を用いて受信するパケットをフィルタリングし、パケット転送制御を行う。
【0068】
送信元IPアドレス3022は、パケット転送装置100が受信したパケットの送信元のIPアドレスを示す。送信元MACアドレス3023は、パケット転送装置100が受信したパケットの送信元のMACアドレスを示す。
【0069】
転送許可3024は、送信元IPアドレス3022及び送信元MACアドレス3023のアドレスをヘッダに含むパケットの転送を、許可するか否かを示す。
【0070】
メモリ304は、フィルタテーブル302を、パケット転送装置100に接続する端末400又はサーバ410が属するネットワークセグメント毎に有してもよく、また、パケット転送装置100に接続する端末400又はサーバ410毎に有してもよい。
【0071】
図3Bに示すフィルタテーブル302aは、端末400a及び端末400bが属するネットワークセグメントからの接続を制御するためのフィルタテーブル302である。また、
図3Bに示すフィルタテーブル302bは、サーバ410が属するネットワークセグメントからの接続を制御するためのフィルタテーブル302である。
【0072】
また、
図3Bに示すフィルタテーブル302aは、端末400a及び端末400bが属するネットワークセグメントから送信されるパケットを、データ転送部303は、すべて転送しないことを示す。また、
図3Bに示すフィルタテーブル302bは、サーバ410が属するネットワークセグメントから送信されるパケットのうち、サーバ410から送信されたパケット以外のパケットを、データ転送部303は、すべて転送しないことを示す。
【0073】
フィルタテーブル302を用いることによって、データ転送部303は、一つのネットワークセグメントに属する複数の装置が、パケット転送装置100によるアドレス解決なしに、相互にアドレス解決を行うことを防ぐことができる。
【0074】
具体的には、端末400a及び端末400bが同じネットワークセグメントに属する場合、端末400aは、パケット転送装置100宛てにパケットを送信することなく、端末400aが端末400bへアドレス解決要求を直接送信し、端末400bのMACアドレスを解決することができる。
【0075】
そして、端末400aが端末400bのMACアドレス宛てにパケットを送信することによって、端末400a及び端末400bが通信することができる。しかし、この場合、パケット転送装置100のアドレス管理部200は、端末400a及び端末400bのIPアドレス及びMACアドレスを学習することができない。
【0076】
また、一つのネットワークセグメントに属する複数の装置が、パケット転送装置100によるアドレス解決なしでパケットを相互に送受信することは、セキュリティの観点から望ましくない。
【0077】
そこで、本実施例のパケット転送装置100は、一つのネットワークセグメントにおいて送受信されるパケットを有効時間(有効時間211及び有効時間305)内に受信した場合、そのパケットを正当なパケットとみなし、パケットの送信元のアドレスを学習する。そして、データ転送部303は、フィルタテーブル302を参照することによって、有効時間においてパケットを送信した装置のパケットのみを転送する。データ転送部303は、有効時間内に学習することにより取得したアドレスを含むフィルタテーブル302を用いて受信するパケットをフィルタリングし、パケット転送制御を行う。
【0078】
これによって、パケット転送装置100は、学習されたアドレス以外のアドレスから送信されたパケットを有効時間外に受信した場合、パケットの転送を制限することができる。
【0079】
さらに、本実施例のパケット転送装置100は、一つのネットワークセグメントに属する複数の装置が、有効時間内にアドレス解決要求を相互に送信した場合、アドレス解決要求の送信元のアドレスを学習する。このため、データ転送部303は、有効時間305が示す時間、一つのネットワークセグメントに属する複数の装置間のアドレス解決要求を、制御部203に転送する。
【0080】
図4は、本実施例のパケットを受信した場合のアドレス管理部200の処理を示すフローチャートである。
【0081】
以下の説明において、
図4に示す処理の開始時、アドレステーブル201、転送テーブル301及びフィルタテーブル302は、
図2に示すアドレステーブル201、並びに、
図3Aに示す転送テーブル301及び
図3Bに示すフィルタテーブル302と同じである。
【0082】
端末400aは、パケット転送装置100に向けてパケットを送信する。端末400aがパケット転送装置100に向けて送信するパケットには、アドレス解決要求と、端末400aと同じネットワークセグメントに属する端末400へ送信するパケットとが含まれる。
【0083】
アドレス解決要求には、送信元のIPアドレス及びMACアドレスが含まれ、さらに、解決したいアドレスとしてパケット転送装置100のIPアドレスが含まれる。なお、端末400及びサーバ410は、パケット転送装置100のIPアドレスを、あらかじめ保持する。
【0084】
パケット転送装置100のデータ転送部303は、インタフェース110を介してパケットを受信する。インタフェース110を介してパケットを受信した場合、インタフェース110を制御する機能部、又は、転送部300は、受信したパケットに、パケットを受信したインタフェース110の識別子を付加する。
【0085】
そして、データ転送部303は、パケットを受信した場合、有効時間305を参照し、受信した時刻が有効時間305が示す時間内であるか否かを判定する(S900)。
【0086】
なお、以下においてパケットを受信した時刻は、インタフェース110がパケットを受信した時刻である。しかし、S900におけるパケットを受信した時刻は、インタフェース110がパケットを受信した時刻から、S900までの時刻であれば、いずれの時刻でもよい。
【0087】
また、有効時間305がインタフェース110に対応して値を保持する場合、データ転送部303は、S900において、パケットを受信したインタフェース110に対応する有効時間305を参照する。
【0088】
なお、有効時間305が「学習可」又は「学習不可」であるかを示す場合、データ転送部は、S900において、有効時間305が「学習可」か否かを判定する。そして、データ転送部303は、「学習可」である場合S901を実行し、「学習不可」である場合S1100を実行する。
【0089】
S900において、受信した時刻が有効時間305が示す時間内である場合、データ転送部303は、受信したパケットが、パケット転送装置100を宛先とするパケット(自宛てのパケット)であるか、送信元のIPアドレスと宛先のIPアドレスとがパケット転送装置100を宛先としておらず且つ送信元のIPアドレスと宛先のIPアドレスとが同じネットワークセグメントに属するパケット(参照するパケット)であるか、又は、その他のパケットであるかを判定する(S901)。
【0090】
本実施例では、端末400a及び端末400bはIPアドレスのうち上位24ビットをネットワークアドレスとしており、サーバ410はIPアドレスのうち上位8ビットをネットワークアドレスとしている。送信元のIPアドレスと宛先のIPアドレスとが、同じネットワークセグメントに属する場合は、送信元のIPアドレスと宛先のIPアドレスのネットワークアドレスが一致する。
【0091】
S900においてパケットを受信した時刻が有効時間305が示す時間外である場合、又は、S901においてその他のパケットであると判定された場合、受信したパケットはアドレス学習対象パケットではないため、データ転送部303は、S1100に進む。
【0092】
なお、
図4に示す処理において、データ転送部303は、自宛てのパケットではなく、また、異なるネットワークセグメント間で送受信されるパケットを、アドレス学習対象パケットの候補から除外する。しかし、データ転送部303は、S901を省略してもよく、有効時間
305内に受信するすべてのパケットをアドレス学習対象パケットの候補としてもよい。
【0093】
データ転送部303は、フィルタテーブル302を参照し、受信したパケットが廃棄するパケットか否か判定する(S1100)。廃棄するパケットである場合、データ転送部303は、パケットを廃棄し、さらに、フィルタテーブル302に登録されていないパケットを受信したことを制御部202へ通知する。
【0094】
制御部202のアドレス管理部200は、フィルタテーブル302に登録されていないパケットを受信したことをサーバ410の入出力装置500に表示する(S1007)。データ転送部303は、S1100において廃棄するパケットでないと判定した場合、S1101に進む。
【0095】
データ転送部303は、S1101において、転送テーブル301を参照し、受信したパケットの宛先のネクストホップが登録されているか否か判定する。登録されている場合、S1101のYesに進み、データ転送部303は、パケットを宛先に向けて送信する。一方、受信したパケットが登録されていないネクストホップへのパケットである場合、データ転送部303は、パケットを廃棄し、さらに、転送テーブル301に登録されていないパケットを受信したことを制御部202へ通知する。
【0096】
制御部202のアドレス管理部200は、データ転送部303から、転送テーブル301に登録されていないパケットを受信したことを通知された場合、転送テーブル301に登録されていないパケットを受信したことを、サーバ410の入出力装置500に表示する(S1007)。また、S1007において、アドレス管理部200は、転送すべきでないパケットを受信したことを示すログを生成してもよい。
【0097】
S901においてパケットが自宛てのパケットであると判定された場合、データ転送部303は、パケットを制御部202へ転送する(S903)。
【0098】
S901において、受信したパケットが同じネットワークにおけるパケットであると判定された場合、データ転送部303は、受信したパケットを参照し、受信したパケットからヘッダ情報等の内容を取得する(S902)。ここで取得する内容には、送信元のIPアドレス及びMACアドレス、並びに、受信したインタフェース110の識別子等が含まれる。
【0099】
S902において、データ転送部303は、参照したパケットをパケットが示す宛先に従って転送する。
【0100】
そして、S902の後、データ転送部303は、参照によって取得した内容を、パケットとして制御部202に転送する(S903)。これは、本実施例のパケット転送装置100は、同じネットワークセグメントに属する二つの装置間で有効時間内に送受信されるパケットを、必要な通信によるパケットとみなし、このようなパケットのアドレスを学習するためである。そして、これにより、パケット転送装置100は、同じネットワークセグメント内で必要な通信を許可することができる。
【0101】
なお、データ転送部303は、S902において参照によってパケットの内容を取得したが、パケットを複製してもよい。
【0102】
アドレス管理部200は、制御部202がデータ転送部303からパケットを受信した場合、受信したパケットがアドレス解決要求以外の自宛てのパケットであるか否かを、受信したパケットが含むヘッダ情報に基づいて判定する(S1000)。
【0103】
受信したパケットがアドレス解決要求以外の自宛てのパケットである場合、受信したパケットは
図4に示す処理の対象外であるため、アドレス管理部200は、
図4に示す処理を終了する。
【0104】
受信したパケットがアドレス解決要求であるか、又は、自宛て以外のパケットである場合、アドレス管理部200は、受信したパケットに付加されたインタフェース110の識別子を参照し、パケットを受信したインタフェース110に対応するアドレステーブル201を特定する。例えば、アドレス管理部200は、受信したパケットの送信元が端末400aであり、インタフェース110aを介してパケットを受信した場合、インタフェース110aに対応するアドレステーブル201aを特定する。
【0105】
そして、アドレス管理部200は、パケットを受信した時刻が、特定されたアドレステーブル201(前述の例において、アドレステーブル201a)の有効時間211(前述の例において、有効時間211a)内であるか否かを判定する(S1001)。なお、S1001におけるパケットを受信した時刻は、インタフェース110がパケットを受信した時刻から、S1001までの時刻であれば、いずれの時刻でもよい。
【0106】
また、有効時間305がインタフェース110に対応した値を保持する場合、S1001の処理は省略されてもよい。
【0107】
S1001において、パケットを受信した時刻が有効時間211内である場合、受信したパケットは、アドレスを学習すべきパケットである可能性が高い。このため、アドレス管理部200は、特定されたアドレステーブル201の許可アドレス213を参照し、受信したパケットの送信元(前述の例において、端末400a)のアドレスを学習すべきであるか否かを判定する(S1002)。
【0108】
S1002において、許可アドレス213に基づいて、受信したパケットの送信元のアドレスを学習すべきであると判定した場合、受信したパケットの送信元のアドレスを学習することが許可されているため、パケット転送装置100は、送信元のアドレスを学習する。
【0109】
このため、アドレス管理部200は、S1003〜S1006を実行することによって、受信したパケットの送信元(前述の例において、端末400a)のアドレスを、転送部300に送信し、学習させる。許可アドレス213を用いることによって、ユーザが指定したアドレスのみをパケット転送装置100に学習させることができる。
【0110】
また、S1001において、パケットを受信した時刻が有効時間211内ではないと判定された場合、又は、S1002において、パケットの送信元のアドレスを学習すべきではないと判定された場合、アドレス管理部200は、受信したパケットのアドレスを学習せず、受信したパケットを破棄する。
【0111】
そして、アドレス管理部200は、アドレスを学習すべきではないパケットを受信したことを出力する(S1007)。例えばS1007において、アドレス管理部200は、有効時間外にアドレス解決要求を受信したこと、又は、許可されていない装置から同一ネットワークセグメント内の他の装置に向けて送信されたパケットを受信したこと等を、サーバ410の入出力装置500に表示する。
【0112】
また、アドレス管理部200は、S1007において、アドレスを学習すべきでないパケットを受信したことを示すログを生成してもよい。これによって、ユーザは、有効時間外にアドレス解決要求を受信したこと、又は、許可されていない装置から同一ネットワークセグメント内の他の装置に向けてパケットが送信されたことを認識することができる。
【0113】
アドレス管理部200は、S1001において参照したアドレステーブル201のアドレス212(具体的には、アドレス212a)に、受信したパケットの送信元のIPアドレス及びMACアドレスを追加する(S1003)。
【0114】
図5は、本実施例のアドレス解決要求の送信元のアドレスを格納した後のアドレステーブル201を示す説明図である。
【0115】
図5に示すアドレス212aは、S1003の処理後のアドレス212aであり、端末400aのIPアドレス及びMACアドレスを保持する。
図5に示すアドレス212a以外のアドレステーブル201は、
図2に示すアドレステーブル201と同じである。
【0116】
S1003の後、アドレス管理部200は、アドレス212の内容をデータ転送部303に送信し、データ転送部303は、受信したアドレス212の内容に基づいて、転送テーブル301を更新する(S1004)。S1004において、データ転送部303は、アドレステーブル201が対応するインタフェース110の識別子と、アドレス212のIPアドレス及びMACアドレスとを対応させて、転送テーブル301に格納する。
【0117】
データ転送部303は、S1003において追加されたエントリに基づいて、転送テーブル301にアドレスを追加してもよいし、すべてのアドレス212に基づいて転送テーブル301を更新してもよい。S1004の処理によって、パケット転送装置100は、アドレスを学習する。
【0118】
データ転送部303は、S1004において、受信したパケットに付加されたインタフェース110を用いてフィルタテーブル302を特定する。そして、特定したフィルタテーブル302に、受信したパケットの送信元のアドレスを格納する。データ転送部303は、すべてのアドレス212に基づいてフィルタテーブル302を更新してもよいし、S1003においてアドレス212に追加されたエントリに基づいてフィルタテーブル302を更新してもよい。
【0119】
また、データ転送部303は、新たに追加したエントリのフィルタチェック順番3021に、追加したエントリを最も優先して適用することを示す値を格納し、転送許可3024に転送を許可することを示す値を格納する。
【0120】
図6Aは、本実施例のアドレスを新たに格納した後の転送テーブル301を示す説明図である。
【0121】
図6Aに示す転送テーブル301は、端末400aのインタフェース3011に、インタフェース110aの識別子として「端末接続インタフェース」を含む。
【0122】
図6Bは、本実施例のアドレスを新たに格納した後のフィルタテーブル302を示す説明図である。
【0123】
図6Bに示すフィルタテーブル302には、端末400aの送信元のアドレスが格納され、転送許可3024に「許可」が格納される。なお、
図6Bに示すフィルタテーブル302bと
図3Bに示すフィルタテーブル302bとは、同じである。
【0124】
S1004においてフィルタテーブル302に、受信したパケットの送信元のアドレスを格納することによって、データ転送部303は、有効時間外において、フィルタテーブル302以外の装置から送信されたパケットを転送せず、ユーザが意図しない装置間の通信を制限できる。
【0125】
S1004の後、アドレス管理部200は、受信したパケットが自装置のIPアドレスの解決要求であるか否かを判定する(S1005)。アドレス管理部200は、受信したパケットのヘッダの内容に従って、受信したパケットが自装置のIPアドレスの解決要求であるか否かを判定する。
【0126】
受信したパケットが自装置のIPアドレスの解決要求である場合、アドレス管理部200は、アドレス解決要求を送信した端末400に、パケット転送装置100のMACアドレスを応答する(S1006)。S1006の後、アドレス管理部200は、
図4に示す処理を終了する。
【0127】
また、S1005において、受信したパケットが自装置のIPアドレスの解決要求でないと判定された場合、アドレス管理部200は、
図4に示す処理を終了する。
【0128】
S1003〜S1006の処理によって、有効時間内に受信したアドレス解決要求、又は、同じネットワークセグメントの装置間において送信されるパケットの送信元のアドレスを、パケット転送装置100は学習することができる。そして、パケット転送装置100に接続される装置は、パケット転送装置100を介して、パケットを送受信できる。
【0129】
具体的な例を以下に示す。
図4に示す処理によって、端末400aのアドレスがパケット転送装置100によって学習され、端末400aからパケットを有効時間外に受信した場合、データ転送部303は、転送テーブル301及びフィルタテーブル302に従って、端末400aから受信したパケットを転送する。
【0130】
しかし、
図4に示す処理によってアドレスが学習されていない装置(例えば、端末400b)が、有効時間外にパケットをパケット転送装置100に送信した場合、フィルタテーブル302に端末400bのアドレスが格納されていないため、データ転送部303は、端末400bから送信されたパケットを転送しない。
【0131】
また、端末400a及び端末400bが同じネットワークセグメントに属する場合においても、有効時間内に端末400bのアドレスが学習されなければ、パケット転送装置100は、端末400bから端末400aへのパケットの送信を制限できる。これによって、同じネットワークセグメントにおいても、セキュリティが向上する。
【0132】
なお、転送テーブル301に宛先のアドレスが格納されておらず、かつ、データ転送部303が、転送テーブル301に格納されていないアドレスを宛先とするパケットを有効時間211内に受信した場合、データ転送部303及びアドレス管理部200は、転送テーブル301に登録されていないアドレス宛に、アドレス解決要求を送信してもよい。
【0133】
具体的には、データ転送部303は、転送テーブル301に端末400aのアドレスが未設定であることをアドレス管理部200へ通知する。アドレス管理部200は、未設定の通知を受信した場合、端末400aのMACアドレスを解決するため、端末400aにアドレス解決要求を送信する。このアドレス解決要求には、端末400aのIPアドレスが含まれる。
【0134】
そして、端末400aは、パケット転送装置100からアドレス解決要求を受信した場合、自らのMACアドレスをパケット転送装置100に応答する。パケット転送装置100は、端末400aからMACアドレスを受信した場合、アドレステーブル201に端末400aのIPアドレス及びMACアドレスを格納する。また、パケット転送装置100は、端末400aのIPアドレス及びMACアドレスを、データ転送部303によって転送テーブル301に登録させる。
【0135】
図7は、本実施例の入出力装置500が表示する画面の例を示す説明図である。
【0136】
入出力装置500は、画面510〜画面540を表示する。画面510は、ユーザが有効時間211を入力するための画面である。画面530は、ユーザが学習済みのアドレスを削除するための画面である。画面540は、許可アドレス213にアドレスを設定するための画面である。
【0137】
なお、アドレステーブル201が有効時間211として、パケット転送装置100がアドレスを学習できるか否かを示す学習情報を保持する場合、画面510は、例えば、「学習可」又は「学習不可」をユーザが入力するための画面である。
【0138】
画面510は、領域511〜領域520を含む。領域511は、画面510によって、有効時間を適用するインタフェース110を指定するための領域である。領域512及び領域516は、有効時間を入力するための領域である。
【0139】
領域512は、有効時間として開始時刻及び終了時刻を入力するための領域である。領域512は、領域513〜領域515、及び領域520を含む。領域513は、開始時刻を入力するための領域であり、領域514は、終了時刻を入力するための領域である。
【0140】
領域520は、曜日又は年月日を入力するための領域である。領域520に曜日が設定される場合、設定された曜日における領域513の開始時刻から領域514の終了時刻までの時間がアドレス学習時間として指定される。
【0141】
領域520に年月日が設定された場合、設定された年月日における領域513の開始時刻から領域514の終了時刻までの時間がアドレス学習時間として指定される。
【0142】
また、領域520に年、月及び日の少なくとも一つが設定される場合、領域520に設定された期間における領域513の開始時刻から領域514の終了時刻までの時間が学習期間として指定される、例えば、領域520に月及び日だけが設定された場合、毎年設定された月日における領域513の開始時刻から領域514の終了時刻までの時間がアドレス学習時間として指定されるものである。
【0143】
領域515は、領域513及び領域514に入力された有効時間を、パケット転送装置100の有効時間211に反映するためのボタンである。
【0144】
また、領域516は、有効時間として、時間を入力するための領域である。領域516は、領域517及び領域518を含む。領域517は、現在時刻からの時間を入力するための領域である。
【0145】
領域518は、有効時間を開始するためのボタンである。領域518が操作された場合、操作された時点から領域517に入力された時間、パケット転送装置100は、アドレスを学習する。
【0146】
領域519は、有効時間を削除するためのボタンである。領域519がユーザによって操作された場合、アドレス管理部200は、領域511が示すインタフェース110に対応して設定された有効時間211の値を削除する。有効時間211を削除することによって、パケット転送装置100は、対応するインタフェース110を介して受信したパケットからアドレスを学習しない。
【0147】
画面510によって、ユーザは、アドレスを学習するための本実施例の有効時間を設定できる。このため、ユーザがネットワークに対する高度な技術を有さなくても、パケット転送装置100は、必要なアドレスを学習することができる。
【0148】
そして、画面510によって、有効時間は任意に設定でき、さらに、有効時間を削除することができる。これによって、アドレスを学習しない期間を設定でき、セキュリティを向上させることができる。
【0149】
なお、画面510によって有効時間211が設定された際、アドレス管理部200は、有効時間211が新たに設定されたアドレステーブル201のアドレス212を特定し、特定したアドレス212に格納されるアドレスを、アドレス212、転送テーブル301及びフィルタテーブル302から削除してもよい。これは、設定された有効時間211内のアドレス学習のみを有効にするためである。なお、アドレス管理部200は、データ転送部303に、転送テーブル301及びフィルタテーブル302からのアドレスの削除を指示する。
【0150】
画面530は、領域531〜領域536を含む。領域531は、アドレステーブル201のアドレス212、転送テーブル301及びフィルタテーブル302に格納されたアドレスをすべて削除するためのボタンである。
【0151】
領域532は、アドレス212、転送テーブル301及びフィルタテーブル302から削除するアドレスを入力するためのエントリである。領域532は、領域533〜領域536を含む。
【0152】
領域533及び領域534は、アドレス212、転送テーブル301及びフィルタテーブル302から削除するIPアドレス及びMACアドレスを入力するための領域である。領域535は、アドレス212、転送テーブル301及びフィルタテーブル302から削除するアドレスのネットワークセグメントを入力するための領域である。
【0153】
領域536は、領域533〜領域535に入力されたアドレスに従って、アドレステーブル201及び転送テーブル301からアドレスを削除するためのボタンである。
【0154】
画面540は、領域541〜領域544を含む。領域541は、画面540によって、許可アドレスを適用するインタフェース110を指定するための領域である。
【0155】
領域542は、許可アドレス213のIPアドレスを設定するための領域である。また、領域543は、許可アドレス213のMACアドレスを設定するための領域である。領域544は、領域542及び領域543において指定された値を、アドレステーブル201の許可アドレス213に設定するための領域である。
【0156】
画面540を介して許可アドレス213を設定することによって、ユーザは、パケット転送装置100が不要なアドレスを学習することを防ぐことができる。
【0157】
本実施例によれば、ユーザによって設定された有効時間211の間、パケット転送装置100が特定のパケットについてアドレスを学習する。このため、ユーザがネットワークの特別な専門知識を持たなくても、IPネットワークへ接続可能な端末を設定できる。
【0158】
さらに、データ転送部303は、送信元として許可されたアドレスを示すフィルタテーブル302を有し、フィルタテーブル302を用いて、有効時間211外に送信されたパケットから不正なパケットを特定することができる。そして、データ転送部303は、不正なパケットを転送しない。
【0159】
つまり、フィルタテーブル302は、アドレス学習の結果、生成され、転送が許可されるアドレスを示すホワイトリストである。そしてパケット転送装置は、アドレス学習停止中は作成したホワイトリストにより、受信したパケットについてフィルタリングを行い、転送すべきか否かを制御する。これによって、データ転送部303は、安全なIPネットワークの構築を可能にする装置を提供することができる。
【0160】
なお、本発明は前述の実施例に限定されるものではなく、様々な変形例が含まれる。例えば、前述の実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。
【0161】
また、前述の各構成、機能、処理部、手順等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、前述の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク、若しくは、SSD(Solid State Drive)等の記録装置、又は、ICカード、SDカード、若しくは、DVD等の記録媒体に置くことができる。
【0162】
また、制御線又は情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線又は情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。