Menu Close
ネットワークインフラストラクチャーサービスの管理
Red Hat Enterprise Linux 9 におけるネットワークインフラストラクチャーサービスの管理ガイド
概要
多様性を受け入れるオープンソースの強化
Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。まずは、マスター (master)、スレーブ (slave)、ブラックリスト (blacklist)、ホワイトリスト (whitelist) の 4 つの用語の置き換えから始めます。これは大規模な取り組みであるため、これらの変更は今後の複数のリリースで段階的に実施されます。詳細は、弊社の CTO、Chris Wright のメッセージ を参照してください。
Red Hat ドキュメントへのフィードバックの提供
ご意見ご要望をお聞かせください。ドキュメントの改善点はございませんか。
特定の部分についての簡単なコメントをお寄せいただく場合は、以下をご確認ください。
- ドキュメントの表示が Multi-page HTML 形式になっていていることを確認してください。ドキュメントの右上隅に Feedback ボタンがあることを確認してください。
- マウスカーソルで、コメントを追加する部分を強調表示します。
- そのテキストの下に表示される Add Feedback ポップアップをクリックします。
- 表示される手順に従ってください。
Bugzilla を介してフィードバックを送信するには、新しいチケットを作成します。
- Bugzilla の Web サイトに移動します。
- Component で Documentation を選択します。
- Description フィールドに、ドキュメントの改善に関するご意見を記入してください。ドキュメントの該当部分へのリンクも記入してください。
- Submit Bug をクリックします。
第1章 BIND DNS サーバーの設定および管理
DNS (Domain Name System) は、ホスト名を各 IP アドレスに関連付ける分散データベースシステムです。BIND
(Berkeley Internet Name Domain) は、DNS 関連のプログラムで構成されます。これには、named
と呼ばれるネームサーバーが含まれます。/etc/named.conf
は、BIND 設定の主な設定ファイルです。ここでは、DNS サーバーへの BIND
のインストール、設定、および管理を中心に説明します。
1.1. BIND のインストール
bind-utils
をインストールすることで、BIND
ユーティリティーがシステムで利用できるようになります。
手順
BIND
をインストールします。# dnf install bind bind-utils
named
サービスを有効にして起動します。# systemctl enable --now named
検証手順
named
サービスの状態を確認します。# systemctl status named
1.2. BIND をキャッシュネームサーバーとして設定
以下の手順では、BIND
をキャッシュネームサーバーとして設定する方法を説明します。
前提条件
-
bind
がインストールされている。
手順
元の設定ファイルのバックアップを取得していることを確認してください。
# cp /etc/named.conf /etc/named.conf.orig
以下の変更を加えて、
/etc/named.conf
ファイルーを編集します。options セクションで、
listen-on
パラメーター、listen-on-v6
パラメーター、およびdirectory
パラメーターのコメントを解除します。acl clients {192.0.2.0/24;}; options { listen-on port 53 { any; }; listen-on-v6 port 53 { any; }; directory "/var/named";
allow-query
パラメーターをネットワークアドレスに設定します。ローカルネットワークのホストのみが、DNS サーバーをクエリーできます。allow-query { localhost; clients; }; allow-recursion { localhost; clients; }; recursion yes; allow-update { none; }; allow-transfer { localhost; }; }; logging { channel default_debug { file "data/named.run"; severity dynamic; }; };
パッケージの同梱ファイルを以下のように使用します。
include "/etc/named.rfc1912.zones";
カスタムゾーン設定に追加のインクルードを作成します。
include "/etc/named/example.zones";
/etc/named/example.zones
を作成し、以下のゾーン設定を追加します。//forward zone zone "example.com" IN { type master; file "example.com.zone"; }; //backward zone zone "2.0.192.in-addr.arpa" IN { type master; file "example.com.rzone"; };
- type: サーバーのゾーンのロールを定義します。
- master: 権威サーバーで、ゾーンデータのマスターコピーを維持します。
- file: ゾーンのデータベースファイルを指定します。
DNS データディレクトリーの
/var/named/
に移動します。# cd /var/named/ # ls data dynamic named.ca named.empty named.localhost named.loopback slaves
正引きゾーンパラメーターを使用して
/var/named/example.com.zone
ファイルを作成します。$TTL 86400 @ IN SOA example.com. root ( 42 ; serial 3H ; refresh 15M ; retry 1W ; expiry 1D ) ; minimum IN NS ns.example.com. ns IN A 192.0.2.1 station1 IN A 192.0.2.101 station2 IN A 192.0.2.102 station3 IN A 192.0.2.103
逆引きゾーンパラメーターを使用して
/var/named/example.com.rzone
ファイルを作成します。$TTL 86400 @ IN SOA example.com. root.example.com. ( 1997022700 ; serial 28800 ; refresh 14400 ; retry 3600000 ; expire 86400 ) ; minimum IN NS ns.example.com. 101 IN PTR station1.example.com. 102 IN PTR station2.example.com. 103 IN PTR station3.example.com.
ゾーンファイルにセキュアなパーミッションを設定します。
# chown root:named /var/named/example.com.zone /var/named/example.com.rzone # chmod 640 /var/named/example.com.zone /var/named/example.com.rzone
BIND を再起動します。
# systemctl restart named
検証手順
フォワードゾーンファイルを確認します。
# named-checkzone example.com /var/named/example.com.zone zone example.com/IN: loaded serial xxxxxxx OK
リバースゾーンファイルを確認します。
# named-checkzone 2.0.192.in-addr.arpa /var/named/example.com.rzone zone 2.0.192.in-addr.arpa/IN: loaded serial xxxxxxx OK
設定を確認します。
# named-checkconf /etc/named.conf
設定が正しい場合、このコマンドは出力を返しません。
第2章 バインドされていない DNS サーバーの設定
バインドされていない
DNS サーバーは、DNS リゾルバーの検証、再帰、およびキャッシュです。さらに、unless は
セキュリティーに重点を置いており、たとえば、DNSSEC(Domain Name System Security Extensions)がデフォルトで有効になっています。
2.1. キャッシュ DNS サーバーとしてのバインド解除の設定
デフォルトでは、バインドされていない
DNS サービスは正常に解決し、検索に失敗してキャッシュします。その後、サービスはキャッシュから同じレコードにリクエストに応答します。
手順
unbound
パッケージをインストールします。# dnf install unbound
/etc/unbound/unbound.conf
ファイルを編集し、server
句に以下の変更を加えます。インターフェース
パラメーターを追加して、バインドされていない
サービスがクエリーをリッスンする IP アドレスを設定します。以下に例を示します。interface: 127.0.0.1 interface: 192.0.2.1 interface: 2001:db8:1::1
この設定では、
バインド
されていないファイルは、指定した IPv4 アドレスおよび IPv6 アドレスでのみリッスンします。インターフェースを必要なものに制限すると、クライアントがインターネットなどの未承認のネットワークからこの DNS サーバーにクエリーを送信できなくなります。
アクセス制御
パラメーターを追加して、クライアントが DNS サービスにクエリーできるサブネットを設定します。以下に例を示します。access-control: 127.0.0.0/8 allow access-control: 192.0.2.0/24 allow access-control: 2001:db8:1::/64 allow
バインドされていない
サービスをリモートで管理するための秘密鍵と証明書を作成します。# systemctl restart unbound-keygen
この手順を省略すると、次の手順で設定を確認すると、不足しているファイルが報告されます。ただし、
バインド
されていないサービスはファイルが見つからない場合は、自動的に作成します。設定ファイルを確認します。
# unbound-checkconf unbound-checkconf: no errors in /etc/unbound/unbound.conf
firewalld ルールを更新して、着信 DNS トラフィックを許可します。
# firewall-cmd --permanent --add-service=dns # firewall-cmd --reload
unbound
サービスを有効にして起動します。# systemctl enable --now unbound
検証
localhost
インターフェースをリッスンしているバインドされていない
DNS サーバーにクエリーを行い、ドメインを解決します。# dig @localhost www.example.com ... www.example.com. 86400 IN A 198.51.100.34 ;; Query time: 330 msec ...
レコードを初めてクエリーした後に、
バインド
解除によりエントリーをキャッシュに追加します。前のクエリーを繰り返します。
# dig @localhost www.example.com ... www.example.com. 85332 IN A 198.51.100.34 ;; Query time: 1 msec ...
キャッシュされたエントリーにより、同じレコードへのさらなる要求は、エントリーが期限切れになるまで大幅に速くなります。
次のステップ
この DNS サーバーを使用するように、ネットワーク内のクライアントを設定します。たとえば、
nmcli
ユーティリティーを使用して、NetworkManager 接続プロファイルに DNS サーバーの IP を設定します。# nmcli connection modify Example_Connection ipv4.dns 192.0.2.1 # nmcli connection modify Example_Connection ipv6.dns 2001:db8:1::1
関連情報
-
unbound.conf(5)
man page
第3章 DHCP サービスの提供
DHCP (Dynamic Host Configuration Protocol) は、クライアントに IP 情報を自動的に割り当てるネットワークプロトコルです。
本セクションでは、dhcpd
サービスに関する一般情報と、DHCP サーバーおよび DHCP リレーの設定方法を説明します。
DHCP を提供する手順が、IPv4 および IPv6 のネットワークで異なる場合は、本章のセクションで、両方のプロトコルの手順を紹介します。
3.1. 静的 IP アドレスと動的 IP アドレス設定の違い
- 静的な IP アドレス指定
静的 IP アドレスをデバイスに割り当てると、そのアドレスは手動で変更しない限り、時間が経過しても変わることはありません。必要に応じて静的 IP アドレスを使用します。
- DNS などのサーバーや認証サーバーのネットワークアドレスの整合性を確保する。
- 他のネットワークインフラストラクチャーから独立して動作する、帯域外管理デバイスを使用する。
- 動的な IP アドレス指定
動的 IP アドレスを使用するようにデバイスを設定すると、アドレスは時間の経過とともに変わる可能性があります。このため、ホストの再起動後に IP アドレスが異なる可能性があるため、通常は動的アドレスがネットワークに接続されるデバイスに使用されます。
動的 IP アドレスは、より柔軟で、設定と管理が簡単です。Dynamic Host Control Protocol (DHCP) は、ネットワーク設定をホストに動的に割り当てる従来の方法です。
静的 IP アドレスまたは動的 IP アドレスをどのような場合に使用するかを定義する厳密な規則はありません。ユーザーのニーズ、設定、およびネットワーク環境によって異なります。
3.2. DHCP トランザクションフェーズ
DHCP は、Discovery、Offer、Request、Acknowledgement の 4 つのフェーズで機能します。DHCP はこのプロセスを使用してクライアントに IP アドレスを提供します。
- Discovery
- DHCP クライアントがメッセージを送信して、ネットワーク上にある DHCP サーバーを検出します。このメッセージは、ネットワークおよびデータリンク層でブロードキャストされます。
- Offer
- DHCP サーバーはクライアントからメッセージを受け取り、DHCP クライアントに IP アドレスを提供します。このメッセージはデータリンク層でのユニキャストですが、ネットワーク層でブロードキャストします。
- Request
- DHCP クライアントは、提供される IP アドレスを DHCP サーバーに要求します。このメッセージはデータリンク層でのユニキャストですが、ネットワーク層でブロードキャストします。
- Acknowledgment
- DHCP サーバーは、DHCP クライアントに確認応答を送信します。このメッセージはデータリンク層でのユニキャストですが、ネットワーク層でブロードキャストします。これは、DHCP DORA プロセスの最後のメッセージです。
3.3. DHCPv4 および DHCPv6 で dhcpd を使用する場合の相違点
dhcpd
サービスは、1 台のサーバーで DHCPv4 と DHCPv6 の両方を提供できます。ただし、各プロトコルに DHCP を提供するには、別に設定ファイルを使用する dhcpd
のインスタンスがそれぞれ必要です。
- DHCPv4
-
設定ファイル -
/etc/dhcp/dhcpd.conf
-
systemd サービス名 -
dhcpd
-
設定ファイル -
- DHCPv6
-
設定ファイル -
/etc/dhcp/dhcpd6.conf
-
systemd サービス名 -
dhcpd6
-
設定ファイル -
3.4. dhcpd サービスのリースデータベース
DHCP リースは、dhcpd
サービスがネットワークアドレスをクライアントに割り当てる期間です。dhcpd
サービスは、DHCP リースを以下のデータベースに保存します。
-
DHCPv4 の場合 -
/var/lib/dhcpd/dhcpd.leases
-
DHCPv6 の場合 -
/var/lib/dhcpd/dhcpd6.leases
データベースファイルを手動で更新すると、データベースが破損する可能性があります。
リースデータベースには、メディアアクセス制御 (MAC) アドレスに割り当てられた IP アドレス、リースが期限切れになる際のタイムスタンプなど、割り当てられたリースに関する情報が含まれます。リースデータベースのタイムスタンプはすべて、協定世界時 (UTC) であることに注意してください。
dhcpd
サービスは、定期的にデータベースを再作成します。
サービスは、既存のファイルの名前を変更します。
-
/var/lib/dhcpd/dhcpd.leases
から/var/lib/dhcpd/dhcpd.leases~
-
/var/lib/dhcpd/dhcpd6.leases
から/var/lib/dhcpd/dhcpd6.leases~
-
-
このサービスは、新たに作成された
/var/lib/dhcpd/dhcpd.leases
ファイルおよび/var/lib/dhcpd/dhcpd6.leases
ファイルに、既知のリースをすべて書き込みます。
関連情報
-
dhcpd.leases(5)
の man ページ - 破損したリースデータベースの復元
3.5. DHCPv6 と radvd の比較
IPv6 ネットワークでは、ルーター広告メッセージのみが IPv6 デフォルトゲートウェイに関する情報を提供します。これにより、デフォルトのゲートウェイ設定を必要とするサブネットで DHCPv6 を使用する場合は、ルーター通知デーモン (radvd
) などのルーター広告サービスを追加で設定する必要があります。
radvd
サービスは、ルーター通知パケットのフラグを使用して、DHCPv6 サーバーの可用性をアナウンスします。
本セクションでは、DHCPv6 および radvd
を比較し、radvd
の設定に関する情報を提供します。
DHCPv6 | radvd | |
---|---|---|
デフォルトゲートウェイに関する情報を提供する。 | いいえ | はい |
プライバシーを保護するために、ランダムなアドレスを保証する。 | はい | いいえ |
その他のネットワーク設定オプションを送信する。 | はい | いいえ |
メディアアクセス制御 (MAC) アドレスを IPv6 アドレスにマッピングする。 | はい | いいえ |
3.6. IPv6 ルーター用に radvd サービスの設定
ルーター広告デーモン (radvd
) は、IPv6 のステートレス自動設定に必要なルーター広告メッセージを送信します。これにより、ユーザーがアドレス、設定、ルートを自動的に構成し、そこから提供された情報に基づいてデフォルトのルーターを選択できます。
本セクションの手順では、radvd
の設定方法を説明します。
/64
接頭辞は、radvd
でのみ設定できます。その他の接頭辞を使用するには、DHCPv6 を使用します。
前提条件
-
root
ユーザーとしてログインしている。
手順
radvd
パッケージをインストールします。# dnf install radvd
/etc/radvd.conf
ファイルを編集し、以下の設定を追加します。interface enp1s0 { AdvSendAdvert on; AdvManagedFlag on; AdvOtherConfigFlag on; prefix 2001:db8:0:1::/64 { }; };
この設定により、
2001:db8:0:1::/64
サブネット用のenp1s0
デバイスにルーター広告メッセージを送信するようにradvd
を設定します。AdvManagedFlag on
設定は、クライアントが、DHCP サーバーから IP アドレスを受け取る必要があることを定義し、on
に設定したAdvOtherConfigFlag
パラメーターは、DHCP サーバーからもアドレス以外の情報を取得する必要があることを定義します。必要に応じて、システムの起動時に
radvd
が自動的に起動するように設定します。# systemctl enable radvd
radvd
サービスを起動します。# systemctl start radvd
必要に応じて、ルーター広告パッケージのコンテンツと、
radvd
が送信する設定値を表示します。# radvdump
関連情報
-
radvd.conf(5)
man page -
/usr/share/doc/radvd/radvd.conf.example
- Can I use a prefix length other than 64 bits in IPv6 Router Advertisements?
3.7. DHCP サーバーのネットワークインターフェースの設定
デフォルトでは、dhcpd
サービスプロセスは、サービスの設定ファイルで定義されているサブネットに IP アドレスのあるネットワークインターフェイスでのみ要求します。
たとえば、以下のシナリオでは、dhcpd
は、enp0s1
ネットワークインターフェイスでのみリッスンします。
-
/etc/dhcp/dhcpd.conf
ファイルには、192.0.2.0/24 ネットワークのsubnet
定義しかない。 -
enp0s1
ネットワークインターフェイスが 192.0.2.0/24 サブネットに接続されている。 -
enp7s0
インターフェイスが別のサブネットに接続されます。
DHCP サーバーに同じネットワークに接続された複数のネットワークインターフェイスが含まれているにもかかわらず、サービスが特定のインターフェイスでのみリッスンする必要がある場合にのみ、本セクションの手順に従ってください。
IPv4、IPv6、またはその両方のプロトコルに DHCP を提供するかどうかに応じて、以下の手順を参照してください。
前提条件
-
root
ユーザーとしてログインしている。 -
dhcp-server
パッケージがインストールされている。
手順
IPv4 ネットワークの場合
/usr/lib/systemd/system/dhcpd.service
ファイルを/etc/systemd/system/
ディレクトリーにコピーします。# cp /usr/lib/systemd/system/dhcpd.service /etc/systemd/system/
/usr/lib/systemd/system/dhcpd.service
ファイルは編集しないでください。dhcp-server
パッケージの今後の更新により、変更が上書きされます。/etc/systemd/system/dhcpd.service
ファイルを編集し、dhcpd
が、ExecStart
パラメーターのコマンドでリッスンする必要があるインターフェイスの名前を追加します。ExecStart=/usr/sbin/dhcpd -f -cf /etc/dhcp/dhcpd.conf -user dhcpd -group dhcpd --no-pid $DHCPDARGS enp0s1 enp7s0
この例では、
dhcpd
がenp0s1
インターフェイスおよびenp7s0
インターフェイスでのみリッスンするように設定します。systemd
マネージャー設定を再読み込みします。# systemctl daemon-reload
dhcpd
サービスを再起動します。# systemctl restart dhcpd.service
IPv6 ネットワークの場合
/usr/lib/systemd/system/dhcpd6.service
ファイルを/etc/systemd/system/
ディレクトリーにコピーします。# cp /usr/lib/systemd/system/dhcpd6.service /etc/systemd/system/
/usr/lib/systemd/system/dhcpd6.service
ファイルは編集しないでください。dhcp-server
パッケージの今後の更新により、変更が上書きされます。/etc/systemd/system/dhcpd6.service
ファイルを編集し、dhcpd
は、ExecStart
パラメーターのコマンドでリッスンする必要があるインターフェイスの名前を追加します。ExecStart=/usr/sbin/dhcpd -f -6 -cf /etc/dhcp/dhcpd6.conf -user dhcpd -group dhcpd --no-pid $DHCPDARGS enp0s1 enp7s0
この例では、
dhcpd
がenp0s1
インターフェイスおよびenp7s0
インターフェイスでのみリッスンするように設定します。systemd
マネージャー設定を再読み込みします。# systemctl daemon-reload
dhcpd6
サービスを再起動します。# systemctl restart dhcpd6.service
3.8. DHCP サーバーに直接接続されたサブネット用の DHCP サービスの設定
DHCP サーバーが、DHCP 要求に応答するサブネットに直接接続されている場合は、以下の手順を使用します。サーバーのネットワークインターフェースに、このサブネットの IP アドレスが割り当てられている場合は、以下のようになります。
IPv4、IPv6、またはその両方のプロトコルに DHCP を提供するかどうかに応じて、以下の手順を参照してください。
前提条件
-
root
ユーザーとしてログインしている。 -
dhcp-server
パッケージがインストールされている。
手順
IPv4 ネットワークの場合
/etc/dhcp/dhcpd.conf
ファイルを編集します。その他のディレクティブにこの設定がない場合は、
dhcpd
が使用するグローバルパラメーターをデフォルトとして追加します。option domain-name "example.com"; default-lease-time 86400;
この例では、接続のデフォルトのドメイン名を
example.com
に設定し、デフォルトのリース時間を86400
秒 (1 日) に設定します。authoritative
ステートメントを新しい行に追加します。authoritative;
重要authoritative
ステートメントがない場合、dhcpd
サービスは、クライアントがプール外にあるアドレスを要求する場合に、DHCPNAK
でDHCPREQUEST
メッセージに応答することはありません。サーバーのインターフェイスに直接接続された各 IPv4 サブネットに、
subnet
宣言を追加します。subnet 192.0.2.0 netmask 255.255.255.0 { range 192.0.2.20 192.0.2.100; option domain-name-servers 192.0.2.1; option routers 192.0.2.1; option broadcast-address 192.0.2.255; max-lease-time 172800; }
この例では、192.0.2.0/24 ネットワークにサブネットの宣言を追加します。この設定では、DHCP サーバーは以下の設定を、このサブネットから DHCP 要求を送信するクライアントに割り当てます。
-
range
パラメーターで定義されている範囲からの空き IPv4 アドレス -
このサブネットの DNS サーバーの IP -
192.0.2.1
-
このサブネットのデフォルトゲートウェイ -
192.0.2.1
-
このサブネットのブロードキャストアドレス -
192.0.2.255
-
このサブネットのクライアントが IP を解放し、サーバーに新しい要求を送信する最大リース時間 -
172800
秒 (2 日)
-
必要に応じて、システムの起動時に
dhcpd
が自動的に起動するように設定します。# systemctl enable dhcpd
dhcpd
サービスを開始します。# systemctl start dhcpd
IPv6 ネットワークの場合
/etc/dhcp/dhcpd6.conf
ファイルを編集します。その他のディレクティブにこの設定がない場合は、
dhcpd
が使用するグローバルパラメーターをデフォルトとして追加します。option dhcp6.domain-search "example.com"; default-lease-time 86400;
この例では、接続のデフォルトのドメイン名を
example.com
に設定し、デフォルトのリース時間を86400
秒 (1 日) に設定します。authoritative
ステートメントを新しい行に追加します。authoritative;
重要authoritative
ステートメントがない場合、dhcpd
サービスは、クライアントがプール外にあるアドレスを要求する場合に、DHCPNAK
でDHCPREQUEST
メッセージに応答することはありません。サーバーのインターフェイスに直接接続された各 IPv6 サブネットに、
subnet
宣言を追加します。subnet6 2001:db8:0:1::/64 { range6 2001:db8:0:1::20 2001:db8:0:1::100; option dhcp6.name-servers 2001:db8:0:1::1; max-lease-time 172800; }
以下の例では、 2001:db8:0:1::/64 ネットワークにサブネット宣言を追加します。この設定では、DHCP サーバーは以下の設定を、このサブネットから DHCP 要求を送信するクライアントに割り当てます。
-
range6
パラメーターで定義されている範囲外の空き IPv6 アドレスです。 -
このサブネットの DNS サーバーの IP は
2001:db8:0:1::1
です。 このサブネットのクライアントが IP を解放し、サーバーに新しい要求を送信する最大リース時間は、
172800
秒 (2 日) です。IPv6 では、デフォルトのゲートウェイを特定するために、ルーター広告メッセージを使用する必要があることに注意してください。
-
必要に応じて、システムの起動時に
dhcpd6
が自動的に開始するように設定します。# systemctl enable dhcpd6
dhcpd6
サービスを起動します。# systemctl start dhcpd6
関連情報
-
dhcp-options(5)
の man ページ -
dhcpd.conf(5)
の man ページのThe authoritative statement
セクション -
/usr/share/doc/dhcp-server/dhcpd.conf.example
-
/usr/share/doc/dhcp-server/dhcpd6.conf.example
3.9. DHCP サーバーに直接接続していないサブネット用の DHCP サービスの設定
DHCP サーバーが、DHCP 要求に応答するサブネットに直接接続していない場合は、以下の手順に従います。これは、DHCP リレーエージェントが DHCP サーバーに要求を転送する場合を指します。DHCP サーバーのインターフェイスが、サーバーが提供するサブネットに直接接続していないためです。
IPv4、IPv6、またはその両方のプロトコルに DHCP を提供するかどうかに応じて、以下の手順を参照してください。
前提条件
-
root
ユーザーとしてログインしている。 -
dhcp-server
パッケージがインストールされている。
手順
IPv4 ネットワークの場合
/etc/dhcp/dhcpd.conf
ファイルを編集します。その他のディレクティブにこの設定がない場合は、
dhcpd
が使用するグローバルパラメーターをデフォルトとして追加します。option domain-name "example.com"; default-lease-time 86400;
この例では、接続のデフォルトのドメイン名を
example.com
に設定し、デフォルトのリース時間を86400
秒 (1 日) に設定します。authoritative
ステートメントを新しい行に追加します。authoritative;
重要authoritative
ステートメントがない場合、dhcpd
サービスは、クライアントがプール外にあるアドレスを要求する場合に、DHCPNAK
でDHCPREQUEST
メッセージに応答することはありません。以下のように、サーバーのインターフェイスに直接接続していない IPv4 サブネットに、
shared-network
宣言を追加します。shared-network example { option domain-name-servers 192.0.2.1; ... subnet 192.0.2.0 netmask 255.255.255.0 { range 192.0.2.20 192.0.2.100; option routers 192.0.2.1; } subnet 198.51.100.0 netmask 255.255.255.0 { range 198.51.100.20 198.51.100.100; option routers 198.51.100.1; } ... }
この例では、192.0.2.0/24 と 198.51.100.0/24 の両方のネットワークの
subnet
宣言を含む、共有ネットワーク宣言を追加します。この設定では、DHCP サーバーは以下の設定を、このサブネットのいずれかから DHCP 要求を送信するクライアントに割り当てます。-
両方のサブネットにおけるクライアントの DNS サーバーの IP は
192.0.2.1
です。 -
クライアントがどのサブネットから要求を送信したかに応じて、
range
パラメーターで定義された範囲の 空き IPv4 アドレスです。 -
デフォルトゲートウェイは、クライアントがどのサブネットから要求を送信したかに応じて、
192.0.2.1
または198.51.100.1
のいずれかになります。
-
両方のサブネットにおけるクライアントの DNS サーバーの IP は
サーバーが直接接続し、上記の
shared-network
で指定したリモートのサブネットに到達するのに使用されるサブネットのsubnet
宣言を追加します。subnet 203.0.113.0 netmask 255.255.255.0 { }
注記サーバーがこのサブネットに DHCP サービスを提供しない場合は、以下の例のように、
subnet
宣言を空にする必要があります。直接接続したサブネットの宣言がないと、dhcpd
は起動しません。
必要に応じて、システムの起動時に
dhcpd
が自動的に起動するように設定します。# systemctl enable dhcpd
dhcpd
サービスを開始します。# systemctl start dhcpd
IPv6 ネットワークの場合
/etc/dhcp/dhcpd6.conf
ファイルを編集します。その他のディレクティブにこの設定がない場合は、
dhcpd
が使用するグローバルパラメーターをデフォルトとして追加します。option dhcp6.domain-search "example.com"; default-lease-time 86400;
この例では、接続のデフォルトのドメイン名を
example.com
に設定し、デフォルトのリース時間を86400
秒 (1 日) に設定します。authoritative
ステートメントを新しい行に追加します。authoritative;
重要authoritative
ステートメントがない場合、dhcpd
サービスは、クライアントがプール外にあるアドレスを要求する場合に、DHCPNAK
でDHCPREQUEST
メッセージに応答することはありません。以下のように、サーバーのインターフェイスに直接接続していない IPv6 サブネットに、
shared-network
宣言を追加します。shared-network example { option domain-name-servers 2001:db8:0:1::1:1 ... subnet6 2001:db8:0:1::1:0/120 { range6 2001:db8:0:1::1:20 2001:db8:0:1::1:100 } subnet6 2001:db8:0:1::2:0/120 { range6 2001:db8:0:1::2:20 2001:db8:0:1::2:100 } ... }
この例では、2001:db8:0:1::1:0/120 と 2001:db8:0:1::2:0/120 の両方のネットワークの
subnet6
宣言を含む共有ネットワーク宣言を追加します。この設定では、DHCP サーバーは以下の設定を、このサブネットのいずれかから DHCP 要求を送信するクライアントに割り当てます。-
両方のサブネットからのクライアントに対する DNS サーバーの IP は
2001:db8:0:1::1:1
です。 クライアントがどのサブネットから要求を送信したかに応じて、
range6
パラメーターで定義された範囲の 空き IPv6 アドレスです。IPv6 では、デフォルトのゲートウェイを特定するために、ルーター広告メッセージを使用する必要があることに注意してください。
-
両方のサブネットからのクライアントに対する DNS サーバーの IP は
サーバーが直接接続され、上記の
shared-network
で指定したリモートサブネットに到達するのに使用されるサブネットのsubnet6
宣言を追加します。subnet6 2001:db8:0:1::50:0/120 { }
注記サーバーがこのサブネットに DHCP サービスを提供しない場合、
subnet6
宣言は以下の例のように空にする必要があります。直接接続したサブネットの宣言がないと、dhcpd
は起動しません。
必要に応じて、システムの起動時に
dhcpd6
が自動的に開始するように設定します。# systemctl enable dhcpd6
dhcpd6
サービスを起動します。# systemctl start dhcpd6
関連情報
-
dhcp-options(5)
の man ページ -
dhcpd.conf(5)
の man ページのThe authoritative statement
セクション -
/usr/share/doc/dhcp-server/dhcpd.conf.example
-
/usr/share/doc/dhcp-server/dhcpd6.conf.example
- DHCP リレーエージェントの設定
3.10. DHCP を使用してホストに静的アドレスの割り当て
host
宣言を使用して、DHCP サーバーを設定して、ホストのメディアアクセス制御 (MAC) アドレスに固定 IP アドレスを割り当てることができます。たとえば、この方法を使用して、常に同じ IP アドレスをサーバーまたはネットワークデバイスに割り当てます。
MAC アドレスの固定 IP アドレスを設定する場合、IP アドレスは、fixed-address
パラメーターおよび fixed-address6
パラメーターで指定されたアドレスプールの外にある必要があります。
IPv4、IPv6、またはその両方のプロトコルに固定アドレスを設定するかどうかに応じて、以下の手順を参照してください。
前提条件
-
dhcpd
サービスを設定し、実行している。 -
root
ユーザーとしてログインしている。
手順
IPv4 ネットワークの場合
/etc/dhcp/dhcpd.conf
ファイルを編集します。host
宣言を追加します。host server.example.com { hardware ethernet 52:54:00:72:2f:6e; fixed-address 192.0.2.130; }
以下の例では、DHCP サーバーが、MAC アドレス
52:54:00:72:2f:6e
を使用して、常に IP アドレス192.0.2.130
をホストに割り当てるように設定します。dhcpd
サービスは、fixed-address
パラメーターで指定された MAC アドレスでシステムを識別しますが、host
宣言の名前とは異なります。これにより、この名前を、他のhost
宣言に一致しない任意の文字列に設定できます。複数のネットワークに同じシステムを設定するには、別の名前を使用します。同じ名前を使用すると、dhcpd
が起動に失敗します。-
必要に応じて、このホストに固有の
host
宣言にその他の設定を追加します。
dhcpd
サービスを再起動します。# systemctl start dhcpd
IPv6 ネットワークの場合
/etc/dhcp/dhcpd6.conf
ファイルを編集します。host
宣言を追加します。host server.example.com { hardware ethernet 52:54:00:72:2f:6e; fixed-address6 2001:db8:0:1::200; }
この例では、DHCP サーバーを設定して、IP アドレス
2001:db8:0:1::20
を常に MAC アドレス52:54:00:72:2f:6e
を持つホストに割り当てます。dhcpd
サービスは、host
宣言の名前ではなく、fixed-address6
パラメーターで指定された MAC アドレスでシステムを識別します。これにより、他のhost
宣言に固有である限り、この名前を任意の文字列に設定できます。複数のネットワークに同じシステムを設定する場合は、同じ名前を使用するとdhcpd
が起動に失敗するため、別の名前を使用します。-
必要に応じて、このホストに固有の
host
宣言にその他の設定を追加します。
dhcpd6
サービスを再起動します。# systemctl start dhcpd6
関連情報
-
dhcp-options(5)
の man ページ -
/usr/share/doc/dhcp-server/dhcpd.conf.example
-
/usr/share/doc/dhcp-server/dhcpd6.conf.example
3.11. group 宣言を使用して、パラメーターを複数のホスト、サブネット、および共有ネットワークを同時に適用
group
宣言を使用すると、同じパラメーターを複数のホスト、サブネット、および共有ネットワークに適用できます。
本セクションの手順では、ホストの group
宣言を使用する方法を説明しますが、手順はサブネットと共有ネットワークの場合と同じです。
IPv4、IPv6、またはその両方プロトコルにグループを設定するかどうかに応じて、以下の手順を参照してください。
前提条件
-
dhcpd
サービスを設定し、実行している。 -
root
ユーザーとしてログインしている。
手順
IPv4 ネットワークの場合
/etc/dhcp/dhcpd.conf
ファイルを編集します。group
宣言を追加します。group { option domain-name-servers 192.0.2.1; host server1.example.com { hardware ethernet 52:54:00:72:2f:6e; fixed-address 192.0.2.130; } host server2.example.com { hardware ethernet 52:54:00:1b:f3:cf; fixed-address 192.0.2.140; } }
この
group
は、2 つのhost
エントリーを 1 つのグループにまとめます。dhcpd
サービスは、option domain-name-servers
パラメータに設定した値を、グループ内の両方のホストに適用します。-
必要に応じて、このホストに固有の
group
宣言にその他の設定を追加します。
dhcpd
サービスを再起動します。# systemctl start dhcpd
IPv6 ネットワークの場合
/etc/dhcp/dhcpd6.conf
ファイルを編集します。group
宣言を追加します。group { option dhcp6.domain-search "example.com"; host server1.example.com { hardware ethernet 52:54:00:72:2f:6e; fixed-address 2001:db8:0:1::200; } host server2.example.com { hardware ethernet 52:54:00:1b:f3:cf; fixed-address 2001:db8:0:1::ba3; } }
この
group
は、2 つのhost
エントリーを 1 つのグループにまとめます。dhcpd
サービスは、option dhcp6.domain-search
パラメーターに設定された値をグループ内の両方のホストに適用します。-
必要に応じて、このホストに固有の
group
宣言にその他の設定を追加します。
dhcpd6
サービスを再起動します。# systemctl start dhcpd6
関連情報
-
dhcp-options(5)
の man ページ -
/usr/share/doc/dhcp-server/dhcpd.conf.example
-
/usr/share/doc/dhcp-server/dhcpd6.conf.example
3.12. 破損したリースデータベースの復元
DHCP サーバーが、リースデータベースに関連するエラー (Corrupt lease file - possible data loss!
など) をログに記録すると、dhcpd
サービスが作成するコピーからリースデータベースを復元できます。このコピーには、データベースの最新のステータスが反映されない場合があることに注意してください。
リースデータベースをバックアップに置き換えるのではなく削除すると、現在割り当てられているリースに関する情報がすべて失われます。その結果、DHCP サーバーは、他のホストに割り当てられていて、まだ期限が切れていないクライアントにリースを割り当てることができます。これにより IP の競合が発生します。
DHCPv4、DHCPv6、またはその両方のデータベースを復元するかどうかに応じて、以下の手順を参照してください。
前提条件
-
root
ユーザーとしてログインしている。 - リースデータベースが破損している。
手順
DHCPv4 リースデータベースの復元
dhcpd
サービスを停止します。# systemctl stop dhcpd
破損したリースデータベースの名前を変更します。
# mv /var/lib/dhcpd/dhcpd.leases /var/lib/dhcpd/dhcpd.leases.corrupt
リースデータベースを更新する際に作成される
dhcp
サービスのリースデータベースのコピーを復元します。# cp -p /var/lib/dhcpd/dhcpd.leases~ /var/lib/dhcpd/dhcpd.leases
重要リースデータベースの最新のバックアップがある場合には、代わりにこのバックアップを復元します。
dhcpd
サービスを開始します。# systemctl start dhcpd
DHCPv6 リースデータベースの復元
dhcpd6
サービスを停止します。# systemctl stop dhcpd6
破損したリースデータベースの名前を変更します。
# mv /var/lib/dhcpd/dhcpd6.leases /var/lib/dhcpd/dhcpd6.leases.corrupt
リースデータベースを更新する際に作成される
dhcp
サービスのリースデータベースのコピーを復元します。# cp -p /var/lib/dhcpd/dhcpd6.leases~ /var/lib/dhcpd/dhcpd6.leases
重要リースデータベースの最新のバックアップがある場合には、代わりにこのバックアップを復元します。
dhcpd6
サービスを起動します。# systemctl start dhcpd6
関連情報
3.13. DHCP リレーエージェントの設定
DHCP リレーエージェント (dhcrelay
) を使うと、DHCP サーバーがないサブネットから他のサブネットにある DHCP サーバーに DHCP および BOOTP リクエストのリレーができるようになります。DHCP クライアントが情報を要求すると、DHCP リレーエージェントは、指定した DHCP サーバーの一覧に要求を転送します。DHCP サーバーが応答を返すと、DHCP リレーエージェントはこの要求をクライアントに転送します。
IPv4、IPv6、またはその両方のプロトコルに DHCP リレーを設定するかどうかに応じて、以下の手順を参照してください。
前提条件
-
root
ユーザーとしてログインしている。
手順
IPv4 ネットワークの場合
dhcp-relay
パッケージをインストールします。# dnf install dhcp-relay
/lib/systemd/system/dhcrelay.service
ファイルを/etc/systemd/system/
ディレクトリーにコピーします。# cp /lib/systemd/system/dhcrelay.service /etc/systemd/system/
/usr/lib/systemd/system/dhcrelay.service
ファイルは編集しないでください。dhcp-relay
パッケージの今後の更新により、変更がオーバーライドされます。/etc/systemd/system/dhcrelay.service
ファイルを編集し、-i interface
パラメーターと、サブネットに対応する DHCPv4 サーバーの IP アドレス一覧を追加します。ExecStart=/usr/sbin/dhcrelay -d --no-pid -i enp1s0 192.0.2.1
dhcrelay
は、この追加パラメーターを使用して、enp1s0
インターフェイスの DHCPv4 要求をリッスンし、IP192.0.2.1
で DHCP サーバーに転送します。systemd
マネージャー設定を再読み込みします。# systemctl daemon-reload
必要に応じて、システムの起動時に
dhcrelay
サービスが開始するように設定します。# systemctl enable dhcrelay.service
dhcrelay
サービスを開始します。# systemctl start dhcrelay.service
IPv6 ネットワークの場合
dhcp-relay
パッケージをインストールします。# dnf install dhcp-relay
/lib/systemd/system/dhcrelay.service
ファイルを/etc/systemd/system/
ディレクトリーにコピーして、dhcrelay6.service
ファイルに名前を付けます。# cp /lib/systemd/system/dhcrelay.service /etc/systemd/system/dhcrelay6.service
/usr/lib/systemd/system/dhcrelay.service
ファイルは編集しないでください。dhcp-relay
パッケージの今後の更新により、変更がオーバーライドされます。/etc/systemd/system/dhcrelay6.service
ファイルを編集し、-l receiving_interface
パラメーターおよび-u outgoing_interface
パラメーターを追加します。ExecStart=/usr/sbin/dhcrelay -d --no-pid -l enp1s0 -u enp7s0
これらの追加パラメーターを使用すると、
dhcrelay
はenp1s0
インターフェイスの DHCPv6 要求をリッスンし、enp7s0
インターフェイスに接続されたネットワークに転送します。systemd
マネージャー設定を再読み込みします。# systemctl daemon-reload
必要に応じて、システムの起動時に
dhcrelay6
サービスが開始するように設定します。# systemctl enable dhcrelay6.service
dhcrelay6
サービスを開始します。# systemctl start dhcrelay6.service
関連情報
-
dhcrelay(8)
の man ページ