netplanを敢えて使わないという選択肢。
ubuntu では netplanを使うのだが、macvlan / vlan など凝った設定は非対応なのでsystemd-netword を使うことになる。だったらWifiもnetplanをやめて systemd/networkに設定を統一したい
systemd/network に設定を集約
netplan と systemd/networkdに設定が分散が好ましくないと判断した。wifi 設定を systemd/network に持ち込むことにした。
設定箇所
設定箇所は2つである。
- /etc/systemd/network
- wpa_suppicant
もしすでにnetplanでwifi接続していたら削除する
- netplan のwifi 設定解除
デバイス名に注意
今回使うwifi デバイス は wlan0
なので、その名前を指定する。設定ファイル名は命名規則があって、デバイス名をちゃんと入れないと駄目なようだ。
systemd/networkにwifi 設定を書く
/etc/systemd/network/00-wlan0.network を作成
cat <<EOS | sudo tee /etc/systemd/network/00-wlan0.network [Match] Name=wlan0 SSID=AEBE1345A [Network] DHCP=yes EOS
これで、systemd-networkの設定をすることができる。
wpa_suppicant の設定
wpa_supplicant は、ssidのパスフレーズファイルと、サービス起動の2つ
wpa_supplicant-wlan0.conf ファイルの作成
echo PASS | \ sudo wpa_passphrase SSID | \ sudo tee /etc/wpa_supplicant/wpa_supplicant-wlan0.conf
実行すると入力待ちになるので、wifi パスフレーズを入力する。
wpa_supplicant の起動
wpa_supplicant を起動してやる。
sudo systemctl enable wpa_supplicant@wlan0 sudo systemctl start wpa_supplicant@wlan0
netplan の除去
neplanの設定が生きている場合は、netplanの設定を除去してやる
sed -i .back 's/^/#/g' /etc/netplan/50-cloud-init.yaml # ファイルは状況によって異なる。
netplanの生成
sudo netplan --debug generate sudo netplan --debug apply
これで、netplan はオフになる。ただし、Wifi経由で接続中であれば注意すること。
ネットワーク再起動
最後にネットワークを起動してやる
sudo systemctl restart systemd-networkd.service
再起動後にネットワークを確認
sudo ip addr show dev wlan0
ip がDHCPから降って来るはずである。