Ubuntu 26.04 講座 / Netplan·NetworkManager·systemd-networkd の区別

Netplanはネットワーク設定を表現し、NetworkManagerやsystemd-networkdに渡す層です。Ubuntuのネットワークを変更する前には、イメージ名だけで判断せず、該当インターフェースの実際のレンダラーと元の設定ファイルを確認する必要があります。

Netplanと関連サービスの役割

構成要素 役割と一般的な環境
Netplan YAML設定を読み取り、バックエンド設定を生成
NetworkManager 接続プロファイル・Wi-Fiなどを管理する選択可能なバックエンド
systemd-networkd サーバーのインターフェース構成に一般的に使用
systemd-resolved 名前解決を担当し、IP設定の主体とは別

アップグレードしたシステム・クラウドイメージ・ユーザーが変更したVMは基本インストールと異なる場合があります。二つのネットワークサービスが同時に起動していてもインターフェースごとに担当が分かれている可能性があるため、プロセスの有無だけで衝突を断定しません。

UbuntuのNetplanの説明でYAMLとrendererの関係を確認できます。

現在のアドレスと管理主体を確認する

ip -br link
ip -br address
ip route
systemctl is-active NetworkManager systemd-networkd
sudo netplan status --all

インターフェース名とアドレス・デフォルトルートを記録し、netplan statusのバックエンド情報と比較します。インストールされているツールに応じてnmcli connection show --activeまたはnetworkctl statusも確認します。他のバックエンドでunmanagedと表示されていても、現在の接続自体の失敗を意味するわけではありません。

元の設定と生成ファイルを区別する

find /etc/netplan -maxdepth 1 -type f -name '*.yaml' -print
sudo netplan get
resolvectl status

Netplan YAMLは複数のファイルをまとめて処理し、ファイルの順序などで同じインターフェースの重複定義が影響を与えることがあります。netplan getはマージ結果を読み取るのに役立ちます。Wi-Fiのパスワードなどの値が含まれる可能性があるため、出力全体は公開しません。

/run 以下に生成されたバックエンドファイルは、再起動や設定の再生成時に変更される可能性があります。サーバーでもイメージ・インストール履歴によって管理主体が異なる場合があるため、現在のサービス状態と Netplan の renderer を確認し、生成ファイルよりもそれを作った元を探します。

cloud-init と外部自動化の確認

50-cloud-init.yaml のような名前やファイルヘッダーが見える場合は、cloud-init またはプロバイダーによるネットワーク管理の有無を確認します。修正したファイルが元の内容に戻る場合、適用コマンドを繰り返すのではなく、誰が再度書き込むのかを調べます。クラウド管理設定を無効化する作業は、別途の復旧・プロバイダー手順なしで実施しません。

修正経路を一つに決める

この講座のサーバー実習は、systemd-networkd が管理する Netplan YAML を基準とします。既存環境で NetworkManager が実際の管理主体である場合、そのプロファイルと管理手順を保持し、networkd に勝手に切り替えません。インターフェース・担当バックエンド・元の設定ファイル・アドレス・復旧コンソールを記録します。

この記事の確認段階では設定を適用したりサービスを再起動しません。現在の状態を説明できるようにすることで、固定 IP を変更したり障害を復旧する際に変更対象を絞ることができます。