「Dhcpd」の版間の差分
(同期) |
(Archwiki: Keaページへのリンクに変更) |
||
(3人の利用者による、間の10版が非表示) | |||
1行目: | 1行目: | ||
{{Lowercase title}} |
{{Lowercase title}} |
||
− | [[Category: |
+ | [[Category:DHCP]] |
[[de:Dhcpd]] |
[[de:Dhcpd]] |
||
[[en:Dhcpd]] |
[[en:Dhcpd]] |
||
+ | [[pt:Dhcpd]] |
||
[[ru:Dhcpd]] |
[[ru:Dhcpd]] |
||
+ | [[zh-hans:Dhcpd]] |
||
{{Related articles start}} |
{{Related articles start}} |
||
{{Related|dhcpcd}} |
{{Related|dhcpcd}} |
||
{{Related articles end}} |
{{Related articles end}} |
||
− | + | [https://www.isc.org/dhcp/ dhcpd] は、古い Internet Systems Consortium (ISC) DHCP サーバーです。''dhcpd'' は 2023 年 1 月時点で保守されなくなっていることに注意してください。ISC は、[[Kea]] を正式な後継者として推進します。 |
|
{{Note|''dhcpd'' (DHCP '''(サーバー)''' デーモン) は [[dhcpcd]] (DHCP '''クライアント'''デーモン) とは違います。}} |
{{Note|''dhcpd'' (DHCP '''(サーバー)''' デーモン) は [[dhcpcd]] (DHCP '''クライアント'''デーモン) とは違います。}} |
||
== インストール == |
== インストール == |
||
+ | |||
[[公式リポジトリ]]の {{pkg|dhcp}} パッケージを[[インストール]]してください。 |
[[公式リポジトリ]]の {{pkg|dhcp}} パッケージを[[インストール]]してください。 |
||
== 使用方法 == |
== 使用方法 == |
||
− | ''dhcpd'' にはユニットファイル {{ic|dhcpd4.service}} が含まれており、これを使ってデーモンを[[有効化|制御]]できます。全ての[[ネットワーク設定#ネットワークインターフェ |
+ | ''dhcpd'' にはユニットファイル {{ic|dhcpd4.service}} が含まれており、これを使ってデーモンを[[有効化|制御]]できます。全ての[[ネットワーク設定#ネットワークインターフェース|ネットワークインターフェイス]]でデーモンが起動します。[[#一つのインターフェイスだけを使う]] も見て下さい。 |
== 設定 == |
== 設定 == |
||
30行目: | 33行目: | ||
* {{ic|172.16/12}} (サブネット {{ic|172.16.0.0}}, ネットマスク {{ic|255.240.0.0}}) |
* {{ic|172.16/12}} (サブネット {{ic|172.16.0.0}}, ネットマスク {{ic|255.240.0.0}}) |
||
* {{ic|10/8}} (大規模ネットワーク用; サブネット {{ic|10.0.0.0}}, ネットマスク {{ic|255.0.0.0}}) |
* {{ic|10/8}} (大規模ネットワーク用; サブネット {{ic|10.0.0.0}}, ネットマスク {{ic|255.0.0.0}}) |
||
− | [ |
+ | [https://www.ietf.org/rfc/rfc1918.txt RFC 1918] も参照。}} |
起動時に固定 ip を割り当てるには、[[ネットワーク設定#固定 IP アドレス]]を参照。 |
起動時に固定 ip を割り当てるには、[[ネットワーク設定#固定 IP アドレス]]を参照。 |
||
87行目: | 90行目: | ||
==== サービスファイル ==== |
==== サービスファイル ==== |
||
− | デフォルトではインターフェイスを一つだけ使用する ''dhcpd'' のサービスファイルは存在しないため、作成する必要があります: |
||
+ | ''dhcpd'' によって提供されるデフォルトのサービスファイルはインターフェイスを指定しません。次のように、{{ic|dhcpd4.service}} に [[ドロップインファイル]] を使用します。 |
||
− | {{hc| /etc/systemd/system/dhcpd4@.service|<nowiki> |
||
− | [Unit] |
||
− | Description=IPv4 DHCP server on %I |
||
− | Wants=network.target |
||
− | After=network.target |
||
+ | {{hc|/etc/systemd/system/dhcpd4.service.d/override.conf|2= |
||
[Service] |
[Service] |
||
+ | ExecStart= |
||
− | Type=forking |
||
− | + | ExecStart=/usr/bin/dhcpd -4 -q -cf /etc/dhcpd.conf -pf /run/dhcpd4/dhcpd.pid %I |
|
+ | }} |
||
− | ExecStart=/usr/bin/dhcpd -4 -q -pf /run/dhcpd4.pid %I |
||
− | KillSignal=SIGINT |
||
+ | これにより、{{ic|dhcpd4.service}} をテンプレートユニットとして使用し、''dhcpd'' を特定のインターフェイスにバインドできるようになります。たとえば、{{ic|dhcpd4@''eth0''.service}}、''eth0'' は [https://freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames で最初に列挙されたイーサネットデバイス] です。 |
||
− | [Install] |
||
− | WantedBy=multi-user.target |
||
− | </nowiki>}} |
||
− | |||
− | 上記は、特定のインターフェイスに bind するテンプレートユニットです。例えば {{ic|dhcpd4@''eth0''.service}} などとして使います (''eth0'' は {{ic|ip link}} で確認できるインターフェイスに置き換えて下さい)。 |
||
=== PXE === |
=== PXE === |
||
117行目: | 111行目: | ||
上記のセクションは {{ic|subnet}} 全体の中か {{ic|host}} の定義の中のどちらかに記述できます。{{ic|next-server}} は TFTP サーバーの IP に、{{ic|filename}} は起動するイメージのファイル名に置き換えてください。詳しくは [[PXE]] を参照。 |
上記のセクションは {{ic|subnet}} 全体の中か {{ic|host}} の定義の中のどちらかに記述できます。{{ic|next-server}} は TFTP サーバーの IP に、{{ic|filename}} は起動するイメージのファイル名に置き換えてください。詳しくは [[PXE]] を参照。 |
||
+ | |||
+ | == 参照 == |
||
+ | |||
+ | * [https://kb.isc.org/docs/aa-00333 ISC DHCP ドキュメント] |
2024年4月13日 (土) 11:35時点における最新版
関連記事
dhcpd は、古い Internet Systems Consortium (ISC) DHCP サーバーです。dhcpd は 2023 年 1 月時点で保守されなくなっていることに注意してください。ISC は、Kea を正式な後継者として推進します。
インストール
公式リポジトリの dhcp パッケージをインストールしてください。
使用方法
dhcpd にはユニットファイル dhcpd4.service
が含まれており、これを使ってデーモンを制御できます。全てのネットワークインターフェイスでデーモンが起動します。#一つのインターフェイスだけを使う も見て下さい。
設定
使用したいインターフェイスに固定 IPv4 アドレスを割り当ててください (このページでは例として eth0
を使います)。アドレスの最初の3バイトを他のインターフェイスのアドレスと全く同じにすることはできません。
# ip link set up dev eth0 # ip addr add 139.96.30.100/24 dev eth0 # arbitrary address
起動時に固定 ip を割り当てるには、ネットワーク設定#固定 IP アドレスを参照。
デフォルトの dhcpd.conf
にはアンコメントされている例がたくさん含まれているので、ファイルを移動してください:
# mv /etc/dhcpd.conf /etc/dhcpd.conf.example
最小限の設定ファイルは以下のようになります:
/etc/dhcpd.conf
option domain-name-servers 8.8.8.8, 8.8.4.4; option subnet-mask 255.255.255.0; option routers 139.96.30.100; subnet 139.96.30.0 netmask 255.255.255.0 { range 139.96.30.150 139.96.30.250; }
特定のデバイスで固定 IP アドレスを使う必要がある場合、以下の構文を使います:
/etc/dhcpd.conf
option domain-name-servers 8.8.8.8, 8.8.4.4; option subnet-mask 255.255.255.0; option routers 139.96.30.100; subnet 139.96.30.0 netmask 255.255.255.0 { range 139.96.30.150 139.96.30.250; host macbookpro{ hardware ethernet 70:56:81:22:33:44; fixed-address 139.96.30.199; } }
domain-name-servers
オプションにはクライアントに供給する DNS サーバーのアドレスを記入します。上の例では Google のパブリック DNS サーバーを使っています。(ISP などによる) ローカルの DNS サーバーがある場合、それを使ってください。ローカルマシンで DNS を自分で設定している場合、そのアドレスを使ってください (例: 139.96.30.100
)。
subnet-mask
と routers
はサブネットマスクとサブネット上の利用可能なルーターのリストを定義します。小規模なネットワークであれば大抵は 255.255.255.0
をマスクとして、ルーターとして DHCP サーバーを設定しているマシンの IP アドレスを指定します。
subnet
ブロックには各サブネットのオプションを定義します。dhcpd が動作するネットワークインターフェイスにマッピングされます。上記の場合、サブネット 139.96.30.0/24
でインターフェイス eth0
を使用して、利用可能な IP アドレスの範囲を定義しています。この範囲のアドレスが接続してきたクライアントに割り当てられます。
設定後、systemctl を使って dhcpd4.service
を起動することで dhcpd デーモンを起動できます。任意で、ブート時に自動的に起動するように有効化してください。
一つのインターフェイスだけを使う
既にコンピュータがネットワークの一部となっている場合、他のネットワークからマシンに ip アドレスを付与すると問題になる可能性があります。dhcpd を設定したり systemctl を使ってデーモンとして dhcpd を起動することで使用するインターフェイスを一つに絞ることができます。
dhcpd の設定
インターフェイスを除外するには、除外したいインターフェイスでサブネットの空の宣言を作成する必要があります。
設定ファイルを編集することで作成できます (例):
/etc/dhcpd.conf
# No DHCP service in DMZ network (192.168.2.0/24) subnet 192.168.2.0 netmask 255.255.255.0 { }
サービスファイル
dhcpd によって提供されるデフォルトのサービスファイルはインターフェイスを指定しません。次のように、dhcpd4.service
に ドロップインファイル を使用します。
/etc/systemd/system/dhcpd4.service.d/override.conf
[Service] ExecStart= ExecStart=/usr/bin/dhcpd -4 -q -cf /etc/dhcpd.conf -pf /run/dhcpd4/dhcpd.pid %I
これにより、dhcpd4.service
をテンプレートユニットとして使用し、dhcpd を特定のインターフェイスにバインドできるようになります。たとえば、dhcpd4@eth0.service
、eth0 は で最初に列挙されたイーサネットデバイス です。
PXE
PXE の設定は以下の2つのオプションで行います:
/etc/dhcpd.conf
next-server 192.168.0.2; filename "/pxelinux.0";
上記のセクションは subnet
全体の中か host
の定義の中のどちらかに記述できます。next-server
は TFTP サーバーの IP に、filename
は起動するイメージのファイル名に置き換えてください。詳しくは PXE を参照。