vagrant上のarchlinuxで、static IPが設定されなくなった

2023年4月頃に、vagrant上の、archlinuxを再構築したところ、ホストオンリーアダプタ経由でSSHログインできなくなった。

vagrant sshでログインして、調べることにした。 ホストオンリーアダプタに、指定したIPアドレスが設定されていない。 対象のデバイス名が、これまでのenp0s8ではなく、eth1になっている。 どうやら、ネットワーク管理方法が、変更になったようだ。

プロセスリストを確認すると、systemd-networkdというものがいる。 systemd-netoworkdについて調べる。 /etc/systemd/network/の下に、2つのファイルがある。

  • 80-dhcp.network
  • eth1.network

まずは、eth1.networkを見る。 eth1にスタティックIPを設定する内容がある。問題ない。

80-dhcp.networkを見る。 eth*に、DHCPでIPを設定する内容にみえる。 eth*には、eth1も含んでいるので、eth1にもDHCPでIPが割り当てられているのではないか。 試しに、以下のように書き換えて、再起動するとつながる。

[Match]
Name=eth0

[Network]
 DHCP=ipv4

毎回修正するのは、つらいので、Varantfileにこの処理を書き構築時に済ませるようにした。

  • Vagrantfile
  • ネットワークの再起動があるので、最後に書いた方が良さげです。
   config.vm.provision "shell", inline: <<-SHELL
     sed -i -e "s/Name=eth\*/Name=eth0/" /etc/systemd/network/80-dhcp.network
     systemctl restart systemd-networkd
   SHELL