Ubuntu 26.04 講座 / 固定IP・DNS設定とネットワーク変更の復旧

固定IPの変更は、単にアドレスを入力する作業ではなく、インターフェース・ルーティング・DNSおよび管理アクセス経路を合わせて変更する作業です。まずコンソールと元のバックアップを確保し、Netplanの構文チェック、制限時間テスト、新しいアクセスと再起動の検証の順で進めます。

実際のネットワーク値と設定の管理主体を確認する

ip -br address
ip route
resolvectl status
sudo netplan get

使用するアドレスが他の機器と重複していないか、まず確認します。この講座ではVM作成講座の新しいホスト専用ネットワークを使用します。サーバーは192.168.56.20/24、許可されるLinuxクライアントは192.168.56.10/24、ホストは192.168.56.1/24です。pingの応答がないだけで未使用アドレスと判断せず、実際のNIC・MAC・現在のデフォルトルートを記録します。

以下のYAMLはsystemd-networkdが管理する2つの有線NICの新しい実習用サーバー用です。enp0s3がNAT・DHCP、enp0s8がホスト専用ネットワークかどうか、実際のMACと設定で確認します。cloud-initなど自動生成された設定は、該当管理主体の手順を通じて変更します。

バックアップとコンソールをまず準備する

(
set -eu
backup=$(sudo mktemp -d /root/netplan-backup.XXXXXX)
sudo cp -a /etc/netplan "$backup/"
printf 'Backup: %s\n' "$backup"
)

バックアップパスと実際に編集するファイル名を記録し、VMウィンドウやプロバイダコンソールでログインしておきます。既存のSSHセッションは維持します。同じインターフェースを定義した別のYAMLがある場合は、マージ結果を確認し、新しいファイルを追加して上書きを期待しません。

アドレス・ルート・DNSを一つの構成で作成する

確認したNetplanの元ファイルをsudoeditで開き、実際のインターフェース名に合わせて修正します。以下はNATのDHCPアドレス・デフォルトルート・DNSを維持し、ホスト専用NICにのみ固定アドレスを設定する全体の最小例です。既存ファイルの他のNIC・IPv6・ブリッジ・VLANポリシーは保持し、新しいファイルと既存の定義が重複しません。

network:
  version: 2
  renderer: networkd
  ethernets:
    enp0s3:
      dhcp4: true
    enp0s8:
      dhcp4: false
      addresses:
        - 192.168.56.20/24

ファイル権限は管理者が読み書きできるよう制限し、sudo chmod 600 実際の設定ファイルを適用する場合も対象パスを再確認します。IPv6を利用する環境のDHCPv6・RA・DNSポリシーは別途保持します。IPv4の例示であることを理由に既存のIPv6設定を削除しません。

Ubuntuネットワーク構成ガイドは、アドレス・ルート・名前解決の関係とNetplanの例を説明しています。

構文確認後に制限時間付きで適用する

sudo netplan generate && sudo netplan try --timeout 120

generateが失敗した場合は適用せず、エラーのファイル・行・キーを修正します。tryが待機している間に、他のターミナルやクライアントで新しいアドレスに接続し、デフォルトルート・DNS・必要なサービスを確認してから承認します。タイムアウト復元がすべての環境で完璧だと仮定せず、コンソールを維持します。

クライアントアドレスと実際の通信経路を確認する

networkdを使用する2番目のServer VMは同じ構造で、実際のホスト専用NICアドレスのみを192.168.56.10/24に設定します。サーバーは.20を使用します。両方のデバイスのNATインターフェースはDHCPでインターネット経路を維持し、VM間通信はホスト専用ネットワークで直接行うため、NATポートフォワーディングは作成しません。

ip -br address
ip route
ip route get 192.168.56.10
resolvectl query ubuntu.com

上記のroute getはサーバーからクライアント.10への経路を調べるコマンドです。クライアントでは宛先を.20に変更します。ホスト専用の宛先はそのNICを、インターネットのデフォルトルートはNAT NICを使用する必要があります。ホスト専用NICには.1をゲートウェイ・DNSとして追加しません。

接続失敗時に元のファイルと状態を復元する

接続が切れたら、コンソールで実際のアドレスとディスク上のYAMLを確認します。失敗した変更ファイルのみをバックアップの元と比較して復元し、今回追加したファイルがあればそのファイルのみを元に戻します。元を復元した後、generateを通過すれば、計画通りに適用し、既存のアドレス・ルート・DNSが戻ったか確認します。

変更が成功しても、再起動の前後で別々にテストする必要があります。名前解決はresolvectl query ubuntu.comなどで行い、サービスは新しいクライアント接続で確認します。ICMPがブロックされる可能性があるため、ping1つで全体のインターネット接続の成功・失敗を判断しません。