DHCPの観測
前置き
ネットワークの規模が大きくなるとホストを1台ずつ管理することは困難になります。 物理的・論理的にネットワークのセグメントを区切り、ホストをグループで管理することが推奨されています。 そこで主にホストのIPアドレスを管理するためにDHCPを使います。
DHCPの主な機能
- クライアントからのIPアドレス割当て要求を受け取る
- 定義したIPアドレスプールの中から使用されていないIPアドレスを貸し出す
- 現在貸し出しているIPアドレスとMACアドレスの対応表を管理する
- 時期が来たらIPアドレスを回収する
- IPアドレス以外のネットワーク設定を配布することもできる
DHCPサーバのネットワーク設計
ブロードキャストドメインにDHCPサーバが複数存在しないように注意してください。
DHCPサーバの設定ファイル
172.16.0.0 /24のネットワークを管理するDHCPサーバです。 172.16.0.20~172.16.0.30のIPアドレスをプールしています。 オプションとしてデフォルトルートとDNSサーバのIPアドレスも配布する設定になっています。
設定ファイル /etc/dhcp/dhcpd.conf を編集する
# vi /etc/dhcp/dhcpd.conf
設定ファイルの内容(#で始まる行はコメントとして無視される)
#
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp*/dhcpd.conf.example
# see dhcpd.conf(5) man page
#
subnet 172.16.0.0 netmask 255.255.255.0 {
range 172.16.0.20 172.16.0.30;
option routers 172.16.0.1;
option domain-name-servers 172.16.0.100;
}
クライアント側の設定
enp0s8の固定IPを消去("")して自動設定(auto)モードに変更する
# nmcli connection modify enp0s8 ipv4.method auto ipv4.addresses ""
# nmcli connection down enp0s8
# nmcli connection up enp0s8
パケットの観測
DHCPプロトコルはUDPデータグラムを使っています。
- DHCP Discover
クライアント08:00:27:c1:85:c3
からブロードキャストアドレスff:ff:ff:ff:ff:ff:ff:ff
にDHCPサーバを探索するDHCP Discover
が送信されます。
- DHCP Offer
DHCPサーバ08:00:27:bb:9f:9e
からクライアント08:00:27:c1:85:c3
に172.16.0.27
の使用を促すDHCP Offer
が送信されます。
- DHCP Request
クライアントからDHCPサーバに対して172.16.0.27
を要求するDHCP Request
が送信されます。
この時点ではまだクライアントはIPアドレスを持たないためSource IPは0.0.0.0
です。
- DHCP ACK
DHCPサーバがクライアントに172.16.0.27
の使用を認めるDHCP ACK
が送信されます。
これを受け取ったクライアントは自身のIPを172.16.0.27
だと認識します。