DHCPサーバによるIPアドレスの自動設定

コンピュータのIPアドレスを設定する方法はオペレーティングシステムにより異なります。
例えば、WindowsXPの場合であれば、次のように 『マイネットワーク』の『ネットワーク接続を表示する』を選択し、 接続のアイコンのプロパティを開き、TCP/IPのプロパティを調べます。
(画像のクリックで拡大表示されます。)
TCP/IPのプロパティの設定項目の中に、 IPアドレスが配信されている時に指定する『IPアドレスを自動的に取得する』 と、 IPアドレスを直接に指定する『次のアドレスを使う』の選択があります。

この『IPアドレスを自動的に取得する』の項目は、 DHCPサーバを用いたIPアドレスの自動設定を使う場合に使います。
つまりDHCPサーバが動いていて、サーバ側で適切な設定をしている場合にだけ使えます。 コンピュータ(クライアント)は、DHCPサーバと次のようなやり取りを行い、IPアドレスを設定します。 このサービスで使われるプロトコルが DHCP(Dynamic Host Configuration Protocol) と呼ばれます。

上記メッセージが書いてあるクリックして行くことでアニメーションが進みます。
(すべての表示が終わると、先頭に戻ります。)

なお、DHCPメッセージはUDPブロードキャストによって送信され、 サーバ側は67、クライアント側では68のポート番号が使用されることになっています。
なお、ブロードキャストはルータを超えて送ることができませんでした。 ですが、一般にルータ(L3機器)には、DHCPリレーエージェント()と呼ばれる機能があり、 これを有効にすることで、LANなどの異なるセグメントに対しても一つのDHCPサーバで IPアドレスを配信できるようになっています。 このルータに対する特別な設定をUDPヘルパーアドレスと呼ぶことがあります。
例 Ciscoルータでは [ ip helper-address ] コマンドで設定します。

補足: 事前にDHCPサーバで、配信するIPアドレスの範囲を設定する必要があります。このアドレス範囲は、 アドレスプールと呼ばれます。このIPアドレスにはリース期間も設定しておく必要があります。 これは、配信したIPアドレスが利用できる期間を意味するもので、 これにより、割り与えたホストがなんらかの理由で交換しなければならない場合でも、リース期間が過ぎることで サーバ側は、無くなったホストに使ったIPアドレスを他のマシンに使える仕組みになっています。 (クライアント側では、リース期間が過ぎると、それまで使っていたPアドレスが使えなくなるので、 期間延長の要求をサーバに行う形になっています。)

DHCP以前に使われていたプロトコルで、BOOTPと呼ばれるものがあり、これが上記で説明したIPアドレスを配信するプロトコルでした。 それに対して、DHCPはIPアドレス以外の設定をオプション(サブネットマスク、DNS、デフォルトゲートウェイ)で配信できるようになっています。

DHCPからIPアドレス借り受けるリース期間を調べるWindowsコマンドは 次の操作です。
ipconfig  /all
この操作で、他に デフォルトゲートウェイ、DHCPの有無、MACアドレス、サブネットマスク、 DNSサーバの設定情報も確認できます。

なお、DHCPサーバーから取得したIPアドレスを解放するWindowsコマンドは 次の操作です。
ipconfig  /release
また、DHCPサーバーから取得したIPアドレスを、改めて再取得するWindowsコマンドは 次の操作です。
ipconfig  /renew
これらは、後述しているAPIPAアドレス解放や、DHCPサーバーの動作確認などの目的で使用します。

 APIPA ( Automatic Private IP Addressing )またはAutoIP

DHCPサーバを使ったIPアドレスの自動設定はステートフルの設定と呼ばれることがあります。
対して、DHCPサーバが用意されていないような小規模ネットワークでもIPアドレスの設定が容易にするためのIPアドレス自動設定は、ステートレスと呼ばれます。
そして、IPv4のステートレスのIPアドレス自動設定に APIPA (Automatic Private IP Addressing:エー・ピー・アイ・ピー・エー)が使われます。
これは次のように動作します。
  1. 最初に自身のシステムに割り当てるIPアドレスを「169.254.1.0〜169.254.254.255」の範囲内からランダムに1つ選択する。
  2. ARP要求をネットワークにブロードキャストすることによって、そのIPアドレスがほかのシステムで利用されていないかどうかを確認する。もしどこかのシステムからARPの応答が返ってくれば、そのIPアドレスは使用中であるとみなし、別のIPアドレスで再試行する。このようにして未使用のIPアドレスを見つけ、それを自分のシステムに割り当てる。
以上によって、IPアドレスが重複しないことを保障します。

この「169.254.*.*」というIPアドレスはリンク・ローカル・アドレスと呼ばれます。(RFC 5735で規定している)
このリンク・ローカル・アドレスは、一般的なプライベートIPアドレスと違い、どこの組織にも割り当てられていないことが保証され、 APIPAでのみ有効な特別なIPアドレスと言えます。
近年のWindowsやMacintoshシステムなどでAPIPAは実装済みです。 これらのシステムでは、始めにDHCPなどでIPアドレスの取得を試みて、 それが失敗するとAPIPAによってランダムなIPアドレスを割り当てるようになっています。
しかし、何らかのトラブルでDHCPによる割り当てが失敗した場合でも、APIPAでIPアドレスが割り当てられて、 一見してネットワークが正常に機能しているようにみえて、それがトラブルの原因となり、究明が難しくなることもあります。

IPv6のステートレスIPアドレス自動設定 SLAAC

情報を管理せず(ステートレス)に、 ルータとノードのみでアドレスを設定することが可能です。
これはSLAAC (Stateless Address Autoconfiguration)と呼ばれます。以下に手順を示します。

なお、DNS (Domain Name System)サーバや NTP (Network Time Protocol)サーバなども自動取得するためにはステートレスだけではできないので DHCP が必要になる。