拾い物のコンパス

まともに書いたメモ

Arch Linuxの有線LANが繋がらなかったしょうもない話

あるときしばらく有線LANを使わずにWifiでのみネットを使っていた.
久しぶりに有線LANを差したら問題なさそうに見えるのにネットにつながらない(IPが取れてない).
結論を言えばdhcpが動いていなかった.
そんなしょうもない話を戒めに書き残す.
さっさと解決したい人は$ sudo systemctl status dhcpcdする.
原因が同じならそれが答えだ.

環境

いつもの儀式.

$ uname -a
Linux poppycompass 5.4.8-arch1-1 #1 SMP PREEMPT Sat, 04 Jan 2020 23:46:18 +0000 x86_64 GNU/Linux

ただのArch Linux 64bitのようだ.

現象

  1. PCにLANケーブルをつなぐ
  2. LANケーブルコネクタのリンクランプ点灯(緑・オレンジ共)
  3. ネットにつながらない

調査

まずはdmesg

$ dmesg
[26247.169774] e1000e: enp0s31f6 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: Rx/Tx

インターフェイスは立ち上がっている.

$ ip a
2: enp0s31f6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether <MAC addr> brd ff:ff:ff:ff:ff:ff
    inet6 <addr>/64 scope link
       valid_lft forever preferred_lft forever

おや,IPv4のアドレスがない.
世界はIPv6に移行したんだっけ?(してない)

思いつく原因と対応(復旧しなかったやつ)

  • そういえば最近アップデートしたからまさか?
    $ sudo pacman -Syu
  • 原因不明にはこれが効く!
    $ sudo reboot
  • つないだまましばらくしたらつながるだろう
    → つないだまま放置

解決編

うーん,原因はIPv4が取れていないことにありそうだ. Googlearch linux cannot get ip addrで検索してそれっぽいのがあった.
最初の方の"systemctl status dhcpcd", the service is active (running).を見て一応確認

$ systemctl status dhcpcd
Unit enable.service could not be found.
● dhcpcd.service - dhcpcd on all interfaces
     Loaded: loaded (/usr/lib/systemd/system/dhcpcd.service; disabled; vendor preset: disabled)
     Active: inactive (dead)

犯人はこいつのようだ.

$ sudo systemctl start dhcpcd
● dhcpcd.service - dhcpcd on all interfaces
     Loaded: loaded (/usr/lib/systemd/system/dhcpcd.service; disabled; vendor preset: disabled)
     Active: active (running) since Wed 2020-01-08 22:16:53 JST; 3s ago
   ...(snip)...

これで解決.

所感

最初の調査段階でIPが取れていない時点でネットワーク周りのソフトが全部動いているかどうかを確認するべきだったと反省.

参考

https://bbs.archlinux.org/viewtopic.php?id=214111