<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ja">
	<id>https://wiki.archlinux.jp/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=%E3%81%99%E3%81%A6%E3%82%93%E3%81%A8%E3%82%8B</id>
	<title>ArchWiki - 利用者の投稿記録 [ja]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.archlinux.jp/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=%E3%81%99%E3%81%A6%E3%82%93%E3%81%A8%E3%82%8B"/>
	<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php/%E7%89%B9%E5%88%A5:%E6%8A%95%E7%A8%BF%E8%A8%98%E9%8C%B2/%E3%81%99%E3%81%A6%E3%82%93%E3%81%A8%E3%82%8B"/>
	<updated>2026-05-26T08:26:20Z</updated>
	<subtitle>利用者の投稿記録</subtitle>
	<generator>MediaWiki 1.44.3</generator>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=Dhcpcd&amp;diff=15642</id>
		<title>Dhcpcd</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=Dhcpcd&amp;diff=15642"/>
		<updated>2020-01-25T11:39:36Z</updated>

		<summary type="html">&lt;p&gt;すてんとる: インストール方法の説明(baseグループ)が消えてしまったので直接のインストール方法の説明を追加&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Lowercase title}}&lt;br /&gt;
[[Category:DHCP]]&lt;br /&gt;
[[Category:コマンド]]&lt;br /&gt;
[[en:dhcpcd]]&lt;br /&gt;
[[ru:dhcpcd]]&lt;br /&gt;
[[zh-hans:Dhcpcd]]&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|ネットワーク設定}}&lt;br /&gt;
{{Related|ワイヤレス設定}}&lt;br /&gt;
{{Related|dhcpd}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
&lt;br /&gt;
[https://roy.marples.name/projects/dhcpcd/ dhcpcd] は DHCP と DHCPv6 のクライアントです。現在は最も機能豊富なオープンソースの DHCP クライアントであり、ホームページに全ての機能のリストが載っています。&lt;br /&gt;
&lt;br /&gt;
{{Note|{{ic|dhcpcd}} (DHCP &#039;&#039;client&#039;&#039; デーモン) は {{ic|dhcpd}} (DHCP &#039;&#039;(server)&#039;&#039; デーモン) とは違います。}}&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
&lt;br /&gt;
[[公式リポジトリ]]から {{Pkg|dhcpcd}} を[[インストール]]してください。&lt;br /&gt;
&lt;br /&gt;
また、&#039;&#039;dhcpcd&#039;&#039; デーモン (と任意で [[wpa_supplicant]]) の GTK+ フロントエンドである {{AUR|dhcpcd-ui}} を使うこともできます。設定ダイアログで、パスフレーズを入力して無線ネットワークに接続することができます。&lt;br /&gt;
&lt;br /&gt;
{{AUR|dhcpcd-ui-patched}} は {{AUR|dhcpcd-ui}} パッケージにパッチを適用したバージョンで、GtkStatusIcon の代わりに AppIndicator を使用して GTK+3 でコンパイルされます。[[KDE]] で使用した場合はシャープなトレイアイコンが表示されます。&lt;br /&gt;
&lt;br /&gt;
== 実行 ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;dhcpcd&#039;&#039; は基本的にサービスファイル {{ic|dhcpcd@.service}} で操作します、インターフェイス名を引数として指定します (詳しくは [[systemd#ユニットを使う]]を見て下さい):&lt;br /&gt;
&lt;br /&gt;
 # systemctl start dhcpcd@&#039;&#039;interface&#039;&#039;.service&lt;br /&gt;
 # systemctl enable dhcpcd@&#039;&#039;interface&#039;&#039;.service&lt;br /&gt;
&lt;br /&gt;
手動で &#039;&#039;dhcpcd&#039;&#039; を起動するには、次のコマンドを実行してください:&lt;br /&gt;
&lt;br /&gt;
{{hc|# dhcpcd &#039;&#039;interface&#039;&#039;|&lt;br /&gt;
dhcpcd: version 5.1.1 starting&lt;br /&gt;
dhcpcd: &#039;&#039;interface&#039;&#039;: broadcasting for a lease&lt;br /&gt;
...&lt;br /&gt;
dhcpcd: &#039;&#039;interface&#039;&#039;: leased 192.168.1.70 for 86400 seconds&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
ネットワークインターフェイスの名前を確認する方法は[[ネットワーク設定#現在のデバイス名を取得]]を見てください。全てのネットワークインターフェイスでデーモンを起動するには {{ic|dhcpcd.service}} を[[起動]]・[[有効化]]してください。&lt;br /&gt;
&lt;br /&gt;
{{Tip|{{ic|dhcpcd.service}} が起動に失敗する場合は、[[#dhcpcd と systemd ネットワークインターフェイス]]を見てください。}}&lt;br /&gt;
&lt;br /&gt;
== 設定 ==&lt;br /&gt;
&lt;br /&gt;
メインの設定は {{ic|/etc/dhcpcd.conf}} で行います、詳細は {{man|5|dhcpcd.conf}} を参照してください。よく使われるオプションについては以下で説明します。&lt;br /&gt;
&lt;br /&gt;
=== DHCP スタティックルート ===&lt;br /&gt;
&lt;br /&gt;
スタティックルートをクライアント側に追加する必要がある場合、{{ic|/etc/dhcpcd.exit-hook}} に新しい dhcpcd フックスクリプトを作成してください。以下の例は {{ic|192.168.192.5}} のゲートウェイマシンを通じて VPN サブネットにスタティックルートを追加するフックスクリプトです:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/dhcpcd.exit-hook|&lt;br /&gt;
ip route add 10.11.12.0/24 via 192.168.192.5&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
上記のファイルには複数のルートを追加できます。&lt;br /&gt;
&lt;br /&gt;
=== DHCP クライアント ID ===&lt;br /&gt;
&lt;br /&gt;
複数の方法を使って DHCP クライアントをサーバーから一意に識別させることが可能です:&lt;br /&gt;
* ホストネーム (またはクライアントから送信されたホストネームの値)&lt;br /&gt;
* 接続を作成するのに使われたネットワークインターフェイスコントローラの MAC アドレス&lt;br /&gt;
* Identity Association ID (IAID)、ホストのユースケースやインターフェイスを区別するための抽象レイヤー&lt;br /&gt;
* DHCP Unique Identifier (DUID)&lt;br /&gt;
詳しい解説は [https://tools.ietf.org/html/rfc3315#section-4.2 RFC 3315] を見てください。&lt;br /&gt;
&lt;br /&gt;
DHCP サーバーの設定によって、オプションは設定する必要がなかったり、もしくは DHCP IP リースをリクエストするのに必須であったりします。&lt;br /&gt;
&lt;br /&gt;
{{Note|大抵は &#039;&#039;dhcpcd&#039;&#039; のデフォルト設定で問題ありません。記載されている識別子は自動的に処理されるので、問題が発生しときにだけ手動で設定を変更してください。}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;dhcpcd&#039;&#039; のデフォルト設定で IP が取得できない場合、{{ic|dhcpcd.conf}} で以下のオプションを使うことができます:&lt;br /&gt;
* {{ic|hostname}} は {{ic|/etc/hostname}} で設定されたホストネームを送信します。&lt;br /&gt;
* {{ic|clientid}} は MAC アドレスを識別子として送信します。&lt;br /&gt;
* {{ic|iaid &amp;lt;interface&amp;gt;}} は DHCP ディスカバリに使われる IAID を取得します。interface ブロックで使用します ({{ic|interface &amp;lt;interface&amp;gt;}} で始まるブロック、詳しくは [https://bbs.archlinux.org/viewtopic.php?pid=1388376#p1388376] を参照)。ただし、次のオプションの方がよく使われます:&lt;br /&gt;
* {{ic|duid}} は DUID と IAID の組み合わせを識別子として使用します。&lt;br /&gt;
&lt;br /&gt;
DUID の値は {{ic|/var/lib/dhcpcd/duid}} で設定します。効率的な DHCP リース操作のために DUID はシステム固有の値にして全てのネットワークインターフェイスに適用することが重要です。逆に IAID は各々のインターフェイスを表す識別子です ([https://tools.ietf.org/html/rfc4361#section-6.1 RFC 4361] を参照)。&lt;br /&gt;
&lt;br /&gt;
[[Wikipedia:ja:ダイナミックドメインネームシステム|Dynamic DNS]] を使っているネットワークでは3つの ID がそれぞれ異なっていることに注意を払ってください。重複する DUID の値が DNS サーバーに渡された場合 (仮想マシンを複製したときにホストネームと MAC は変更したのに DUID を変更しなかった場合など)、重複した DUID を持ったクライアントがリースをリクエストすることになり、サーバーはクライアントを DNS レコードから削除してしまいます。&lt;br /&gt;
&lt;br /&gt;
=== 固定プロファイル ===&lt;br /&gt;
&lt;br /&gt;
必要な設定情報は[[ネットワーク設定#固定 IP アドレス]]で説明しています。基本的には[[ネットワーク設定#デバイス名|デバイス名]], &#039;&#039;IP アドレス&#039;&#039;, &#039;&#039;ルーターアドレス&#039;&#039;, &#039;&#039;ネームサーバー&#039;&#039;が必要になります。&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;dhcpcd&#039;&#039; の固定プロファイルは {{ic|/etc/dhcpcd.conf}} で以下のように設定します:&lt;br /&gt;
&lt;br /&gt;
{{hc|1=/etc/dhcpcd.conf|2=&lt;br /&gt;
interface eth0&lt;br /&gt;
static ip_address=192.168.0.10/24	&lt;br /&gt;
static routers=192.168.0.1&lt;br /&gt;
static domain_name_servers=192.168.0.1 8.8.8.8&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{ic|arping}} オプションを使うなど、もっと複雑な設定をすることもできます。詳しくは {{man|5|dhcpcd.conf}} を見て下さい。&lt;br /&gt;
&lt;br /&gt;
==== 予備プロファイル ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;dhcpcd&#039;&#039; の中で固定プロファイルを設定して DHCP のリースが失敗したときに、そのプロファイルにフォールバックすることができます。常にマシンに接続できるようにするために固定プロファイルを&amp;quot;リカバリ&amp;quot;プロファイルとして使うことで、特に [[Raspberry Pi]] などの [[wikipedia:Headless computer|ヘッドレスマシン]]で役に立ちます。&lt;br /&gt;
&lt;br /&gt;
以下の例では IP アドレスが {{ic|192.168.1.1}} で、ゲートウェイとネームサーバが {{ic|192.168.1.23}} の {{ic|static_eth0}} プロファイルを設定しており、このプロファイルを {{ic|eth0}} インターフェイスのフォールバックに指定しています。&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/dhcpcd.conf|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
# define static profile&lt;br /&gt;
profile static_eth0&lt;br /&gt;
static ip_address=192.168.1.1&lt;br /&gt;
static routers=192.168.1.23&lt;br /&gt;
static domain_name_servers=192.168.1.23&lt;br /&gt;
&lt;br /&gt;
# fallback to static profile on eth0&lt;br /&gt;
interface eth0&lt;br /&gt;
fallback static_eth0&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
== フック ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;dhcpcd&#039;&#039; は {{ic|/usr/lib/dhcpcd/dhcpcd-hooks/}} にあるスクリプトを辞書順で全て実行します。詳しくは {{man|5|dhcpcd}} や {{man|8|dhcpcd-run-hooks}} を見て下さい。&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
* {{ic|dhcpcd.conf}} で {{ic|nohook}} オプションを使うことで個別のスクリプトを無効化できます。&lt;br /&gt;
* {{ic|env}} オプションを使うことで&#039;&#039;&#039;すべての&#039;&#039;&#039;フックに環境変数を設定することが可能です。例えば、{{ic|1=env force_hostname=YES}} を使えば hostname フックに常時ホストネームを設定するように指定できます。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== 10-wpa_supplicant ===&lt;br /&gt;
&lt;br /&gt;
{{ic|10-wpa_supplicant}} フックは無線インターフェイスで [[WPA supplicant]] を自動的に起動します。起動するのは以下の条件を満たした場合に限られます:&lt;br /&gt;
&lt;br /&gt;
* インターフェイスを使っている &#039;&#039;wpa_supplicant&#039;&#039; プロセスがまだない場合。&lt;br /&gt;
* &#039;&#039;wpa_supplicant&#039;&#039; 設定ファイルが存在する場合。&#039;&#039;dhcpcd&#039;&#039; はデフォルトで以下のファイルを (この順番で) チェックします:&lt;br /&gt;
&lt;br /&gt;
 /etc/wpa_supplicant/wpa_supplicant-&amp;quot;$interface&amp;quot;.conf&lt;br /&gt;
 /etc/wpa_supplicant/wpa_supplicant.conf&lt;br /&gt;
 /etc/wpa_supplicant-&amp;quot;$interface&amp;quot;.conf&lt;br /&gt;
 /etc/wpa_supplicant.conf&lt;br /&gt;
&lt;br /&gt;
ただし、{{ic|/etc/dhcpcd.conf}} に {{ic|1=env wpa_supplicant_conf=&#039;&#039;configuration_file_path&#039;&#039;}} と追加することでカスタムパスを追加することもできます。&lt;br /&gt;
&lt;br /&gt;
{{Note|設定ファイルが最初に見つかった時点でフックは停止します。そのため、&#039;&#039;wpa_supplicant&#039;&#039; の設定ファイルが複数存在する場合は注意が必要です。&#039;&#039;dhcpcd&#039;&#039; が間違ったファイルを使ってしまう可能性があります。}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;wpa_supplicant&#039;&#039; で無線接続を管理している場合、フックによって望ましくない接続イベントが作成されてしまう可能性があります。例えば、&#039;&#039;wpa_supplicant&#039;&#039; を停止したときにフックによってインターフェイスが再度立ち上げられてしまうかもしれません。また、[[Netctl#プロファイルの自動切り替え|netctl-auto]] を使用している場合、{{ic|/run/network/wpa_supplicant_&amp;quot;$interface&amp;quot;.conf}} によって &#039;&#039;wpa_supplicant&#039;&#039; は自動的に起動するため、フックから起動する必要はなくなり、結果としてデフォルトのパッケージに含まれているダミーの値しか記述されていない {{ic|/etc/wpa_supplicant/wpa_supplicant.conf}} ファイルのパースエラーが起動時に発生します。&lt;br /&gt;
&lt;br /&gt;
フックを無効にするには、{{ic|dhcpcd.conf}} に {{ic|nohook wpa_supplicant}} を追加してください。&lt;br /&gt;
&lt;br /&gt;
== ヒントとテクニック ==&lt;br /&gt;
&lt;br /&gt;
=== ARP プローブを無効にして DHCP を高速化 ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;dhcpcd&#039;&#039; には DHCP 標準 ([https://www.ietf.org/rfc/rfc2131.txt RFC2131] section 2.2) で勧告されている実装が含まれており、割り当てられた IP アドレスが実際に取得できているかどうか ARP でチェックを行います。ホームネットワークではこの機能はあまり意味がないので、{{ic|/etc/dhcpcd.conf}} に以下の行を追加することで、5秒ほど接続のときにかかる時間を減らすことができます:&lt;br /&gt;
&lt;br /&gt;
 noarp&lt;br /&gt;
&lt;br /&gt;
上記の設定は {{ic|dhcpcd}} に {{ic|--noarp}} を指定するのと同一の効果を持ち、ARP プローブを無効化します。これにより DHCP によるネットワークの接続が高速化されます。&lt;br /&gt;
&lt;br /&gt;
=== 古い DHCP リースを削除 ===&lt;br /&gt;
&lt;br /&gt;
{{ic|/var/lib/dhcpcd/&#039;&#039;interface&#039;&#039;.lease}} ({{ic|&#039;&#039;interface&#039;&#039;}} はリースを得るインターフェイスの名前) ファイルには DHCP サーバーから送信された実際の DHCP リースの応答が含まれています。無線インターフェイスの場合、ファイル名は {{ic|/var/lib/dhcpcd/&#039;&#039;interface&#039;&#039;-&#039;&#039;ssid&#039;&#039;.lease}} になります ({{ic|&#039;&#039;ssid&#039;&#039;}} は無線ネットワークの名前に置き換えてください)。このファイルを使ってサーバーからの最後のリースを判別することができ、また、ファイルの {{ic|mtime}} 属性を使ってリースの発行日時が確認されます。最後のリース情報を使用することで、前回ネットワーク上で確保されたのと同じ IP アドレスをリクエストします。リース情報を使用して欲しくない場合、ファイルを削除してください。&lt;br /&gt;
&lt;br /&gt;
ファイルを削除しても DHCP サーバーから同じ IP アドレスが割り当てられる場合、割り当てを安定化するためにリクエストしてくる DHCP クライアントの ID や DUID を識別するように設定されている可能性があります ([[#DHCP クライアント ID]] を参照)。&#039;&#039;dhcpcd&#039;&#039; を停止して {{ic|/var/lib/dhcpcd/duid}} を削除あるいは名前を変更することでテストができます。&#039;&#039;dhcpcd&#039;&#039; は次回の起動時に新しいファイルを生成します。&lt;br /&gt;
&lt;br /&gt;
DUID は再起動しても変わらない永続的なマシンの識別子であることに注意してください。システムを新しいコンピュータに移動する場合、ファイルをそのまま持っていくと古いコンピュータとして認識されます。&lt;br /&gt;
&lt;br /&gt;
=== マルチブートするときに IP を変える ===&lt;br /&gt;
&lt;br /&gt;
Arch と OS X あるいは Windows をデュアルブートしていて、それぞれ別の IP アドレスを割り当てたい場合、オペレーティングシステムごとに別々の DUID を指定することでリースされる IP を制御することができます。&lt;br /&gt;
&lt;br /&gt;
(XP 以降の) Windows では以下のレジストリキーに DUID が保存されています:&lt;br /&gt;
 \HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters\Dhcpv6DUID &lt;br /&gt;
&lt;br /&gt;
OS X では {{ic|Network\adapter\dhcp preferences panel}} から直接アクセスできます。&lt;br /&gt;
&lt;br /&gt;
[[dnsmasq]] DHCP サーバーを使っている場合、dnsmasq の設定で適切な {{ic|1=dhcp-host=}} ルールを使うことで別々の DUID を使えます。&lt;br /&gt;
&lt;br /&gt;
=== resolv.conf ===&lt;br /&gt;
&lt;br /&gt;
デフォルトの設定では &#039;&#039;dhcpcd&#039;&#039;&#039; は [[resolv.conf]] を上書きします。&lt;br /&gt;
&lt;br /&gt;
{{ic|/etc/dhcpcd.conf}} の最後のセクションに以下を追加することで上書きしないようにすることができます:&lt;br /&gt;
&lt;br /&gt;
 nohook resolv.conf&lt;br /&gt;
&lt;br /&gt;
もしくは {{ic|/etc/resolv.conf.head}} という名前のファイルを作成して DNS サーバーを記述してください。&#039;&#039;dhcpcd&#039;&#039; はこのファイルの中身を {{ic|/etc/resolv.conf}} の冒頭に追加します。&lt;br /&gt;
&lt;br /&gt;
dhcpcd が毎回同じ DNS サーバーを使うように設定したい場合、{{ic|/etc/dhcpcd.conf}} の末尾に以下の行を追加してください ({{ic|&#039;&#039;dns-server-ip-addressses&#039;&#039;}} は DNS の IP アドレスをスペースで区切ったリストに置き換えてください):&lt;br /&gt;
&lt;br /&gt;
 static domain_name_servers=&#039;&#039;dns-server-ip-addresses&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
例えば、Google の DNS サーバーに設定したい場合:&lt;br /&gt;
&lt;br /&gt;
 static domain_name_servers=8.8.8.8 8.8.4.4&lt;br /&gt;
&lt;br /&gt;
== トラブルシューティング ==&lt;br /&gt;
&lt;br /&gt;
=== クライアント ID ===&lt;br /&gt;
&lt;br /&gt;
また、MAC アドレスに基づくクライアント ID をフィルタリングしている DHCPv4 ネットワークを使う場合は、次の行を:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/dhcpcd.conf|&lt;br /&gt;
# Use the same DUID + IAID as set in DHCPv6 for DHCPv4 Client ID as per RFC4361. &lt;br /&gt;
duid&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
以下のように変更してください:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/dhcpcd.conf|&lt;br /&gt;
# Use the hardware address of the interface for the Client ID (DHCPv4).&lt;br /&gt;
clientid&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
こうしないと、DHCP サーバーがあなたの [https://en.wikipedia.org/wiki/DHCPv6 DHCPv6] クライアント ID を正しく読み込めない可能性があります。詳しくは [https://tools.ietf.org/html/rfc4361 RFC 4361] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== まず IP を開放して DHCP の問題を確認する ===&lt;br /&gt;
&lt;br /&gt;
DHCP が間違った IP の割り当てを取得している時、問題が起こることがあります。例えば2つのルーターが VPN で結び付けられている場合が考えられます。修正するには、コンソールで、root 権限を使って IP アドレスを開放してください:&lt;br /&gt;
&lt;br /&gt;
 # dhcpcd -k&lt;br /&gt;
&lt;br /&gt;
それから新しい IP アドレスをリクエストしてください:&lt;br /&gt;
&lt;br /&gt;
 # dhcpcd&lt;br /&gt;
&lt;br /&gt;
おそらくこの2つのコマンドを何度も実行する必要があります。&lt;br /&gt;
&lt;br /&gt;
=== 強情なルーターの問題 ===&lt;br /&gt;
&lt;br /&gt;
(厄介な) ルーターによっては、{{ic|/etc/dhcpcd.conf}} にある以下の行をコメントアウトしないと接続が上手くいかないことがあります:&lt;br /&gt;
&lt;br /&gt;
 require dhcp_server_identifier&lt;br /&gt;
&lt;br /&gt;
ネットワーク上に複数の DHCP サーバーがあるという状況でないかぎり (こういうことは稀です)、コメントアウトすることで問題が発生することはありません。詳しくは [https://technet.microsoft.com/en-us/library/cc977442.aspx このページ] を参照。&lt;br /&gt;
&lt;br /&gt;
=== dhcpcd と systemd ネットワークインターフェイス ===&lt;br /&gt;
&lt;br /&gt;
インターフェイスを指定しないで &#039;&#039;dhcpcd.service&#039;&#039; を[[systemd#ユニットを使う|有効]]にすることもできますが、predictable network interface name を適用する &#039;&#039;systemd-udevd&#039;&#039; と起動時に競合状態になる可能性があります:&lt;br /&gt;
 error changing net interface name wlan0 to wlp4s0: Device or resource busy&amp;quot; &lt;br /&gt;
&lt;br /&gt;
これを避けるために、&#039;&#039;dhcpcd&#039;&#039; を有効にするときは[[#実行]]で説明されているようにインターフェイスを指定して下さい。ただしテンプレートユニットでは有線接続のホットプラグをサポートしていないため、ネットワークケーブルが接続されていないと起動に失敗します。問題を回避したい場合、[[#タイムアウト]]を見てください。&lt;br /&gt;
&lt;br /&gt;
{{man|5|dhcpcd.conf}} で {{ic|denyinterfaces}} または {{ic|allowinterfaces}} を使って dhcpcd がカーネル名にバインドしないようにすることもできます。例:&lt;br /&gt;
&lt;br /&gt;
 denyinterfaces wlan* eth*&lt;br /&gt;
&lt;br /&gt;
=== タイムアウト ===&lt;br /&gt;
&lt;br /&gt;
dhcpcd は単一のインターフェイスで30秒たってもリースが取得できなかった場合 (例えばサーバーが動作していない場合)、エラーを吐いて終了します。&#039;&#039;dhcpcd&#039;&#039; に無期限に待機するよう設定するには、{{ic|timeout}} オプションを {{ic|0}} に設定します:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/systemd/system/dhcpcd@.service.d/timeout.conf|2=&lt;br /&gt;
[Service]&lt;br /&gt;
ExecStart=&lt;br /&gt;
ExecStart=/usr/bin/dhcpcd -w -q &#039;&#039;&#039;-t 0&#039;&#039;&#039; %I&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
そして[[systemd#ユニットファイルの編集|設定をリロード]]してください。&lt;br /&gt;
&lt;br /&gt;
=== dhcpcd@.service によって起動が遅くなる ===&lt;br /&gt;
&lt;br /&gt;
デフォルトでは {{ic|dhcpcd@.service}} は IP アドレスが取得されるまで待機して、それから {{ic|-w}} フラグを使って &#039;&#039;dhcpcd&#039;&#039; をバックグラウンドにフォークします。ユニットを有効化すると、IP アドレスが取得されるまで起動が進まなくなってしまう可能性があります。解決するには、以下の内容でユニットの[[systemd#ドロップインファイル|ドロップインファイル]]を作成してください:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/systemd/system/dhcpcd@.service.d/no-wait.conf|2=&lt;br /&gt;
[Service]&lt;br /&gt;
ExecStart=&lt;br /&gt;
ExecStart=/usr/bin/dhcpcd -b -q %I&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
詳しくは {{Bug|49685}} を参照。&lt;br /&gt;
&lt;br /&gt;
== 参照 ==&lt;br /&gt;
&lt;br /&gt;
* {{man|8|dhcpcd}}&lt;br /&gt;
* {{man|5|dhcpcd.conf}}&lt;/div&gt;</summary>
		<author><name>すてんとる</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=Dhcpcd&amp;diff=15641</id>
		<title>Dhcpcd</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=Dhcpcd&amp;diff=15641"/>
		<updated>2020-01-25T11:33:57Z</updated>

		<summary type="html">&lt;p&gt;すてんとる: baseグループに関する言及を削除(baseグループ改めbaseパッケージはもはやdhcpcdを含んでいない)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Lowercase title}}&lt;br /&gt;
[[Category:DHCP]]&lt;br /&gt;
[[Category:コマンド]]&lt;br /&gt;
[[en:dhcpcd]]&lt;br /&gt;
[[ru:dhcpcd]]&lt;br /&gt;
[[zh-hans:Dhcpcd]]&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|ネットワーク設定}}&lt;br /&gt;
{{Related|ワイヤレス設定}}&lt;br /&gt;
{{Related|dhcpd}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
&lt;br /&gt;
[https://roy.marples.name/projects/dhcpcd/ dhcpcd] は DHCP と DHCPv6 のクライアントです。現在は最も機能豊富なオープンソースの DHCP クライアントであり、ホームページに全ての機能のリストが載っています。&lt;br /&gt;
&lt;br /&gt;
{{Note|{{ic|dhcpcd}} (DHCP &#039;&#039;client&#039;&#039; デーモン) は {{ic|dhcpd}} (DHCP &#039;&#039;(server)&#039;&#039; デーモン) とは違います。}}&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
&lt;br /&gt;
また、&#039;&#039;dhcpcd&#039;&#039; デーモン (と任意で [[wpa_supplicant]]) の GTK+ フロントエンドである {{AUR|dhcpcd-ui}} を使うこともできます。設定ダイアログで、パスフレーズを入力して無線ネットワークに接続することができます。&lt;br /&gt;
&lt;br /&gt;
{{AUR|dhcpcd-ui-patched}} は {{AUR|dhcpcd-ui}} パッケージにパッチを適用したバージョンで、GtkStatusIcon の代わりに AppIndicator を使用して GTK+3 でコンパイルされます。[[KDE]] で使用した場合はシャープなトレイアイコンが表示されます。&lt;br /&gt;
&lt;br /&gt;
== 実行 ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;dhcpcd&#039;&#039; は基本的にサービスファイル {{ic|dhcpcd@.service}} で操作します、インターフェイス名を引数として指定します (詳しくは [[systemd#ユニットを使う]]を見て下さい):&lt;br /&gt;
&lt;br /&gt;
 # systemctl start dhcpcd@&#039;&#039;interface&#039;&#039;.service&lt;br /&gt;
 # systemctl enable dhcpcd@&#039;&#039;interface&#039;&#039;.service&lt;br /&gt;
&lt;br /&gt;
手動で &#039;&#039;dhcpcd&#039;&#039; を起動するには、次のコマンドを実行してください:&lt;br /&gt;
&lt;br /&gt;
{{hc|# dhcpcd &#039;&#039;interface&#039;&#039;|&lt;br /&gt;
dhcpcd: version 5.1.1 starting&lt;br /&gt;
dhcpcd: &#039;&#039;interface&#039;&#039;: broadcasting for a lease&lt;br /&gt;
...&lt;br /&gt;
dhcpcd: &#039;&#039;interface&#039;&#039;: leased 192.168.1.70 for 86400 seconds&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
ネットワークインターフェイスの名前を確認する方法は[[ネットワーク設定#現在のデバイス名を取得]]を見てください。全てのネットワークインターフェイスでデーモンを起動するには {{ic|dhcpcd.service}} を[[起動]]・[[有効化]]してください。&lt;br /&gt;
&lt;br /&gt;
{{Tip|{{ic|dhcpcd.service}} が起動に失敗する場合は、[[#dhcpcd と systemd ネットワークインターフェイス]]を見てください。}}&lt;br /&gt;
&lt;br /&gt;
== 設定 ==&lt;br /&gt;
&lt;br /&gt;
メインの設定は {{ic|/etc/dhcpcd.conf}} で行います、詳細は {{man|5|dhcpcd.conf}} を参照してください。よく使われるオプションについては以下で説明します。&lt;br /&gt;
&lt;br /&gt;
=== DHCP スタティックルート ===&lt;br /&gt;
&lt;br /&gt;
スタティックルートをクライアント側に追加する必要がある場合、{{ic|/etc/dhcpcd.exit-hook}} に新しい dhcpcd フックスクリプトを作成してください。以下の例は {{ic|192.168.192.5}} のゲートウェイマシンを通じて VPN サブネットにスタティックルートを追加するフックスクリプトです:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/dhcpcd.exit-hook|&lt;br /&gt;
ip route add 10.11.12.0/24 via 192.168.192.5&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
上記のファイルには複数のルートを追加できます。&lt;br /&gt;
&lt;br /&gt;
=== DHCP クライアント ID ===&lt;br /&gt;
&lt;br /&gt;
複数の方法を使って DHCP クライアントをサーバーから一意に識別させることが可能です:&lt;br /&gt;
* ホストネーム (またはクライアントから送信されたホストネームの値)&lt;br /&gt;
* 接続を作成するのに使われたネットワークインターフェイスコントローラの MAC アドレス&lt;br /&gt;
* Identity Association ID (IAID)、ホストのユースケースやインターフェイスを区別するための抽象レイヤー&lt;br /&gt;
* DHCP Unique Identifier (DUID)&lt;br /&gt;
詳しい解説は [https://tools.ietf.org/html/rfc3315#section-4.2 RFC 3315] を見てください。&lt;br /&gt;
&lt;br /&gt;
DHCP サーバーの設定によって、オプションは設定する必要がなかったり、もしくは DHCP IP リースをリクエストするのに必須であったりします。&lt;br /&gt;
&lt;br /&gt;
{{Note|大抵は &#039;&#039;dhcpcd&#039;&#039; のデフォルト設定で問題ありません。記載されている識別子は自動的に処理されるので、問題が発生しときにだけ手動で設定を変更してください。}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;dhcpcd&#039;&#039; のデフォルト設定で IP が取得できない場合、{{ic|dhcpcd.conf}} で以下のオプションを使うことができます:&lt;br /&gt;
* {{ic|hostname}} は {{ic|/etc/hostname}} で設定されたホストネームを送信します。&lt;br /&gt;
* {{ic|clientid}} は MAC アドレスを識別子として送信します。&lt;br /&gt;
* {{ic|iaid &amp;lt;interface&amp;gt;}} は DHCP ディスカバリに使われる IAID を取得します。interface ブロックで使用します ({{ic|interface &amp;lt;interface&amp;gt;}} で始まるブロック、詳しくは [https://bbs.archlinux.org/viewtopic.php?pid=1388376#p1388376] を参照)。ただし、次のオプションの方がよく使われます:&lt;br /&gt;
* {{ic|duid}} は DUID と IAID の組み合わせを識別子として使用します。&lt;br /&gt;
&lt;br /&gt;
DUID の値は {{ic|/var/lib/dhcpcd/duid}} で設定します。効率的な DHCP リース操作のために DUID はシステム固有の値にして全てのネットワークインターフェイスに適用することが重要です。逆に IAID は各々のインターフェイスを表す識別子です ([https://tools.ietf.org/html/rfc4361#section-6.1 RFC 4361] を参照)。&lt;br /&gt;
&lt;br /&gt;
[[Wikipedia:ja:ダイナミックドメインネームシステム|Dynamic DNS]] を使っているネットワークでは3つの ID がそれぞれ異なっていることに注意を払ってください。重複する DUID の値が DNS サーバーに渡された場合 (仮想マシンを複製したときにホストネームと MAC は変更したのに DUID を変更しなかった場合など)、重複した DUID を持ったクライアントがリースをリクエストすることになり、サーバーはクライアントを DNS レコードから削除してしまいます。&lt;br /&gt;
&lt;br /&gt;
=== 固定プロファイル ===&lt;br /&gt;
&lt;br /&gt;
必要な設定情報は[[ネットワーク設定#固定 IP アドレス]]で説明しています。基本的には[[ネットワーク設定#デバイス名|デバイス名]], &#039;&#039;IP アドレス&#039;&#039;, &#039;&#039;ルーターアドレス&#039;&#039;, &#039;&#039;ネームサーバー&#039;&#039;が必要になります。&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;dhcpcd&#039;&#039; の固定プロファイルは {{ic|/etc/dhcpcd.conf}} で以下のように設定します:&lt;br /&gt;
&lt;br /&gt;
{{hc|1=/etc/dhcpcd.conf|2=&lt;br /&gt;
interface eth0&lt;br /&gt;
static ip_address=192.168.0.10/24	&lt;br /&gt;
static routers=192.168.0.1&lt;br /&gt;
static domain_name_servers=192.168.0.1 8.8.8.8&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{ic|arping}} オプションを使うなど、もっと複雑な設定をすることもできます。詳しくは {{man|5|dhcpcd.conf}} を見て下さい。&lt;br /&gt;
&lt;br /&gt;
==== 予備プロファイル ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;dhcpcd&#039;&#039; の中で固定プロファイルを設定して DHCP のリースが失敗したときに、そのプロファイルにフォールバックすることができます。常にマシンに接続できるようにするために固定プロファイルを&amp;quot;リカバリ&amp;quot;プロファイルとして使うことで、特に [[Raspberry Pi]] などの [[wikipedia:Headless computer|ヘッドレスマシン]]で役に立ちます。&lt;br /&gt;
&lt;br /&gt;
以下の例では IP アドレスが {{ic|192.168.1.1}} で、ゲートウェイとネームサーバが {{ic|192.168.1.23}} の {{ic|static_eth0}} プロファイルを設定しており、このプロファイルを {{ic|eth0}} インターフェイスのフォールバックに指定しています。&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/dhcpcd.conf|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
# define static profile&lt;br /&gt;
profile static_eth0&lt;br /&gt;
static ip_address=192.168.1.1&lt;br /&gt;
static routers=192.168.1.23&lt;br /&gt;
static domain_name_servers=192.168.1.23&lt;br /&gt;
&lt;br /&gt;
# fallback to static profile on eth0&lt;br /&gt;
interface eth0&lt;br /&gt;
fallback static_eth0&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
== フック ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;dhcpcd&#039;&#039; は {{ic|/usr/lib/dhcpcd/dhcpcd-hooks/}} にあるスクリプトを辞書順で全て実行します。詳しくは {{man|5|dhcpcd}} や {{man|8|dhcpcd-run-hooks}} を見て下さい。&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
* {{ic|dhcpcd.conf}} で {{ic|nohook}} オプションを使うことで個別のスクリプトを無効化できます。&lt;br /&gt;
* {{ic|env}} オプションを使うことで&#039;&#039;&#039;すべての&#039;&#039;&#039;フックに環境変数を設定することが可能です。例えば、{{ic|1=env force_hostname=YES}} を使えば hostname フックに常時ホストネームを設定するように指定できます。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== 10-wpa_supplicant ===&lt;br /&gt;
&lt;br /&gt;
{{ic|10-wpa_supplicant}} フックは無線インターフェイスで [[WPA supplicant]] を自動的に起動します。起動するのは以下の条件を満たした場合に限られます:&lt;br /&gt;
&lt;br /&gt;
* インターフェイスを使っている &#039;&#039;wpa_supplicant&#039;&#039; プロセスがまだない場合。&lt;br /&gt;
* &#039;&#039;wpa_supplicant&#039;&#039; 設定ファイルが存在する場合。&#039;&#039;dhcpcd&#039;&#039; はデフォルトで以下のファイルを (この順番で) チェックします:&lt;br /&gt;
&lt;br /&gt;
 /etc/wpa_supplicant/wpa_supplicant-&amp;quot;$interface&amp;quot;.conf&lt;br /&gt;
 /etc/wpa_supplicant/wpa_supplicant.conf&lt;br /&gt;
 /etc/wpa_supplicant-&amp;quot;$interface&amp;quot;.conf&lt;br /&gt;
 /etc/wpa_supplicant.conf&lt;br /&gt;
&lt;br /&gt;
ただし、{{ic|/etc/dhcpcd.conf}} に {{ic|1=env wpa_supplicant_conf=&#039;&#039;configuration_file_path&#039;&#039;}} と追加することでカスタムパスを追加することもできます。&lt;br /&gt;
&lt;br /&gt;
{{Note|設定ファイルが最初に見つかった時点でフックは停止します。そのため、&#039;&#039;wpa_supplicant&#039;&#039; の設定ファイルが複数存在する場合は注意が必要です。&#039;&#039;dhcpcd&#039;&#039; が間違ったファイルを使ってしまう可能性があります。}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;wpa_supplicant&#039;&#039; で無線接続を管理している場合、フックによって望ましくない接続イベントが作成されてしまう可能性があります。例えば、&#039;&#039;wpa_supplicant&#039;&#039; を停止したときにフックによってインターフェイスが再度立ち上げられてしまうかもしれません。また、[[Netctl#プロファイルの自動切り替え|netctl-auto]] を使用している場合、{{ic|/run/network/wpa_supplicant_&amp;quot;$interface&amp;quot;.conf}} によって &#039;&#039;wpa_supplicant&#039;&#039; は自動的に起動するため、フックから起動する必要はなくなり、結果としてデフォルトのパッケージに含まれているダミーの値しか記述されていない {{ic|/etc/wpa_supplicant/wpa_supplicant.conf}} ファイルのパースエラーが起動時に発生します。&lt;br /&gt;
&lt;br /&gt;
フックを無効にするには、{{ic|dhcpcd.conf}} に {{ic|nohook wpa_supplicant}} を追加してください。&lt;br /&gt;
&lt;br /&gt;
== ヒントとテクニック ==&lt;br /&gt;
&lt;br /&gt;
=== ARP プローブを無効にして DHCP を高速化 ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;dhcpcd&#039;&#039; には DHCP 標準 ([https://www.ietf.org/rfc/rfc2131.txt RFC2131] section 2.2) で勧告されている実装が含まれており、割り当てられた IP アドレスが実際に取得できているかどうか ARP でチェックを行います。ホームネットワークではこの機能はあまり意味がないので、{{ic|/etc/dhcpcd.conf}} に以下の行を追加することで、5秒ほど接続のときにかかる時間を減らすことができます:&lt;br /&gt;
&lt;br /&gt;
 noarp&lt;br /&gt;
&lt;br /&gt;
上記の設定は {{ic|dhcpcd}} に {{ic|--noarp}} を指定するのと同一の効果を持ち、ARP プローブを無効化します。これにより DHCP によるネットワークの接続が高速化されます。&lt;br /&gt;
&lt;br /&gt;
=== 古い DHCP リースを削除 ===&lt;br /&gt;
&lt;br /&gt;
{{ic|/var/lib/dhcpcd/&#039;&#039;interface&#039;&#039;.lease}} ({{ic|&#039;&#039;interface&#039;&#039;}} はリースを得るインターフェイスの名前) ファイルには DHCP サーバーから送信された実際の DHCP リースの応答が含まれています。無線インターフェイスの場合、ファイル名は {{ic|/var/lib/dhcpcd/&#039;&#039;interface&#039;&#039;-&#039;&#039;ssid&#039;&#039;.lease}} になります ({{ic|&#039;&#039;ssid&#039;&#039;}} は無線ネットワークの名前に置き換えてください)。このファイルを使ってサーバーからの最後のリースを判別することができ、また、ファイルの {{ic|mtime}} 属性を使ってリースの発行日時が確認されます。最後のリース情報を使用することで、前回ネットワーク上で確保されたのと同じ IP アドレスをリクエストします。リース情報を使用して欲しくない場合、ファイルを削除してください。&lt;br /&gt;
&lt;br /&gt;
ファイルを削除しても DHCP サーバーから同じ IP アドレスが割り当てられる場合、割り当てを安定化するためにリクエストしてくる DHCP クライアントの ID や DUID を識別するように設定されている可能性があります ([[#DHCP クライアント ID]] を参照)。&#039;&#039;dhcpcd&#039;&#039; を停止して {{ic|/var/lib/dhcpcd/duid}} を削除あるいは名前を変更することでテストができます。&#039;&#039;dhcpcd&#039;&#039; は次回の起動時に新しいファイルを生成します。&lt;br /&gt;
&lt;br /&gt;
DUID は再起動しても変わらない永続的なマシンの識別子であることに注意してください。システムを新しいコンピュータに移動する場合、ファイルをそのまま持っていくと古いコンピュータとして認識されます。&lt;br /&gt;
&lt;br /&gt;
=== マルチブートするときに IP を変える ===&lt;br /&gt;
&lt;br /&gt;
Arch と OS X あるいは Windows をデュアルブートしていて、それぞれ別の IP アドレスを割り当てたい場合、オペレーティングシステムごとに別々の DUID を指定することでリースされる IP を制御することができます。&lt;br /&gt;
&lt;br /&gt;
(XP 以降の) Windows では以下のレジストリキーに DUID が保存されています:&lt;br /&gt;
 \HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters\Dhcpv6DUID &lt;br /&gt;
&lt;br /&gt;
OS X では {{ic|Network\adapter\dhcp preferences panel}} から直接アクセスできます。&lt;br /&gt;
&lt;br /&gt;
[[dnsmasq]] DHCP サーバーを使っている場合、dnsmasq の設定で適切な {{ic|1=dhcp-host=}} ルールを使うことで別々の DUID を使えます。&lt;br /&gt;
&lt;br /&gt;
=== resolv.conf ===&lt;br /&gt;
&lt;br /&gt;
デフォルトの設定では &#039;&#039;dhcpcd&#039;&#039;&#039; は [[resolv.conf]] を上書きします。&lt;br /&gt;
&lt;br /&gt;
{{ic|/etc/dhcpcd.conf}} の最後のセクションに以下を追加することで上書きしないようにすることができます:&lt;br /&gt;
&lt;br /&gt;
 nohook resolv.conf&lt;br /&gt;
&lt;br /&gt;
もしくは {{ic|/etc/resolv.conf.head}} という名前のファイルを作成して DNS サーバーを記述してください。&#039;&#039;dhcpcd&#039;&#039; はこのファイルの中身を {{ic|/etc/resolv.conf}} の冒頭に追加します。&lt;br /&gt;
&lt;br /&gt;
dhcpcd が毎回同じ DNS サーバーを使うように設定したい場合、{{ic|/etc/dhcpcd.conf}} の末尾に以下の行を追加してください ({{ic|&#039;&#039;dns-server-ip-addressses&#039;&#039;}} は DNS の IP アドレスをスペースで区切ったリストに置き換えてください):&lt;br /&gt;
&lt;br /&gt;
 static domain_name_servers=&#039;&#039;dns-server-ip-addresses&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
例えば、Google の DNS サーバーに設定したい場合:&lt;br /&gt;
&lt;br /&gt;
 static domain_name_servers=8.8.8.8 8.8.4.4&lt;br /&gt;
&lt;br /&gt;
== トラブルシューティング ==&lt;br /&gt;
&lt;br /&gt;
=== クライアント ID ===&lt;br /&gt;
&lt;br /&gt;
また、MAC アドレスに基づくクライアント ID をフィルタリングしている DHCPv4 ネットワークを使う場合は、次の行を:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/dhcpcd.conf|&lt;br /&gt;
# Use the same DUID + IAID as set in DHCPv6 for DHCPv4 Client ID as per RFC4361. &lt;br /&gt;
duid&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
以下のように変更してください:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/dhcpcd.conf|&lt;br /&gt;
# Use the hardware address of the interface for the Client ID (DHCPv4).&lt;br /&gt;
clientid&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
こうしないと、DHCP サーバーがあなたの [https://en.wikipedia.org/wiki/DHCPv6 DHCPv6] クライアント ID を正しく読み込めない可能性があります。詳しくは [https://tools.ietf.org/html/rfc4361 RFC 4361] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== まず IP を開放して DHCP の問題を確認する ===&lt;br /&gt;
&lt;br /&gt;
DHCP が間違った IP の割り当てを取得している時、問題が起こることがあります。例えば2つのルーターが VPN で結び付けられている場合が考えられます。修正するには、コンソールで、root 権限を使って IP アドレスを開放してください:&lt;br /&gt;
&lt;br /&gt;
 # dhcpcd -k&lt;br /&gt;
&lt;br /&gt;
それから新しい IP アドレスをリクエストしてください:&lt;br /&gt;
&lt;br /&gt;
 # dhcpcd&lt;br /&gt;
&lt;br /&gt;
おそらくこの2つのコマンドを何度も実行する必要があります。&lt;br /&gt;
&lt;br /&gt;
=== 強情なルーターの問題 ===&lt;br /&gt;
&lt;br /&gt;
(厄介な) ルーターによっては、{{ic|/etc/dhcpcd.conf}} にある以下の行をコメントアウトしないと接続が上手くいかないことがあります:&lt;br /&gt;
&lt;br /&gt;
 require dhcp_server_identifier&lt;br /&gt;
&lt;br /&gt;
ネットワーク上に複数の DHCP サーバーがあるという状況でないかぎり (こういうことは稀です)、コメントアウトすることで問題が発生することはありません。詳しくは [https://technet.microsoft.com/en-us/library/cc977442.aspx このページ] を参照。&lt;br /&gt;
&lt;br /&gt;
=== dhcpcd と systemd ネットワークインターフェイス ===&lt;br /&gt;
&lt;br /&gt;
インターフェイスを指定しないで &#039;&#039;dhcpcd.service&#039;&#039; を[[systemd#ユニットを使う|有効]]にすることもできますが、predictable network interface name を適用する &#039;&#039;systemd-udevd&#039;&#039; と起動時に競合状態になる可能性があります:&lt;br /&gt;
 error changing net interface name wlan0 to wlp4s0: Device or resource busy&amp;quot; &lt;br /&gt;
&lt;br /&gt;
これを避けるために、&#039;&#039;dhcpcd&#039;&#039; を有効にするときは[[#実行]]で説明されているようにインターフェイスを指定して下さい。ただしテンプレートユニットでは有線接続のホットプラグをサポートしていないため、ネットワークケーブルが接続されていないと起動に失敗します。問題を回避したい場合、[[#タイムアウト]]を見てください。&lt;br /&gt;
&lt;br /&gt;
{{man|5|dhcpcd.conf}} で {{ic|denyinterfaces}} または {{ic|allowinterfaces}} を使って dhcpcd がカーネル名にバインドしないようにすることもできます。例:&lt;br /&gt;
&lt;br /&gt;
 denyinterfaces wlan* eth*&lt;br /&gt;
&lt;br /&gt;
=== タイムアウト ===&lt;br /&gt;
&lt;br /&gt;
dhcpcd は単一のインターフェイスで30秒たってもリースが取得できなかった場合 (例えばサーバーが動作していない場合)、エラーを吐いて終了します。&#039;&#039;dhcpcd&#039;&#039; に無期限に待機するよう設定するには、{{ic|timeout}} オプションを {{ic|0}} に設定します:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/systemd/system/dhcpcd@.service.d/timeout.conf|2=&lt;br /&gt;
[Service]&lt;br /&gt;
ExecStart=&lt;br /&gt;
ExecStart=/usr/bin/dhcpcd -w -q &#039;&#039;&#039;-t 0&#039;&#039;&#039; %I&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
そして[[systemd#ユニットファイルの編集|設定をリロード]]してください。&lt;br /&gt;
&lt;br /&gt;
=== dhcpcd@.service によって起動が遅くなる ===&lt;br /&gt;
&lt;br /&gt;
デフォルトでは {{ic|dhcpcd@.service}} は IP アドレスが取得されるまで待機して、それから {{ic|-w}} フラグを使って &#039;&#039;dhcpcd&#039;&#039; をバックグラウンドにフォークします。ユニットを有効化すると、IP アドレスが取得されるまで起動が進まなくなってしまう可能性があります。解決するには、以下の内容でユニットの[[systemd#ドロップインファイル|ドロップインファイル]]を作成してください:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/systemd/system/dhcpcd@.service.d/no-wait.conf|2=&lt;br /&gt;
[Service]&lt;br /&gt;
ExecStart=&lt;br /&gt;
ExecStart=/usr/bin/dhcpcd -b -q %I&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
詳しくは {{Bug|49685}} を参照。&lt;br /&gt;
&lt;br /&gt;
== 参照 ==&lt;br /&gt;
&lt;br /&gt;
* {{man|8|dhcpcd}}&lt;br /&gt;
* {{man|5|dhcpcd.conf}}&lt;/div&gt;</summary>
		<author><name>すてんとる</name></author>
	</entry>
</feed>