Fullmoon System

CentOS 7.9のネットワーク設定:ifcfg・nmcliと移行時の注意点

EdwardMoon

CentOS 7.9のネットワーク設定は、既存サーバーの復旧と移行のための手順として扱ってください。CentOS Linux 7は2024年6月30日にサポートが終了しています。新しい本番サーバーにはサポート中のRocky LinuxやRHELを使用し、NetworkManagerの接続プロファイルでネットワークを管理します。この記事では、誤ったIPとブロードキャストの例を修正し、遠隔接続を保護するバックアップ、適用、検証、復旧の順序を説明します。

例では文書用のアドレス帯192.0.2.0/24を使用します。適用前にIP、プレフィックス、ゲートウェイ、DNS、インターフェース名を実環境の値へ置き換えてください。コンソールや遠隔管理カードから復旧できることも先に確認します。

CentOS 7.9のネットワーク設定:ifcfgのバックアップ、NetworkManager nmcliへの移行、接続検証
サポートが終了した環境のifcfg設定をバックアップ・検証し、NetworkManager接続プロファイルへ移行する流れ

作業前にEOLと変更範囲を確認する

CentOS 7のVaultは過去のパッケージを保管するリポジトリであり、セキュリティサポートを復活させるものではありません。インターネットに公開しているサーバーは隔離し、ネットワークを復旧した後、資産とデータをサポート中のOSへ移行します。

まず、現在の接続を管理しているのがNetworkManagerか、従来のnetwork-scriptsかを確認します。デフォルトルート、DNS、実際のインターフェース名を記録しておけば、復旧時に推測せずに済みます。

cat /etc/centos-release
systemctl is-active NetworkManager
nmcli general status
nmcli device status
nmcli connection show
ip -br address
ip route show
cat /etc/resolv.conf

現在の設定と遠隔復旧経路を保存する

SSH経由で直接設定を適用すると、接続が切れる場合があります。コンソール接続を確認し、ネットワーク設定、ルーティング、DNSの出力を保存してください。NetworkManagerのプロファイルも同じバックアップに含めます。

STAMP=$(date +%Y%m%d-%H%M%S)
sudo install -d -m 0700 "/root/network-backup-${STAMP}"
sudo cp -a /etc/sysconfig/network-scripts   "/root/network-backup-${STAMP}/"
nmcli -f all connection show   | sudo tee "/root/network-backup-${STAMP}/nmcli-connections.txt" >/dev/null
ip address show   | sudo tee "/root/network-backup-${STAMP}/ip-address.txt" >/dev/null
ip route show table all   | sudo tee "/root/network-backup-${STAMP}/ip-route.txt" >/dev/null
cat /etc/resolv.conf   | sudo tee "/root/network-backup-${STAMP}/resolv.conf.txt" >/dev/null

従来のifcfgファイルを使用する場合

既存のCentOS 7.9サーバーがifcfgファイルを読み込む場合に限り、次の形式を使用します。アドレスとゲートウェイはいずれも例示用の192.0.2.0/24内です。IPとブロードキャストで異なるネットワークを指定しないでください。CIDRプレフィックスを指定する場合、通常はBROADCASTを省略できます。

TYPE=Ethernet
BOOTPROTO=none
NAME=ens192
DEVICE=ens192
ONBOOT=yes
IPADDR=192.0.2.10
PREFIX=24
GATEWAY=192.0.2.1
DNS1=192.0.2.53
DEFROUTE=yes
IPV6INIT=yes

ファイル名とDEVICEは実際のインターフェースに合わせます。複数NICがある場合はDEFROUTEとrouteファイルを確認し、意図せず複数のデフォルトルートが作成されないようにしてください。ポリシールーティングが必要な場合は別途設計します。

# 既存ファイルを空にせず、必要な項目だけを編集する。
sudoedit /etc/sysconfig/network-scripts/ifcfg-ens192
sudo chown root:root /etc/sysconfig/network-scripts/ifcfg-ens192
sudo chmod 0600 /etc/sysconfig/network-scripts/ifcfg-ens192
sudo grep -Ev '^(#|$)' /etc/sysconfig/network-scripts/ifcfg-ens192

接続プロファイルを安全に適用する

次のnmcli手順は、NetworkManagerが実行中で対象インターフェースを管理している場合にのみ使用します。まずnmcli device statusでens192がunmanagedでないことを確認してください。network-scriptsだけを使うサーバーではnmcliの適用コマンドを実行せず、コンソールから対象インターフェースをifdown/ifupします。同じインターフェースで2つの管理方式を混用しないでください。

遠隔サーバーでnetworkサービスやNetworkManager全体を再起動しないでください。作業時間帯とコンソールを確保してから、対象の接続だけを起動します。新しいSSHセッションの検証が終わるまで、既存のセッションは閉じないでください。

sudo nmcli connection reload
nmcli connection show
sudo nmcli connection up ens192

NetworkManagerのnmcliを使用する場合

Rocky Linux 9とRHEL 9系では、NetworkManagerの接続プロファイルが基本です。次は既存プロファイル名を変数で指定し、固定IPv4アドレス、ゲートウェイ、DNSをまとめて変更する例です。

CON='System ens192'
sudo nmcli connection modify "$CON"   ipv4.method manual   ipv4.addresses 192.0.2.10/24   ipv4.gateway 192.0.2.1   ipv4.dns 192.0.2.53   ipv4.never-default no

nmcli -f connection.id,ipv4.method,ipv4.addresses,ipv4.gateway,ipv4.dns   connection show "$CON"
sudo nmcli connection up "$CON"

クラウドイメージでは、cloud-initやプロバイダーのエージェントがネットワークプロファイルを書き直す場合があります。nmcliで変更する前に、イメージの方針とプロバイダーの資料を確認してください。

アドレス、経路、DNSを検証する

コマンドの成功表示だけで作業を終えないでください。リンクとアドレスを確認した後、デフォルトルート、ゲートウェイへの到達性、DNS名前解決、実際のサービスポートを確認します。

nmcli device status
nmcli -f GENERAL.STATE,IP4.ADDRESS,IP4.GATEWAY,IP4.DNS device show ens192
ip -br link show ens192
ip -br address show ens192
ip route get 192.0.2.1
ping -c 3 192.0.2.1
getent ahosts example.com
ss -lntup

問題が発生した場合の復旧

次の復旧例もNetworkManagerが管理する接続を対象としています。network-scripts環境では、バックアップファイルを復元してから、コンソールで対象インターフェースをifdown/ifupして反映します。

コンソールでバックアップを復元し、プロファイルを再読込して対象の接続だけを起動します。ファイルを上書きする前に、失敗した状態も別フォルダーへ保存してください。事後分析に役立ちます。

sudo cp -a /etc/sysconfig/network-scripts   "/root/network-failed-$(date +%Y%m%d-%H%M%S)"
sudo cp -a /root/network-backup-YYYYMMDD-HHMMSS/network-scripts/.   /etc/sysconfig/network-scripts/
sudo nmcli connection reload
sudo nmcli connection up ens192

移行チェックリスト

現在の設定全体のバックアップ、コンソール経路の確認、対象プロファイルの変更、別端末での新しいSSH接続の試験、サポート中のLinuxへの移行、という順で作業を管理します。

  1. コンソールまたは遠隔管理カードと、作業前のバックアップを確保する。
  2. インターフェース名、IP、プレフィックス、ゲートウェイ、DNS、静的経路を記録する。
  3. IPの重複とデフォルトルートの競合を確認する。
  4. 対象の接続だけに適用し、既存のSSHセッションを維持する。
  5. 新しいSSH接続とアプリケーションのヘルスチェックを確認する。
  6. CentOS 7を隔離した状態で、サポート中のLinuxへ移行する。

公式資料と関連記事

この作業は、設定ファイルを1つコピーすれば済むものではありません。現在の管理主体と復旧経路を確認してから対象の接続だけを変更し、アドレス、経路、DNSを層ごとに検証します。サポート終了サーバーでは、ネットワークの復旧から移行まで完了させてください。