実践Linux
RockyLinux8 RockyLinux8 目次へ TOP(HOME)へ
DHCPサーバー 2021年7月
DHCPサーバー(dhcp-server 4.3.6-44)
インストール状況の調査
# dnf list installed | grep dhcp
dhcp-client、dhcp-common、dhcp-libsはあるが、dhcp本体はないのでインストールする。
# dnf list | grep dhcp
# dnf install dhcp-server
設定ファイル /etc/dhcp/dhcpd.conf の編集(/usr/share/doc/dhcp-server/dhcpd.conf.example がサンプル)
subnet 192.168.7.0 netmask 255.255.255.0 {
range 192.168.7.2 192.168.7.49; 自動割り当て範囲を指定
option domain-name-servers 192.168.7.1; クライアントに渡すDNSサーバーを指定
#option domain-name "internal.example.org";
option routers 192.168.7.1; クライアントに渡すデフォルトゲートウェイの指定
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.7.255;
default-lease-time 600;
max-lease-time 7200;
}
DHCPで固定IPアドレスを割り当てるには(あらかじめ/var/lib/dhcpd/dhcpd.leasesで調べておくとよい)
host client01 { ←client01は適当な名称でよい
hardware ethernet 12:34:56:78:AB:CD; ←client01のMACアドレス
fixed-address 192.168.7.100; ←client01に割り当てるIPアドレス
}
dhcpdサービスは、host宣言の名前ではなく、fixed-addressパラメーターで指定されたMACアドレスでシステムを識別します。これにより、他のhost宣言に固有である限り、この名前を任意の文字列に設定できます。
/usr/lib/systemd/system/dhcp.serviceを見ると、
[Service]セクション
ExecStart=/usr/sbin/dhcpd -f -cf /etc/dhcp/dhcpd.conf
-user dhcpd -group dhcpd --no-pid $DHCPDARGS
この最後の$DHCPDARGSは、/etc/sysconfig/dhcpdにインターフェイス名を書きこめばよいようだ。
/etc/sysconfig/dhcpdを編集。
# ifconfigで内部LAN向けインターフェイス名を調べておく(例えばenp0s26f7u3とする)。
「# $ ExecStart=/usr/sbin/dhcpd -f -cf /etc/dhcp/dhcpd.conf
-user dhcpd -group dhcpd --no-pid <yuor_interface_name(s)>」の行の下にでも次を書き込んでおく。
$DHCPDARGS=enp0s26f7u3
firewalldの設定
trustedゾーンに対しては、必要ない。
dhcpdサービスの起動
# systemctl --type=service list-unit-files インストールされたユニット一覧
# systemctl --type=service list-units 実行中のユニット一覧
# systemctl start dhcpd スタート
# systemctl enable dhcpd 起動時有効化
サーバー側で、割り当て状況を調べるには
/var/lib/dhcpd/dhcpd.leases を見る。
クライアント側(Windows)で、割り当て状況を知るには、コマンドプロンプトで
> ipconfig /all
TOP(HOME)へ