DHCPサーバの構築
DHCPサーバは、クライアントに対して自動的にIPアドレスを割り当てるサービスを提供する。
これにより、クライアントはIPアドレスの手動設定という煩雑な作業から開放される。
DHCPサーバのインストール
ここでは、dhcp-serverによる単純な構成でDHCPサーバを構築する。
dnsmasqとllibvirtdのサービスが起動している場合は事前に停止し、OSを再起動する。
また、構築ネットワーク内に別のDHCPサーバがある場合は、停止しておく。
systemctl disable libvirtd
systemctl disable dnsmasq
reboot
systemctl is-active libvirtd dnsmasq
パッケージのインストール
dnf install -y dhcp-server
DHCPサーバの設定ファイルの作成
DHCPサーバ設定ファイルのdhcp.confを記述する。
今回は、DNSサーバが、n200.jpn.linux.hpe.comで、192.168.0.0/24のネットワーク内の10~50までの範囲で動的IPアドレスを与えるdhcp.confファイルの例
vi /etc/dhcp/dhcpd.conf
#
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp-server/dhcpd.conf.example
# see dhcpd.conf(5) man page
#
option domain-name "jpn.linux.hpe.com";
option domain-name-servers n200.jpn.linux.hpe.com;
default-lease-time 600;
max-lease-time 7200;
log-facility local7;
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.10 192.168.0.50;
option domain-name-servers n200.jpn.linux.hpe.com;
option domain-name "jpn.linux.hpe.com";
option routers 192.168.0.1;
option broadcast-address 192.168.0.255;
default-lease-time 600;
max-lease-time 7200;
}
DHCPサーバのNICの設定
DHCPサーバにNICが複数搭載されている場合、どのNICからDHCPサービスを提供するかを設定する。
cp -p /usr/lib/systemd/system/dhcpd.service /etc/systemd/system/
vi /etc/systemd/system/dhcpd.service
NICはDHCPサーバのdhcpd.serviceファイルのExecStart行のno-pidの後に記述する。
ここでは、eno1を指定している。
ExecStart=/usr/sbin/dhcpd -f -cf /etc/dhcp/dhcpd.conf -user dhcpd -group dhcpd --no-pid eno1
dhcpd.serviceファイルを編集したら、dhcpd.serviceファイルの変更をsystemdに通知する
systemctl daemon-reload
DHCPサービスの起動
systemctl enable --now dhcpd
systemctl is-active dhcpd
セキュリティ設定
# ファイアウォールでDHCPを許可
firewall-cmd --zone=public --add-service=dhcp
firewall-cmd --runtime-to-permanent
# ファイアウォールの許可リストを表示
firewall-cmd --list-services
DHCPサーバの動作確認をする
DHCPクライアント端末(Windows端末など)をネットワークに接続して確認してみる。
windowsであればipconfigコマンドでIPがDHCPサーバのアドレスプールから割り当てられていることを確認する。
IPアドレスの自動固定割り当て(MACアドレスに紐づける)
DHCPは基本的に毎回同じIPアドレスを割り振るわけではなく、
タイミングによって異なるIPアドレスをDHCPクライアントに割り当てようとする。
DHCPクライアントマシンに毎回同じIPアドレスを付与するには、DHCPサーバ側の設定ファイルである
/etc/dhcp/dhcpd.confファイルに、DHCPクライアントのMACアドレスと付与したいIPアドレスの対応付けを記述する。
#
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp-server/dhcpd.conf.example
# see dhcpd.conf(5) man page
#
option domain-name "jpn.linux.hpe.com";
option domain-name-servers n200.jpn.linux.hpe.com;
default-lease-time 600;
max-lease-time 7200;
log-facility local7;
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.10 192.168.0.50;
option domain-name-servers n200.jpn.linux.hpe.com;
option domain-name "jpn.linux.hpe.com";
option routers 192.168.0.1;
option broadcast-address 192.168.0.255;
default-lease-time 600;
max-lease-time 7200;
}
# 以下の記述を追加(対象のMACアドレスに192.168.0.15を割り当てる設定)
host n015{
hardware ethernet E0:51:D8:15:3A:00;
fixed-address 192.168.0.15;
}
記述後、DHCPサービスを再起動する
systemctl restart dhcpd
対象の機器を接続して想定したIPアドレスが割り当てられているか確認する。