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 50% complete.
Outdated translations are marked like this.
Other languages:
English • ‎español • ‎polski • ‎русский • ‎中文(中国大陆)‎ • ‎日本語 • ‎한국어

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

セットアップ

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

root #rc-update add dhcpcd default
root #/etc/init.d/dhcpcd start

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

wpa_supplicant

wpa_supplicant can be used for authentication of wireless and wired network interfaces. Create the configuration file if it does not exist.

FILE /etc/wpa_supplicant/wpa_supplicant.conf
# Allow users in the 'wheel' group to control wpa_supplicant
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=wheel

# Make this file writable for wpa_gui / wpa_cli
update_config=1

For authentication for the wired interface add the configuration file mentioned in Wpa_supplicant#Setup_wired_802.1X.

First follow the setup guide for dhcpcd.

Emerge wpa_supplicant (Version >=2.6-r2 is needed in order to get the CONFIG_MATCH_IFACE option added in April 2017):

root #emerge --ask net-wireless/wpa_supplicant

Using OpenRC

Complete its conf.d file with the -M option for the wireless network interface:

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

In case authentication for the wired interface is needed, this configuration file should look like:

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"

With the configuration done, run it as a service:

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

Using Systemd

Systemd allows a simpler per-device setup without needing to create the above conf.d files. As explained under wpa_supplicant item in the Native services section, a service symlink such as wpa_supplicant@wlan0.service looks for a separate configuration file to manage the device wlan0 in this case.

To configure a specific device this way, first copy or rename the /etc/wpa_supplicant/wpa_supplicant.conf file as /etc/wpa_supplicant/wpa_supplicant-DEVNAME.conf where DEVNAME should be the name of the device, such as wlan0.

Then, navigate to /etc/systemd/system/multi-user.target.wants and create the symlink:

root #ln -s /lib/systemd/system/wpa_supplicant@.service wpa_supplicant@DEVNAME.service

where DEVNAME is same device name as in the conf file above.

Important
Note the @ signs on both arguments in the symlink step.

Test the system:

root #systemctl daemon-reload
root #systemctl start wpa_supplicant@DEVNAME
root #systemctl status wpa_supplicant@DEVNAME

Wireless using net-wireless/iwd

See the iwd article.

テスト

dhcpcdwpa_supplicant を停止させ、デバッグを有効にした状態で dhcpcd を実行します。dhcpcd が接続処理を進める過程がフォアグラウンドで表示されますので確認します。

root #/etc/init.d/dhcpcd stop
root #killall wpa_supplicant
root #dhcpcd -dB
dhcpcd[23772]: version 6.4.5 starting
dhcpcd[23772]: udev: starting
dhcpcd[23772]: dev: loaded udev
...
...

静的 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 #/etc/init.d/net.wlp8s0 stop

ネットワーク設定がうまく動作したら、Gentoo の net.* スクリプト自体を完全に削除することも可能です。もし削除するのならば、OpenRC をnetifrc 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 --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 に入っています。

参考

外部の情報