「Dhcpcd」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
34行目: 34行目:
 
dhcpcd: ''interface'': leased 192.168.1.70 for 86400 seconds
 
dhcpcd: ''interface'': leased 192.168.1.70 for 86400 seconds
 
}}
 
}}
  +
  +
{{Tip|{{ic|dhcpcd.service}} が起動に失敗する場合は、[[#dhcpcd と systemd ネットワークインターフェイス]]を見てください。}}
   
 
== 設定 ==
 
== 設定 ==
41行目: 43行目:
 
=== DHCP スタティックルート ===
 
=== DHCP スタティックルート ===
   
  +
スタティックルートをクライアント側に追加する必要がある場合、{{ic|/usr/lib/dhcpcd/dhcpcd-hooks}} に新しい dhcpcd フックスクリプトを作成してください。以下の例は {{ic|192.168.192.5}} のゲートウェイマシンを通じて VPN サブネットにスタティックルートを追加するフックスクリプトです:
If you need to add a static route client-side, create a new dhcpcd hook-script in {{ic|/usr/lib/dhcpcd/dhcpcd-hooks}}. The example shows a new hook-script which adds a static route to a VPN subnet on {{ic|10.11.12.0/24}} via a gateway machine at {{ic|192.168.192.5}}:
 
   
 
{{hc|/usr/lib/dhcpcd/dhcpcd-hooks/40-vpnroute|
 
{{hc|/usr/lib/dhcpcd/dhcpcd-hooks/40-vpnroute|
47行目: 49行目:
 
}}
 
}}
   
  +
名前の {{ic|40}} は dhcpcd が起動した時に最後に実行されるフックスクリプトであることを意味しています。
The {{ic|40}} prefix means that it is the final hook-script to run when dhcpcd starts.
 
   
 
=== DHCP クライアント ID ===
 
=== DHCP クライアント ID ===
   
  +
複数の方法を使って DHCP クライアントをサーバーから一意に識別させることが可能です:
The DHCP client may be uniquely identified in different ways by the server:
 
  +
* ホストネーム (またはクライアントから送信されたホストネームの値)
* hostname (or the hostname value sent by the client),
 
 
* MAC address of the network interface controller through which the connection is being made, linked to this is the third,
 
* MAC address of the network interface controller through which the connection is being made, linked to this is the third,
 
* Identity Association ID (IAID), which is an abstraction layer to differentiate different use-cases and/or interfaces on a single host,
 
* Identity Association ID (IAID), which is an abstraction layer to differentiate different use-cases and/or interfaces on a single host,
 
* DHCP Unique Identifier (DUID).
 
* DHCP Unique Identifier (DUID).
For a further description, see [https://tools.ietf.org/html/rfc3315#section-4.2 RFC 3315].
+
詳しい解説は [https://tools.ietf.org/html/rfc3315#section-4.2 RFC 3315] を見てください。
   
  +
DHCP サーバーの設定によって、オプションは設定する必要がなかったり、もしくは DHCP IP リースをリクエストするのに必須であったりします。
It depends on the DHCP-server configuration which options are optional or required to request a DHCP IP lease. If the ''dhcpcd'' default configuration fails to obtain an IP, the following options are available to use in {{ic|dhcpcd.conf}}:
 
  +
* {{ic|hostname}} sends the hostname set in {{ic|/etc/hostname}}
 
  +
{{Note|大抵は ''dhcpcd'' のデフォルト設定で問題ありません。記載されている識別子は自動的に処理されるので、問題が発生しときにだけ手動で設定を変更してください。}}
* {{ic|clientid}} sends the MAC address as identifier
 
  +
* {{ic|IAID <interface>}} derives the IAID for the {{ic|interface <interface>}} to use for DHCP discovery. Both have to be used [https://bbs.archlinux.org/viewtopic.php?pid=1388376#p1388376 together], but more frequently the next option is used:
 
  +
''dhcpcd'' のデフォルト設定で IP が取得できない場合、{{ic|dhcpcd.conf}} で以下のオプションを使うことができます:
  +
* {{ic|hostname}} は {{ic|/etc/hostname}} で設定されたホストネームを送信します
  +
* {{ic|clientid}} は MAC アドレスを識別子として送信します
  +
* {{ic|iaid <interface>}} derives the IAID to use for DHCP discovery. It has to be used in an interface block (started by {{ic|interface <interface>}}, see [https://bbs.archlinux.org/viewtopic.php?pid=1388376#p1388376]), but more frequently the next option is used:
 
* {{ic|duid}} triggers using a combination of DUID and IAID as identifier.
 
* {{ic|duid}} triggers using a combination of DUID and IAID as identifier.
   
  +
The DUID value is set in {{ic|/etc/dhcpcd.duid}}. For efficient DHCP lease operation it is important that it is unique for the system and applies to all network interfaces alike, while the IAID represents an identifier for each of the systems' interfaces (see [http://tools.ietf.org/html/rfc4361#section-6.1 RFC 4361]).
The DUID value is set in {{ic|/etc/dhcpcd.duid}}.
 
   
Care must be taken on a network running [[Wikipedia:Dynamic DNS|Dynamic DNS]] to ensure that all three are unique. If duplicate DUID values are presented to the DNS server, e.g. in the case where a virtual machine has been cloned and the hostname and MAC have been made unique but the DUID has not been changed, then the result will be that as each client with the duplicated DUID requests a lease the server will remove the predecessor from the DNS record.
+
Care must be taken on a network running [[Wikipedia:ja:ダイナミックドメインネームシステム|Dynamic DNS]] to ensure that all three IDs are unique. If duplicate DUID values are presented to the DNS server, e.g. in the case where a virtual machine has been cloned and the hostname and MAC have been made unique but the DUID has not been changed, then the result will be that as each client with the duplicated DUID requests a lease the server will remove the predecessor from the DNS record.
   
 
=== ARP プローブを無効にして DHCP を高速化 ===
 
=== ARP プローブを無効にして DHCP を高速化 ===
   
  +
''dhcpcd'' には DHCP 標準 ([http://www.ietf.org/rfc/rfc2131.txt RFC2131] section 2.2) で勧告されている実装が含まれており、割り当てられた IP アドレスが実際に取得できているかどうか ARP でチェックを行います。ホームネットワークではこの機能はあまり意味がないので、{{ic|/etc/dhcpcd.conf}} に以下の行を追加することで、5秒ほど接続のときにかかる時間を減らすことができます:
''dhcpcd'' contains an implementation of a recommendation of the DHCP standard ([http://www.ietf.org/rfc/rfc2131.txt RFC2131] section 2.2) to check via ARP if the assigned IP address is really not taken. This seems mostly useless in home networks, so you can save about 5 seconds on every connect by adding the following line to {{ic|/etc/dhcpcd.conf}}:
 
   
 
noarp
 
noarp
   
  +
上記の設定は {{ic|dhcpcd}} に {{ic|--noarp}} を指定するのと同一の効果を持ち、ARP プローブを無効化します。これにより DHCP によるネットワークの接続が高速化されます。
This is equivalent to passing {{ic|--noarp}} to {{ic|dhcpcd}}, and disables the described ARP probing, speeding up connections to networks with DHCP.
 
   
 
=== 予備の固定プロファイル ===
 
=== 予備の固定プロファイル ===
   
''dhcpcd'' の中で固定プロファイルを設定して DHCP のリースが失敗したときに、そのプロファイルにフォールバックすることができます。常にマシンに接続できるようにするために固定プロファイルを"リカバリ"プロファイルとして使うことで、特に [[Raspberry Pi|Raspberry Pi]] などの [[wikipedia:Headless computer|ヘッドレスマシン]]で役に立ちます。
+
''dhcpcd'' の中で固定プロファイルを設定して DHCP のリースが失敗したときに、そのプロファイルにフォールバックすることができます。常にマシンに接続できるようにするために固定プロファイルを"リカバリ"プロファイルとして使うことで、特に [[Raspberry Pi]] などの [[wikipedia:Headless computer|ヘッドレスマシン]]で役に立ちます。
   
  +
以下の例では IP アドレスが {{ic|192.168.1.1}} で、ゲートウェイとネームサーバが {{ic|192.168.1.23}} の {{ic|static_eth0}} プロファイルを設定しており、このプロファイルを {{ic|eth0}} インターフェイスのフォールバックに指定しています。
The following example configures a {{ic|static_eth0}} profile with {{ic|192.168.1.1}} as IP address, {{ic|192.168.1.23}} as gateway and name server, and makes this profile fallback for interface {{ic|eth0}}.
 
   
 
{{hc|/etc/dhcpcd.conf|<nowiki>
 
{{hc|/etc/dhcpcd.conf|<nowiki>
101行目: 107行目:
   
 
{{Note|
 
{{Note|
  +
* {{ic|dhcpcd.conf}} で {{ic|nohook}} オプションを使うことで個別のスクリプトを無効化できます。
* Each script can be disabled using the {{ic|nohook}} option in {{ic|dhcpcd.conf}}.
 
  +
* {{ic|env}} オプションを使うことで'''すべての'''フックに環境変数を設定することが可能です。例えば、{{ic|1=env force_hostname=YES}} を使えば hostname フックに常時ホストネームを設定するように指定できます。
* The {{ic|env}} option can be used to set an environment variable for '''all''' hooks. For example, you can force the hostname hook to always set the hostname with {{ic|1=env force_hostname=YES}}.
 
 
}}
 
}}
   
 
=== 10-wpa_supplicant ===
 
=== 10-wpa_supplicant ===
   
The {{ic|10-wpa_supplicant}} hook automatically launches [[WPA supplicant]] on wireless interfaces. It is started only if:
+
{{ic|10-wpa_supplicant}} フックは無線インターフェイスで [[WPA supplicant]] を自動的に起動します。起動するのは以下の条件を満たした場合に限られます:
   
  +
* インターフェイスを使っている ''wpa_supplicant'' プロセスがまだない場合。
* no ''wpa_supplicant'' process is already listening on that interface.
 
  +
* ''wpa_supplicant'' 設定ファイルが存在する場合。''dhcpcd'' はデフォルトで以下のファイルを (この順番で) チェックします:
* a ''wpa_supplicant'' configuration file exists. ''dhcpcd'' checks
 
   
 
/etc/wpa_supplicant/wpa_supplicant-"$interface".conf
 
/etc/wpa_supplicant/wpa_supplicant-"$interface".conf
117行目: 123行目:
 
/etc/wpa_supplicant.conf
 
/etc/wpa_supplicant.conf
   
by default, in that order, but a custom path can be set by adding {{ic|1=env wpa_supplicant_conf=''configuration_file_path''}} into {{ic|/etc/dhcpcd.conf}}.
+
ただし、{{ic|/etc/dhcpcd.conf}} {{ic|1=env wpa_supplicant_conf=''configuration_file_path''}} と追加することでカスタムパスを追加することもできます。
   
 
{{Note|The hook stops at the first configuration file found, thus you should take this into consideration if you have several ''wpa_supplicant'' configuration files, otherwise ''dhcpcd'' might end up using the wrong file.}}
 
{{Note|The hook stops at the first configuration file found, thus you should take this into consideration if you have several ''wpa_supplicant'' configuration files, otherwise ''dhcpcd'' might end up using the wrong file.}}
   
If you manage wireless connections with ''wpa_supplicant'' itself, the hook may create unwanted connection events. For example, if you stop ''wpa_supplicant'' the hook may bring the interface up again. To disable it, add {{ic|nohook wpa_supplicant}} to {{ic|dhcpcd.conf}}.
+
If you manage wireless connections with ''wpa_supplicant'' itself, the hook may create unwanted connection events. For example, if you stop ''wpa_supplicant'' the hook may bring the interface up again. Also, if you use [[Netctl#プロファイルの自動切り替え|netctl-auto]], ''wpa_supplicant'' is started automatically with {{ic|/run/network/wpa_supplicant_"$interface".conf}} for config, so starting it again from the hook is unnecessary and may result in boot-time parse errors of the {{ic|/etc/wpa_supplicant/wpa_supplicant.conf}} file, which only contains dummy values in the default packaged version.
  +
  +
フックを無効にするには、{{ic|dhcpcd.conf}} に {{ic|nohook wpa_supplicant}} を追加してください。
   
 
== Tips and tricks ==
 
== Tips and tricks ==
   
=== Remove old DHCP lease ===
+
=== 古い DHCP リースを削除 ===
   
 
The file {{ic|/var/lib/dhcpcd/dhcpcd-''interface''.lease}}, where {{ic|''interface''}} is the name of the interface on which you have a lease, contains the actual DHCP lease reply sent by the DHCP server. It is used to determine the last lease from the server, and its {{ic|mtime}} attribute is used to determine when it was issued. This last lease information is then used to request the same IP address previously held on a network, if it is available. If you do not want that, simply delete this file.
 
The file {{ic|/var/lib/dhcpcd/dhcpcd-''interface''.lease}}, where {{ic|''interface''}} is the name of the interface on which you have a lease, contains the actual DHCP lease reply sent by the DHCP server. It is used to determine the last lease from the server, and its {{ic|mtime}} attribute is used to determine when it was issued. This last lease information is then used to request the same IP address previously held on a network, if it is available. If you do not want that, simply delete this file.
  +
  +
If the DHCP server still assigns the same IP address, this may happen because it is configured to keep the assignment stable and recognizes the requesting DHCP client id or DUID (see [[#DHCP_Client_Identifier]]). You can test it by stopping ''dhcpcd'' and removing or renaming {{ic|/etc/dhcpcd.duid}}. ''dhcpcd'' will generate a new one on next run.
  +
  +
Keep in mind that the DUID is intended as persistent machine identifier across reboots and interfaces. If you are transferring the system to new computer, preserving this file should make it appear as old one.
  +
  +
=== マルチブートするときに IP を変える ===
  +
  +
If you are dualbooting Arch and OS X or Windows and want each to receive different IP addresses, you can exert control about the IPs leased by specifying a different DUID in each operating system installation.
  +
  +
(XP 以降の) Windows では以下のレジストリキーに DUID が保存されています:
  +
\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters\Dhcpv6DUID
  +
  +
OS X では {{ic|Network\adapter\dhcp preferences panel}} から直接アクセスできます。
  +
  +
[[dnsmasq]] DHCP サーバーを使っている場合、dnsmasq の設定で適切な {{ic|1=dhcp-host=}} ルールを使うことで別々の DUID を使えます。
   
 
== トラブルシューティング ==
 
== トラブルシューティング ==
163行目: 186行目:
 
=== 強情なルーターの問題 ===
 
=== 強情なルーターの問題 ===
   
  +
(厄介な) ルーターによっては、{{ic|/etc/dhcpcd.conf}} にある以下の行をコメントアウトしないと接続が上手くいかないことがあります:
For some (incompliant) routers, you will not be able to connect properly unless you comment the line
 
   
 
require dhcp_server_identifier
 
require dhcp_server_identifier
   
  +
ネットワーク上に複数の DHCP サーバーがあるという状況でないかぎり (こういうことは稀です)、コメントアウトすることで問題が発生することはありません。詳しくは [http://technet.microsoft.com/en-us/library/cc977442.aspx このページ] を参照。
in {{ic|/etc/dhcpcd.conf}}. This should not cause issues unless you have multiple DHCP servers on your network (not typical); see [http://technet.microsoft.com/en-us/library/cc977442.aspx this page] for more information.
 
   
 
=== dhcpcd と systemd ネットワークインターフェイス ===
 
=== dhcpcd と systemd ネットワークインターフェイス ===
175行目: 198行目:
   
 
これを避けるために、''dhcpcd'' を有効にするときは [[#実行]] で説明されているようにインターフェイスを指定して下さい。
 
これを避けるために、''dhcpcd'' を有効にするときは [[#実行]] で説明されているようにインターフェイスを指定して下さい。
  +
  +
=== タイムアウト ===
  +
  +
dhcpcd は単一のインターフェイスで30秒たってもリースが取得できなかった場合 (例えばサーバーが動作していない場合)、エラーを吐いて終了します。''dhcpcd'' に無期限に待機するよう設定するには、{{ic|timeout}} オプションを {{ic|0}} に設定します:
  +
  +
{{hc|/etc/systemd/system/dhcpcd@.service.d/timeout.conf|2=
  +
[Service]
  +
ExecStart=
  +
ExecStart=/usr/bin/dhcpcd -w -q '''-t 0''' %I
  +
}}
  +
  +
そして[[systemd#ユニットファイルの編集|設定をリロード]]してください。
   
 
== 参照 ==
 
== 参照 ==

2015年3月7日 (土) 12:20時点における版

関連記事

dhcpcd は DHCP と DHCPv6 のクライアントです。現在は最も機能豊富なオープンソースの DHCP クライアントであり、ホームページに全ての機能のリストが載っています。

ノート: dhcpcd (DHCP client デーモン) は dhcpd (DHCP (server) デーモン) とは違います。

インストール

dhcpcd パッケージは公式リポジトリから入手できます。base グループに含まれているため、通常は既にあなたのシステムにインストールされているはずです。

また、dhcpcd デーモン (と任意で wpa_supplicant) の GTK+ フロントエンドである dhcpcd-uiAUR を使うこともできます。設定ダイアログで、パスフレーズを入力して無線ネットワークに接続することができます。

実行

dhcpcd は基本的にサービスファイル dhcpcd@.service で操作します、インターフェイス名を引数として指定します (詳しくは systemd#ユニットを使う を見て下さい):

# systemctl start dhcpcd@interface.service
# systemctl enable dhcpcd@interface.service

手動で dhcpcd を起動するには、次のコマンドを実行してください:

# dhcpcd interface
dhcpcd: version 5.1.1 starting
dhcpcd: interface: broadcasting for a lease
...
dhcpcd: interface: leased 192.168.1.70 for 86400 seconds
ヒント: dhcpcd.service が起動に失敗する場合は、#dhcpcd と systemd ネットワークインターフェイスを見てください。

設定

メインの設定は /etc/dhcpcd.conf で行います、詳細は dhcpcd.conf(5) を参照してください。よく使われるオプションについては以下で説明します。

DHCP スタティックルート

スタティックルートをクライアント側に追加する必要がある場合、/usr/lib/dhcpcd/dhcpcd-hooks に新しい dhcpcd フックスクリプトを作成してください。以下の例は 192.168.192.5 のゲートウェイマシンを通じて VPN サブネットにスタティックルートを追加するフックスクリプトです:

/usr/lib/dhcpcd/dhcpcd-hooks/40-vpnroute
ip route add 10.11.12.0/24 via 192.168.192.5

名前の 40 は dhcpcd が起動した時に最後に実行されるフックスクリプトであることを意味しています。

DHCP クライアント ID

複数の方法を使って DHCP クライアントをサーバーから一意に識別させることが可能です:

  • ホストネーム (またはクライアントから送信されたホストネームの値)
  • MAC address of the network interface controller through which the connection is being made, linked to this is the third,
  • Identity Association ID (IAID), which is an abstraction layer to differentiate different use-cases and/or interfaces on a single host,
  • DHCP Unique Identifier (DUID).

詳しい解説は RFC 3315 を見てください。

DHCP サーバーの設定によって、オプションは設定する必要がなかったり、もしくは DHCP IP リースをリクエストするのに必須であったりします。

ノート: 大抵は dhcpcd のデフォルト設定で問題ありません。記載されている識別子は自動的に処理されるので、問題が発生しときにだけ手動で設定を変更してください。

dhcpcd のデフォルト設定で IP が取得できない場合、dhcpcd.conf で以下のオプションを使うことができます:

  • hostname/etc/hostname で設定されたホストネームを送信します
  • clientid は MAC アドレスを識別子として送信します
  • iaid <interface> derives the IAID to use for DHCP discovery. It has to be used in an interface block (started by interface <interface>, see [1]), but more frequently the next option is used:
  • duid triggers using a combination of DUID and IAID as identifier.

The DUID value is set in /etc/dhcpcd.duid. For efficient DHCP lease operation it is important that it is unique for the system and applies to all network interfaces alike, while the IAID represents an identifier for each of the systems' interfaces (see RFC 4361).

Care must be taken on a network running Dynamic DNS to ensure that all three IDs are unique. If duplicate DUID values are presented to the DNS server, e.g. in the case where a virtual machine has been cloned and the hostname and MAC have been made unique but the DUID has not been changed, then the result will be that as each client with the duplicated DUID requests a lease the server will remove the predecessor from the DNS record.

ARP プローブを無効にして DHCP を高速化

dhcpcd には DHCP 標準 (RFC2131 section 2.2) で勧告されている実装が含まれており、割り当てられた IP アドレスが実際に取得できているかどうか ARP でチェックを行います。ホームネットワークではこの機能はあまり意味がないので、/etc/dhcpcd.conf に以下の行を追加することで、5秒ほど接続のときにかかる時間を減らすことができます:

noarp

上記の設定は dhcpcd--noarp を指定するのと同一の効果を持ち、ARP プローブを無効化します。これにより DHCP によるネットワークの接続が高速化されます。

予備の固定プロファイル

dhcpcd の中で固定プロファイルを設定して DHCP のリースが失敗したときに、そのプロファイルにフォールバックすることができます。常にマシンに接続できるようにするために固定プロファイルを"リカバリ"プロファイルとして使うことで、特に Raspberry Pi などの ヘッドレスマシンで役に立ちます。

以下の例では IP アドレスが 192.168.1.1 で、ゲートウェイとネームサーバが 192.168.1.23static_eth0 プロファイルを設定しており、このプロファイルを eth0 インターフェイスのフォールバックに指定しています。

/etc/dhcpcd.conf
# define static profile
profile static_eth0
static ip_address=192.168.1.1
static routers=192.168.1.23
static domain_name_servers=192.168.1.23

# fallback to static profile on eth0
interface eth0
fallback static_eth0

arping オプションを使うなど、もっと複雑な設定をすることもできます。詳しくは dhcpcd.conf(5) を見て下さい。

フック

dhcpcd/usr/lib/dhcpcd/dhcpcd-hooks/ にあるスクリプトを辞書順で全て実行します。詳しくは dhcpcd(5)dhcpcd-run-hooks(8) を見て下さい。

ノート:
  • dhcpcd.confnohook オプションを使うことで個別のスクリプトを無効化できます。
  • env オプションを使うことですべてのフックに環境変数を設定することが可能です。例えば、env force_hostname=YES を使えば hostname フックに常時ホストネームを設定するように指定できます。

10-wpa_supplicant

10-wpa_supplicant フックは無線インターフェイスで WPA supplicant を自動的に起動します。起動するのは以下の条件を満たした場合に限られます:

  • インターフェイスを使っている wpa_supplicant プロセスがまだない場合。
  • wpa_supplicant 設定ファイルが存在する場合。dhcpcd はデフォルトで以下のファイルを (この順番で) チェックします:
/etc/wpa_supplicant/wpa_supplicant-"$interface".conf
/etc/wpa_supplicant/wpa_supplicant.conf
/etc/wpa_supplicant-"$interface".conf
/etc/wpa_supplicant.conf

ただし、/etc/dhcpcd.confenv wpa_supplicant_conf=configuration_file_path と追加することでカスタムパスを追加することもできます。

ノート: The hook stops at the first configuration file found, thus you should take this into consideration if you have several wpa_supplicant configuration files, otherwise dhcpcd might end up using the wrong file.

If you manage wireless connections with wpa_supplicant itself, the hook may create unwanted connection events. For example, if you stop wpa_supplicant the hook may bring the interface up again. Also, if you use netctl-auto, wpa_supplicant is started automatically with /run/network/wpa_supplicant_"$interface".conf for config, so starting it again from the hook is unnecessary and may result in boot-time parse errors of the /etc/wpa_supplicant/wpa_supplicant.conf file, which only contains dummy values in the default packaged version.

フックを無効にするには、dhcpcd.confnohook wpa_supplicant を追加してください。

Tips and tricks

古い DHCP リースを削除

The file /var/lib/dhcpcd/dhcpcd-interface.lease, where interface is the name of the interface on which you have a lease, contains the actual DHCP lease reply sent by the DHCP server. It is used to determine the last lease from the server, and its mtime attribute is used to determine when it was issued. This last lease information is then used to request the same IP address previously held on a network, if it is available. If you do not want that, simply delete this file.

If the DHCP server still assigns the same IP address, this may happen because it is configured to keep the assignment stable and recognizes the requesting DHCP client id or DUID (see #DHCP_Client_Identifier). You can test it by stopping dhcpcd and removing or renaming /etc/dhcpcd.duid. dhcpcd will generate a new one on next run.

Keep in mind that the DUID is intended as persistent machine identifier across reboots and interfaces. If you are transferring the system to new computer, preserving this file should make it appear as old one.

マルチブートするときに IP を変える

If you are dualbooting Arch and OS X or Windows and want each to receive different IP addresses, you can exert control about the IPs leased by specifying a different DUID in each operating system installation.

(XP 以降の) Windows では以下のレジストリキーに DUID が保存されています:

\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters\Dhcpv6DUID 

OS X では Network\adapter\dhcp preferences panel から直接アクセスできます。

dnsmasq DHCP サーバーを使っている場合、dnsmasq の設定で適切な dhcp-host= ルールを使うことで別々の DUID を使えます。

トラブルシューティング

クライアント ID

また、MAC アドレスに基づくクライアント ID をフィルタリングしている DHCPv4 ネットワークを使う場合は、次の行を:

/etc/dhcpcd.conf
# Use the same DUID + IAID as set in DHCPv6 for DHCPv4 Client ID as per RFC4361. 
duid

以下のように変更してください:

/etc/dhcpcd.conf
# Use the hardware address of the interface for the Client ID (DHCPv4).
clientid

こうしないと、DHCP サーバーがあなたの DHCPv6 クライアント ID を正しく読み込めない可能性があります。詳しくは RFC 4361 を見て下さい。

まず IP を開放して DHCP の問題を確認する

DHCP が間違った IP の割り当てを取得している時、問題が起こることがあります。例えば2つのルーターが VPN で結び付けられている場合が考えられます。修正するには、コンソールで、root 権限を使って IP アドレスを開放してください:

# dhcpcd -k

それから新しい IP アドレスをリクエストしてください:

# dhcpcd

おそらくこの2つのコマンドを何度も実行する必要があります。

強情なルーターの問題

(厄介な) ルーターによっては、/etc/dhcpcd.conf にある以下の行をコメントアウトしないと接続が上手くいかないことがあります:

require dhcp_server_identifier

ネットワーク上に複数の DHCP サーバーがあるという状況でないかぎり (こういうことは稀です)、コメントアウトすることで問題が発生することはありません。詳しくは このページ を参照。

dhcpcd と systemd ネットワークインターフェイス

インターフェイスを指定しないで dhcpcd.service有効にすることもできますが、predictable network interface name を適用とする systemd-udevd と起動時に競合状態になる可能性があります:

error changing net interface name wlan0 to wlp4s0: Device or resource busy" 

これを避けるために、dhcpcd を有効にするときは #実行 で説明されているようにインターフェイスを指定して下さい。

タイムアウト

dhcpcd は単一のインターフェイスで30秒たってもリースが取得できなかった場合 (例えばサーバーが動作していない場合)、エラーを吐いて終了します。dhcpcd に無期限に待機するよう設定するには、timeout オプションを 0 に設定します:

/etc/systemd/system/dhcpcd@.service.d/timeout.conf
[Service]
ExecStart=
ExecStart=/usr/bin/dhcpcd -w -q -t 0 %I

そして設定をリロードしてください。

参照