ローカルにDHCPサーバを構築(dhcpd)
はじめに
本記事はVirtualBoxを使用し、ローカル環境でDHCPサーバを構築したときの手順です。
"構築すること"が目的となっているため細かな設定はしません。
対象
初めてDHCPサーバ(dhcpd)を構築する方を対象としています。
学習環境
VirtualBoxのネットワーク設定では"内部ネットワーク"を選択します。
"ブリッジアダプター"を使用すると、物理ホストが使用しているDHCPが優先的に使用されて
構築するDHCPサーバによる各種情報の割り当てが機能しないためです。
-
ホスト名 : dhcpserver
ゲストOS : CentOS 7.9.2009
IPアドレス : 10.0.0.1 /24 -
ホスト名 : client1
ゲストOS : CentOS 7.9.2009
ネットワークインターフェース : enp0s3
IPアドレス : DHCPによる割り当て -
ホスト名 : client2
ゲストOS : CentOS 7.9.2009
ネットワークインターフェース : enp0s3
IPアドレス : DHCPによる割り当て -
dhcpd.confに設定すること
ドメイン名 : dhcp.local
デフォルトゲートウェイ : 10.0.0.254 /24
DNSサーバ : 10.0.0.200 /24
割り当て可能なアドレスの範囲 : 10.0.0.50 ~ 10.0.0.60
サブネットマスク : 255.255.255.0
ブロードキャストアドレス : 10.0.0.255
リース期間 : 1日
ゴール
client1, client2はdhcpserverからネットワークに関する各種情報の取得に成功する。
DHCPサーバ(dhcpd)構築手順
<DHCPサーバ(dhcpserver)での作業>
dhcpdをインストール
sudo yum -y install dhcp
dhcpdサービスを起動
sudo systemctl enable dhcpd
sudo systemctl start dhcpd
dhcpd.confを編集
option domain-name "dhcp.local";
option domain-name-servers 10.0.0.200;
default-lease-time 86400;
max-lease-time 86400;
subnet 10.0.0.0 netmask 255.255.255.0 {
range 10.0.0.50 10.0.0.60;
option routers 10.0.0.254;
option broadcast-address 10.0.0.255;
}
dhcpdを再起動
sudo systemctl restart dhcpd
<クライアントマシン(client1)での作業>
ifcfg-enp0s3を編集
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=yes
NAME=enp0s3
UUID=f14cf5be-e5e8-4b69-8622-adc17119b5fd
DEVICE=enp0s3
ONBOOT=yes
networkを再起動
sudo systemctl restart network
NetworkManagerを再起動
sudo systemctl restart NetworkManager
各種情報が割り当てられていることを確認
nmcli device show enp0s3
IP4.ADDRESS[1]: 10.0.0.50/24
IP4.GATEWAY: 10.0.0.254
IP4.ROUTE[1]: dst = 0.0.0.0/0, nh = 10.0.0.254, mt = 100
IP4.ROUTE[2]: dst = 169.254.0.0/16, nh = 0.0.0.0, mt = 1002
IP4.ROUTE[3]: dst = 10.0.0.0/24, nh = 0.0.0.0, mt = 100
IP4.DNS[1]: 10.0.0.200
IP4.DOMAIN[1]: dhcp.local
<クライアントマシン(client2)での作業>
ifcfg-enp0s3を編集
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
NAME=enp0s3
UUID=9102afee-c32a-47c3-8879-692940221e03
DEVICE=enp0s3
ONBOOT=yes
networkを再起動
sudo systemctl restart network
NetworkManagerを再起動
sudo systemctl restart NetworkManager
各種情報が割り当てられていることを確認
nmcli device show enp0s3
IP4.ADDRESS[1]: 10.0.0.51/24
IP4.GATEWAY: 10.0.0.254
IP4.ROUTE[1]: dst = 0.0.0.0/0, nh = 10.0.0.254, mt = 100
IP4.ROUTE[2]: dst = 10.0.0.0/24, nh = 0.0.0.0, mt = 100
IP4.DNS[1]: 10.0.0.200
IP4.DOMAIN[1]: dhcp.local
構築を通して学んだこと
最初は"ブリッジアダプター"を使用してDHCPサーバから各種情報を取得しようとしたのですが、
物理ホストが指定しているDHCPサーバが優先的に使用されて、構築したDHCPサーバによる割り当てが機能しませんでした。特定のDHCPサーバを指定しても機能しませんでした。
そもそもDHCPサーバは最初に応答があったところから情報を取得するからのようです。
"ブリッジアダプター"を使用してDHCPサーバを構築することも可能ですが、その時は物理ホストが指定しているDHCPサーバを無効化するか、構築したものを指定する必要があります。
さいごに
私と同様にDHCPサーバ(dhcpd)を構築する方々にとって少しでもお役に立てれば幸いです。
Discussion