(57)【要約】【課題】クライアント装置に対し他のクライアント装置との間で重複のないアドレスの割り当てを早期に行う。【解決手段】本発明の一態様としてのクライアント装置は、ネットワーク上の１つ以上のサーバに対し、前記ネットワーク上の通信装置と通信するためのアドレスの割り当てを要求する第１の要求メッセージを送信する第１の要求メッセージ送信手段と、割り当てるべきアドレスの候補を含んだアドレス候補通知メッセージの到来を前記サーバから一定時間待機する待機手段と、前記一定時間の間に前記サーバから到来する前記アドレス候補通知メッセージを受信するメッセージ受信手段と、受信したアドレス候補通知メッセージに含まれるアドレスが他のクライアント装置と重複しているかどうかの検査を前記一定時間の経過を待つことなく行う重複アドレス検査手段と、を備える。【選択図】図２
2008294940.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク上の１つ以上のサーバに対し、前記ネットワーク上の通信装置と通信するためのアドレスの割り当てを要求する第１の要求メッセージを送信する第１の要求メッセージ送信手段と、
割り当てるべきアドレスの候補を含んだアドレス候補通知メッセージの到来を前記サーバから一定時間待機する待機手段と、
前記一定時間の間に前記サーバから到来する前記アドレス候補通知メッセージを受信するメッセージ受信手段と、
受信したアドレス候補通知メッセージに含まれるアドレスが他のクライアント装置と重複しているかどうかの検査を前記一定時間の経過を待つことなく行う重複アドレス検査手段と、
を備えたクライアント装置。
【請求項２】
前記第１の要求メッセージは、RFC3315により規定されるSolicitメッセージであり、前記アドレス候補通知メッセージは前記RFC3315により規定されるAdvertiseメッセージであることを特徴とする請求項１に記載のクライアント装置。
【請求項３】
前記他のクライアント装置と重複していないと判断されたアドレスを含むアドレス候補通知メッセージを送信したサーバを選択し、選択したサーバに対し、前記重複していないと判断されたアドレスの割り当てを要求する第２の要求メッセージを前記一定時間の経過後に送信する第２の要求メッセージ送信手段をさらに備えたことを特徴とする請求項１に記載のクライアント装置。
【請求項４】
前記第１の要求メッセージは、RFC3315により規定されるSolicitメッセージであり、前記アドレス候補通知メッセージは前記RFC3315により規定されるAdvertiseメッセージであり、前記第２の要求メッセージは前記RFC3315により規定されるRequestメッセージであることを特徴とする請求項３に記載のクライアント装置。
【請求項５】
前記アドレス重複検査手段は、RFC2462により規定される重複アドレス検出（Duplicate Address Detection:DAD）を行うことを特徴とする請求項１に記載のクライアント装置。
【請求項６】
ネットワーク上の１つ以上のサーバに対し、前記ネットワーク上の通信装置と通信するためのアドレスの割り当てを要求する第１の要求メッセージを送信し、
割り当てるべきアドレスの候補を含んだアドレス候補通知メッセージの到来を前記サーバから一定時間待機し、
前記一定時間の間に到来する前記アドレス候補通知メッセージを受信し、
受信したアドレス候補通知メッセージに含まれるアドレスが他のクライアント装置と重複しているかどうかの検査を前記一定時間の経過を待つことなく行う、
アドレス割当方法。
【請求項７】
前記第１の要求メッセージは、RFC3315により規定されるSolicitメッセージであり、前記アドレス候補通知メッセージは前記RFC3315により規定されるAdvertiseメッセージであることを特徴とする請求項６に記載のアドレス割当方法。
【請求項８】
さらに、前記他のクライアント装置と重複していないと判断されたアドレスを含むアドレス候補通知メッセージを送信したサーバを選択し、選択したサーバに対し、前記重複していないと判断されたアドレスの割り当てを要求する第２の要求メッセージを前記一定時間の経過後に送信することを特徴とする請求項６に記載のアドレス割当方法。
【請求項９】
前記第１の要求メッセージは、RFC3315により規定されるSolicitメッセージであり、前記アドレス候補通知メッセージは前記RFC3315により規定されるAdvertiseメッセージであり、前記第２の要求メッセージは前記RFC3315により規定されるRequestメッセージであることを特徴とする請求項８に記載のアドレス割当方法。
【請求項１０】
前記検査として、RFC2462により規定される重複アドレス検出（Duplicate Address Detection:DAD）を行うことを特徴とする請求項６に記載のアドレス割当方法。
【請求項１１】
ネットワーク上の１つ以上のサーバに対し、前記ネットワーク上の通信装置と通信するためのアドレスの割り当てを要求する第１の要求メッセージを送信するステップと、
割り当てるべきアドレスの候補を含んだアドレス候補通知メッセージの到来を前記サーバから一定時間待機するステップと、
前記一定時間の間に到来する前記アドレス候補通知メッセージを受信するステップと、
受信したアドレス候補通知メッセージに含まれるアドレスが他のクライアント装置と重複しているかどうかの検査を前記一定時間の経過を待つことなく行うステップと、
をコンピュータに実行させるためのプログラム。
【請求項１２】
前記第１の要求メッセージは、RFC3315により規定されるSolicitメッセージであり、前記アドレス候補通知メッセージは前記RFC3315により規定されるAdvertiseメッセージであることを特徴とする請求項１１に記載のプログラム。
【請求項１３】
さらに、前記他のクライアント装置と重複していないと判断されたアドレスを含むアドレス候補通知メッセージを送信したサーバを選択し、選択したサーバに対し、前記重複していないと判断されたアドレスの割り当てを要求する第２の要求メッセージを前記一定時間の経過後に送信するステップをさらに前記コンピュータに実行させることを特徴とする請求項１１に記載のプログラム。
【請求項１４】
前記第１の要求メッセージは、RFC3315により規定されるSolicitメッセージであり、前記アドレス候補通知メッセージは前記RFC3315により規定されるAdvertiseメッセージであり、前記第２の要求メッセージは前記RFC3315により規定されるRequestメッセージであることを特徴とする請求項１３に記載のプログラム。
【請求項１５】
前記検査として、RFC2462により規定される重複アドレス検出（Duplicate Address Detection:DAD）を行うことを特徴とする請求項１１に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーバからアドレスの割り当てを受けるクライアント装置、ならびにクライアント装置にアドレスを割り当てるための方法およびプログラムに関する。
【背景技術】
【０００２】
次世代インターネット技術として注目されているIP(Internet Protocol)v6の特徴の一つに、エンドホストが複雑な設定作業をせずにネットワークに接続できるようにするための自動設定機能が挙げられる。自動設定のうち、ホストのIPアドレス設定には、RFC2462で規定されるStateless Address Configurationを利用する方法と、RFC3315で規定されるDynamic Host Configuration Protocol(DHCPv6)を利用する方法がある。
【０００３】
DHCPv6はサーバ・クライアント型のプロトコルであり、サーバが管理するアドレスの一部をホスト（クライアント装置あるいは単にクライアント）に割り当てる形でアドレス設定を行う。このアドレス設定では、各クライアントに重複のないアドレスを早期に行うことが要望されている。
【非特許文献１】IETF RFC3315 Dynamic Host Configuration Protocol for IPv6 (DHCPv6)
【非特許文献２】IETF RFC2462 IPv6 Stateless Address Autoconfiguration
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明は、他のクライアント装置との間で重複のないアドレスの割り当てを早期に受けることを可能としたクライアント装置、並びに、他のクライアント装置との間で重複のないアドレスを早期にクライアント装置に割り当てることを可能とした方法およびプログラムを提供する。
【課題を解決するための手段】
【０００５】
本発明の一態様としてのクライアント装置は、
ネットワーク上の１つ以上のサーバに対し、前記ネットワーク上の通信装置と通信するためのアドレスの割り当てを要求する第１の要求メッセージを送信する第１の要求メッセージ送信手段と、
割り当てるべきアドレスの候補を含んだアドレス候補通知メッセージの到来を前記サーバから一定時間待機する待機手段と、
前記一定時間の間に前記サーバから到来する前記アドレス候補通知メッセージを受信するメッセージ受信手段と、
受信したアドレス候補通知メッセージに含まれるアドレスが他のクライアント装置と重複しているかどうかの検査を前記一定時間の経過を待つことなく行う重複アドレス検査手段と、を備える。
【０００６】
本発明の一態様としてのアドレス割当方法は、
ネットワーク上の１つ以上のサーバに対し、前記ネットワーク上の通信装置と通信するためのアドレスの割り当てを要求する第１の要求メッセージを送信し、
割り当てるべきアドレスの候補を含んだアドレス候補通知メッセージの到来を前記サーバから一定時間待機し、
前記一定時間の間に到来する前記アドレス候補通知メッセージを受信し、
受信したアドレス候補通知メッセージに含まれるアドレスが他のクライアント装置と重複しているかどうかの検査を前記一定時間の経過を待つことなく行うことを特徴とする。
【０００７】
本発明の一態様としてのプログラムは、
ネットワーク上の１つ以上のサーバに対し、前記ネットワーク上の通信装置と通信するためのアドレスの割り当てを要求する第１の要求メッセージを送信するステップと、
割り当てるべきアドレスの候補を含んだアドレス候補通知メッセージの到来を前記サーバから一定時間待機するステップと、
前記一定時間の間に到来する前記アドレス候補通知メッセージを受信するステップと、
受信したアドレス候補通知メッセージに含まれるアドレスが他のクライアント装置と重複しているかどうかの検査を前記一定時間の経過を待つことなく行うステップと、
をコンピュータに実行させる。
【発明の効果】
【０００８】
本発明により、クライアント装置に対し他のクライアント装置との間で重複のないアドレスの割り当てを早期に行うことが可能となる。
【発明を実施するための最良の形態】
【０００９】
まず本発明者が本発明をなす以前から知っていた、DHCPv6に基づくアドレス設定について説明する。
【００１０】
DHCPv6は、前述したように、サーバ・クライアント型のプロトコルであり、サーバが管理するアドレスの一部をホストに割り当てる形でアドレス設定を行う。その場合の典型的な手順を図４のフローチャートに示す。また、この手順においてクライアント・サーバ間のメッセージのやり取りの様子を時間順に示したものを図５に示す。
【００１１】
まず、クライアントが、ステップS101で、サーバ探索のためにSolicitメッセージをマルチキャストパケットとして送信する。
【００１２】
サーバはこれに対し、ステップS102で、そのサーバが送信元クライアントに割り当てる予定であるアドレスをIA Addressオプションに記載し、Advertiseメッセージとして応答する。マルチキャストされたSolicitメッセージを受信したサーバが複数存在する場合には、それぞれのサーバがAdvertise メッセージを応答する。図５にはサーバが２台存在する場合の例が示されている。
【００１３】
クライアントは、ステップS103で、サーバからのAdvertiseメッセージを1秒間待ち受け、続いて、ステップS104で、その間に得られたAdvertiseメッセージを送信したサーバのうち一つを選択する。図５の例では２台のサーバのうち図中上側のサーバが選択された例が示されている。なお、ここでの待ち受け時間は、他のクライアントとの動作の同期を避けるために、実際には1秒に加えて0.1秒以内のランダムな遅延が含まれる。しかし、簡略化のため、以下では待ち時間を単純に1秒として説明する。
【００１４】
クライアントによるサーバ選択の基準は、特殊な場合を除いてはプロトコル仕様では規定されておらず、クライアントの実装に依存する。クライアントは、ステップS104でさらに、選択したサーバに対してRequestメッセージを送信する。サーバはこれを受信し、保持する割り当て可能なアドレスのうちの一つをそのクライアントのために確保し、それをIA Addressオプションとして含むReplyメッセージをクライアントに応答する。
【００１５】
ここで、Replyメッセージによって実際に割り当てられるアドレスは、通常はAdvertiseメッセージによって通知されていたアドレスと一致する。また、AdvertiseおよびReplyメッセージには2つ以上のアドレスが含まれていてもよいが、簡略化のため、以下の説明では、もっとも一般的な形態を仮定する。すなわち、これらのメッセージに含まれるアドレスは1つであるものとする。
【００１６】
Requestメッセージに対するReplyメッセージを受けたクライアントは、次にステップS105で、RFC2462の一部として規定されている重複アドレス検出(Duplicate Address Detection, DAD)を開始する。重複アドレス検出（DAD）では、割り当てられたアドレスを利用しているノードがリンク内に存在するかどうかの探索パケットを送信し、規定された時間(通常は1秒)の間、応答を待ち受ける。通常、アドレスが適切に管理されていれば、同じアドレスを使用しているノードは存在せず、クライアントが応答を受信することはない。そして、規定の時間が経過しても応答がなければ（S106のNO、S107のYES）、クライアントは、ステップS108で、割り当てられたアドレスを利用することができる。
【００１７】
一方、このアドレスを利用しているノードが既に存在する場合、そのノードはクライアントの探索パケットに応答する。これによってクライアントはそのアドレスが重複していたとみなし（S106のYES）、サーバに対してDeclineメッセージを送信して、割り当てられたアドレスが利用できないことを知らせる。
【００１８】
したがって、通常、DHCPv6によるアドレス設定を開始してから実際に利用可能になるまでには最低2秒の時間が必要となる。これは、比較的高い頻度で異なるリンク間を移動するようなモバイル機器等においては無視できない遅延となる。
【００１９】
また、アドレスを割り当て可能な複数のサーバがAdvertiseメッセージを送信した場合において、あるサーバが割り当てるアドレスがすでに他のノードで利用されているような状況でも、クライアントはRequestとReplyのメッセージの後に重複アドレス検出を行うまではそれを知ることができない。すなわち、Advertiseを送信している他のサーバの方が実際には望ましい状況であるにも関わらず、Advertiseメッセージを受信した段階ではそのサーバを選択する確実な手段は存在しない。重複アドレス検出によってアドレスの重複を検知し、その後他のサーバに問い合わせるという手順に起因する遅延が生ずることになる。
【００２０】
以下、本発明の一実施の形態を、図面を参照しながら詳細に説明する。
【００２１】
図１は本発明の一実施の形態に係わるネットワークの全体構成を示す。
【００２２】
ホスト（クライアント装置）11と、ホスト（クライアント装置）12と、サーバ13と、サーバ14とがネットワーク15を介して接続されている。ホスト11は、本発明の実施の形態に係るDHCPv6クライアントである。サーバ13およびサーバ14はホスト11にアドレスを割り当てるDHCPv6サーバである。ホスト11は、割り当てを受けたアドレスを用いて、ネットワーク上の通信装置（他のホストでもよいし、Webサーバ等のサービスを提供するサーバであってもよい）と通信を行う。また、ホスト12はホスト11と同一のサブネットに存在しており、すでにアドレス設定を完了して稼働しているものと仮定する。なお、図１では、簡略化のために、これらのホストとサーバが同一サブネット上に存在しているものとしているが、本発明の方式はサーバが遠隔地にあって、リレーエージェントと呼ばれる中継装置を経てホストとやり取りする場合にも適用可能である。
【００２３】
図２は、本発明に係わるホスト11の動作を説明するフローチャートである。また、図３は、図２の手順においてクライアント・サーバ間で行われるメッセージのやり取りの様子を時間順に示したものである。図２のフローチャートに示す各ステップの実行を指示する命令コードを記述したプログラムを汎用のコンピュータに実行させることによって各ステップにおける処理を実現することも可能である。またこのプログラムは上記コンピュータによって読み取り可能なハードディスク、CD-ROM、メモリカード等の記憶媒体に記憶させ、この記憶媒体からプログラムを読み出して実行するようにしてもよい。
【００２４】
まず、通常の場合、すなわち、ホスト11に割り当てられたアドレスが重複していない場合について説明する。
【００２５】
ホスト11は、ステップS1で、DHCPv6のプロトコル手順にしたがいSolicitメッセージを送信し、サーバからのAdvertiseメッセージを待つ。図１に示したネットワークでは、サーバ13およびサーバ14が応答としてAdvertiseメッセージを送信する。Solicitメッセージはたとえば第１の要求メッセージに対応する。またステップS1の処理は、たとえば第１の要求メッセージ送信手段の処理に相当し、ホスト11は第１の要求メッセージ送信手段を備える。
【００２６】
ホスト11は、ステップS2で最初のAdvertise メッセージを受信し、ステップS3でAdvertise メッセージの中のIA Addressオプションに含まれるIPv6アドレスについて、RFC2462の一部として規定されている重複アドレス検出(DAD)を開始する。すなわちホスト11は、Solicitメッセージに対する応答の待ち時間の経過を待つことなく他のホストとの間で該IPv6アドレスが重複するか否かを検査する重複アドレス検査手段を備える。ここでは重複はない場合を考えているため、ステップS4 によるテストは常に偽（NO）であり、ホスト11はステップS6に進む。Advertiseメッセージはたとえばアドレス候補通知メッセージに相当する。また、ステップS2の処理はたとえばメッセージ受信手段の処理に相当し、ホスト11はメッセージ受信手段を備える。
【００２７】
ステップS6ではSolicitメッセージに対する応答の待ち時間(1 秒)が経過したかどうかをテストし、テストが偽（NO）の間、ステップS2からステップS6までの動作を繰り返す。図１に示したネットワーク環境では、2つのサーバ13およびサーバ14からAdvertiseメッセージを受信するため、ステップS2からステップS6の手順が2回繰り返されることになる。ステップS6の処理は、たとえば待機手段の処理に相当し、ホスト11は待機手段を備える。
【００２８】
Solicitメッセージの応答の待ち時間（1秒）が経過したら、ステップS6のテストが真（YES）となり、ホスト11はステップS7に進む。ステップS7ではホスト11はサーバ13およびサーバ14のいずれかを選んでRequestメッセージを送信し、そのサーバからのReplyメッセージを受け取る。なお、この場合は、どちらを選んでも本発明の実施の上での差異はない。Replyメッセージにはサーバによって割り当てられたアドレスが含まれている。
【００２９】
ホスト11は次に、ステップS8において、Replyメッセージによって割り当てられたアドレスがAdvertise メッセージで通知されたものと一致するかどうかを確認する。一致している場合（S8のYES）、ホスト11はステップS10に進み、重複アドレス検出の終了を待つ。ここではアドレスの重複がない場合について考えているため、検出手順は正常に終了し(ステップS11の結果は偽（NO）となり)、ホスト11はステップS12において、サーバから割り当てられたアドレスを利用できるようになる。
【００３０】
以上の過程において、ステップS3にて重複アドレス検出（DAD）を開始し、ステップS10にて完了するまでの時間は1秒（この時間はあらかじめプロトコルによって規定されている）である。一方、ステップS1からステップS3までに要する時間は遅延の少ないメッセージのやり取りのみであるため、無視できる程度に小さい。したがって、本発明の手順にしたがうホスト11は重複アドレス検出を含むアドレス設定に係わる全操作を約1秒で完了できることになる。すなわち、通常の手順に比べて1秒短縮することが可能となる。
【００３１】
なお、ステップS8において、Replyメッセージに含まれるアドレスがAdvertiseメッセージで通知されたアドレスと異なる場合（S8のNO）、ホスト11はステップS9に進み、割り当てられたアドレスについて新たに重複アドレス検出（DAD）をはじめる。この場合は、従来の形態と同等となる。ただし、実際上はReplyメッセージおよびAdvertiseメッセージに含まれるアドレスは一致していることが一般的であり、一致しないことは例外的な場合にあたる。また、この場合でも、本発明の手順で必要となる時間は従来の形態と同等であり、新たな遅延を生ずることはない。
【００３２】
次に、ホスト11に割り当てられたアドレスがすでにホスト12によって利用されており、重複している場合について説明する。ここでは、重複するアドレスをAとし、サーバ13がこのアドレスを割り当てるものとする。また、サーバ14はこれとは異なるアドレスB
を割り当てるものとする。
【００３３】
前述の場合と同様に、ホスト11は、ステップS1で、DHCPv6のプロトコル手順にしたがいSolicitメッセージを送信し、サーバからのAdvertiseメッセージを待つ。ステップS2においてサーバ13からのAdvertiseメッセージを受信すると、ホスト11はステップS3で、通知されたアドレスAに対する重複アドレス検出（DAD）を開始する。アドレスAはホスト12によってすでに利用されているため、ホスト12は、ホスト11から送信される重複アドレス検出の探索パケットに応答し、この応答を受けてホスト11は重複を検知する（S4のYES）。そこでホスト11は、このアドレスを通知したサーバ13の優先度を低下させる（S5）。
【００３４】
次に、ホスト11は、ステップS2に戻り、サーバ14からのAdvertiseメッセージを受信し、ステップS3で、Advertiseメッセージで広告されたアドレスBについて重複アドレス検出を開始する。アドレスBについては重複がないとの仮定により、ステップS4に
よる判定結果は偽（NO）となり、ホスト11はステップS6にてSolicitメッセージへの応答待ち時間(1秒)が経過するまで待機する。
【００３５】
次にホスト11は、ステップS7で、サーバ13およびサーバ14のいずれかを選んでRequestメッセージを送信する。ここで、サーバ13についてはステップS6において優先度が下げられているため、ホスト11は優先度の高いサーバ14を選択し、Requestメッセージを送信する。優先度の高いサーバを選択し、選択したサーバにRequestメッセージを送信する処理は、第２の要求メッセージ送信手段の処理に相当し、ホスト11は第２の要求メッセージ送信手段を備える。
【００３６】
これ以後の手順についてはアドレス重複がない場合と同様である。
【００３７】
また、アドレス重複がない場合と同様に、ステップS1におけるSolicitメッセージの送信からステップS12でアドレスが利用可能となるまでの時間も約1秒に短縮される。
【００３８】
なお、ここではホスト11がサーバ13からのAdvertiseメッセージを先に受け取る場合について説明したが、サーバ14からのメッセージを先に受け取った場合についても本質的な手順および必要時間は同等である。
【００３９】
以上のように、本発明の実施の形態によれば、DHCPv6を利用してIPアドレスを設定する際、従来において重複アドレス検出（DAD）に要していた時間を事実上省略でき、ホストは、サーバから割り当てられたIPアドレスを迅速に利用できるようになる。
【００４０】
また、本発明の実施の形態によれば、複数のDHCPv6サーバが異なるアドレスを割り当て、その一部が実際には他のノードと重複している場合、その重複を早期に検出し、重複のないアドレスを割り当てるサーバを優先的に選択することが可能となる。この効果はまた、結果としてホストによるIPアドレス設定の時間を短縮させる効果も併せ持つ。
【図面の簡単な説明】
【００４１】
【図１】本発明の実施の形態に係るネットワークの基本構成を示す図
【図２】本発明の実施の形態に係るホストの動作を説明するフローチャート
【図３】図２の手順においてホストとサーバとの間で行われるメッセージのやり取りの例を示す図
【図４】従来の技術におけるアドレス設定の典型的な手順を示すフローチャート
【図５】図４の手順においてホストとサーバとの間で行われるメッセージのやり取りの例を示す図
【符号の説明】
【００４２】
１１、１２：ホスト（クライアント装置）
１３、１４：サーバ
【図１】
2008294940.tif 000003
【図２】
2008294940.tif 000004
【図３】
2008294940.tif 000005
【図４】
2008294940.tif 000006
【図５】
2008294940.tif 000007