本文へ移動
vast-cowのブログ
前のページへ戻る

NetworkManagerのチェックポイント機能(nmcli device checkpoint)の使い方

この記事を編集

nmcli device checkpoint は、NetworkManager の設定変更を安全に試すための「復元ポイント(チェックポイント)」機能です。

リモートサーバー(SSH接続中など)でネットワーク設定を変更する際に、設定ミスで通信が切断されても、自動的に元の状態へ戻せるため非常に便利です。


基本的な仕組み

通常、ネットワーク設定を変更すると、

現在の設定
      │
      ▼
新しい設定を適用
      │
      ├──成功 → そのまま使う
      │
      └──失敗 → 通信断

となります。

Checkpointを使うと、

Checkpoint作成
      │
      ▼
新しい設定を適用
      │
      ├──成功
      │      │
      │      ▼
      │  Checkpointを破棄
      │
      └──失敗
             │
             ▼
      タイムアウト後に自動ロールバック

という流れになります。


基本構文

nmcli device checkpoint create [DEVICE...] --timeout 秒

例

nmcli device checkpoint create eth0 --timeout 60

これは

という意味です。


実際の利用例

例えばIPアドレスを変更したい場合

nmcli device checkpoint create eth0 --timeout 60

Checkpointが作成されます。

続いて

nmcli con modify eth0 \
    ipv4.addresses 192.168.1.50/24 \
    ipv4.gateway 192.168.1.1 \
    ipv4.method manual

nmcli con up eth0

を実行します。

もしSSHが切れてしまっても、

60秒後

NetworkManager が自動で

元のIP
元のGateway
元のRoute

へ戻します。


成功したら確定する

変更が成功し通信できることを確認したら

nmcli device checkpoint destroy <checkpoint-id>

を実行します。

すると

チェックポイント削除
=ロールバックしない

となります。


手動でロールバック

途中で失敗したと判断したら

nmcli device checkpoint rollback <checkpoint-id>

で即座に元へ戻せます。


チェックポイント一覧

現在のCheckpointは

nmcli device checkpoint show

で確認できます。

例

ID   CREATED              TIMEOUT
3    2025-01-01 10:00     60

複数デバイスも可能

例えば

nmcli device checkpoint create eth0 bond0 br0 --timeout 120

のようにすると

eth0
bond0
br0

すべてまとめて保存されます。

ブリッジやボンディング構成ではよく利用されます。


--timeout の意味

例えば

--timeout 30

なら

Checkpoint作成
        │
0秒     │
10秒    │ 設定変更
20秒    │ SSH確認
30秒    │ destroyしなければ自動復元

となります。


リモート運用での典型例

SSHで接続中にIP変更を試す場合は、次のような手順が安全です。

nmcli device checkpoint create eth0 --timeout 120

nmcli con modify ...

nmcli con up ...

# SSHが継続していることを確認

nmcli device checkpoint destroy <id>

もし接続できなくなれば、120秒後に自動で元へ戻るため、現地での復旧作業が不要になることがあります。


注意点


まとめ

nmcli device checkpoint は、ネットワーク設定変更時の「セーフティネット」と考えると分かりやすい機能です。

SSH経由でIPアドレス、ルーティング、ブリッジ、VLANなどを変更する運用では、設定ミスによる通信断への保険として非常に有用です。


この記事を編集
この記事を共有:

コメント


前の記事
なぜ昔のHPCではPOWERやSPARC、AIXが使われていたのか
次の記事
Bashの補完がちょっと便利になるAlt-gとReadlineショートカット