ubuntu 17 入れたらネットワーク設定でつまづいた。
VirtualBoxでネットワーク・カードを追加したり消したりしたかったのに、DHCPからIPが振ってこない。 DHCPが有効じゃないのかとか、VBOXの設定を間違えたかとアレコレ時間を浪費したのでメモです。
DHCPからIPが取れない。
DHCPは有効になってるのに、IPアドレスが取れない ip link set DEV up
も試したけどダメだった。
/etc/network/interface を書き換えても無駄だった。→使われない
ネットワークが systemd 管理下に置かれてる。systemd-networkd.service というサービスが制御をしていた。
検索結果を調べたらNetworkManagerが多いのですが、たしかに入ってる場合もあるとは思いますが、 ubuntu Server版 なので特に無いので、systemdの設定を直接する必要があった。
ググってみた結果。/etc/network/interfaces no longer used
という恐ろしい文言を見かけた。
状態の確認
起動しているとか、有効になってるかどうかはまずはステータスを見れば解る。
systemctl status systemd-networkd
設定
設定は、/etc/systemd/network
次の場所に任意のファイル名にして書く。
設定例 /etc/systemd/network/25-enp0s8.network
[Match] Name=enp2s0 [Network] DHCP=ipv4
match も強引なマッチが書ける
[Match] Name=enp* [Network] DHCP=ipv4
スタティックに静的IPを割り振るには
[Match] Name=enp0s8 [Network] DNS=8.8.8.8 Address=192.168.1.87/24 Gateway=192.168.1.254
DNSなどもここで指定する。
/etc/network/interace は何処へ・・・
Archなどもおなじなのですが。
ファイルを作成するのはアレコレ調べたら、やっぱりもう使われてない。systemd に入ってから、こんな所変えてどうするんだよ。。。
The package ifupdown and so /etc/network/interfaces are no longer used. Ubuntu 17.10 Server uses the package netplan instead, which configures systemd-networkd.
ああ、つらい。
ネットワークまわりを変えられるとトラブル多いよな
どうして変えちゃったの。 てか変えるなら /etc/neworking/interfaces のファイルに注意と書いといてよ。。。
/etc/resolv.conf お前もか
この変化で、DNSに関しても動かなくなってる。
唯一の救いは、ディストリ毎の差異が減ることかな
CentOSとDebian系でネットワークの設定方法が異なったり、書式が異なったりすることに依る混乱には遭遇しないのは良いことかもしれない。
参考資料
- https://askubuntu.com/questions/967695/ubuntu-17-10-will-not-accept-static-ip
- https://askubuntu.com/questions/891694/systemd-networkd-daemon-does-not-start-the-dhcp-client
- https://wiki.archlinux.jp/index.php/Systemd-networkd
- http://yukithm.blogspot.jp/2014/05/systemd-networkd.html
- https://qiita.com/nvsofts/items/2e157732b514cfbbdcd0