8
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

systemd環境のArch LinuxでDHCP(dhclient)を使ったネットワーク設定

Posted at

概要

DHCPをつかったネットワーク設定をしたかったが、デフォルトで使用可能なdhcpcdがうまく動かなかったので、
dhclientを使うことにした。

やったこと

dhcpcdがうまく動かない

Arch Linuxの公式ドキュメントではdhcpcdを使用した例が記載されているが、下記のようなメッセージが出て成功しなかった。

# dhcpcd enp2s0

enp2s0: soliciting a DHCP lease
enp2s0: solicting an IPv6 router
enp2s0: no IPv6 Routers available
timed out
dhcpcd exited

dhclientなら動いた

ためしにdhclient enp2s0を実行したらIPアドレスが設定されたので、こちらを使うことにした。

※なぜenp2s0を指定しているかというと、ip aで見えているデバイス名がこれだったから

systemdにお任せする

起動時に実行してほしいので、systemdにお任せする。

# systemctl enable dhclient@enp2s0.service

コマンドは正常終了したが、OS再起動後に確認すると、IPアドレスが設定されていない

ログを見る。

# journalctl -u dhclient@enp2s0.service

...
Cannot find device "enp2s0"
...

もう一度ip aを実行してみるが、やっぱりある。

起動時のログをみる

# dmesg | grep enp2s0

どうやらeth0からenp2s0にリネームしているらしい

デバイス名の指定を変える

# systemctl enable dhclient@eth0.service

再起動したところ、正しくIPアドレスは設定されていた。

ただし、ip aで確認できるデバイス名がenp2s0からeth0に変わっていた。実害ないし、いいか…

余談:systemdのサービス名(ユニット名?)に含めた" @eth0"という記法

ユニット設定ファイル(/usr/lib/systemd/system以下にある)内で、"%I"がeth0に置換されるようになる。

余談:dhclientはデフォルトでインストールされていない

pacmanコマンドでdhclientをインストールする必要があるが、ネットワークが繋がっていない状態のはず。

こんな感じで一時的に手動でネットワーク設定をするのがよいかもしれない。(IPアドレスは各々の環境に合わせること)

# ip link set eth0 up
# ip addr add 192.168.1.2/24 broadcast 192.168.1.255 dev eth0
# ip route add default via 192.168.1.1

DNSも忘れずに設定しよう。(一時的な設定)

# cat /etc/resolv.conf

nameserver 8.8.8.8

やり残し

  • なぜdhcpcdが動かなかったか
    • なんとなくIPv6を無効にしたり、こっちもeth0にしてみたら、動かないかな
    • tcpdumpしたら何かわかるかも
  • systemdでdhclientを起動するようにしたら、デバイス名がenp2s0がeth0に変わってしまった
    • 気にはなるけど、今のところ困っていない
8
5
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?