(57)【特許請求の範囲】
【請求項１】
ＩＰアドレスを割り当てる方法において、
メッセージをクライアント・システムから受け取るステップであってサーバ・システムにより実行されるステップを備え、
前記メッセージはＩＰアドレスの割り当てを要求し、かつ前記メッセージは信頼された識別子を含み、当該信頼された識別子は前記クライアント・システムにより捏造されることができないオブジェクトであり、前記信頼された識別子は前記クライアント・システムと前記サーバ・システムとの間の中間装置により前記メッセージに加えられ、
信頼された識別子を前記メッセージから抽出するステップであって、サーバ・システムにより実行されるステップと、
信頼された識別子に割り当てられたＩＰアドレスの数をカウントするステップであってサーバ・システムにより実行されるステップと、
信頼された識別子に対して割り当てられたＩＰアドレスの数が所定の限定数より小さい場合ＩＰアドレスを前記クライアント・システムのため割り当てるステップであってサーバ・システムにより実行されるステップと、をさらに備える方法。
【請求項２】
前記メッセージはブロードキャストＤＨＣＰＲＥＱＵＥＳＴメッセージである請求項１記載の方法。
【請求項３】
前記メッセージに含まれている信頼された識別子を用いてリース識別子を形成するステップと、
前記リース識別子が関連したＩＰアドレス・リースを有するか判断するステップと、を更に備え、
ＩＰアドレスを前記クライアント・システムのため割り当てる前記ステップが、前記リース識別子が関連したＩＰアドレス・リースを有する場合、前記リース識別子と関連したＩＰアドレス・リースに従って前記クライアント・システムのため前記ＩＰアドレスを割り当てるステップを備える
請求項１記載の方法。
【請求項４】
前記信頼された識別子が、前記クライアント・システムと前記中間装置との間に配置されたＩ／Ｏ装置の固有且つ一意の識別子を備える請求項３記載の方法。
【請求項５】
前記メッセージはリース識別クッキーを含み、
前記リース識別子は、信頼された識別子とリース識別クッキーとを組み合わせることにより形成される
請求項３記載の方法。
【請求項６】
第２のメッセージを第２のクライアント・システムから受け取るステップであって、前記第２のメッセージは第２のＩＰアドレスの割り当てを要求し、かつ前記第２のメッセージは第２の送信元アドレスを含み、当該第２の送信元アドレスの妥当性は安全な中継エージェントにより保証されており、前記安全な中継エージェントが前記第２のクライアント・システムと前記サーバ・システムとの間に配置された１又ははそれより多くのＩ／Ｏ装置を備える、前記受け取るステップと、
前記第２の送信元アドレスを前記第２のメッセージから抽出するステップと、
前記第２の送信元アドレスと関連した第２のＩＰアドレス・リースを検索するステップと、
前記第２のＩＰアドレス・リースに従って前記クライアント・システムのため第２のＩＰアドレスを割り当てるステップと
をさらに備える請求項１記載の方法。
【請求項７】
前記第２のメッセージがユニキャストＤＨＣＰＲＥＱＵＥＳＴメッセージである請求項６記載の方法。
【請求項８】
コンピュータに、
１つ以上のクライアント・システムを含むコンピュータ・ネットワークにおいてＩＰアドレスを割り当てる手順であって、各クライアント・システムが関連した信頼された識別子を有し、当該信頼された識別子が前記クライアント・システムにより捏造されることができないオブジェクトである、前記割り当てる手順と、
メッセージをクライアント・システムから受け取る手順であって、前記メッセージがＩＰアドレスの割り当てを要求し、かつ前記メッセージが当該メッセージを送っているクライアント・システムの信頼された識別子を含み、前記信頼された識別子が前記クライアント・システムと前記サーバ・システムとの間の中間装置により前記メッセージに加えられる、前記受け取る手順と、
前記信頼された識別子を前記メッセージから抽出する手順と、
前記信頼された識別子に割り当てられたＩＰアドレスの数をカウントする手順と、
前記信頼された識別子に割り当てられたＩＰアドレスの数が所定の限定数より小さい場合、前記クライアント・システムのためＩＰアドレスを割り当てる手順と
を実行させるためのプログラム。
【請求項９】
前記メッセージが、ブロードキャストＤＨＣＰＲＥＱＵＥＳＴメッセージである請求項８記載のプログラム。
【請求項１０】
コンピュータに、
１つ以上のクライアント・システムを含むコンピュータ・ネットワークにおいてＩＰアドレスを割り当てる手順であって、各クライアント・システムが関連した信頼された識別子を有し、当該信頼された識別子が前記クライアント・システムにより捏造されることができないオブジェクトであり、前記信頼された識別子が前記クライアント・システムと前記サーバ・システムとの間の中間装置により前記メッセージに加えられる、前記割り当てる手順と、
メッセージをクライアント・システムから受け取る手順であって、前記メッセージがＩＰアドレスの割り当てを要求し、かつ前記メッセージが信頼された識別子を含み、当該信頼された識別子が前記クライアント・システムにより捏造されることができないオブジェクトである、前記受け取る手順と、
前記メッセージに含まれている信頼された識別子を用いてリース識別子を形成する手順と、
リース識別子が関連のＩＰアドレス・リースを有するか判断する手順と、
リース識別子が関連のＩＰアドレス・リースを有する場合、リース識別子と関連したＩＰアドレス・リースに従って前記クライアント・システムのためＩＰアドレスを割り当てる手順と
を実行させるためのプログラム。
【請求項１１】
前記メッセージが、ブロードキャストＤＨＣＰＲＥＱＵＥＳＴメッセージである請求項１０記載のプログラム。
【請求項１２】
前記メッセージが、リース識別クッキーを含み、
前記リース識別子が、信頼された識別子とリース識別クッキーとを組み合わせることにより形成される
請求項１０記載のプログラム。
【請求項１３】
コンピュータに、
１つ以上のクライアント・システムを含むコンピュータ・ネットワークにおいてＩＰアドレスを割り当てる手順であって、各クライアント・システムが関連した信頼された識別子を有し、当該信頼された識別子が前記クライアント・システムにより捏造されることができないオブジェクトであり、前記信頼された識別子が、前記クライアント・システムと前記サーバ・システムとの間の中間装置により前記メッセージに加えられる、前記割り当てる手順と、
メッセージをクライアント・システムから受け取る手順であって、前記メッセージがＩＰアドレスの割り当てを要求し、かつ前記メッセージが送信元アドレスを含み、当該送信元アドレスの妥当性が安全な中継エージェントにより保証されている、前記受け取る手順と、
送信元アドレスをメッセージから抽出する手順と、
送信元アドレスと関連したＩＰアドレス・リースを検索する手順と、
ＩＰアドレス・リースに従って前記クライアント・システムのためＩＰアドレスを割り当てる手順と
を実行させるためのプログラム。
【請求項１４】
前記メッセージが、ユニキャストＤＨＣＰＲＥＱＵＥＳＴメッセージである請求項１３記載のプログラム。
【請求項１５】
１つ以上のクライアント・システムを含むコンピュータ・ネットワークにおいてＩＰアドレスを割り当てる装置であって、各クライアント・システムが関連の信頼された識別子を有し、当該信頼された識別子は前記クライアント・システムにより捏造されることができない、前記装置において、
コンピュータ・システムがメッセージをクライアント・システムから受け取るのを可能にするよう構成された第１の部分であって、前記メッセージがＩＰアドレスの割り当てを要求し、かつ前記メッセージが当該メッセージを送っているクライアント・システムの信頼された識別子を含み、前記信頼された識別子が前記クライアント・システムと前記サーバ・システムとの間の中間装置により前記メッセージに加えられる、第１の部分と、
コンピュータ・システムが信頼された識別子をメッセージから抽出するようにさせるべく構成された第２の部分と、
コンピュータ・システムが信頼された識別子に割り当てられたＩＰアドレスの数をカウントするようにさせるべく構成された第３の部分と、
コンピュータ・システムが信頼された識別子に割り当てられたＩＰアドレスの数が所定の限定数より小さい場合前記クライアント・システムのためＩＰアドレスを割り当てるようにさせるべく構成された第４の部分と
を備える装置。
【請求項１６】
前記メッセージは、ブロードキャストＤＨＣＰＲＥＱＵＥＳＴメッセージである請求項１５記載の装置。
【請求項１７】
１つ以上のクライアント・システムを含むコンピュータ・ネットワークにおいてＩＰアドレスを割り当てる装置であって、各クライアント・システムが関連の信頼された識別子を有し、当該信頼された識別子が前記クライアント・システムにより捏造されることができない、前記装置において、
コンピュータ・システムがメッセージをクライアント・システムから受け取るのを可能にするよう構成された第１の部分であって、前記メッセージがＩＰアドレスの割り当てを要求し、かつ前記メッセージが信頼された識別子を含み、当該信頼された識別子が前記クライアント・システムにより捏造されることができないオブジェクトであり、前記信頼された識別子が前記クライアント・システムと前記サーバ・システムとの間の中間装置により前記メッセージに加えられる、第１の部分と、
コンピュータ・システムがメッセージに含まれている信頼された識別子を用いてリース識別子を形成するようにさせるべく構成された第２の部分と、
コンピュータ・システムがリース識別子が関連のＩＰアドレス・リースを有するかを判断するようにさせるべく第３の部分と、
コンピュータ・システムがリース識別子が関連のＩＰアドレス・リースを有する場合リース識別子と関連したＩＰアドレス・リースに従って前記クライアント・システムのためＩＰアドレスを割り当てるようにさせるべく構成された第４の部分と
を備える装置。
【請求項１８】
前記メッセージは、ブロードキャストＤＨＣＰＲＥＱＵＥＳＴメッセージである請求項１７記載の装置。
【請求項１９】
前記メッセージはリース識別クッキーを含み、
前記リース識別子は、信頼された識別子とリース識別クッキーとを組み合わせることにより形成される
請求項１７記載の装置。
【請求項２０】
１つ以上のクライアント・システムを含むコンピュータ・ネットワークにおいてＩＰアドレスを割り当てる装置において、
コンピュータ・システムがメッセージをクライアント・システムから受け取るのを可能にするよう構成された第１の部分であって、前記メッセージはＩＰアドレスの割り当てを要求し、前記メッセージが送信元アドレス及び信頼された識別子を含み、当該送信元アドレスの妥当性が安全な中継エージェントにより保証されており、前記信頼された識別子が前記クライアント・システムと前記サーバ・システムとの間にある中継エージェントにより前記メッセージに加えられる、第１の部分と、
コンピュータ・システムが送信元アドレスをメッセージから抽出ようにさせるべく構成された第２の部分と、
コンピュータ・システムが送信元アドレスと関連したＩＰアドレス・リースを検索するようにさせるべく第３の部分と、
コンピュータ・システムがＩＰアドレス・リースに従って前記クライアント・システムのためＩＰアドレスを割り当てるようにさせるべく構成された第４の部分と
を備える装置。
【請求項２１】
前記メッセージは、ユニキャストＤＨＣＰＲＥＱＵＥＳＴメッセージである請求項２０記載の装置。
【発明の詳細な説明】
発明の分野
本発明は一般的にコンピュータ・ネットワークにおけるセキュリティに関する。詳細には、本発明は、ＤＨＣＰサーバのクライアントの間でのＩＰアドレスの誤用（悪用）の確率を低減する方法及び装置である。
発明の背景
インターネット・プロトコルを用いるコンピュータ・ネットワークは、通常「ＩＰアドレス」と呼ばれている。ＩＰネットワーク内で、ホスト・システム及び他のオブジェクトは、インターネット・プロトコル・アドレス（ＩＰアドレス）として知られている３２ビット番号により識別される。ＩＰアドレスは、ＩＰネットワーク内で送られたメッセージの送信元（ソース）及び宛先（デスティネーション）を識別するための単純な機構を提供する。
ＩＰネットワーク内のＩＰアドレスは、動的ホスト構成プロトコル（ＤＨＣＰ）を用いてますます割り当てられている。ＤＨＣＰプロトコルを用いるネットワークにおいて、クライアント・システムはＩＰアドレスをＤＨＣＰサーバから要求する。ＤＨＣＰサーバは、要求しているクライアント・システムによる使用のためＩＰアドレスを割り当て、クライアント・システムにどのＩＰアドレスを用いるべきかを告げるメッセージをクライアントに送る。
ＤＨＣＰサーバにより割り当てられたＩＰアドレスは、クライアント・システムに対して固定の時間期間「リース」される。続いて、クライアント・システムは、ＩＰアドレスのリースを周期的に更新する責任がある。クライアント・システム及びＤＨＣＰサーバは、クライアント・リースを識別するためリース識別クッキー（ｃｏｏｋｉｅ）として知られるオブジェクトを用いる。クライアント・システムは、ＤＨＣＰサーバにクライアント識別子を送ることによりリース識別クッキーを選定してよい。代替として、ＤＨＣＰサーバは、クライアント・システムのＩＥＥＥスタイルＭＡＣアドレスをリース識別クッキーとして用いる。クライアント・システムは、リース識別クッキーを含むＤＨＣＰサーバにリース更新メッセージを送ることにより自身のリースを周期的に更新する。
不都合にも、伝統的なＤＨＣＰサーバを用いるＩＰアドレスの割り当ては、幾つかの可能な攻撃を受けやすい。１つのそのような攻撃は、通常「ＩＰアドレス・ハイジャッキング」として知られている。ＩＰアドレス・ハイジャッキングは、第１のクライアント・システムが第２のクライアント・システムのＩＰアドレスを獲得するとき起こる。第１のクライアントは、第２のクライアント・システムのリース識別クッキーを用いてリース更新メッセージをＤＨＣＰサーバに送ることによりハイジャックされたＩＰアドレスを維持する。実際、ホスト名は、共通にリース識別クッキーとして用いられるので、この種の攻撃は偶然に起こる可能性すらある。ＩＰアドレス・ハイジャッキングは、単一のＩＰアドレスが２以上のホストによりここで用いられるので、ネットワークを混乱させる。その結果、ネットワーク性能は低下する。
第２のタイプの攻撃は、「ＩＰアドレス・ホッギング（ｈｏｇｇｉｎｇ）」として知られている。この種の攻撃に対して、クライアント・システムは、ＩＰアドレス・リースをＤＨＣＰサーバから繰り返し得ることによりＩＰアドレスの供給を消耗しようとする。一旦クライアント・システムが使用可能なＩＰアドレス・リースのすべてをリースしてしまうと、合法のユーザはＩＰアドレスを待つことを強制されるので、ネットワーク性能は低下する。
前述のことに基づいて、ＩＰアドレス・ハイジャッキング及びＩＰアドレス・ホッギングの両方を思い止どまらせるＤＨＣＰサーバに対する必要性があることが認められるであろう。
発明の概要
本発明の好適な実施形態は、ＩＰアドレス悪用を思い止どまらせるＩＰアドレスの割り当てのための方法及び装置である。詳細には、本発明にとっての好適な環境は、一連のクライアント・システムを含むコンピュータ・ネットワークである。各クライアント・システムは対応するケーブル・モデムに接続され、次いでそのケーブル・モデムはルータに接続される。ルータは、クライアント・システムと１つ以上のサーバ・システムとの間でパケットを転送する。ネットワークは、インターネットＲＦＣ１５４１で定義された動的ホスト構成プロトコル（ＤＨＣＰ）に従ってＩＰアドレスの割り当てを与える１つ以上のＤＨＣＰサーバ・システムを含む。
ネットワークはまた、ＤＨＣＰメッセージをクライアント・システムとＤＨＣＰサーバとの間で転送する安全なＤＨＣＰ中継エージェントを含む。幾つかのケースにおいては、安全なＤＨＣＰ中継エージェントはルータに含まれている。他のケースにおいては、安全なＤＨＣＰ中継エージェントを別個のネットワーク構成要素として含むのが好ましい。安全なＤＨＣＰ中継エージェントは、ネットワーク内のＩＰパケットをモニタし、ＤＨＣＰブロードキャスト・メッセージを検出する。ＤＨＣＰブロードキャスト・メッセージが検出されると、安全なＤＨＣＰ中継エージェントは、ＤＨＣＰブロードキャスト・メッセージのベンダー特定情報内の「信頼された識別子」を符号化する。信頼された識別子は、ＤＨＣＰブロードキャスト・メッセージの送信元と関連した捏造不能な値である。本発明の好適な実施形態においては、信頼された識別子は、ＤＨＣＰブロードキャスト・メッセージをルータに送っているクライアント・システムを接続するケーブル・モデムのモデムｉｄである。
ネットワーク内で、ケーブル・モデム及びケーブル・ルータは安全なＩＰ中継エージェントとして働く。安全なＤＨＣＰ中継エージェントと作動して、安全なＩＰ中継エージェントは、ＤＨＣＰサーバによるクライアント・システムへの割り当てをモニタする。ＩＰアドレスのクライアント・システムへの割り当て後に、安全なＩＰ中継エージェントは、割り当てられたＩＰアドレスを含まないクライアント・システムから発するすべてのＩＰパケットを捨てる。このようにして、安全なＩＰ中継エージェントは、クライアント・システムが捏造された送信元アドレスをもつＩＰパケットを送るのを阻止する。
本発明の好適な実施形態において用いられるように、ＤＨＣＰサーバは、リース識別子インデックス及びＩＰアドレス・インデックスを有するリース・データベースを含む。リース識別子インデックスの中の各エントリは、リース識別クッキーと信頼された識別子との組合わせである。ＩＰアドレス・インデックスの中の各エントリはＩＰアドレスである。リース・データベースの中の各レコードはＩＰアドレス・リースである。ＤＨＣＰサーバはまた信頼された識別子データベースを含む。信頼された識別子データベースは単一のインデックスを有し、そのインデックスの中の各エントリは信頼された識別子である。信頼された識別子データベースの中の各レコードは１つ以上のＩＰアドレス・リースである。
ＤＨＣＰサーバに到達したブロードキャストＤＨＣＰメッセージは、最初に安全なＤＨＣＰ中継エージェントを通る。ブロードキャストＤＨＣＰメッセージは、次いでＤＨＣＰサーバに対してユニキャストされる。ＤＨＣＰ中継エージェントを通る結果、ＤＨＣＰサーバに到達する各ＤＨＣＰメッセージは、安全なＤＨＣＰ中継エージェントにより埋め込まれた信頼された識別子を含む。ＤＨＣＰサーバはＤＨＣＰメッセージを受け取ると、ＤＨＣＰサーバは、最初メッセージを検査して、それが存在するＩＰアドレス・リースへのアクセスを要求するメッセージのタイプであるかを判断する。そうである場合、ＤＨＣＰサーバは、そのメッセージに含まれている信頼された識別子及びリース識別クッキーを抽出する。次いで、信頼された識別子及びリース識別クッキーは、存在するリースをリース・データベースから（そのリース・データベースのリース識別子インデックスを用いて）検索するため組み合わされる。このようにして、クライアント・システムは、クライアント・システムの信頼された識別子と関連しないＩＰアドレス・リースにアクセスするのを阻止される。特に、クライアント・システムはそれら自身のリースを更新するのみである。
リースが認可される前に、ＤＨＣＰサーバは信頼された識別子を用いて、信頼された識別子データベースを問い合わせる。信頼された識別子データベースが信頼された識別子に対応するレコードを含む場合、そのレコードは検索される。代わりに、信頼された識別子データベースが信頼された識別子に対応するレコードを含まない場合、ＤＨＣＰサーバは新しいレコードを生成する。その新しいレコードはＩＰアドレス・リースを含まない。検索されたまたは新しいレコードを用いて、ＤＨＣＰサーバは、信頼された識別子に割り当てられたＩＰアドレス・リースの数を集計（ｔａｂｕｌａｔｅ）する。この数がプリセットされた限定数を越える場合、ＤＨＣＰサーバは要求されたＩＰアドレス・リースを認可しない。このようにして、ＤＨＣＰサーバは、単一のクライアント・システムが過度の数のＩＰアドレス・リースを得るのを阻止する。ＩＰアドレス・リースが認可される場合、ＤＨＣＰサーバは、信頼された識別子に対応するレコードに新しいリースを加える。
ＤＨＣＰサーバに到達したユニキャストＤＨＣＰメッセージは、安全なＤＨＣＰ中継エージェントを通らない。その結果、信頼された識別子は、ユニキャストＤＨＣＰメッセージに含まれない。ＤＨＣＰメッセージがこの種のメッセージを受け取ると、ＤＨＣＰサーバは、そのメッセージに含まれている送信元アドレスを抽出する（送信元アドレスは、実際にはＩＰメッセージを備える１つまたは複数のＩＰパケットから抽出される。）。次いで、抽出された送信元ＩＰアドレスを用いて、（リース・データベースのＩＰアドレスインデックスを用いて）問題としているＩＰアドレス・リースをリース・データベースから検索する。安全なＩＰ中継エージェントは、ユニキャストＤＨＣＰメッセージの送信元アドレスの捏造不可能性を保証するので、クライアント・システムは、他のクライアント・システムのＩＰアドレス・リースにアクセスするのを阻止される。特に、クライアント・システムはそれら自身のリースを更新するだけでよい。
本発明の目的に従って、本明細書に示されかつ広く記載されているように、本発明は、ＩＰアドレスを割り当てる方法において、メッセージをクライアント・システムから受け取るステップであってサーバ・システムにより実行されるステップを備え、前記メッセージはＩＰアドレスの割り当てを要求し、かつ前記メッセージは信頼された識別子を含み、当該信頼された識別子は前記クライアント・システムにより捏造されることができないオブジェクトであり、信頼された識別子を前記メッセージから抽出するステップであってサーバ・システムにより実行されるステップと、信頼された識別子に割り当てられたＩＰアドレスの数をカウントするステップであってサーバ・システムにより実行されるステップと、信頼された識別子に対して割り当てられたＩＰアドレスの数が所定の限定数より小さい場合ＩＰアドレスを前記クライアント・システムのため割り当てるステップであってサーバ・システムにより実行されるステップと、をさらに備える方法である。
本発明の目的にさらに従って、本明細書に示されかつ広く記載されているように、本発明は、ＩＰアドレスを割り当てる方法において、メッセージをクライアント・システムから受け取るステップであってサーバ・システムにより実行されるステップを備え、前記メッセージはＩＰアドレスの割り当てを要求し、かつ前記メッセージは信頼された識別子を含み、当該信頼された識別子は前記クライアント・システムにより捏造されることができないオブジェクトであり、前記メッセージに含まれている信頼された識別子を用いてリース識別子を形成するステップであってサーバ・システムにより実行されるステップと、前記リース識別子が関連したＩＰアドレス・リースを有するか判断するステップであってサーバ・システムにより実行されるステップと、前記リース識別子が関連したＩＰアドレス・リースを有する場合、前記リース識別子と関連したＩＰアドレス・リースに従って前記クライアント・システムのためＩＰアドレスを割り当てるステップであってサーバ・システムにより実行されるステップと、をさらに備える方法である。
本発明の利点は、一部以下の記載において説明され、そして一部、その記載から当業者に理解され、また本発明の実施により学習され得るであろう。本発明の利点は、添付請求の範囲において特に指摘された構成要素及び組合わせ及びその均等物により実現されかつ達成されるであろう。
【図面の簡単な説明】
この明細書の一部に組み込まれその一部を構成する添付図面は、本発明の若干の実施形態を図示し、この記載と共に本発明の原理を説明するのに役立つ。
図１は、本発明の好適な実施形態にとって代表的環境として示されるコンピュータ・ネットワークのブロック図である。
図２は、本発明の好適な実施形態により用いられるルータのブロック図である。
図３は、本発明の好適な実施形態により用いられるＤＨＣＰサーバのブロック図である。
図４は、本発明の好適な実施形態により用いられるＤＨＣＰメッセージ・フォーマットのブロック図である。
図５は、本発明の好適な実施形態において用いられるリース・データベースのブロック図である。
図６は、本発明の好適な実施形態において用いられる信頼された識別子データベースのブロック図である。
図７は、本発明のＩＰアドレス・リース更新方法の好適な実施形態に係わるステップを示すフローチャートである。
図８は、本発明のＩＰアドレス割り当て方法の好適な実施形態に係わるステップを示すフローチャートである。
図９は、本発明のＩＰアドレス・リース更新方法の第２の好適な実施形態に係わるステップを示すフローチャートである。
好適な実施形態の詳細な説明
ここで本発明の好適な実施形態に詳細に言及するが、その実施形態の例は添付図面に示されている。可能なときは常に、同一参照番号が同一または類似の構成要素を言及するため図面全体を通して用いられている。
図１は、コンピュータ・ネットワーク１００を本発明にとっての代表的環境として示す。構造的に、コンピュータ・ネットワーク１００は一連のクライアント・システム１０２を含み、そのうちのクライアント・システム１０２ａから１０２ｆが代表している。各クライアント・システム１０２は、図１に示されるパーソナル・コンピュータを含むが、それに限定されない種々のデバイスの範囲から選定されてよい。ケーブル・モデム１０４が各クライアント・システム１０２に接続される。次いで、各モデム１０４は、ケーブル・ルータ１０６に接続される。ケーブル・ルータ１０６が一連のサーバ・システム１０８に接続され、そのうちのサーバ・システム１０８ａから１０８ｃが代表している。ケーブル・ルータ１０６及びケーブル・モデム１０４の使用も例示を意図し、他のネットワーキング技術及びトポロジーが等しく実際に役立つことが認められるべきである。多数の異なるケーブル・モデム及びケーブル・ルータが種々の製造会社から入手可能であることも認められるはずである。特に、ケーブル・モデム１０４はＣｙｂｅｒＳＵＲＦケーブル・モデムであってよく、ケーブル・ルータ１０６はＣａｂｌｅＭＡＳＴＲケーブル・ルータであってよく、その両方はモトローラ社により供給されている。
ルータ１０６が、図２に詳細にコンピュータ・システム２０２を含むよう示され、そのコンピュータ・システム２０２は１つまたは複数のプロセッサ２０４及びメモリ２０６を含む。入力デバイス２０８及び出力デバイス２１０は、コンピュータ・システム２０２に接続され、ディスク・ドライブ、キーボード、モデム、ネットワーク・アダプタ、プリンタ及びディスプレイのような広範囲の種々のＩ／Ｏデバイスを表す。任意の適切なドライブのタイプであるディスク・ドライブ２１２が、コンピュータ・システム２０２に接続されて示されている。ＤＨＣＰ中継プロセス２１４が、コンピュータ・システム２０２のメモリ２０６に常駐しているよう示されている。
ＤＨＣＰサーバ・システム１１０はまた、コンピュータ・ネットワーク１００に含まれていて、ケーブル・ルータ１０６に接続されている。ＤＨＣＰサーバ・システム１１０は、インターネットＲＦＣ１５４１に定義される動的ホスト構成プロトコル（ＤＨＣＰ）を実行するコンピュータまたは他のシステムである。ＤＨＣＰサーバ・システム１１０が、図３に詳細にコンピュータ・システム３０２を含むよう示され、そのコンピュータ・システム３０２は１つまたは複数のプロセッサ３０４及びメモリ３０６を含む。入力デバイス３０８及び出力デバイス３１０は、コンピュータ・システム３０２に接続され、ディスク・ドライブ、キーボード、モデム、ネットワーク・アダプタ、プリンタ及びディスプレイのような広範囲の種々のＩ／Ｏデバイスを表す。任意の適切なドライブのタイプであるディスク・ドライブ３１２が、コンピュータ・システム３０２に接続されて示されている。ＤＨＣＰサーバ・プロセス３１４、リース・データベース３１６及び信頼された識別子データベース３１８が、コンピュータ・システム３０２のメモリ３０６に常駐しているよう示されている。
クライアント・システム１０２及びＤＨＣＰサーバ・システム１１０は、ＤＨＣＰメッセージを用いて通信する。これらのメッセージにとって好適なフォーマットが、図４に示され、全体的に４００で示されている。構造的には、ＤＨＣＰメッセージは、ｏｐフィールド４０２及びｏｐｔｉｏｎｓ（オプションズ）フィールド４０８を含む（図４をよく見ると、各メッセージがまた多数の他のフィールドを含むことを示している。簡潔のため、これらのフィールドは特に説明しない。）。機能的には、各ＤＨＣＰメッセージは、ＤＨＣＰＤＩＳＣＯＶＥＲ、ＤＨＣＰＯＦＦＥＲ、ＤＨＣＰＲＥＱＵＥＳＴまたはＤＨＣＰＡＣＫのようなタイプを有する。各ＤＨＣＰメッセージのタイプが、ｏｐｔｉｏｎｓフィールド４０８の中に符号化される。ｏｐｔｉｏｎｓフィールドはまた、ベンダー特定情報の符号化を含む多数の他の目的のため用いられる。各ＤＨＣＰメッセージは、それがクライアント・システム１０２またはＤＨＣＰサーバ・システム１１０から送られているかを指示するためマークされる。このマーキングは、ｏｐ４０２をＢＯＯＴＲＥＱＵＥＳＴまたはＢＯＯＴＲＥＰＬＹにセットすることにより実行される。メッセージ内で、ｃｉａｄｄｒフィールド４０４は、ある一定のタイプのＤＨＣＰメッセージ４００のため、ＤＨＣＰサーバ・システム１１０とクライアント・システム１０２との間を通されている識別子を含む。ｃｈａｄｄｒフィールド４０６は、クライアント・システム１０２の機械アドレス（ＭＡＣアドレスとしても知られている。）のため用いられる。
ケーブル・モデム１０４とケーブル・ルータ１０６の組合わせは、「安全なＩＰ中継エージェント」を提供する。安全なＩＰ中継エージェントが、クライアント・システム１０２で発するＩＰパケットのＩＰヘッダに含まれている送信元アドレスの妥当性を保証することは重要である。詳細には、安全なＩＰ中継エージェントは、各クライアント・システム１０２に割り当てられたＩＰアドレスを「学習」する。ＩＰパケットがクライアント・システム１０２から受け取られると、ＩＰパケットの送信元アドレスは、安全なＩＰ中継エージェントにより学習されたＩＰアドレスと比較される。ＩＰパケットの送信元アドレスが学習されたＩＰアドレスと一致しない場合、ＩＰパケットは捨てられる。
ルータ１０６に含まれているＤＨＣＰ中継プロセス２１４は、安全なＤＨＣＰ中継エージェントを与える。安全なＤＨＣＰ中継エージェントは、信頼された識別子がいずれかのクライアント・システム１０２で発する各ＤＨＣＰブロードキャスト・メッセージに含まれていることを保証する。詳細には、信頼された識別子は、単一のクライアント・システム１０２と関連した中継エージェントを特に識別するデータ・オブジェクトである。ネットワーク１００のケースにおいては、ケーブル・モデム１０４は、単一のクライアント・システム１０２と特に関連した中継エージェントである。各モデム１０４は、独特のモデムｉｄを含むのが好ましい。このモデムｉｄは信頼された識別子として用いられる。他のネットワーキング技術及びトポロジーが用いられる場合、他の値またはオブジェクトが信頼された識別子として一層適切に用いられよい。
機能的には、信頼された識別子が用いられて、ＩＰパケットの発信元であるクライアント・システム１０２を識別し、ならびにＩＰパケットを特定のクライアント・システム１０２に特に指向させる。本発明の好適な実施形態にとって、ルータ１０６に含まれているＤＨＣＰ中継プロセス２１４は、各ＤＨＣＰブロードキャスト・メッセージのｏｐｔｉｏｎｓフィールド４０８に含まれているベンダー特定情報の中に信頼された識別子を符号化する。ＤＨＣＰブロードキャスト・メッセージがＤＨＣＰサーバ・システム１１０へ転送される前にＤＨＣＰ中継プロセス２１４により処理されるので、ＤＨＣＰサーバ・システム１１０は、この種の各メッセージが正しい信頼された識別子を含むことを保証される。
ネットワーク１００内で、ＤＨＣＰサーバ・システム１１０は、ＩＰアドレスをクライアント・システム１０２に動的に割り当てる。この割り当ては、インターネットＲＦＣ１５４１に定義されたＤＨＣＰプロトコルに従って実行される。このようにして割り当てられたＩＰアドレスはクライアント・システム１０２により「学習」される。これらのリースを周期的に更新しないクライアント・システム１０２は、それらの割り当てられたＩＰアドレスを失う危険がある。各クライアント・システム１０２は、リース識別クッキーを用いて、ＤＨＣＰサーバ・システム１１０に対するそのリースを識別する。クライアント・システム１０２は、ＤＨＣＰサーバ・システム１１０にクライアント識別子を送ることによりリース識別クッキーを選定し得る。代わりに、クライアント・システムがクライアント識別子を送らない場合、ＤＨＣＰサーバ・システム１１０は、クライアント・システム１０２のＩＥＥＥスタイルＭＡＣアドレスをリース識別クッキーとして用いる。クライアント・システム１０２は、リース識別クッキーを含むＤＨＣＰサーバ・システム１１０にＤＨＣＰメッセージを送ることによりそのリースを更新する。
ＤＨＣＰサーバ・システム１１０は、ＩＰアドレス・リースをリース・データベース３１６に維持する。リース・データベース３１６が図５により明瞭に１つ以上のレコード５００を含むよう示されており、その各レコードはＩＰアドレス・リースを含む。リース・データベース３１６は、ＤＨＣＰサーバ・システム１１０によりリースされ得る各ＩＰアドレスに対して１個のレコード５００を含む。各レコード５００は、ＩＰアドレス・インデックス５０２を用いてアクセス可能である。ＩＰアドレス・インデックス５０２の中のエントリは、ＩＰアドレスに対応する。機能的には、ＩＰアドレス・インデックス５０２は、ＩＰアドレスをＩＰアドレス・リースと関連付ける装置を提供する。
クライアント・システム１０２に割り当てられるまたは割り当てられてしまったＩＰアドレス・リースを含むリース・データベース３１６の中のレコード５００は、リース識別子インデックス５０４を用いてアクセス可能である。リース識別子インデックス５０４の中のエントリは、信頼された識別子５０６とリース識別クッキー５０８の組合わせであるリース識別子に対応する。図５において、信頼された識別子５０６及びリース識別クッキー５０８の組合わせが連結として示されている。連結の使用は例示を意図するものであり、信頼された識別子５０６とリース識別クッキー５０８をリース識別子の中へ組み合わせる他の方法が等しく実際に役立つ。機能的には、リース識別子インデックス５０４は、リース識別子をＩＰアドレス・リースと関連付ける装置を提供する。記載された実施形態にとって、クライアント・システム１０２に決して割り当てられなかったＩＰアドレス・リースを含む。レコード５００は、リース識別子インデックス５０４に含まれない。代わりに、これらのレコード５００は、リース識別子インデックス５０４に含まれている特別の「割り当てられない」エントリに割り当てられ得る。
ＤＨＣＰサーバ・システム１１０はまた信頼された識別子データベース３１８を維持する。信頼された識別子データベース３１８は１つ以上のレコード６００を含む各レコード６００は、１つ以上のリースを含み、信頼された識別子インデックス６０２を用いてアクセス可能である。信頼された識別子インデックス６０２の中のエントリは信頼された識別子に対応する。機能的には、信頼された識別子インデックス６０２は、ＩＰアドレス・リースが信頼された識別子と関連付けられるのを可能にする装置を提供する。代替として、信頼された識別子データベース３１８は、信頼された識別子インデックスをリース・データベース３１６に対して与えることにより排除され得る。リース・データベース３１６の信頼された識別子インデックスにおける各エントリは特定の信頼された識別子に対応し、各エントリが用いられて、その特定の信頼された識別子と関連したＩＰアドレス・リースを検索し得る。
ＤＨＣＰサーバ・システム１１０によるＩＰアドレス・リースの更新のための好適な方法が、図７に示され、全体的に７００で示されている。方法はステップ７０２で始まり、そこでＤＨＣＰサーバ・システム１１０は、ブロードキャストＤＨＣＰＲＥＱＵＥＳＴメッセージをクライアント・システム１０２から受け取る。説明の目的のため、ＤＨＣＰＲＥＱＵＥＳＴメッセージは特別のＤＨＣＰサーバ・システム１１０を識別しないと仮定する。したがって、ＤＨＣＰプロトコルに従って、受け取られたメッセージはクライアント・システム１０２からの存在するリースの更新に対する要求である。
ステップ７０４において、ＤＨＣＰサーバ・システム１１０は信頼された識別子を受け取ったメッセージから抽出する。詳細には、そして先に述べたように、ＤＨＣＰサーバ・システム１１０に到着した各ブロードキャストＤＨＣＰメッセージは信頼された識別子を含む。ステップ７０４において、この信頼された識別子は、受け取ったメッセージのｏｐｔｉｏｎｓフィールド４０８に含まれているベンダー特定情報からＤＨＣＰサーバ・システム１１０により検索される。
ＤＨＣＰプロトコルは、クライアント・システム１０２がリース更新のため各ＤＨＣＰＲＥＱＵＥＳＴメッセージのｃｉａｄｄｒフィールド４０４にリース識別クッキーを含むのを可能にする。代わりに、リース識別クッキーがｃｉａｄｄｒフィールド４０４に含まれていない場合、ＤＨＣＰプロトコルは、ｃｈａｄｄｒフィールド４０６の内容がリース識別クッキーとして用いられることを要求する。ステップ７０６において、ＤＨＣＰサーバ・システム１１０は、受け取ったメッセージのｃｉａｄｄｒフィールド４０４またはｃｈａｄｄｒフィールド４０６からリース識別クッキーを抽出する。
ステップ７０８において、ステップ７０４で検索された信頼された識別子及びステップ７０６で検索されたリース識別クッキーが組み合わされてリース識別子を生成する。一般的に、信頼された識別子とリース識別クッキーとを組み合わせることは、連結を含むがそれに限定されない多くの技術により実行される。しかしながら、組合わせの特定の方法は、リース・データベース３１６のリース識別子インデックス５０４の中にエントリを発生するため用いられる方法と互換可能である。
ステップ７１０において、ＤＨＣＰサーバ・システム１１０は、ステップ７０８で発生されたリース識別子を用いて、レコード５００をリース・データベース３１６から検索する。詳細には、ステップ７１０において、ＤＨＣＰサーバ・システム１１０は、ステップ７０８で発生されたリース識別子と整合するエントリについてリース・データベース３１６のリース識別子インデックス５０４を探索する。整合したエントリが見つけられると、リース・データベース３１６の中の対応するレコード５００が検索される。代わりに、リース識別子インデックス５０４の中のエントリがリース識別子と整合しない場合、リース・データベース３１６の探索は終了する。信頼された識別子とリース識別クッキーの組合わせを用いたリース・データベース３１６の探索が、各クライアント・システム１０２がそのクライアント・システム１０２と関連したレコード５００を検索するだけでよいことを保証するのが重要である。こうして、クライアント・システム１０２は、ステップ７０２で受け取られたＤＨＣＰＲＥＱＵＥＳＴメッセージに含まれているリース識別クッキーに無関係にそれら自身のリースをアクセスするのみである。
ステップ７１０にステップ７１２が続き、そこでＤＨＣＰサーバ・システム１１０は、リース・データベース３１６の探索の結果を解析する。ステップ７１２がリース・データベース３１６の探索がレコード５００を捜し出すことなしに終了したと決定する場合、方法７００の実行がステップ７１４で継続する。ステップ７１４において、ＤＨＣＰＮＡＫメッセージは、ＤＨＣＰサーバ・システム１１０がクライアント・システム１０２のＩＰアドレス・リースを拡張するための要求に応ずることができなかったことを指示するクライアント・システム１０２に対してＤＨＣＰサーバ・システム１１０により送られる。通常、ステップ７１４は、クライアント・システム１０２が存在しないさもなければ無効のＩＰアドレス・リースを拡張するのを試みてしまったとき実行される。
ステップ７１２がリース・データベース３１６の探索がレコード５００を捜し出したと判断した場合、方法７００の実行がステップ７１６で継続する。ステップ７１６において、ＤＨＣＰサーバ・システム１１０は、検索されたレコード５００に含まれているリースをステップ７０２で受け取られたＤＨＣＰＲＥＱＵＥＳＴメッセージと比較する。リースの継続期間がＤＨＣＰサーバ・システム１１０に対して受け入れ可能でない場合、方法７００はステップ７１８で継続し、そこでＤＨＣＰサーバ・システム１１０はＤＨＣＮＡＫメッセージをクライアント・システム１０２に戻す。通常、ステップ７１８は、クライアント・システム１０２がＩＰアドレス・リースの期間（ＤＨＣＰＲＥＱＵＥＳＴメッセージの一部として）を変えるよう試みてしまったとき実行される。
リースの継続期間がＤＨＣＰサーバ・システム１１０に対して受け入れ可能である場合、方法７００はステップ７２０で継続する。ステップ７２０において、ＤＨＣＰサーバ・システム１１０は、検索されたレコード５００に含まれているリースが満期になったかを判断する。満期になっていない場合、方法７００はステップ７２２で継続し、そこでＤＨＣＰサーバ・システム１１０はリース・データベース３１６を更新して、検索されたレコード５００に含まれているリースがクライアント・システム１０２により更新されてしまったことを指示する。ステップ７２２にステップ７２４が続き、そこでＤＨＣＰサーバ・システム１１０はクライアント・システム１０２にＤＨＣＰＡＣＫメッセージを送る。ＤＨＣＰＡＣＫメッセージは、ＩＰアドレス・リースが更新されてしまったことをクライアント・システム１０２に知らせる。
ＤＨＣＰサーバ１１０が、ステップ７２０において、検索されてレコード５００に含まれているリースが満期になってしまったと判断した場合、方法７００はステップ７２６で継続する。ステップ７２６において、ＤＨＣＰサーバ・システム１１０は、ステップ７０４で抽出された信頼された識別子を用いて、信頼された識別子データベース３１８を探索する。詳細には、ＤＨＣＰサーバ・システム１１０は、検索された信頼された識別子を用いて、信頼された識別子データベース３１８の信頼された識別子インデックス６０２を探索する。エントリが検索された信頼された識別子と整合する信頼された識別子インデックス６０２の中に見つけられた場合、ＤＨＣＰサーバ・システム１１０は対応するレコード６００を検索する。
ステップ７２８において、ＤＨＣＰサーバ・システム１１０は、信頼された識別子と関連したクライアント・システム１０２に対して現在リースされているＩＰアドレスの計数を発生する。これは、ステップ７２６で検索されたレコード６００に含まれている各ＩＰアドレス・リースをカウントすることによりなされる。レコードがステップ７２６で検索されない場合、計数はゼロにセットされる。ステップ７２８で発生された計数は、ステップ７３０でプリセットされた限定数と比較される。計数がプリセットされた限定数を越えた場合、実行はステップ７３２で継続し、そこでＤＨＣＰＮＡＫメッセージがＤＨＣＰサーバ・システム１１０によりクライアント・システム１０２に送られる。ステップ７３２の実行は、ＤＨＣＰサーバ・システム１１０がクライアント・システム１０２が単一のクライアント・システム１０２に対して入手可能な最大数のＩＰアドレス・リースを既にリースしてしまったことを判断する。このようにして、クライアント・システム１０２は、ＩＰアドレス・リースを「ホッギング」するのを阻止する。
ステップ７３０がクライアント・システム１０２が最大数の許されたＩＰアドレス・リースを越えなかったと判断した場合、方法７００の実行はステップ７３４で継続する。ステップ７３４において、ＤＨＣＰサーバ・システム１１０は、リース・データベース３１６を更新して、新しいＩＰアドレス・リースがクライアント・システム１０２に認可されてしまったことを指示する。リース・データベース３１６は、ステップ７１０で検索されたレコードを修正することにより更新され、クライアント・システムに認可されたＩＰアドレス・リースの期間を含む。信頼された識別子データベース３１８も更新される。詳細には、信頼された識別子データベース３１８が信頼された識別子に対応するレコード６００を含む場合、新しいＩＰアドレス・リースがこのレコード６００に追加される。代わりに、ＤＨＣＰサーバ・システム１１０は、新しいレコード６００を生成し、新しいＩＰアドレス・リースをその新しいレコード６００に含む。ステップ７３４にステップ７３６が続き、そこでＤＨＣＰサーバ・システム１１０はクライアント・システム１０２にＤＨＣＰＡＣＫメッセージを送る。ＤＨＣＰＡＣＫメッセージはクライアント・システム１０２にそのクライアント・システム１０２がＩＰアドレス・リースを認可してしまったことを知らせる。
ＤＨＣＰサーバ・システム１１０によるＩＰアドレスの割り当てのための好適な方法が、図８に示され、全体的に８００で示されている。方法８００はステップ８０２で始まり、そこでＤＨＣＰサーバ・システム１１０はブロードキャストＤＨＣＰＤＩＳＣＯＶＥＲメッセージをクライアント・システム１０２から受け取る。ステップ８０４において、ＤＨＣＰサーバ・システム１１０は、信頼された識別子を受け取ったメッセージから抽出する。詳細には、そして前述したように、ＤＨＣＰサーバ・システム１１０に到達した各ブロードキャストＤＨＣＰメッセージは信頼された識別子を含む。ステップ８０４において、この信頼された識別子は、受け取ったメッセージのｏｐｔｉｏｎｓフィールド４０８に含まれているベンダー特定情報からＤＨＣＰサーバ・システム１１０により検索される。
ＤＨＣＰプロトコルは、クライアント・システム１０２がリース更新のため各ＤＨＣＰＤＩＳＣＯＶＥＲメッセージのｃｉａｄｄｒフィールド４０４の中にリース識別クッキーを含むのを可能にする。代わりに、リース識別クッキーがｃｉａｄｄｒフィールド４０４に含まれていない場合、ＤＨＣＰプロトコルは、ｃｈａｄｄｒフィールド４０６の内容がリース識別クッキーとして用いられることを要求する。ステップ８０６において、ＤＨＣＰサーバ・システム１１０は、受け取ったメッセージのｃｉａｄｄｒフィールド４０４またはｃｈａｄｄｒフィールド４０６からリース識別クッキーを抽出する。
ステップ８０８において、ステップ８０４で検索された信頼された識別子とステップ８０６で検索されたリース識別クッキーとが組み合わされ、リース識別子を生成する。一般的に、信頼された識別子とリース識別クッキーとを組み合わせることは、連結を含むがそれに限定されない多くの技術により実行され得る。しかしながら、組合わせのための特定の方法は、リース・データベース３１６のリース識別子インデックス５０４の中にエントリを発生するため用いられる方法と互換可能である。
ステップ８１０において、ＤＨＣＰサーバ・システム１１０は、ステップ８０８で発生されたリース識別子を用いて、レコード５００をリース・データベース３１６から検索する。詳細には、ステップ８１０において、ＤＨＣＰサーバ・システム１１０は、ステップ８０８で発生されたリース識別子と整合するエントリのためリース・データベース３１６のリース識別子インデックス５０４を探索する。整合するエントリが見つけられると、リース・データベース３１６の中の対応するレコード５００が検索される。代わりに、リース識別子インデックス５０４の中のエントリがリース識別子と整合しない場合、リース・データベース３１６の探索は終了する。信頼された識別子とリース識別クッキーの組合わせを用いたリース・データベース３１６の探索は、各クライアント・システム１０２がそのクライアント・システム１０２と関連したレコード５００を検索するだけでよいことを保証する。こうして、クライアント・システム１０２は、ステップ８０２で受け取られたＤＨＣＰＤＩＳＣＯＶＥＲメッセージに含まれているリース識別クッキーに無関係にそれら自身のリースにアクセスするだけでよい。
ステップ８１０にステップ８１２が続き、そこでＤＨＣＰサーバ・システム１１０はリース・データベース３１６の探索の結果を解析する。ステップ８１２がリース・データベース３１６の探索がレコード５００を捜し出したと判断した場合、方法８００の実行はステップ８１４で継続する。ステップ８１４において、ＤＨＣＰサーバ・システム１１０は、検索されたレコード５００に含まれているリースが満期になってしまったかを判断する。満期でない場合、方法８００はステップ８１６で継続し、そこでＤＨＣＰサーバ・システム１１０はリース・データベース３１６を更新して、検索されたレコード５００に含まれているリースがクライアント・システム１０２に割り当てられてしまったことを指示する。検索されたレコード５００が、ＤＨＣＰサーバ１１０により更新され、クライアント・システム１０２に割り当てられたＩＰアドレス・リースを比較的短い持続時間に制限するのが好ましい。その比較的短い持続時間は、クライアント・システム１０２のためＩＰアドレスを保持し、そして後続のＤＨＣＰＲＥＱＵＥＳＴメッセージを用いてＩＰアドレス・リースを拡張するための制限された機会をクライアント・システム１０２に認可する。ステップ８１６にステップ８１８が続き、そこでＤＨＣＰサーバ・システム１１０はクライアント・システム１０２にＤＨＣＰＯＦＦＥＲメッセージを送る。そのＤＨＣＰＯＦＦＥＲメッセージは、クライアント・システム１０２が後続のＤＨＣＰＲＥＱＵＥＳＴメッセージを用いてＩＰアドレス・リースを確認し得ることをクライアント・システム１０２に知らせる。
ＤＨＣＰサーバ・システム１１０が、ステップ８１４において、検索されたレコード５００に含まれているリースが満期になってしまったと判断した場合、方法８００はステップ８２０で継続する。ステップ８２０において、ＤＨＣＰサーバ・システム１１０は、ステップ８０４で抽出された信頼された識別子を用いて、信頼された識別子データベース３１８を探索する。詳細には、ＤＨＣＰサーバ・システム１１０は、検索された信頼された識別子を用いて、信頼された識別子データベース３１８の信頼された識別子インデックス６０２を探索する。エントリが検索された信頼された識別子と整合する信頼された識別子インデックス６０２の中に見つけられた場合、ＤＨＣＰサーバ・システム１１０は対応するレコード５００を検索する。
ステップ８２２において、ＤＨＣＰサーバ・システム１１０は、信頼された識別子と関連したクライアント・システム１０２に現在リースされているＩＰアドレスの計数を発生する。これは、ステップ８２０で検索されたレコード６００に含まれている各ＩＰアドレス・リースをカウントすることによりなされる。レコードがステップ８２２で検索されなかった場合、計数はゼロにセットされる。ステップ８２２で発生された計数は、ステップ８２４で、プリセットされた限定数と比較される。計数がプリセットされた限定数を越えた場合、方法８００の実行はステップ８２６で終わる。ＤＨＣＰサーバ・システム１１０がクライアント・システム１０２が単一のクライアント・システム１０２に入手可能な最大数のＩＰアドレス・リースを既にリースしてしまったと判断したとき、方法８００はステップ８２６に到達する。このようにして、クライアント・システム１０２は、ＩＰアドレス・リースを「ホッギング」するのを阻止される。
ステップ８２４がクライアント・システム１０２が最大数の許されたＩＰアドレス・リースを越えなかった場合、方法８００の実行はステップ８２８で継続する。ステップ８２８において、ＤＨＣＰサーバ・システム１１０は、リース・データベース３１６を更新して、検索されたレコード５００に含まれているリースがクライアント・システム１０２に割り当てられたしまったことを指示する。検索されたレコード５００が、ＤＨＣＰサーバ・システム１１０により更新され、クライアント・システム１０２に割り当てられたＩＰアドレス・リースを比較的短い持続時間に制限する。その比較的短い持続時間は、クライアント・システム１０２のためＩＰアドレス・リースを保持し、後続のＤＨＣＰＲＥＱＵＥＳＴメッセージを用いてＩＰアドレス・リースを拡張する制限された機会をクライアント・システム１０２に認可する。ＤＨＣＰサーバ・システム１１０はまたステップ８２８において信頼された識別子データベース３１８を更新する。詳細には、信頼された識別子データベース３１８が信頼された識別子に対応するレコード６００を含む場合、新しいＩＰアドレス・リースがこのレコード６００に追加される。代わりに、ＤＨＣＰサーバ・システム１１０は、新しいレコード６００を生成し、新しいＩＰアドレス・リースをその新しいレコード６００の中に含める。
ステップ８２８にステップ８３０が続き、そこでＤＨＣＰサーバ・システム１１０はクライアント・システム１０２にＤＨＣＰＯＦＦＥＲメッセージを送る。ＤＨＣＰＯＦＦＥＲメッセージは、クライアント・システム１０２が後続のＤＨＣＰＲＥＱＵＥＳＴメッセージを用いてＩＰアドレス・リースを確認し得ることをクライアント・システム１０２に知らせる。
ＤＨＣＰサーバ・システム１１０が、ステップ８１２において、リース・データベース３１６がレコード５００を見つけることなく終わったと判断した場合、方法８００はステップ８３２で継続する。ステップ８３２において、ＤＨＣＰサーバ・システム１１０は、ステップ８０４で抽出された信頼された識別子を用いて、信頼された識別子データベース３１８を探索する。詳細には、ＤＨＣＰサーバ・システム１１０は、検索された信頼された識別子を用いて、信頼された識別子データベース３１８の信頼された識別子インデックス６０２を探索する。エントリが検索された信頼された識別子と整合する信頼された識別子インデックス６０２の中に見つけられた場合、ＤＨＣＰサーバ・システム１１０は対応するレコード６００を検索する。
ステップ８３４において、ＤＨＣＰサーバ・システム１１０は、信頼された識別子と関連したクライアント・システム１０２に現在リースされているＩＰアドレスの計数を発生する。これは、ステップ８２０で検索されたレコード６００に含まれている各ＩＰアドレス・リースをカウントすることによりなされる。レコードがステップ８３２において検索されなかった場合、計数はゼロにセットされる。ステップ８３４で発生された計数は、ステップ８３６で、プリセットされた限定数と比較される。計数がプリセットされた限定数を越えた場合、方法８００の実行はステップ８３８で終わる。ＤＨＣＰサーバ・システム１１０がクライアント・システム１０２が単一のクライアント・システム１０２に対して使用可能な最大数のＩＰアドレス・リースを既にリースしてしまっていると判断したとき、方法８００はステップ８３８に到達する。このようにして、クライアント・システム１０２は、ＩＰアドレス・リースを「ホッギング」するのを阻止される。
ステップ８３６がクライアント・システム１０２が最大数の許されたＩＰアドレス・リースを越えていなかったと判断した場合、方法８００の実行はステップ８４０で継続する。ステップ８４０において、ＤＨＣＰサーバ・システム１１０は、割り当てのため使用可能なＩＰアドレスを含むレコード５００についてリース・データベース３１６を探索する。一般的に、探索は、ＩＰアドレス・インデックス５０２を用いることにより実行される。ステップ８４２において、ＤＨＣＰサーバ・システム１１０はステップ８４０の探索の結果を解析する。割り当てのため使用可能なＩＰアドレス・リースを含むレコード５００がステップで捜し出されなかった場合、方法８００はステップ８４４で終了する。すべての使用可能なＩＰアドレスがクライアント・システム１０２に割り当てられてしまってとき、方法８００はステップ８４４に到達する。
代わりに、ＤＨＣＰサーバ・システム１１０が、ステップ８４２において、割り当てのため使用可能なＩＰアドレス・リースを含むレコード５００がステップ８４０で捜し出されたと判断した場合、方法８００はステップ８４６で継続する。ステップ８４６において、ＤＨＣＰサーバ・システム１１０は、リース・データベース３１６を更新して、８４０で検索されたレコード５００に含まれているリースがクライアント・システム１０２に割り当てられてしまったことを指示する。検索されたレコード５００がＤＨＣＰサーバ・システム１１０により更新され、クライアント・システム１０２に割り当てられたＩＰアドレス・リースを比較的短い持続時間に制限するのが好ましい。その比較的短い持続時間は、クライアント・システム１０２のためＩＰアドレス・リースを保持し、後続のＤＨＣＰＲＥＱＵＥＳＴメッセージを用いてＩＰアドレス・リースを拡張するための制限された機会を認可する。ＤＨＣＰサーバ・システム１１０はまた、ステップ８４６で信頼された識別子データベース３１８を更新する。詳細には、信頼された識別子データベース３１８が信頼された識別子に対応するレコード６００を含む場合、新しいＩＰアドレス・リースがこのレコード６００に追加される。代わりに、ＤＨＣＰサーバ・システム１１０は、新しいレコード６００を生成し、新しいＩＰアドレス・リースをその新しいレコード６００に含める。
ステップ８４６にステップ８４８が続き、そこでＤＨＣＰサーバ・システム１１０は、クライアント・システム１０２にＤＨＣＰＯＦＦＥＲメッセージを送る。ＤＨＣＰＯＦＦＥＲメッセージは、クライアント・システム１０２が後続のＤＨＣＰＲＥＱＵＥＳＴメッセージを用いてＩＰアドレス・リースを確認し得るのをクライアント・システム１０２に知らせる。
ＤＨＣＰサーバ・システム１１０によるＩＰアドレス・リースの更新のための第２の好適な方法が、図９に示され、全体的に９００で示されている。方法はステップ９０２で始まり、そこでＤＨＣＰサーバ・システム１１０は、ユニキャストＤＨＣＰＲＥＱＵＥＳＴメッセージをクライアント・システム１０２から受け取る。本発明の目的のため、受け取ったメッセージがユニキャスト・メッセージである事実が、そのメッセージが、必然的に、存在するリースの更新の要求であることを指示する。
ステップ９０４において、ＤＨＣＰサーバ・システム１１０は、受け取られたメッセージを作るＩＰパケット（単数または複数）のヘッダからＩＰアドレス・リースを抽出する。重要なことには、そして前述したように、安全なＤＨＣＰ中継エージェントは、ＩＰパケット・ヘッダに含まれている送信元アドレスの正しさを保証する。その結果、ＤＨＣＰサーバ・システム１１０は、ステップ９０４で抽出されたＩＰ送信元アドレスが実際にステップ９０２で受け取られたＤＨＣＰＲＥＱＵＥＳＴメッセージを送っているクライアント・システム１０２のＩＰアドレスであると仮定する。
ステップ９０６において、ＤＨＣＰサーバ・システム１１０は、ステップ９０４で抽出されたＩＰアドレスを用いて、レコード５００をリース・データベース３１６から検索する。詳細には、ステップ９０６において、ＤＨＣＰサーバ・システム１１０は、抽出されたＩＰアドレスと整合するエントリについてリース・データベース３１６のＩＰアドレス・インデックス５０２を探索する。整合するエントリが見つけられると、リース・データベース３１６の中の対応するレコード５００が検索される。
ステップ９０６にステップ９０８が続き、そこでＤＨＣＰサーバ・システム１１０はリース・データベース３１６の探索の結果を解析する。ステップ９０８がリース・データベース３１６の探索がレコード５００を捜し出すことなく終了したと判断した場合、方法８００の実行はステップ９１０で継続する。ステップ９１０において、ＤＨＣＰＮＡＫメッセージは、ＤＨＣＰサーバ・システム１１０がクライアント・システム１０２のＩＰアドレス・リースを拡張するための要求に応ずることができなかったことを指示するクライアント・システム１０２に対してＤＨＣＰサーバ・システム１１０により送られる。通常、ステップ９１０は、クライアント・システム１０２が存在しないまたはさもなければ無効のＩＰアドレス・リースを拡張するのを試みてしまったとき実行される。
ステップ９０８がリース・データベース３１６の探索がレコード５００を捜し出したと判断した場合、方法８００の実行はステップ９１２で継続する。ステップ９１２において、ＤＨＣＰサーバ・システム１１０は、検索されたレコード５００に含まれているリースをステップ９０２で受け取られたＤＨＣＰＲＥＱＵＥＳＴメッセージと比較する。リース継続期間がＤＨＣＰサーバ・システム１１０に対して受け入れ可能でない場合、方法９００はステップ９１４で継続し、そこでＤＨＣＰサーバ・システム１１０はＤＨＣＰＮＡＫメッセージをクライアント・システム１０２に戻す。通常、ステップ９１４は、クライアント・システム１０２がＩＰアドレス・リースの期間（ＤＨＣＰＲＥＱＵＥＳＴメッセージの一部として）を変えるよう試みてしまったとき実行される。
リース継続期間がＤＨＣＰサーバ・システム１１０に対して受け入れ可能である場合、方法９００はステップ９１６で継続する。ステップ９１６において、ＤＨＣＰサーバ・システム１１０は、検索されたレコード５００に含まれているリースが満期になってしまったかを判断する。満期になっていない場合、方法９００はステップ９１８で継続し、そこでＤＨＣＰサーバ・システム１１０は、リース・データベース３１６を更新して、検索されたレコード５００に含まれているリースがクライアント・システム１０２により更新されてしまったことを指示する。ステップ９１８にステップ９２０が続き、そこでＤＨＣＰサーバ・システム１１０はクライアント・システム１０２にＤＨＣＰＡＣＫメッセージを送る。ＤＨＣＰＡＣＫメッセージは、ＩＰアドレス・リースが更新されてしまったことをクライアント・システム１０２に知らせる。
ＤＨＣＰサーバ・システム１１０が、ステップ９１６において、検索されたレコード５００に含まれているリースが満期になってしまったと判断する場合、方法９００はステップ９２２で継続する。ステップ９２２において、ＤＨＣＰサーバ・システム１１０は、検索されたレコード５００のインデックス５０４から信頼された識別子を抽出する。
ステップ９２４において、ＤＨＣＰサーバ・システム１１０は、ステップ９２２で抽出された信頼された識別子を用いて、信頼された識別子データベース３１８を探索する。詳細には、ＤＨＣＰサーバ・システム１１０は、検索された信頼された識別子を用いて、信頼された識別子データベース３１８の信頼された識別子インデックス６０２を探索する。エントリが検索された信頼された識別子と整合する信頼された識別子インデックス６０２の中に見つけられる場合、ＤＨＣＰサーバ・システム１１０は対応するレコード６００を検索する。
ステップ９２６において、ＤＨＣＰサーバ・システム１１０は、信頼された識別子と関連したクライアント・システム１０２に対して現在リースされているＩＰアドレスの計数を発生する。これは、ステップ９２４で検索されたレコード６００に含まれている各ＩＰアドレス・リースを計数することによりなされる。レコードがステップ９２４で検索されなかった場合、計数はゼロにセットされる。ステップ９２６で発生された計数は、ステップ９２８で、プリセットされた限定数と比較される。計数がプリセットされた限定数を越えた場合、実行はステップ９３０で継続し、そこでＤＨＣＰＮＡＫメッセージはＤＨＣＰサーバ・システム１１０によりクライアント・システム１０２に送られる。ＤＨＣＰサーバ・システム１１０がクライアント・システム１０２が単一のクライアント・システム１０２に対して使用可能な最大数のＩＰアドレス・リースを既にリースされてしまっていると判断したとき、ステップ９３０の実行が起こる。このようにして、クライアント・システム１０２は、ＩＰアドレス・リースを「ホッギング」するのを阻止する。
ステップ９２８がクライアント・システム１０２が最大数の許されたＩＰアドレス・リースを越えてないと判断した場合、方法９００の実行はステップ９３２で継続する。ステップ９３４において、ＤＨＣＰサーバ・システム１１０は、リース・データベース３１６更新して、新しいＩＰアドレス・リースがクライアント・システム１０２に対して認可されてしまったことを指示する。リース・データベース３１６は、クライアント・システムに認可されたＩＰアドレス・リースの期間を含むようステップ９０６で検索されたレコードを修正することにより更新される。信頼された識別子データベース３１８も更新される。詳細には、信頼された識別子データベース３１８が信頼された識別子に対応するレコード６００を含む場合、新しいＩＰアドレス・リースがこのレコード６００に追加される。代わりに、ＤＨＣＰサーバ・システム１１０は、新しいレコード６００を生成し、新しいＩＰアドレス・リースをその新しいレコード６００に含める。ステップ９３２にステップ９３４が続き、そこでＤＨＣＰサーバ・システム１１０はクライアント・システム１０２にＤＨＣＰＡＣＫメッセージを送る。ＤＨＣＰＡＣＫメッセージは、クライアント・システム１０２がＩＰアドレス・リースを認可してしまったことをクライアント・システム１０２に知らせる。
他の実施形態が当業者にはここに開示された本発明の記載及び実施を考慮すれば明らかであろう。記載及び例は例示としてのみ考えられ、本発明の真の範囲は以下の請求の範囲及び均等物により示されることを意図している。
【図１】
0003989557.tif 000002
【図２】
0003989557.tif 000003
【図３】
0003989557.tif 000004
【図４】
0003989557.tif 000005
【図５】
0003989557.tif 000006
【図６】
0003989557.tif 000007
【図７】
0003989557.tif 000008
【図９】
0003989557.tif 000009
【図８】
0003989557.tif 000010