(57)【要約】      （修正有）【課題】アドレス解決のためのデータ転送によるネットワーク伝送効率の低下を回避可能で、かつ安全性の確保／既存のネットワーク設備との混在が可能な方法を提供する。【解決手段】サーバ装置が、アドレス解決に関する告知情報を、ネットワーク上の複数の端末に通知し、告知情報を受理した端末は、サーバ装置との間のセキュアな通信で、ＩＰ（Internet Protocol）アドレスとＭＡＣ（Media Access Control）アドレスの対応を格納したテーブルの転送要求をサーバ装置に送信し、サーバ装置は、端末からテーブルの転送要求を受信すると、サーバ装置で保持するネットワークに接続する複数のノードのＩＰアドレスとＭＡＣアドレスの対応を含むテーブルを、セキュアな通信で端末に送信し、端末は、サーバ装置から受信したテーブルを記憶部に記憶し、記憶部に記憶されたテーブルを用いて、端末の通信の宛先のアドレス解決を行う。【選択図】図１
2020137006.tif 000002
【特許請求の範囲】
【請求項１】
複数の端末と、
前記複数の端末が接続するネットワークに接続されるサーバ装置と、
を備え、
前記サーバ装置は、
アドレス解決に関する告知情報を前記複数の端末に通知する手段を備え、
前記複数の端末の少なくとも一つの端末は、
前記サーバ装置から前記告知情報を受理した上で、
前記端末と前記サーバ装置との間のセキュアな通信で、ＩＰ（Internet Protocol）アドレスとＭＡＣ（Media Access Control）アドレスの対応を格納したテーブルの転送要求を前記サーバ装置に送信する手段を備え、
前記サーバ装置は、
前記端末から前記テーブルの転送要求を受信すると、前記サーバ装置で保持する、前記ネットワークに接続するノードのＩＰアドレスとＭＡＣアドレスの対応を含むテーブルを、前記セキュアな通信で、前記端末に送信する手段を備え、
前記端末は、
前記サーバ装置から受信した前記テーブルを記憶する記憶部を備え、
前記記憶部に記憶された前記テーブルを用いて、前記端末の通信の宛先のアドレス解決を行う、ことを特徴とするネットワークシステム。
【請求項２】
前記端末は、
前記端末のＯＳ（Operating System）からアドレス解決要求を受けると、
前記記憶部の前記テーブルを参照して、前記アドレス解決要求で指定された通信の宛先のＩＰアドレスに対応するＭＡＣアドレスを取得し、
前記ＭＡＣアドレスを設定したアドレス解決応答を、前記ＯＳに返す応答生成手段を備えた、ことを特徴とする請求項１に記載のネットワークシステム。
【請求項３】
前記端末において、
前記ＯＳは、前記端末上の仮想マシンで動作するＯＳ、又は、前記端末のＯＳであり、
前記ネットワークと通信するネットワークインタフェース装置のドライバが、前記応答生成手段を備えた、ことを特徴とする請求項２に記載のネットワークシステム。
【請求項４】
ネットワークに接続するノードのＩＰ（Internet Protocol）アドレスとＭＡＣ（Media Access Control）アドレスの対応を含むテーブルを記憶する記憶部と、
アドレス解決に関する告知情報を、前記ネットワークに接続する複数の端末に通知する手段と、
前記告知情報を受理した前記端末から、ＩＰアドレスとＭＡＣアドレスの対応を含むテーブルの転送要求を、前記端末との間のセキュアな通信で、受信する手段と、
前記記憶部に保持される前記テーブルを、前記セキュアな通信で、前記端末に送信する手段と、
前記転送要求を送信した前記端末のＩＰアドレスとＭＡＣアドレスの組で前記記憶部に保持される前記テーブルを更新する手段と、
を備えた、ことを特徴とするサーバ装置。
【請求項５】
ネットワークに接続するノードのＩＰ（Internet Protocol）アドレスとＭＡＣ（Media Access Control）アドレスの対応を含むテーブルを記憶するサーバ装置から通知されるアドレス解決に関する告知情報を受信する手段と、
前記サーバ装置との間でセキュアな通信にて、ＩＰアドレスとＭＡＣアドレスの対応を格納したテーブルの転送要求を前記サーバ装置に送信する手段と
前記サーバ装置から、前記セキュアな通信で、前記ネットワークに接続するノードのＩＰアドレスとＭＡＣアドレスの対応を含むテーブルを受信し記憶部に記憶する手段と、
を備え、前記記憶部に記憶された前記テーブルを用いて、通信の宛先のアドレス解決を行う、ことを特徴とする端末。
【請求項６】
サーバ装置が、アドレス解決に関する告知情報を、ネットワークに接続する複数の端末に通知し、
前記告知情報を受理した前記端末は、前記端末と前記サーバ装置との間のセキュアな通信で、ＩＰ（Internet Protocol）アドレスとＭＡＣ（Media Access Control）アドレスの対応を格納したテーブルの転送要求を前記サーバ装置に送信し、
前記サーバ装置は、前記端末から前記テーブルの転送要求を受信すると、前記サーバ装置で保持する、前記ネットワークに接続する複数のノードのＩＰアドレスとＭＡＣアドレスの対応を含むテーブルを、前記セキュアな通信で、前記端末に送信し、
前記端末は、前記サーバ装置から受信した前記テーブルを記憶部に記憶し、
前記端末は、前記記憶部に記憶された前記テーブルを用いて、前記端末の通信の宛先のアドレス解決を行う、ことを特徴とするアドレス解決制御方法。
【請求項７】
ネットワークに接続するノードのＩＰ（Internet Protocol）アドレスとＭＡＣ（Media Access Control）アドレスの対応を含むテーブルを記憶部に記憶しておき、
アドレス解決に関する告知情報を複数の端末に通知し、
前記複数の端末のうち前記告知情報を受理した前記端末から、前記端末との間でのセキュアな通信で、ＩＰアドレスとＭＡＣアドレスの対応を含むテーブルの転送要求を受信し、
前記記憶部に記憶される前記テーブルを、セキュアな通信で、前記端末に送信し、
前記転送要求を送信した前記端末のＩＰアドレスとＭＡＣアドレスの組で、前記記憶部に記憶される前記テーブルを更新する、ことを特徴とする、サーバ装置によるアドレス解決のための制御方法。
【請求項８】
ネットワークに接続するノードのＩＰ（Internet Protocol）アドレスとＭＡＣ（Media Access Control）アドレスの対応を含むテーブルを記憶するサーバ装置から通知されるアドレス解決に関する告知情報を受信し、
ＩＰアドレスとＭＡＣアドレスの対応を格納したテーブルの転送要求を、前記サーバ装置との間のセキュアな通信で、前記サーバ装置に送信し
前記サーバ装置から送信された前記テーブルを、前記セキュアな通信で受信して記憶部に記憶し、
前記記憶部に記憶された前記テーブルを参照して、通信の宛先のアドレス解決を行う、ことを特徴とする、端末によるアドレス解決のための制御方法。
【請求項９】
ネットワークに接続するノードのＩＰ（Internet Protocol）アドレスとＭＡＣ（Media Access Control）アドレスの対応を含むテーブルを記憶部に記憶する処理と、
アドレス解決に関する告知情報を複数の端末に通知する処理と、
前記複数の端末のうち前記告知情報を受理した前記端末から、前記端末との間でのセキュアな通信で、ＩＰアドレスとＭＡＣアドレスの対応を含むテーブルの転送要求を受信する処理と、
前記記憶部に記憶される前記テーブルを、前記セキュアな通信で、前記端末に送信する処理と、
前記転送要求を送信した前記端末のＩＰアドレスとＭＡＣアドレスの組で、前記記憶部に記憶される前記テーブルを更新する処理と、
をコンピュータに実行させるプログラム。
【請求項１０】
ネットワークに接続するノードのＩＰ（Internet Protocol）アドレスとＭＡＣ（Media Access Control）アドレスの対応を含むテーブルを記憶するサーバ装置から通知されるアドレス解決に関する告知情報を受信する処理と、
ＩＰアドレスとＭＡＣアドレスの対応を格納したテーブルの転送要求を、前記サーバ装置との間のセキュアな通信で、前記サーバ装置に送信する処理と、
前記サーバ装置から送信された前記テーブルを、前記セキュアな通信で受信して記憶部に記憶する処理と、
前記記憶部に記憶された前記テーブルを参照して、通信の宛先のアドレス解決を行う処理と、
を端末のプロセッサに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アドレス解決制御方法、ネットワークシステム、サーバ装置、端末及びプログラムに関する。
【背景技術】
【０００２】
イーサネット（Ethernet：登録商標）を用いたＬＡＮ（Local Area Network）では、ＯＳＩ（Open Systems Interconnection）参照モデルのレイヤ２（データリンク層）のフレーム転送を行うレイヤ２スイッチ（Ｌ２スイッチ）を接続してネットワークが構築される。ＬＡＮ内のネットワークは同一セグメントとされ、異なるセグメントのＬＡＮとは、例えばルータやレイヤ３（ネットワーク層）のスイッチを介して通信する。
【０００３】
イーサネットを用いたネットワークにおいて、ＩＰｖ４（Internet Protocol version 4）では、データリンク層のアドレスの解決には、ＡＲＰ（Address Resolution Protocol）が用いられる。ホスト（端末）は、通信相手のＩＰ（Internet Protocol）アドレスに対応するＭＡＣ（Media Access Control）アドレスを取得するため、ＡＲＰ要求パケットをイーサネットフレーム（「ＭＡＣフレーム」ともいう）でカプセル化したフレーム（ＡＲＰ要求フレーム）をブロードキャスト送信する。すなわち、ホスト（端末）のＯＳ（Operating System）で管理するＡＲＰテーブル（ネットワークノードのＩＰアドレスとＭＡＣアドレスとを関連付けて保持するテーブル）に、通信相手のノードのＩＰアドレスに対応するＭＡＣアドレスが登録されていない場合、ＯＳは、ＡＲＰ要求をＮＩＣ（Network Interface Card）ドライバ（イーサネットインタフェースカード等のＮＩＣのソフトウェアドライバ）に発行する。ＮＩＣドライバでは、ＡＲＰ要求パケットを、イーサネットフレームにカプセル化してＬＡＮ内（ＡＲＰ要求発信元と同一のセグメント内のすべてのノード）にブロードキャストする。
【０００４】
図１０（Ａ）は、ＡＲＰフレーム（ＡＲＰパケット）のフレームフォーマット（パケットフォーマット）を例示する図である。図１０（Ｂ）は、図１０（Ａ）のＡＲＰパケットの各フィールドの説明である。ＡＲＰ要求フレームのフレームヘッダの宛先ＭＡＣアドレス欄（６オクテット）は全て１（0xFF-FF-FF-FF-FF-FF：0xは１６進数（hexadecimal）を表す）である。フレームヘッダの送信元ＭＡＣアドレス欄はＡＲＰ要求フレーム送信元のＭＡＣアドレスである。なお、ＭＡＣアドレスはＮＩＣの固有のＩＤ（１６進数で１２桁（12hexadecimal−digits））である。ＡＲＰ応答フレームのフレームヘッダの宛先ＭＡＣアドレス欄はＡＲＰ要求フレーム送信元のＭＡＣアドレスであり、送信元ＭＡＣアドレス欄は、ＡＲＰ応答フレームの送信元のＭＡＣアドレスである。
【０００５】
タイプは、ＡＲＰのとき0x0806である。オペレーション（Operation）は、当該パケットがＡＲＰ要求またはＡＲＰ応答を識別するための情報が入る（ＡＲＰ要求の場合、0x0001、ＡＲＰ応答の場合、0x0002）。送信元ＭＡＣアドレス（Source MAC Address）は送信元のＭＡＣアドレス情報（フレームヘッダの送信元ＭＡＣアドレス）である。送信元ＩＰアドレス（Source IP Address）は送信元のＩＰアドレス情報である。ターゲットＭＡＣアドレス（Target MAC Address）は、通信相手のＭＡＣアドレス情報である（ＡＲＰ要求の場合はox00-00-00-00-00-00）。ターゲットＩＰアドレス（Target IP Address）は、通信相手のＩＰアドレスである。
【０００６】
ＡＲＰ要求パケットのターゲットＩＰアドレス情報が、自ノードのＩＰアドレスであった場合、ＡＲＰ要求フレームを受信したノードは、自ノードのＭＡＣアドレスをターゲットＭＡＣアドレス欄に格納したＡＲＰ応答フレームを、ＡＲＰ要求フレームの送信元にユニキャストで返信する。ＡＲＰ要求フレームを送信したホスト（端末）のＯＳは、受信したＡＲＰ応答に設定されたターゲットＭＡＣアドレスをターゲットＩＰアドレスと関連付けてＡＲＰテーブル（「ＡＲＰキャッシュ」ともいう）に格納し、一定時間記憶保持する。ＡＲＰ要求フレームは同一セグメント（ブロードキャストドメイン）内にブロードキャストされるが、異なるネットワークセグメント間のＡＲＰは、例えばデフォルトゲートウェイ（ルータ）を介して行われる。なお、ＡＲＰについては、例えばＩＥＴＦ（Internet Engineering Task Force）のＲＦＣ（Request For Comments）８２６が参照される。
【０００７】
ＡＲＰ要求フレームがブロードキャストされると、ＡＲＰ要求フレームを入力ポートから受信したＬ２スイッチでは、ＡＲＰ要求フレームを該入力ポート以外の全てのポートから送信する。この結果、レイヤ２ネットワーク内でＡＲＰ要求フレームが溢れ、当該ネットワークの帯域を圧迫する場合が生じる。さらに、ブロードキャストされたＡＲＰ要求フレームがＬ２スイッチ間でループ状に転送されると、転送が無限に繰り返され、その結果、ブロードキャストされるＡＲＰ要求フレームがネットワークの帯域幅を使い切ってしまうというブロードキャストストームも発生し得る。
【０００８】
上記問題に対して、特許文献１には、ネットワークノードのＩＰアドレスとＭＡＣアドレスとを対応付けた情報の一覧を事前に取得して記憶部に記憶する第１の手段と、ＩＰアドレスに対応するＭＡＣアドレスを解決するためのＡＲＰ要求を受信すると、前記記憶部を参照し、ＡＲＰ要求で指定されたＩＰアドレスに対応するＭＡＣアドレスが記憶されている場合には、前記記憶部に記憶されているＭＡＣアドレスを含む応答を、前記ＡＲＰ要求の送信元へ送信する第２の手段を備えた通信装置（ＣＰＥ(Customer Premises Equipment：顧客構内機器、あるいは加入者構内設備)）が開示されている。ルータ配下のノードのＩＰアドレス情報を該ルータから取得したＣＰＥがＩＰアドレスとＭＡＣアドレスの対応情報を保持しておき、当該ＣＰＥがＡＲＰ要求フレームを受信すると、要求されたＩＰアドレスが保持されている場合、ＡＲＰ応答フレームを返す。ＣＰＥは該ＡＲＰ要求フレームを、ＣＰＥとルータを接続するレイヤ２ネットワークにはブロードキャストしない。この結果、該レイヤ２ネットワークでは、ブロードキャストされたＡＲＰ要求フレームが溢れてネットワークの帯域を圧迫することは回避される。特許文献１では、ルータを介して接続するネットワークにＡＲＰ要求があった場合に、ＣＰＥがホストに代わって代理で回答するものである。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２０１５−２２８６０６号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
関連技術の分析を与える。
【００１１】
ＡＲＰは、上記したように、ネットワークの帯域を圧迫する等の問題がある。特許文献１等のように、ＡＲＰの回答を代理する装置や専用追加回路を付加したＬ２スイッチ等のノードにＡＲＰテーブルを備え、ブロードキャストされたＡＲＰ要求フレームを受信した場合、該ＡＲＰ要求フレームのブロードキャストを止め、ＡＲＰ応答フレームを代理で送信元に返す手法の場合、ネットワークセグメント内にブロードキャストされるＡＲＰ要求フレーム数が削減され、その分、当該ネットワークでのＡＲＰトラフィックの帯域使用量が削減可能となる。しかし、特許文献１等の構成では、ＡＲＰの回答を代理で行う専用の通信装置（ＣＰＥ、ルータ、スイッチ、あるいは回線終端装置等）の導入が必要とされる。
【００１２】
また、不正アクセスやＤｏＳ（Denial of Service Attack：サービス拒否攻撃）やＤＤｏＳ（Distributed Denial of Service Attacks：分散サービス拒否攻撃）等の攻撃を行うことを目的とした端末（もしくは故障や操作ミス、ソフトウェアのバグ等の不具合）がＡＲＰ要求フレーム等を不必要に大量発生させた場合、ブロードキャストドメイン全体に影響が及ぶ。特許文献１では、ネットワークの機密性、安全性を高める認証機能等が具備されていない。
【００１３】
イーサネットにおいて、ＭＴＵ（Maximum Transmission Unit：１フレームで伝送可能なデータ量）は最小４６バイト、最大１５００バイトである（ヘッダ１４バイトとＦＣＳ（Frame Check Sequence）４バイトを加えると、６４、１５１８バイト）。図１０（Ａ）に例示したように、ＡＲＰパケットのサイズは２８バイトであり、ＡＲＰフレーム（イーサネットフレーム）のデータ部は、ＭＴＵサイズまで０で穴埋め（パディング）されて伝送される。伝送速度１Ｇｂｐｓ（Giga bit per second）、１０Ｇｂｐｓ、２５Ｇｂｐｓ、１００Ｇｂｐ、４００Ｇｂｐｓといった最近のイーサネットインタフェース等において、ＡＲＰパケット等の短パケットの伝送は、ネットワークの伝送効率を低下させる。ＭＴＵサイズが小さいと、必要なデータの転送に必要なフレーム数が増加し、ＭＴＵサイズを大きくすると、ＡＲＰパケット等の短サイズを伝送する場合、パディング長さが増大し、ネットワークの帯域の最適化に寄与しない。
【００１４】
一方、新規のＡＲＰプロトコルを導入する場合、既存ネットワーク設備や端末等のネットワークノードの全て入れ替えることが必要な方式は、非経済的であり、実現は難しい。
【００１５】
本発明は、上記課題に鑑みて創案されたものであって、その目的は、アドレス解決のためのデータ転送によるネットワーク伝送効率の低下を回避可能とし、安全性の確保、既存のネットワーク設備との混在を可能とするネットワークシステム、サーバ装置、端末、アドレス解決制御方法、及び、プログラムを提供することにある。
【課題を解決するための手段】
【００１６】
本発明の１つの側面によれば、ネットワークシステムは、複数の端末と、前記複数の端末が接続するネットワークに接続されるサーバ装置と、を備えている。  
前記サーバ装置は、アドレス解決に関する告知情報を前記複数の端末に通知する手段を備えている。
前記複数の端末の少なくとも一つの端末は、前記サーバ装置から前記告知情報を受理した上で、前記端末と前記サーバ装置との間のセキュアな通信で、ＩＰアドレスとＭＡＣアドレスの対応を格納したテーブルの転送要求を前記サーバ装置に送信する手段を備えている。
前記サーバ装置は、前記端末から前記テーブルの転送要求を受信すると、前記サーバ装置で保持する、前記ネットワークに接続するノードのＩＰアドレスとＭＡＣアドレスの対応を含むテーブルを、前記セキュアな通信で、前記端末に送信する手段を備えている。
前記端末は、前記サーバ装置から受信した前記テーブルを記憶する記憶部を備え、前記記憶部に記憶された前記テーブルを用いて、前記端末の通信の宛先のアドレス解決を行う。
【００１７】
本発明の別の側面の１つによれば、サーバ装置は、ネットワークに接続するノードのＩＰ（Internet Protocol）アドレスとＭＡＣ（Media Access Control）アドレスの対応を含むテーブルを記憶する記憶部と、アドレス解決に関する告知情報を、前記ネットワークに接続する複数の端末に通知する手段と、前記告知情報を受理した前記端末から、ＩＰアドレスとＭＡＣアドレスの対応を含むテーブルの転送要求を、前記端末との間のセキュアな通信で、受信する手段と、前記記憶部に保持される前記テーブルを、前記セキュアな通信で、前記端末に送信する手段と、前記転送要求を送信した前記端末のＩＰアドレスとＭＡＣアドレスの組で前記記憶部に保持される前記テーブルを更新する手段と、を備えている。
【００１８】
本発明の別の側面の１つによれば、端末は、ネットワークに接続するノードのＩＰアドレスとＭＡＣアドレスの対応を含むテーブルを記憶するサーバ装置から通知されるアドレス解決に関する告知情報を受信する手段と、前記サーバ装置との間でセキュアな通信にて、ＩＰアドレスとＭＡＣアドレスの対応を格納したテーブルの転送要求を前記サーバ装置に送信する手段と、前記サーバ装置から、前記セキュアな通信で、前記ネットワークに接続するノードのＩＰアドレスとＭＡＣアドレスの対応を含むテーブルを受信し記憶部に記憶する手段と、を備え、前記記憶部に記憶された前記テーブルを用いて、前記端末の通信の宛先のアドレス解決を行う。
【００１９】
本発明の別の側面の１つによれば、アドレス解決制御方法は、サーバ装置が、アドレス解決に関する告知情報を、ネットワークに接続する複数の端末に通知し、
前記告知情報を受理した前記端末は、前記端末と前記サーバ装置との間のセキュアな通信で、ＩＰアドレスとＭＡＣアドレスの対応を格納したテーブルの転送要求を前記サーバ装置に送信し、
前記サーバ装置は、前記端末から前記テーブルの転送要求を受信すると、前記サーバ装置で保持する、前記ネットワークに接続する複数のノードのＩＰアドレスとＭＡＣアドレスの対応を含むテーブルを、前記セキュアな通信で、前記端末に送信し、
前記端末は、前記サーバ装置から受信した前記テーブルを記憶部に記憶し、
前記端末は、前記記憶部に記憶された前記テーブルを用いて、前記端末の通信の宛先のアドレス解決を行う。
【００２０】
本発明のさらに別の側面の１つによれば、サーバによるアドレス解決のための制御方法は、ネットワークに接続するノードのＩＰアドレスとＭＡＣアドレスの対応を含むテーブルを記憶部に記憶しておき、
アドレス解決に関する告知情報を複数の端末に通知し、
前記複数の端末のうち前記告知情報を受理した前記端末から、前記端末との間でのセキュアな通信で、ＩＰアドレスとＭＡＣアドレスの対応を含むテーブルの転送要求を受信し、
前記記憶部に記憶される前記テーブルを、セキュアな通信で、前記端末に送信し、
前記転送要求を送信した前記端末のＩＰアドレスとＭＡＣアドレスの組で、前記記憶部に記憶される前記テーブルを更新する。
【００２１】
本発明のさらに別の側面の１つによれば、端末によるアドレス解決のための制御方法は、ネットワークに接続するノードのＩＰアドレスとＭＡＣアドレスの対応を含むテーブルを記憶するサーバ装置から通知されるアドレス解決に関する告知情報を受信し、
ＩＰアドレスとＭＡＣアドレスの対応を格納したテーブルの転送要求を、前記サーバ装置との間のセキュアな通信で、前記サーバ装置に送信し、
前記サーバ装置から送信された前記テーブルを、前記セキュアな通信で受信して記憶部に記憶し、
前記記憶部に記憶された前記テーブルを参照して、前記端末の通信の宛先のアドレス解決を行う。
【００２２】
本発明の別の側面の１つによれば、ネットワークに接続するノードのＩＰ（Internet Protocol）アドレスとＭＡＣ（Media Access Control）アドレスの対応を含むテーブルを記憶部に記憶する処理と、
アドレス解決に関する告知情報を複数の端末に通知する処理と、
前記複数の端末のうち前記告知情報を受理した前記端末から、前記端末との間でのセキュアな通信で、ＩＰアドレスとＭＡＣアドレスの対応を含むテーブルの転送要求を受信する処理と、
前記記憶部に記憶される前記テーブルを、前記セキュアな通信で、前記端末に送信する処理と、
前記転送要求を送信した前記端末のＩＰアドレスとＭＡＣアドレスの組で、前記記憶部に記憶される前記テーブルを更新する処理と、
をコンピュータに実行させるプログラムが提供される。
【００２３】
本発明のさらに別の側面の１つによれば、ネットワークに接続するノードのＩＰ（Internet Protocol）アドレスとＭＡＣ（Media Access Control）アドレスの対応を含むテーブルを記憶するサーバ装置から通知されるアドレス解決に関する告知情報を受信する処理と、
ＩＰアドレスとＭＡＣアドレスの対応を格納したテーブルの転送要求を、前記サーバ装置との間のセキュアな通信で、前記サーバ装置に送信する処理と、
前記サーバ装置から送信された前記テーブルを、前記セキュアな通信で受信して記憶部に記憶する処理と、
前記記憶部に記憶された前記テーブルを参照して、前記端末の通信の宛先のアドレス解決を行う処理と、
を端末のプロセッサに実行させるプログラム提供される。
【００２４】
本発明によれば、上記した各側面のプログラムを記憶したコンピュータ読み出し可能な記録媒体（（例えばＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory)、又は、EEPROM(Electrically Erasable and Programmable ROM））等の半導体ストレージ、ＨＤＤ（Hard Disk Drive）、ＣＤ（Compact Disc）、ＤＶＤ（Digital Versatile Disc）等のnon-transitory computer readable recording medium）が提供される。
【発明の効果】
【００２５】
本発明によれば、アドレス解決のためのデータ転送によるネットワーク伝送効率の低下を回避可能とし、安全性の確保、さらに既存のネットワーク設備との混在を可能としている。
【図面の簡単な説明】
【００２６】
【図１】本発明の例示的な実施形態のネットワークを説明する図である。
【図２】本発明の例示的な実施形態のネットワークを説明する図である。
【図３】本発明の例示的な実施形態の端末とＡＲＰサーバの機能構成例を説明する図である。
【図４】本発明の例示的な実施形態のシーケンス動作を説明する図である。
【図５】本発明の例示的な実施形態のシーケンス動作を説明する図である。
【図６】（Ａ）は、本発明の例示的な実施形態のネットワーク、（Ｂ）はＩＰアドレス−ＭＡＣアドレステーブルの一例を説明する図である。
【図７】本発明の例示的な実施形態のシーケンス動作を説明する図である。
【図８】本発明の例示的な実施形態のシーケンス動作を説明する図である。
【図９】本発明の例示的な実施形態においてコンピュータ実装例を説明する図である。
【図１０】（Ａ）はＡＲＰフレームのフォーマット、（Ｂ）ＡＲＰパケットの各フィールドを説明する図である。
【発明を実施するための形態】
【００２７】
本発明の例示的な実施形態について説明する。図１は、本発明の基本的な形態を説明する図である。ＡＲＰサーバ２０が、アドレス解決に関する告知情報（ＡＲＰサーバ告知情報）を、ネットワークに接続する複数の端末（１０−１〜１０−ｎ：ｎは２以上の整数）に通知する（Ｓ１１）。ＡＲＰサーバ２０は、ＡＲＰサーバ告知情報（パケット）を複数の端末（１０−１〜１０−ｎ）にマルチキャストで送信してもよい。
【００２８】
端末１０−１（１０−２〜１０−ｎ）は、ＡＲＰサーバ２０から通知されたＡＲＰサーバ告知情報を受け取ると、ＩＰアドレスとＭＡＣアドレスの対応を格納したテーブルの転送要求をＡＲＰサーバ２０に送信する（Ｓ１２）。その際、端末１０−１（１０−２〜１０−ｎ）は、ＡＲＰサーバ２０との間でセキュアな通信を確立した上で該テーブルの転送要求をＡＲＰサーバ２０に送信するようにしてもよい。
【００２９】
ＡＲＰサーバ２０は、端末１０−１（１０−２〜１０−ｎ）から前記テーブルの転送要求を受信すると、ＡＲＰサーバ２０で保持する前記ネットワークに接続する端末のＩＰアドレスとＭＡＣアドレスの対応を備えたテーブルを前記端末１０−１（１０−２〜１０−ｎ）に送信する（Ｓ１３）。その際、ＡＲＰサーバ２０は、ＩＰアドレスとＭＡＣアドレスの対応を備えたテーブルを、好ましくは、一括で、前記端末１０−１（１０−２〜１０−ｎ）に送信する。
【００３０】
端末１０−１（１０−２〜１０−ｎ）は、ＡＲＰサーバ２０から受信した前記テーブルを記憶部に記憶する（Ｓ１４）。
【００３１】
端末１０−１（１０−２〜１０−ｎ）では、通信の宛先のＩＰアドレスに対応するＭＡＣアドレスが必要な場合、ＡＲＰ要求をネットワークにブロードキャストせず、端末１０−１（１０−２〜１０−ｎ）で保持する前記テーブルを参照して、該通信の宛先のＩＰアドレスに対応するＭＡＣアドレスを取得する（Ｓ１５）。以下、具体的な実施形態に即して説明する。
【００３２】
図２は、本発明の例示的な実施形態のネットワークシステムを説明する図である。図２を参照すると、第１の端末１０−１（端末１）、・・・、第ｎの端末１０−ｎ（端末ｎ）（ｎは２以上の整数）と、ＡＲＰサーバ２０と、イーサネット等のレイヤ２ネットワーク１を構成する複数のＬ２スイッチ（Ｌ２ ＳＷ）３０−１〜３０−４を備えている。Ｌ２スイッチ３０−３、３０−４はエッジスイッチを構成してもよい。特に制限されないが、各端末は仮想化機構を備えた情報通信装置（例えばＰＣ（Personal Computer）等）であってもよい。図２において、レイヤ２ネットワーク１のトポロジ―は、Ｌ２スイッチ（Ｌ２ ＳＷ）３０をカスケード接続した構成とされているが、ネットワークのトポロジーはかかる構成の制限されるものでないことは勿論である。Ｌ２スイッチ３０の数は上記に制限されるものでないことは勿論である。なお、端末、Ｌ２スイッチ等の説明（参照）において、枝番による特定が不要の場合、枝番を付加せず、例えば端末１０、Ｌ２スイッチ３０と記載する。
【００３３】
図２に模式的に例示するように、端末１０は、イーサネットインタフェースカード等のＮＩＣ（Network Interface Card）と、ＮＩＣドライバを有する。また、端末１０は、例えばハイパーバイザ等の仮想化機構を備え、ハイパーバイザ上に仮想マシン（Virtual Machine：ＶＭ）を備える。仮想マシン（ＶＭ）は、ＯＳ（Operating System）（「ゲストＯＳ」ともいう）と、該ＯＳ上で稼働するアプリケーションを有する。アプリケーションプロトコルのためのソフトウェア（例えばＨＴＴＰ（Hyper Text Transport Protocol）など）は仮想マシン（ＶＭ）上のアプリケーションに実装される。なお、端末１０において、仮想マシン（ＶＭ）を複数備えてもよいことは勿論である。また１つの仮想マシン（ＶＭ）上に複数のアプリケーションを稼働するようにしてもよいことは勿論である。仮想マシン上のＯＳはWindows（登録商標）、Linux（登録商標）等任意である。
【００３４】
端末１０において、レイヤ２（データリンク層）の機能であるネットワーク管理機能やカプセル化機能等のソフトウェアモジュールをＮＩＣドライバに組み込む構成としてもよい。レイヤ３（ネットワーク層）（ＩＰ、ＡＲＰ等）やレイヤ４（トランスポート層）（ＴＣＰ（Transmission Control Protocol）／ＵＤＰ（User Datagram Protocol））のソフトウェアモジュールを、仮想マシン（ＶＭ）上のＯＳに組み込む構成としてもよい。
【００３５】
ＡＲＰサーバ２０は、予め定められた所定時間間隔（例えば１秒間隔）で、マルチキャストパケット（「ＡＲＰサーバ告知パケット」という）を出力する。ＡＲＰサーバ２０において、ＡＲＰサーバ告知パケットは、イーサネットフレームにカプセル化されてマルチキャストされる。マルチキャスト送信では、ネットワークで特定の複数のノード（マルチキャストグループ）に対して１つのパケットを送信する。マルチキャスト用のＩＰアドレス（224.0.0.0 〜239.255.255.255）が用意されており、マルチキャストのフレームヘッダの宛先ＭＡＣアドレス欄は、先頭の２５ビットが"00000001 00000000 01011110 0"、残りの２３ビットはマルチキャストＩＰアドレスの下位２３ビットを使用する(0x01-00-5E-00-00-00〜0x01-00-5E-7F-FF-FF)。
【００３６】
ＡＲＰサーバ２０は、ＡＲＰサーバ告知パケットを複数の端末１０のマルチキャスト送信することで、本実施形態のＡＲＰ方式（「新ＡＲＰ方式」という）が提供可であることを、複数の端末１０に通知する。
【００３７】
本実施形態では、マルチキャスト送信されたＡＲＰサーバ告知パケットを受信した端末１０が、新ＡＲＰ方式に対応した端末である場合、ＡＲＰサーバ告知パケットの告知情報（新ＡＲＰ方式を提供すること）を受け付け、端末１０がＡＲＰ要求フレームをブロードキャスト送信する代わりに、ＡＲＰサーバ２０に対して、ＩＰアドレスとＭＡＣアドレスの対応を格納したテーブルの転送要求をユニキャストで送信する。
【００３８】
端末１０は、ＡＲＰサーバ告知パケットの受信により、端末１０が接続するレイヤ２ネットワーク１では、新ＡＲＰ方式が提供されることを認識する。なお、端末１０では、図１０を参照して説明したＩＥＴＦ  ＲＦＣ８２６準拠（通常）のＡＲＰ（「通常ＡＲＰ」という）を使うか、新ＡＲＰ方式を使うかを選択自在に構成してもよい。新ＡＲＰ方式に対応する端末１０では、ＡＲＰサーバ２０からのＡＲＰサーバ告知パケットを受理するが、通常ＡＲＰ方式の端末では、ＡＲＰサーバ２０からのマルチキャストされるＡＲＰサーバ告知パケットを無視してよい（受理しない）。
【００３９】
端末１０では、仮想マシン（ＶＭ）上のＯＳからＡＲＰ要求を受けると、ＡＲＰサーバ２０に対して、ＩＰアドレス−ＭＡＣアドレステーブル転送要求を送出する。すなわち、仮想マシン（ＶＭ）上のＯＳは、仮想マシン（ＶＭ）上で動作するアプリケーション（例えばＨＴ  ＴＰ等）からの宛先への通信要求に対して、宛先のＩＰアドレスに対応する宛先（ターゲット）ＭＡＣアドレスが不明である場合、ＡＲＰ要求をＮＩＣドライバに出力する。ＮＩＣドライバは、フレームヘッダの宛先ＭＡＣアドレス欄を、ＡＲＰサーバ２０のＭＡＣアドレスに設定したＩＰアドレス−ＭＡＣアドレステーブル転送要求フレームをユニキャストで送信する。この場合、端末１０のＮＩＣドライバは、図１０（Ａ）のイーサネットフレームのデータ部に「ＩＰアドレス−ＭＡＣアドレステーブル転送要求」に対応するコマンドやコードを設定するようにしてもよい。ＩＰアドレス−ＭＡＣアドレステーブル転送要求は、ＡＲＰ要求とは相違しており、図１０（Ａ）のＡＲＰパケットのターゲットＩＰアドレス、ターゲットＭＡＣアドレス等の情報項目は不要である。
【００４０】
なお、ＡＲＰサーバ２０と端末１０の間は、レイヤ３のＩＰｓｅｃやＳＳＬ（Secure Sockets Layer）／ＴＬＳ（Transport Layer Security）を用いてセキュアな通信を確立した上で、ＩＰアドレス−ＭＡＣアドレステーブル転送要求を送信するようにしてもよい。ＩＰｓｅｃはレイヤ３を保護し（ＴＣＰ／ＵＤＰヘッダ、ペイロードを暗号化）、ＴＬＳはレイヤ４を保護する（ＴＣＰ／ＵＤＰペイロードを暗号化）。ＩＰｓｅｃにおいて、送信ホストと受信ホストとの間の全経路上でメッセージが暗号化されるトランスポートモード（ＩＰヘッダは暗号化しない）で通信するようにしてもよい。ＩＰｓｅｃ通信では、まず、ＩＫＥ（Internet Key Exchange）でデータ通信を開始する前にＩＰｓｅｃ通信を行う機器同士で利用する暗号化アルゴリズムや鍵の交換などの準備を行い、次に、実際のデータ通信を行うための論理コネクションＳＡ（Security Association）を確立し、認証ヘッダＡＨ（Authentication Header）やＥＳＰ（Encapsulating Security Payload）を用いてメッセージ認証や暗号化を行い、端末１０とＡＲＰサーバ２０との間のデータ通信が行われる。
【００４１】
あるいは、認証サーバで接続を認めた端末以外がネットワークに参加しないように認証によって接続を規制するユーザ認証規格であるＩＥＥＥ(The Institute of Electrical and Electronics Engineers, Inc.）８０２．１Ｘ等を実装してもよい。例えばＩＥＥＥ８０２．１Ｘでは、該ＩＥＥＥ８０２．１Ｘに対応したＬ２スイッチ（認証スイッチ）に端末が接続された時点で認証動作を行い、端末にネットワーク（ＬＡＮ）への接続を許可するかどうかを決める。認証プロトコルとして、端末は、ＥＡＰ（Extensible Authentication Protocol）メッセージを認証スイッチ（Ｌ２スイッチ）を経由して認証サーバとの間で交換して認証を受ける。端末（サプリカント）のレイヤ２のフレームは認証スイッチによってＲＡＤＩＵＳフレームに変換されて認証サーバへ送られる。認証サーバから返信されるＲＡＤＩＵＳフレームは認証スイッチによってレイヤ２のフレームに変換されて端末（サプリカント）へ送られる。認証が完了すると、端末（サプリカント）は、ネットワークに自由に接続でき、例えばＡＲＰサーバ２０との間の通信が可能となる。あるいは、ＩＰアドレス−ＭＡＣアドレステーブル転送要求等には、イーサネット等レイヤ２のフレームのデータ部を暗号化するＭＡＣｓｅｃ (Media Access Control Security：IEEE802.1AE）等を用いてもよい。ＭＡＣｓｅｃはレイヤ２（データリンク層）で動作し、ＬＡＮにおける全てのトラフィックをＧＣＭ（Galois/Counter Mode）-ＡＥＳ（Advanced Encryption Standard）-128アルゴリズムで認証し、ＡＲＰ、ＮＤ (Neighbor Discovery)等の保護が適用される。
【００４２】
端末１０とＡＲＰサーバ２０間で安全（secure）な通信を確保することで、例えば正規の端末からのＡＲＰ要求に対して、攻撃者が不正なＡＲＰ応答をブロードキャストすることで、ＬＡＮ上の通信機器になりすますＡＲＰスプーフィング攻撃等に対しても耐性を有する。
【００４３】
端末１０において、仮想マシン（ＶＭ）上のＯＳからＡＲＰ要求を受けたＮＩＣドライバは、ＡＲＰサーバ２０との間で安全な通信を確保してＩＰアドレス−ＭＡＣアドレステーブル転送要求をＡＲＰサーバ２０にユニキャストで送信し、ＡＲＰサーバ２０からＩＰアドレス−ＭＡＣアドレス対応テーブルを取得する。そして、取得したＩＰアドレス−ＭＡＣアドレス対応テーブルに、当該ＡＲＰ要求で指定されたＩＰアドレスに対応するＭＡＣアドレスの組が登録されている場合、該ＭＡＣアドレスを設定したＡＲＰ応答を、仮想マシン（ＶＭ）上のＯＳに返す。これにより、不要なＡＲＰフレームがネットワーク上に流れることはない。
【００４４】
端末１０の記憶部（キャッシュ）に保持しているＩＰアドレス−ＭＡＣアドレステーブル上にＩＰアドレスが登録されていない場合、端末１０のＮＩＣドライバは、ＡＲＰサーバに、再度、ＩＰアドレス−ＭＡＣアドレステーブル転送要求を送信するようにしてもよい。
【００４５】
図３は、本実施形態の端末１０とＡＲＰサーバ２０の機能構成を説明する図である。図３を参照すると、端末１０は、ＡＲＰサーバ告知パケット受信部１０１と、ＩＰアドレス−ＭＡＣアドレステーブル転送要求送信部１０２と、ＩＰアドレス−ＭＡＣアドレステーブル受信部１０３と、ＡＲＰ応答作成部１０４と、記憶部１０５を備えている。
【００４６】
ＡＲＰサーバ告知パケット受信部１０１は、ＡＲＰサーバ２０からマルチキャストで報知されるＡＲＰサーバ告知パケット（フレーム）を受信する。ＩＰアドレス−ＭＡＣアドレステーブル転送要求送信部１０２は、ＩＰアドレス−ＭＡＣアドレステーブル転送要求をＡＲＰサーバ２０に送信する。ＩＰアドレス−ＭＡＣアドレステーブル受信部１０３は、ＡＲＰサーバ２０から送信されるＩＰアドレス−ＭＡＣアドレステーブルを受信し記憶部１０５に記憶する。ＡＲＰ応答作成部１０４は、端末１０の仮想マシン（ＶＭ）上のＯＳから発行されたＡＲＰ要求を受けると、記憶部１０５のＩＰアドレス−ＭＡＣアドレステーブルを検索し、ＡＲＰ要求のターゲットＩＰアドレスに対応するターゲットＭＡＣアドレスを検索し、ターゲットＭＡＣアドレスを設定したＡＲＰ応答をＡＲＰ要求発行元の仮想マシン（ＶＭ）上のＯＳに返す。各部１０１−１０４をそれぞれソフトウェアモジュールで構成し、図２の端末１０のＮＩＣドライバに実装するようにしてもよい。なお、ＩＰｓｅｃ等のレイヤ３やより上位のレイヤのプロトコル処理を、図２の仮想マシン（ＶＭ）上のＯＳやアプリケーションに実装し、ＮＩＣドライバのレイヤ２の処理と連携させる構成としてもよい。
【００４７】
ＡＲＰサーバ２０は、ＡＲＰサーバ告知パケットをマルチキャストで送信するＡＲＰサーバ告知パケット送信部２０１と、端末１０から送信されたＩＰアドレス−ＭＡＣアドレステーブル転送要求を受信するＩＰアドレス−ＭＡＣアドレステーブル転送要求受信部２０２と、ＩＰアドレス−ＭＡＣアドレステーブル転送要求を送信した端末１０に、ＩＰアドレス−ＭＡＣアドレステーブルを送信するＩＰアドレス−ＭＡＣアドレステーブル送信部２０３と、必要に応じて、記憶部２０５に保持されているＩＰアドレス−ＭＡＣアドレステーブルを、今回ＩＰアドレス−ＭＡＣアドレステーブル転送要求を送信した端末１０のＩＰアドレスとＭＡＣアドレスの組で更新するＩＰアドレス−ＭＡＣアドレステーブル更新部２０４を備えている。ＩＰアドレス−ＭＡＣアドレステーブル更新部２０４では、記憶部１０５に保持されているＩＰアドレス−ＭＡＣアドレステーブルに、今回ＩＰアドレス−ＭＡＣアドレステーブル転送要求を送信した端末１０のＩＰアドレスとＭＡＣアドレスの組と同一のエントリが登録されている場合、ＩＰアドレス−ＭＡＣアドレステーブルの更新は行わなくてもよい（該エントリを、回ＩＰアドレス−ＭＡＣアドレステーブル転送要求を送信した端末１０のＩＰアドレスとＭＡＣアドレスで上書きしてもよい）。なお、ＡＲＰサーバ２０は、新ＡＲＰ方式に準拠しない通常のＡＲＰ方式の端末からブロードキャストされたＡＲＰ要求フレームを受信すると、ターゲットＩＰアドレスに対応するターゲットＭＡＣアドレスを取得してＡＲＰ応答を作成し、ＡＲＰ要求送信元の端末に送信するＡＲＰ要求受信・ＡＲＰ応答送信部２０６を備えた構成としてもよい。
【００４８】
図４は、本発明の例示的な実施形態の動作の一例を説明する図である。図４を参照すると、ＡＲＰサーバ２０は、イーサネットフレームヘッダでカプセル化されたＡＲＰサーバ告知パケットを所定時間間隔（例えば１秒間隔）でマルチキャスト送信する（Ｓ１０１）。ＡＲＰサーバ２０において、マルチキャスト用のＩＰアドレスは例えばアプリケーションで指定され、フレームヘッダの宛先ＭＡＣアドレス欄には前述したマルチキャスト用のＭＡＣアドレスが設定される。
【００４９】
第１の端末１０−１（端末１）は、ＡＲＰサーバ告知パケットを受信すると、ＡＲＰサーバ２０が新ＡＲＰ方式を提供することを認識する（Ｓ１０２）。第２の端末１０−２（端末２）〜第ｎの端末１０−ｎ（端末ｎ）も同様である。図４について、以下の説明では、第１の端末１０−１を単に「端末１０」で参照する。
【００５０】
端末１０は、ＩＰｓｅｃやＳＳＬ／ＴＳＬ等でＡＲＰサーバ２０との間で安全な通信を確立し（例えばＩＰｓｅｃにおけるデータ通信用の論理コネクションＳＡ（Security Association）を確立）、ＩＰアドレス−ＭＡＣアドレステーブル転送要求をＡＲＰサーバ２０に送信する（Ｓ１０３）。
【００５１】
ＡＲＰサーバ２０は、ＩＰアドレス−ＭＡＣアドレステーブル転送要求を受信すると、ネットワーク（ＬＡＮ）内のホストである端末やルータ等のＩＰアドレスとＭＡＣアドレスの対応を格納したＩＰアドレス−ＭＡＣアドレステーブルを一括で端末１０に送信する（Ｓ１０４）。なお、ＡＲＰサーバ２０は、ＩＰアドレス−ＭＡＣアドレステーブルの全部を一括（ひとまとまり）で送信する代わりに、該テーブルの一部を端末１０に送信するようにしてもよい。
【００５２】
端末１０は、ＩＰアドレス−ＭＡＣアドレステーブルを受信する（Ｓ１０５）。端末１０は、受信したＩＰアドレス−ＭＡＣアドレステーブルを記憶部１０５（図３）に記憶する（Ｓ１０６）。
【００５３】
ＡＲＰサーバ２０は、端末１０のＩＰアドレスとＭＡＣアドレスでＩＰアドレス−ＭＡＣアドレステーブルを更新する（Ｓ１０７）。なお、ステップＳ１０７では、ＡＲＰサーバ２０は、ステップＳ１０４で受信したＩＰアドレス−ＭＡＣアドレステーブル転送要求のフレームヘッダの送信元ＭＡＣアドレス、ＩＰｓｅｃ等で暗号化されたＴＣＰヘッダを復号して得た送信元ＩＰアドレスから、端末１０のＩＰアドレスとＭＡＣアドレスを取得してもよい。ステップＳ１０７はステップＳ１０４と同一のステップで実行するようにしてもよい。
【００５４】
図５は、本発明の例示的な実施形態を説明する図である。図５において、第１、第２の端末１０−１、１０−２（端末１、２）は、新ＡＲＰ方式を使用する端末であり、第ｎの端末１０’（端末ｎ）は、通常のＡＲＰ方式の端末である。ステップＳ２０１−Ｓ２０５は、図４のステップＳ１０１−Ｓ１０５と同一であるため、説明は省略する。
【００５５】
ステップＳ２０２Ａでは、第ｎの端末１０’は、ＡＲＰサーバ２０からマルチキャストされるＡＲＰサーバ告知パケットを受信しても、これを無視する（Ｓ２０２Ａ）。
【００５６】
第ｎの端末１０’は、通信相手のＩＰアドレスに対応するＭＡＣアドレスを取得するため、ＡＲＰ要求フレームをブロードキャストする（Ｓ２０７）。第ｎの端末１０’が、例えば第１の端末１０−１のＩＰアドレスに対応するＭＡＣアドレスを取得する場合、ＡＲＰ要求のターゲットＩＰアドレスとターゲットＭＡＣアドレスは、第１の端末１０−１のＩＰアドレスとＭＡＣアドレスである。
【００５７】
新ＡＲＰ方式の第１、第２の端末１０−１、１０−２では、第ｎの端末１０’からブロードキャストされたＡＲＰ要求フレームを受信しても、これを無視する（Ｓ２０９）。すなわち、第１、第２の端末１０−１、１０−２は、ＡＲＰ要求フレームのターゲットＩＰアドレスが自端末のＩＰアドレスと一致するかを判別する照合は行わない（したがってＡＲＰ応答フレームも送信しない）。通常のＡＲＰ方式にのみ対応した第ｎの端末１０’の接続を許可しない場合、ＡＲＰサーバ２０は端末ｎからブロードキャストされたＡＲＰ要求に対してＡＲＰ応答を返送しない。このため、通常のＡＲＰ対応の端末ｎは、新ＡＲＰ方式対応の第１、第２の端末１０−１、１０−２とは通信できない。なお、図５のステップＳ２０２Ａの変形例として、第ｎの端末１０’をマルチキャストグループから外す構成としてもよい（この場合、ＡＲＰサーバ告知パケットは第ｎの端末１０’に送信されない）。
【００５８】
通常のＡＲＰ方式にのみ対応した第ｎの端末１０’の接続を許可する場合、ＡＲＰサーバ２０のＡＲＰ要求受信・ＡＲＰ応答送信部２０６（図３参照）では、第ｎの端末１０’からブロードキャストされたＡＲＰ要求フレームを受信すると、第ｎの端末１０’のＩＰアドレスとＭＡＣアドレスの対応を記録する（Ｓ２０８）。そして、ＡＲＰサーバ２０のＡＲＰ要求受信・ＡＲＰ応答送信部２０６は、記憶部２０５のＩＰアドレス−ＭＡＣアドレステーブルを検索して、ターゲットＩＰアドレスに対応するターゲットＭＡＣアドレスを取得し、ＡＲＰ応答を、第ｎの端末１０’にユニキャストで送信する（Ｓ２１０）。
【００５９】
第ｎの端末１０’では、ＡＲＰ応答を受信し、第１の端末１０−１のＭＡＣアドレスを取得する（Ｓ２１１）。なお、ＡＲＰサーバ２０では、第ｎの端末１０’に対してＡＲＰ応答を送信する／しないを選択自在に構成してもよい。
【００６０】
ＡＲＰサーバ２０では、新ＡＲＰ方式の端末のＩＰアドレスとＭＡＣアドレスの対応を、通常のＡＲＰ方式（新ＡＲＰ方式に対応していない）の端末のＩＰアドレスとＭＡＣアドレスの対応を保持するＡＲＰテーブルと区別して記憶部２０５に記憶するようにしてもよいし、ＩＰアドレスとＭＡＣアドレスの各エントリに、当該エントリは、新ＡＲＰ方式であるか、通常のＡＲＰであるかを示す識別情報を付加するようにしてもよい。
【００６１】
図６（Ａ）は、本実施形態のネットワークシステムの一例を説明する図である。図６（Ａ）の例では、第１、第２の端末１０−１、１０−２は、新ＡＲＰ方式対応の端末、第３の端末１０−３は、通常のＡＲＰ対応の端末である。図６（Ａ）の例では、簡単のため、１台のＬ２スイッチ（Ｌ２  ＳＷ）３０が図示されている。Ｌ２スイッチ３０は、レイヤ２の情報であるＭＡＣアドレスに基づきフレームを宛先に転送するネットワーク機器であり、サーバやルータのようにＩＰアドレスを振る必要はない（ただし、外部からアクセスして設定確認や設定変更等の管理を行うために、ＩＰアドレスがＬ２スイッチに割り振られる場合がある）。Ｌ２スイッチにおいて、ＮＩＣはＭＡＣアドレスを持ち、またＮＩＣのポートごとにＭＡＣアドレスを持つ構成のものあるが、図６（Ａ）では省略されている。また、ルータ４０は、１台で複数のＭＡＣアドレスを有するものもあるが、図６（Ａ）では１つのＭＡＣアドレスとされている。図６（A）の例では、ルータ４０には、セグメント０（ＩＰアドレス：192:168:0:xxx）のネットワーク（ＬＡＮ）が接続されている。
【００６２】
図６（Ｂ）は、図６（Ａ）のネットワーク構成において、ＡＲＰサーバ２０で保持するＩＰアドレス−ＭＡＣアドレステーブルを例示する図である。ＩＰアドレス−ＭＡＣアドレステーブルはファイルで一括に格納されるようにしてもよい。この場合、ＡＲＰサーバ２０は、ＩＰアドレス−ＭＡＣアドレステーブル転送要求に対して、データサイズがＭＴＵに収まる範囲であれば、該ファイルのデータを一括で転送要求元の端末１０に送信するようにしてもよい。なお、各エントリの方式欄には、新ＡＲＰ方式であるか、通常のＡＲＰ方式であるかの識別情報が設定される。また、各エントリには、利用されないまま一定時間が経過すると自動で削除されるフラグや、永続的（Permanent）なエントリであることを示すフラグ、あるいは、公開エントリを示すフラグ等を設定するようにしてもよい。
【００６３】
図７は、本発明の例示的な実施形態を説明する図である。図７には、図２の仮想マシン上のＯＳとＮＩＣドライバのＡＲＰ要求とＡＲＰ応答のやりとりの一例が例示されている。図７においてステップＳ３０１−Ｓ３０５は、図４のＳ１０１−Ｓ１０５、図５のＳ２０１−Ｓ２０５と同じである。ステップＳ３０２Ａでは、端末１０の仮想マシン（ＶＭ）上のＯＳからＡＲＰ要求がＮＩＣドライバに送信される。ＮＩＣドライバでは、ＡＲＰ要求を受けると、ステップＳ３０３において、ＡＲＰサーバ２０との間で安全な通信を確立し、ＩＰアドレス−ＭＡＣアドレステーブル転送要求をＡＲＰサーバ２０に送信する。
【００６４】
ＡＲＰサーバ２０は、ＩＰアドレス−ＭＡＣアドレステーブル転送要求を受信すると、ＩＰアドレス−ＭＡＣアドレステーブルを端末１０に送信する（Ｓ３０４）。
【００６５】
端末１０のＮＩＣドライバは、ＩＰアドレス−ＭＡＣアドレステーブルを受信すると（Ｓ３０５）、ＩＰアドレス−ＭＡＣアドレステーブルをキャッシュし、ターゲットＩＰアドレスに対応するターゲットＭＡＣアドレスを検索し、ターゲットＭＡＣアドレスを取得する。そして、ＡＲＰ応答を仮想マシン（ＶＭ）上のＯＳに送信する（Ｓ３０６）。仮想マシン（ＶＭ）上のＯＳは、ＡＲＰ応答を受信する（Ｓ３０７）。端末１０の仮想マシン（ＶＭ）上のＯＳは、ＡＲＰ応答からターゲットＭＡＣアドレスを取得し、ターゲットＩＰアドレスと取得したターゲットＭＡＣアドレスの組で、仮想マシン（ＶＭ）上のＯＳで管理するＡＲＰテーブルを更新してもよい。端末１０の仮想マシン（ＶＭ）上のＯＳからの通信宛先（ターゲットＭＡＣアドレス）へのＩＰパケットは、端末１０のＮＩＣドライバでイーサネットフレームにカプセル化されて送信される（不図示）。
【００６６】
端末１０において、別の通信相手のＩＰアドレスに対応するターゲットＭＡＣアドレスを取得するために、仮想マシン（ＶＭ）上のＯＳからＡＲＰ要求がＮＩＣドライバに送信される（Ｓ３０８）。ＮＩＣドライバでは、ＡＲＰ要求を受けると、ＮＩＣドライバの記憶部（図３の１０５）にキャッシュされているＩＰアドレス−ＭＡＣアドレステーブルからターゲットＩＰアドレスに対応するターゲットＭＡＣアドレスを検索し、ターゲットＭＡＣアドレスを取得し、ＡＲＰ応答を、仮想マシン（ＶＭ）上のＯＳに送信する（Ｓ３０９）。仮想マシン（ＶＭ）上のＯＳは、ＡＲＰ応答を受信し（Ｓ３１０）、通信相手と通信を行う（不図示）。端末１０の記憶部１０５（図３）において、ＩＰアドレス−ＭＡＣアドレステーブルは、エージングタイマのタイムアウトまで保持される。エージングタイマは、端末１０がＡＲＰサーバ２０からＩＰアドレス−ＭＡＣアドレステーブルを受信し記憶部１０５に記憶した時点でタイマをスタートさせるようにしてもよい。
【００６７】
端末１０において、エージングタイマのタイムアウトが発生すると（Ｓ３１１）、ＩＰアドレス−ＭＡＣアドレステーブルを消去する。なお、ＩＰアドレス−ＭＡＣアドレステーブルのエントリ数に応じて、エージングタイマの時間を設定するようにしてもよい（例えば、エントリ数が多いほど、エージングタイマの時間を長く設定してもよい）。なお、ＩＰアドレス−ＭＡＣアドレステーブルのエントリごとに、一定時間が経過すると自動で削除される削除フラグ、永続的であることを示すフラグ等を設定し、削除フラグが設定されているエントリのみを消去するようにしてもよい。
【００６８】
本実施形態において、ＡＲＰサーバ２０は、レイヤ２ネットワーク１に接続された全ての端末を認識することができる。例えば、レイヤ２ネットワーク１に接続する端末のＩＰアドレス、ＭＡＣアドレスを、ＡＲＰサーバ２０に予め登録しておき、調査段階で、その時点におけるＩＰアドレス−ＭＡＣアドレステーブルと差分を取ることで、予め登録されていないが、調査時点でＩＰアドレス−ＭＡＣアドレステーブルに記憶されているＩＰアドレスとＭＡＣアドレスの組（接続が予定にない端末）を検出することが可能である。この場合、ログ監視等（例えばＬｉｎｕｘ（登録商標）等のｓｙｓｌｏｇ監視等）の手法でアラートを検出し、システム管理者に通報を行うようにしてもよい。
【００６９】
端末１０において、仮想マシン（ＶＭ）上のＯＳからの通常のＡＲＰ要求に対して、ＮＩＣドライバでは、ＩＰアドレス−ＭＡＣアドレステーブルを検索することで、ＡＲＰ応答を返すことができる。このため、新ＡＲＰ方式の端末１０では、通常のＡＲＰと比べて、アドレス解決の処理を高速化している。また、ネットワーク上に、ＡＲＰ要求フレームやＡＲＰ応答フレームは送信されない。
【００７０】
図８は、本発明の例示的な実施形態を説明する図である。図８は、端末１０のＯＳ（端末１０のハードウェア上で動作する実ＯＳ）に、本発明の実施形態のアドレス解決方式（新ＡＲＰ方式）をインストールした場合の動作を説明する図である。図８の端末１０”は、図６（Ａ）の端末１０−３の構成（ＯＳとＮＩＣドライバとアプリケーション）において、ＯＳとＮＩＣドライバに、新ＡＲＰ方式を実装した構成とされる。なお、デバイスドライバには、ＯＳの一部としてＯＳに組み込まれるものもあるが、この例では、ＯＳ（カーネル）とは独立してロード／アンロードされるローダブルモジュールとして構成されている。
【００７１】
図８において、ステップＳ４０１−Ｓ４０５は、端末１０”のＮＩＣドライバの処理であり、図４のＳ１０１−Ｓ１０５と同じである（ただし、端末１０”のＮＩＣドライバは、仮想マシン（ＶＭ）上のＯＳではなく、ＯＳとやり取りする）。
【００７２】
ステップＳ４０６では、端末１０”のＯＳは、該ＯＳが保持するＡＲＰテーブルをＡＲＰサーバ２０から受信したＩＰアドレス−ＭＡＣアドレステーブルで上書きする。
【００７３】
端末１０”のＯＳ上でアプリケーションが起動される（Ｓ４０７）。特に制限されないが、図８の例では、端末１０”のアプリケーションは通信相手と例えばソケット通信を行う。その際、端末１０”のアプリケーションは、システムコールｓｏｃｋｅｔ（）を使ってソケットを生成する（Ｓ４０８）。その引数には、ソケットの種別（該ソケットがＴＣＰ用／ＵＤＰ用）が指定される。ソケットの生成が成功した場合、ｓｏｃｋｅｔ（）の戻り値は生成したソケットの識別子となる。ＴＣＰ通信では、端末１０”のアプリケーションは、システムコールｃｏｎｎｅｃｔ（）を使って生成したソケットと通信相手のソケットとの通信接続を行う（Ｓ４０９）。ｃｏｎｎｅｃｔ（）の引数にはソケット識別子の他に、通信相手の端末のＩＰアドレスとポート番号などの情報を与える。端末１０”のＯＳは、該ＯＳが保持するＡＲＰテーブルを参照して、通信相手の端末のＩＰアドレスに対応するＭＡＣアドレスを取得する（Ｓ４１０）。端末１０”のＯＳとＮＩＣドライバは、通信相手との間でコネクションを確立する（ＴＣＰでは、３ウェイハンドシェイクでＴＣＰコネクションを確立する）。通信接続完了後（ｃｏｎｎｅｃｔ（）の戻り値が０）、端末１０”のアプリケーションは通信相手の端末と通信する。端末１０”のアプリケーションは、システムコールｓｅｎｄ（）により通信相手の端末にデータを送信し、システムコールｒｅｃｉｖｅ（）により通信相手の端末からデータを受信する（Ｓ４１１）。ＵＤＰではコネクションの確立手順はない。
【００７４】
通信が完了したら、端末１０”のアプリケーションは、システムコールｃｌｏｓｅ（）を使ってソケットの接続を切断する（Ｓ４１２）。なお、端末１０”のＯＳは、エージングタイマのタイムアウト発生（Ｓ４１３）でＡＲＰテーブルを消去する（Ｓ４１４）。
【００７５】
図９は、端末１０のコンピュータ装置による実装を説明する図である。図９を参照すると、コンピュータ装置３００は、プロセッサ３０１と、半導体メモリやＨＤＤ等を含むストレージ（メモリ）３０２と、表示装置３０３と、ＮＩＣ３０４を備えている。図２のハイパーバイザ、ＮＩＣドライバ、仮想マシン（ＶＭ）、仮想マシン上のＯＳ（ゲストＯＳ）アプリケーションの各ソフトウェアは、ストレージ３０２に記憶されたプログラム（命令群）を読み込んで命令群を実行することで、上記実施形態で説明した処理・機能が実現される。図８の端末１０”についても同様である。また、ＡＲＰサーバ２０も、図９に示したコンピュータ装置３００で実現可能である。ＡＲＰサーバ２０では、図９の表示装置３０３は、ＡＲＰサーバ２０と通信接続する端末の表示装置であってもよい。
【００７６】
上記した実施形態によれば、例えば以下のような作用効果を奏する。
【００７７】
（Ａ）ネットワーク帯域利用の高効率化を可能としている。
【００７８】
通常のレイヤ２パケット転送方法に比較して、ＡＲＰ要求（ブロードキャストパケット）、ＡＲＰ応答（ユニキャストパケット）を送信する端末の数を削減可能とし、ネットワーク上に流れるＡＲＰ関連パケットが減り、データ通信に使えるネットワーク帯域を増大可能としている。また、ＡＲＰパケット（２８バイト）は６４バイト長に収まるため、パディングしてＬＡＮ上にパケットが流される。特に伝送速度Ｇｂｐｓ（ギガビット／秒）のイーサネットの場合は、最小フレームサイズが５１２バイトであり、４４８バイトはパディングデータで埋められてネットワークに送信されることになり、ネットワーク伝送効率の向上に寄与しない。上記実施形態によれば、ＩＰアドレス−ＭＡＣアドレステーブルを、ＭＴＵに応じて送信することで、上記ＡＲＰパケット（２８バイト）のパディングデータを不要としている。ＩＰアドレス−ＭＡＣアドレステーブルのデータサイズ（バイト数）がイーサネットフレームのＭＴＵを上まわるときは、ＩＰアドレス−ＭＡＣアドレステーブルは分割されて、該テーブルの転送要求元の端末に送信される。
【００７９】
（Ｂ）ＬＡＮ上において盗聴を目的とした端末の増設を回避可能としている。    
【００８０】
端末１０とＡＲＰサーバ２０間の通信を確立する時に認証を行うことで、ＬＡＮに第３者が盗聴するための装置を接続したとしても、ＬＡＮに接続されたすべての端末のＭＡＣアドレスやＩＰアドレスを知ることは困難となる。Ｌ２スイッチがＭＡＣアドレステーブル（物理ポートとその先に存在するネットワーク機器のＭＡＣアドレスの対応表）のエージング機能（Ｌ２スイッチが持つＭＡＣアドレステーブル内のエントリを一定時間で消去する機能）をオンにしている場合は、ユニキャストパケットが未学習としてフラッディング（受信ポートを除く全ポートから受信フレームを送る）されるため、完全に抑えることはできないが、ＬＡＮに接続された全ての端末のＭＡＣアドレスやＩＰアドレスを知るためには、長時間のパケットのサンプリングが必要とされる。
【００８１】
（Ｃ）ＤＤｏＳ攻撃等に強いＬＡＮを構築可能としている。
【００８２】
通常、ＬＡＮは、ＡＲＰ要求を大量に端末から送りつけられるＤＤｏＳ攻撃に対して耐性はない。本実施形態によれば、ＬＡＮに大量のＡＲＰ要求を送り付けられたとしても、端末では、該ＡＲＰ要求は無視され、ＡＲＰ応答を返答する端末は存在しない。このため、ＤＤｏＳ攻撃に対応してＡＲＰ応答が大量に発生することはない。すなわち、ＤＤｏＳ攻撃で通信が止まるほどの帯域負荷をかけることはできない。
【００８３】
ＡＲＰサーバ２０に対するＡＲＰ要求の集中的な送信に対して、例えばＡＲＰサーバ２０のＮＩＣのＱｏＳ（Quality Of Service）帯域制限で緩和させることができる。ＡＲＰサーバ２０でのＱｏＳポリシーの設定においてポリシーを適用するアプリケーション、帯域制御する発信元と宛先IPアドレス、適用プロトコルと適用ポート等を指定するようにしてもよい（なお、ＡＲＰ要求を大量に送信する攻撃に対しては、Ｌ２スイッチのストームコントロール機能（上限となる閾値よりトラフィックが多くなると、フレームを破棄したり、ポートを使えなくしたりすることで、ＤｏＳ攻撃等により発生するトラフィックストームの影響を制限する機能）の閾値を低い値に設定することで、被疑対象の端末を排除することが可能となる。）
【００８４】
（Ｄ）既設ＬＡＮに対して投資の抑制を可能としている。
【００８５】
ネットワークに機能を追加する場合、ＬＡＮすべてを新機器で入れ替える必要が出てくる場合があるが、本実施形態によればＡＲＰサーバを追加し、端末のソフトウェアの更新で、本実施形態のシステムが実現可能である。また、通常のＡＲＰ方式の端末との混在も可能であるため、段階的に設備を更新していくことが可能である。
【００８６】
上記実施形態では、ＩＰｖ４のアドレス解決について説明したが、ＩＰｖ６（Internet Protocol Version 6）では、ＩＣＭＰｖ６（Internet Control Message Protocol for IPv6）を用いたＮＤ（Neighbor Discovery：近隣者発見）が用いられる（ＩＥＴＦ  ＲＦＣ ４８６１）。ＩＰｖ６アドレスを持つノードが、通信先のノードのＭＡＣアドレスを知るために、ＩＣＭＰｖ６のNeighbor Solicitation（ＮＳ：近隣要請）メッセージをマルチキャストアドレス（要請ノードマルチキャストアドレス）宛に送信する。ＮＳメッセージを受信したノードは、自分のＩＰｖ６アドレスのリクエストである場合、ＮＡ（Neighbor Advertisement：近隣広告）を送信してＭＡＣアドレスを通知する。ＮＳメッセージはＡＲＰ要求に対応し、ＮＡメッセージは問い合わされたＭＡＣアドレスを応えるＡＲＰ応答に対応している。上記実施形態は、ＩＰｖ６のアドレス解決にも適用可能である。
【００８７】
なお、上記の特許文献１の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素（各請求項の各要素、各実施例の各要素、各図面の各要素等を含む）の多様な組み合わせ乃至選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【符号の説明】
【００８８】
１  ネットワーク（レイヤ２ネットワーク）
１０、１０’、１０”、１０−１、１０−２、１０−３、１０−ｎ  端末
２０  ＡＲＰサーバ
３０、３０−１〜３０−４  Ｌ２スイッチ（Ｌ２  ＳＷ）
１０１  ＡＲＰサーバ告知パケット受信部
１０２  ＩＰアドレス−ＭＡＣアドレステーブル転送要求送信部
１０３  ＩＰアドレス−ＭＡＣアドレステーブル受信部
１０４  ＡＲＰ応答作成部
１０５  記憶部
２０１  ＡＲＰサーバ告知パケット送信部
２０２  ＩＰアドレス−ＭＡＣアドレステーブル転送要求受信部
２０３  ＩＰアドレス−ＭＡＣアドレステーブル送信部
２０４  ＩＰアドレス−ＭＡＣアドレステーブル更新部
２０５  記憶部
２０６  ＡＲＰ要求受信・ＡＲＰ応答送信部
３００  コンピュータ装置
３０１  プロセッサ
３０２  ストレージ（メモリ）
３０３  表示装置
３０４  ＮＩＣ
【図１】
2020137006.tif 000003
【図２】
2020137006.tif 000004
【図３】
2020137006.tif 000005
【図４】
2020137006.tif 000006
【図５】
2020137006.tif 000007
【図６】
2020137006.tif 000008
【図７】
2020137006.tif 000009
【図８】
2020137006.tif 000010
【図９】
2020137006.tif 000011
【図１０】
2020137006.tif 000012