DHCPCDを使用したネットワーク管理

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Network management using DHCPCD and the translation is 100% complete.

この記事は Gentoo Forum の投稿 をもとに書いたもので、完全なネットワークスタック管理のために dhcpcd を用いる方法を解説しています。

セットアップ

dhcpcd をインストールしてください。つぎに、default ランレベルに追加し、サービスを始動させます:

root #rc-update add dhcpcd default
root #rc-service dhcpcd start

このセットアップ手法は、Gentoo ハンドブック記載のデフォルトのネットワーク設定と異なります。有線と無線でネットワークインタフェイスを自動的に切り替えられるのが利点です。

wpa_supplicant

wpa_supplicant は無線および有線のネットワークインターフェースの認証に利用できます。設定ファイルが存在しない場合は作成してください。

FILE /etc/wpa_supplicant/wpa_supplicant.conf
# 'wheel' グループのユーザに wpa_supplicant の操作を許可する
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=wheel

# このファイルに wpa_gui / wpa_cli が書き込めるようにする
update_config=1

有線インターフェースの認証のためには、Wpa_supplicant/ja#有線_802.1X_セットアップで書かれている設定ファイルを追加してください。


wpa_supplicant を emerge してください(2017 年 4 月に追加されたCONFIG_MATCH_IFACE オプションを使用するためにはバージョン 2.6-r2 以上が必要です。)

root #emerge --ask net-wireless/wpa_supplicant

無線ネットワークインターフェースに -M オプションを指定して、 wpa_supplicant の conf.d ファイルを完成させてください:

FILE /etc/conf.d/wpa_supplicant
wpa_supplicant_args="-B -M -c/etc/wpa_supplicant/wpa_supplicant.conf"

有線インターフェースのために認証が必要な場合は、設定ファイルは次のようになるでしょう

FILE /etc/conf.d/wpa_supplicant
wpa_supplicant_args="-ieth0 -Dwired -c/etc/wpa_supplicant/wpa_supplicant_wired.conf -B -M -c/etc/wpa_supplicant/wpa_supplicant.conf"

構成が完了したら、サービスとして開始してください:

root #rc-update add wpa_supplicant default
root #rc-service wpa_supplicant start


net-wireless/iwd を使った無線

iwd の記事をお読みください。

テスト

dhcpcd サービスを停止させて、-d (--debug) と -B (--nobackground) オプションを有効にした状態で dhcpcd を実行します。接続処理を進める過程が表示されますので確認します。

root #rc-service etc/init.d/dhcpcd stop
root #dhcpcd -dB
dhcpcd-6.11.3 starting
dev: loaded udev
eth0: executing `/lib/dhcpcd/dhcpcd-run-hooks' PREINIT
eth0: executing `/lib/dhcpcd/dhcpcd-run-hooks' NOCARRIER
wlan0: executing `/lib/dhcpcd/dhcpcd-run-hooks' PREINIT
wlan0: executing `/lib/dhcpcd/dhcpcd-run-hooks' CARRIER
DUID xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx
wlan0: IAID XX:XX:XX:XX
wlan0: delaying IPv6 router solicitation for 0.9 seconds
wlan0: delaying IPv4 for 0.3 seconds
eth0: waiting for carrier
wlan0: reading lease `/var/lib/dhcpcd/dhcpcd-wlan0-.lease'
wlan0: rebinding lease of 192.168.178.23
wlan0: sending REQUEST (xid 0x66820be2), next in 3.3 seconds
wlan0: acknowledged 192.168.178.23 from 192.168.178.1
wlan0: leased 192.168.178.23 for 864000 seconds
wlan0: renew in 432000 seconds, rebind in 756000 seconds
wlan0: writing lease `/var/lib/dhcpcd/dhcpcd-wlan0-.lease'
wlan0: IP address 192.168.178.23/24 already exists
wlan0: changing route to 192.168.178.0/24
wlan0: changing default route via 192.168.178.1
wlan0: ARP announcing 192.168.178.23 (1 of 2), next in 2.0 seconds
wlan0: executing `/lib/dhcpcd/dhcpcd-run-hooks' BOUND
wlan0: soliciting an IPv6 router
wlan0: sending Router Solicitation
wlan0: ARP announcing 192.168.178.23 (2 of 2)

静的 IP アドレス

ネットワークインタフェイスカードによっては 静的 IP アドレスで設定することを要します。その場合は GUI で設定してください。もしくは、Dhcpcd#Static_IP_addresses にかかれているように、/etc/dhcpcd.conf に項目を自ら記載する (現在オフラインです) ことでも設定可能です。

Gentoo net.* スクリプトからの移行

Gentoo の net.* スクリプトから移行するには、net.* スクリプトをランレベルから除去することが必要です。

user $rc-config list | grep 'wpa_supplicant\|dhcpcd\|net\.'
  net.wlp8s0                default
  dhcpcd                    default

net. で始まるどのサービスも、ランレベルに入っていてはいけません。上記の例だと、net.wlp8s0 を除去せねばなりません。

root #rc-update del net.wlp8s0
root #rc-service net.wlp8s0 stop

ネットワーク設定がうまく動作したら、Gentoo の net.* スクリプト自体を完全に削除することも可能です。もし削除するのならば、sys-apps/openrcnetifrc USE フラグを無効にして再インストールし、net-misc/netifrc をアンインストールしましょう:

root #echo 'sys-apps/openrc -netifrc' >> /etc/portage/package.use
root #emerge --ask --newuse --oneshot sys-apps/openrc
root #emerge --ask --verbose --depclean net-misc/netifrc

以前の設定ファイルやシンボリックリンクも削除可能です:

root #rm /etc/conf.d/net
root #rm /etc/init.d/net.*

ネットワークが必要なサービス

ネットワークが必要なサービスdhcpcd で操作することは、openrc-0.16.4 で廃止されました。

GUI

dhcpcd 用の GUIは、net-misc/dhcpcd-ui に入っています。

参考

  • Dhcpcd — IPv4 と IPv6 の両方の構成に対応し、幅広く利用されている DHCP クライアントです。
  • Dhcpcd-ui — a Qt and GTK monitor and configuration graphical user interface for dhcpcd.

外部の情報