3.5. Kea DHCP サーバーの設定
Kea は、モジュール設計を採用した最新の高性能 DHCP サーバーです。DHCP サーバーは、IP アドレスやその他のネットワーク設定をクライアントデバイスに自動的に割り当てるために使用します。これにより、ミスが発生しやすい手動設定の作業が排除されます。
前提条件
-
keaパッケージがインストールされている。 -
rootユーザーとしてログインしている。
手順
IPv4 ネットワークを設定する場合:
/etc/kea/kea-dhcp4.confファイルを編集し、次の設定を使用します。{ "Dhcp4": { // Global settings that apply to all subnets unless overridden. "valid-lifetime": 86400, "option-data": [ { "name": "domain-name", "data": "example.com" }, { "name": "domain-name-servers", "data": "192.0.2.53" } ], // The network interfaces on which Kea will listen for DHCP traffic. "interfaces-config": { "interfaces": [ "enp1s0" ] }, "subnet4": [ // A definition of a subnet that is directly connected to the server { "id": 1, "subnet": "192.0.2.0/24", "pools": [ { "pool": "192.0.2.20 - 192.0.2.100" }, { "pool": "192.0.2.150 - 192.0.2.200" } ], "option-data": [ { "name": "routers", "data": "192.0.2.1" } ], }, // A definition of a remote subnet served through a DHCP relay { "id": 2, "subnet": "198.51.100.0/24", "pools": [ { "pool": "198.51.100.20 - 198.51.100.100" } ], // Allowed DHCP relay agents "relay": { "ip-addresses": [ "198.51.100.5" ] }, "option-data": [ { "name": "routers", "data": "198.51.100.1" }, { "name": "domain-name-servers", "data": "198.51.100.53" } ] } ] } }この例では、2 つのサブネット (サーバーに直接接続されたサブネットと、DHCP リレーエージェントを使用するリモートサブネット) を提供するように Kea を設定しています。
この例で指定されている設定は次のとおりです。
interfaces- Kea が DHCP リクエストをリッスンするネットワークインターフェイスを定義します。サブネットがサーバーに直接接続されていない場合は、サブネットに到達できるインターフェイスを必ずリストしてください。
id- サブネットの一意の整数を定義します。これは複数のサブネットを定義する場合に必須です。
subnet- サブネットを Classless Inter-Domain Routing (CIDR) 形式で定義します。
pools- Kea がクライアントに割り当てることができる IP アドレスの範囲を定義します。
option-data- デフォルトゲートウェイや DNS サーバーなど、クライアントに送信される DHCP オプションを定義します。サブネットごとのオプションデータ設定は、グローバル設定をオーバーライドします。
relay- DHCP リレーエージェントの IP アドレスを定義します。この設定はリモートサブネットでは任意ですが、転送されてくるリクエストを信頼できるエージェントだけに制限することで、セキュリティーが向上します。このパラメーターは、直接接続されたサブネットには使用しないでください。
設定ファイルの構文を検証します。
# kea-dhcp4 -t /etc/kea/kea-dhcp4.confコマンドで
Syntax check failedが返された場合は、レポートに表示されているエラーを修正します。着信 DHCPv4 トラフィックを許可するように
firewalldルールを更新します。# firewall-cmd --permanent --add-service=dhcp # firewall-cmd --reloadサービスを有効にして起動します。
# systemctl enable --now kea-dhcp4
IPv6 ネットワークを設定する場合:
/etc/kea/kea-dhcp6.confファイルを編集し、次の設定を使用します。{ "Dhcp6": { // Global settings that apply to all subnets unless overridden. "valid-lifetime": 86400, "option-data": [ { "name": "domain-name", "data": "example.com" }, { "name": "dns-servers", "data": "2001:db8:0:1::53" } ], // The network interfaces on which Kea will listen for DHCP traffic. "interfaces-config": { "interfaces": [ "enp1s0" ] }, "subnet6": [ // A definition of a subnet that is directly connected to the server { "id": 1, "subnet": "2001:db8:0:1::/64", "pools": [ { "pool": "2001:db8:0:1::1000 - 2001:db8:0:1::2000" }, { "pool": "2001:db8:0:1::4000 - 2001:db8:0:1::5000" } ], }, // A definition of a remote subnet served through a DHCP relay { "id": 2, "subnet": "2001:db8:0:2::/64", "pools": [ { "pool": "2001:db8:0:2::1000 - 2001:db8:0:2::2000" } ], // Allowed DHCP relay agents "relay": { "ip-addresses": [ "2001:db8:0:2::5" ] }, "option-data": [ { "name": "dns-servers", "data": "2001:db8:0:1::53" } ] } ] } }この例では、2 つのサブネット (サーバーに直接接続されたサブネットと、DHCP リレーエージェントを使用するリモートサブネット) を提供するように Kea を設定しています。
設定ファイルの構文を検証します。
# kea-dhcp6 -t /etc/kea/kea-dhcp6.confコマンドで
Syntax check failedが返された場合は、レポートに表示されているエラーを修正します。着信 DHCPv6 トラフィックを許可するように
firewalldルールを更新します。# firewall-cmd --permanent --add-service=dhcpv6 # firewall-cmd --reloadサービスを有効にして起動します。
# systemctl enable --now kea-dhcp6
検証
-
クライアント上で DHCP を使用してネットワーク接続を設定します。
nmcliを使用したイーサネット接続の設定 を参照してください。 - クライアントをネットワークに接続します。
クライアントが DHCP サーバーから IP アドレスを受信したかどうかを確認します。
# ip address show <interface> 2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 52:54:00:17:b8:b6 brd ff:ff:ff:ff:ff:ff inet 192.0.2.20/24 brd 192.0.2.255 scope global noprefixroute enp1s0 valid_lft forever preferred_lft forever inet6 2001:db8:1::1000/64 scope global noprefixroute valid_lft forever preferred_lft forever
トラブルシューティング
Kea がリッスンしている IPv4 および IPv6 アドレスを確認します。
# ss -lunp | grep -E ':(67|547)'設定済みのすべてのインターフェイスを Kea がリッスンしていない場合は、Kea 設定ファイルの
interfaces-config設定を確認してください。
次のステップ