systemd でのDHCP のIPアドレスの割当をもらってくる
よくある例なので、ぱぱっと書いておく。
対象
systemd になってるLinuxディストーション。 今回は、 ubuntu / debian で設定をする。
準備するファイル
/etc/systemd/network にファイルを用意する。
/etc/systemd/network/dhcp.network
名前は何でもいい。
ファイルに記載する
[Match] Name=en* [Network] DHCP=yes
DHCPをYESとかくCentっぽい。とにかくネットワークの設定はここ(/etc/systemd/network)にファイルを作って管理する。
固定IPのときは
[Match] Name=en* [Network] Address=192.168.0.15/24 Gateway=192.168.0.1
などとすればOK
再起動する。
sudo systemctl restart systemd-networkd
わたしは、ここで restart networking.service
をやってしまい、反映されないって10数分悩んだ。
ポイント
systemd-networkd で ネットワークを管理する。
/etc/networking/interfce
の networking に依る管理 は systemd-networkd から起動する service になっている。
もちろん 旧来のディストーション依存のやり方でも構わない。ただそのときは sytemd と設定が違うのでググり方を間違えないこと。
2018-06-13 追記
うちの環境では、再起動してもネットワークがつながらないので、ずっと悩んでた。VirtualBoxのホストオンリーアダプタで頻発するから、ホストオンリーアダプタやブリッジネットワークのプロミスキャス・モードだと思ってたら、全然違った。
systemd に networkd が登録されてなかったので、手動登録した。
sudo systemctl enable systemd-networkd
この減少はCentなどでも見られた。インストール時にNIC(ethernet)を自動設定にしてないときに、インストール後にネットワークカードを入れたら間違いなく起きるよね。はぁ。。。
enabled にしたあとのnetworkd の依存関係
takuya@debian01:~$ sudo systemctl list-dependencies systemd-networkd systemd-networkd.service ● ├─org.freedesktop.network1.busname ● ├─system.slice ● └─network.target