MENU

RHELとAlmaLinuxでifcfgからkeyfile形式へネットワーク設定を移行する段階フローと切り戻し

目次

ifcfg形式が非推奨になった背景

Red Hat Enterprise Linux(RHEL)のネットワーク設定は、長らく /etc/sysconfig/network-scripts/ifcfg-* という独自形式のファイル群で管理されてきました。このifcfg形式はRed Hat独自の仕様であり、NetworkManagerが普及する以前から存在します。一方、NetworkManagerは上流プロジェクトとして keyfile と呼ばれるINI形式の標準フォーマットをデフォルト設定として採用しており、ifcfg形式はifcfg-rhプラグインを介した互換レイヤーとして動作してきました。

RHEL 9(2022年5月リリース)からifcfg-rhプラグインは非推奨(deprecated)扱いとなり、NetworkManager-initscripts-ifcfg-rh パッケージをインストールしない限りifcfg形式での読み込みは行われない構成に変わりました。そして2025年にリリースされたRHEL 10では、ifcfg-rhプラグインがデフォルトパッケージから完全に除外されています。AlmaLinuxはRHELと互換バイナリディストリビューションであるため、同じタイムラインでこの変更が適用されています。

この変更が実害をもたらすのは、主にRHEL 8 / AlmaLinux 8から9以降へアップグレードした環境や、自動化スクリプトがifcfg形式のファイルを直接生成・編集している環境です。設定ファイルの形式が読み込まれなくなると、再起動時にネットワーク接続が失われるリスクがあります。

keyfile形式の構造を把握する

keyfile形式の設定ファイルは /etc/NetworkManager/system-connections/ ディレクトリに配置されます。ファイル名の慣例は <接続名>.nmconnection で、パーミッションは 600(オーナーroot)が必須です。パーミッションが緩いとNetworkManagerがそのファイルを読み込まないため注意が必要です。

以下は静的IPを持つ有線接続の想定例です(架空の構成)。

[connection]
id=eth0-static
uuid=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
type=ethernet
interface-name=eth0
autoconnect=true

[ethernet]

[ipv4]
method=manual
addresses=192.168.1.100/24
gateway=192.168.1.1
dns=192.168.1.1;8.8.8.8;

[ipv6]
method=disabled

[proxy]

ifcfg形式と対応する主なパラメータ名の違いは次のとおりです。

  • BOOTPROTO=static → [ipv4] method=manual
  • IPADDR= / PREFIX= → addresses=(CIDR表記)
  • GATEWAY= → gateway=
  • DNS1= / DNS2= → dns=(セミコロン区切り)
  • ONBOOT=yes → autoconnect=true
  • DEVICE= → interface-name=

UUIDは uuidgen コマンドで生成するか、nmcli による自動生成に任せるのが確実です。手書きの際にUUIDが重複したり形式が不正だと接続が作成されない原因になります。

移行前の準備と現状確認

移行作業は、対象サーバーへのコンソールアクセス(またはIPMI・シリアルコンソール)を確保した状態で行うことを推奨します。SSHのみで作業した場合、途中で接続が切断されると復旧手段がなくなります。

現在の接続プロファイルを確認する

# 全接続プロファイルと設定ファイルの場所を確認
nmcli -f NAME,UUID,FILENAME connection show

# ファイル名が /etc/sysconfig/network-scripts/ 配下なら ifcfg 形式
# /etc/NetworkManager/system-connections/ 配下なら keyfile 形式

FILENAME カラムに /etc/sysconfig/network-scripts/ifcfg- が表示されるプロファイルが移行対象です。すでに /etc/NetworkManager/system-connections/ 配下に表示されているものはkeyfile形式に移行済みです。

ifcfgファイルのバックアップを取得する

# バックアップ先ディレクトリを作成
mkdir -p /root/ifcfg-backup-$(date +%Y%m%d)

# ifcfg ファイルを一括コピー
cp /etc/sysconfig/network-scripts/ifcfg-* \
   /root/ifcfg-backup-$(date +%Y%m%d)/

ルートレベルのバックアップだけでなく、スナップショット機能(LVM・VM・クラウドストレージ)が利用できる環境ではあらかじめスナップショットを取得しておくとより安全です。

段階的な移行手順

NetworkManager 1.26以降(RHEL 9 / AlmaLinux 9のデフォルト版に含まれます)では、nmcli connection migrate サブコマンドが利用できます。このコマンドはifcfg形式のプロファイルをkeyfile形式に変換して /etc/NetworkManager/system-connections/ へ書き出し、元のifcfgファイルを削除します。

1本ずつ段階的に移行する(推奨)

# 対象プロファイル名を確認(例: eth0-static)
nmcli connection show

# 1件ずつ移行
nmcli connection migrate eth0-static

# 移行後に新ファイルが生成されたことを確認
ls -la /etc/NetworkManager/system-connections/

# 接続を再ロードして動作確認
nmcli connection reload
nmcli connection up eth0-static

# 疎通確認
ping -c 3 192.168.1.1

1プロファイルずつ移行し、疎通確認を経てから次のプロファイルへ進む方法が切り戻しのしやすさの観点から推奨されます。

全プロファイルを一括移行する場合

# 全プロファイルをまとめて移行(確認なし・注意して実行)
nmcli connection migrate

# 移行後のファイル一覧確認
ls -la /etc/NetworkManager/system-connections/

# NetworkManager を再起動せず設定のみリロード
nmcli connection reload

一括移行コマンドはifcfgファイルを削除してから進むため、途中でエラーが発生した場合に元の状態に戻せないリスクがあります。プロファイル数が少ない検証環境では一括でも問題ありませんが、本番環境では段階的な移行を選択するのが一般的です。

生成されたkeyfileのパーミッションを確認する

# パーミッションが 600 になっているか確認
stat /etc/NetworkManager/system-connections/*.nmconnection

# 600 でなければ修正
chmod 600 /etc/NetworkManager/system-connections/*.nmconnection
chown root:root /etc/NetworkManager/system-connections/*.nmconnection

nmcli connection migrate 経由で生成したファイルは通常 600 に設定されますが、手動でファイルをコピー・編集した場合はパーミッションがずれることがあります。NetworkManagerは600以外のパーミッションを持つkeyfileを無視するため、必ず確認してください。

移行後の動作検証

設定ファイルの変換が完了したら、接続が想定どおりに機能するかを体系的に確認します。

接続状態とIP設定の確認

# 接続プロファイルの詳細確認(FILENAME列でkeyfile形式であることを確認)
nmcli -f NAME,UUID,FILENAME,STATE connection show

# IPアドレスが正しく付与されているか確認
ip -4 addr show

# デフォルトルートの確認
ip route show default

# DNSサーバーの確認
resolvectl status 2>/dev/null || nmcli dev show | grep DNS

再起動後の永続性を確認する

# systemd 経由で NetworkManager をリスタート(再起動の代替としての確認)
systemctl restart NetworkManager

# 接続が自動再確立されるか確認
sleep 5 && nmcli connection show --active

可能であれば実際にサーバーを再起動し、ネットワーク接続が自動で復元されることを確認します。autoconnect=true がkeyfileに含まれていない場合、再起動後に接続が上がりません。移行後のファイルに autoconnect=true(または autoconnect=1)が設定されているかを必ず確認してください。

切り戻し手順と注意点

移行後に接続が期待どおり動作しない場合、取得したバックアップからifcfg形式を復元できます。ただしRHEL 9 / AlmaLinux 9でifcfg形式を使用するには NetworkManager-initscripts-ifcfg-rh パッケージが必要なため、このパッケージの有無も確認します。

# ifcfg-rh プラグインパッケージの有無を確認
rpm -q NetworkManager-initscripts-ifcfg-rh

# パッケージがなければインストール(RHEL 9 / AlmaLinux 9 のみ対応。RHEL 10以降は不可)
dnf install NetworkManager-initscripts-ifcfg-rh

# バックアップからifcfgファイルを復元
cp /root/ifcfg-backup-YYYYMMDD/ifcfg-* /etc/sysconfig/network-scripts/

# 競合を避けるために新しいkeyfileを削除または無効化
rm /etc/NetworkManager/system-connections/対象接続名.nmconnection

# NetworkManager の設定リロード
nmcli connection reload

# 接続を確認
nmcli connection show

よくあるつまずきとして、切り戻し後にifcfgとkeyfileの両方に同名のプロファイルが存在してNetworkManagerが混乱するケースがあります。両方のディレクトリを確認し、重複を排除してからリロードしてください。

また、Ansibleやシェルスクリプトなどの自動化ツールがifcfgファイルを直接生成している場合は、ツール側の対応も必要です。NetworkManager向けの自動化にはAnsibleの community.general.nmcli モジュールや network システムロールの利用が現行標準となっています。

2026年現行環境でのバージョン別差分

2026年10月時点での各バージョンにおけるifcfg / keyfile対応状況は以下のとおりです。

RHEL 8 / AlmaLinux 8

ifcfg形式がデフォルトで有効。keyfile形式も利用可能で、NetworkManager 1.26以降では nmcli connection migrate コマンドが使えます。RHEL 8のフルサポートは2024年5月に終了しており、メンテナンスサポート2フェーズ(2029年5月まで)に移行しています。新規構築よりもRHEL 9以降へのアップグレードパスを検討する時期です。

RHEL 9 / AlmaLinux 9

keyfile形式がデフォルト。ifcfg-rhプラグインは NetworkManager-initscripts-ifcfg-rh パッケージ経由で引き続き利用可能ですが、非推奨ステータスです。RHEL 8からのインプレースアップグレード(leapp 利用)の場合、既存のifcfgファイルはそのままコピーされ、互換パッケージがインストールされた状態でアップグレードが完了するため、移行作業を意図的に行わない限りifcfg形式が残り続けます。このため、アップグレード後の環境でも本記事の手順は有効です。

RHEL 10 / AlmaLinux 10

ifcfg-rhプラグインが完全に廃止されており、NetworkManager-initscripts-ifcfg-rh パッケージ自体が提供されていません。ifcfg形式のファイルが /etc/sysconfig/network-scripts/ に存在しても、NetworkManagerはそれを読み込みません。RHEL 9からRHEL 10へアップグレードする場合は、事前にkeyfile形式への移行を完了しておくことが必須条件です。RHEL 9上で nmcli connection migrate を実行して移行を済ませてからアップグレードを行うのが、現在推奨されている手順です。

なお、NetworkManager のバージョンが 1.26 未満(RHEL 8.0〜8.2 の初期状態など)では nmcli connection migrate コマンド自体が存在しないため、この場合はkeyfileを手動で作成するか、一度 nmcli connection delete で接続を削除してから nmcli connection add で再作成する方法を取ります。

「コマンドは打てる。次は”現場で通用する型”を最短で身につけたい」——そんなあなたへ。

ネットの断片的なTipsをコピペするだけでは、体系的な運用スキルはなかなか積み上がりません。リナックスマスター.JPの無料メルマガ「リナマガ」では、現場で実際に使うLinuxサーバー運用の考え方を、順を追って実務目線でお届けしています。いま登録された方には、安全なサーバー構築の「型」をまとめた『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼント中です。

>> 図解60P『Linux入門マニュアル』を無料で受け取る
(メルマガ登録は10秒・いつでも解除OK)

※ 「独学の時間がもったいない」「プロから現場の技術を最短で学びたい」という本気の方には、2日で実務レベルが身につく初心者向けハンズオンセミナーもご用意しています。

PR・広告

Linuxで動かしながら学ぶTCP/IPネットワーク入門(Amazon)

IPアドレス・ルーティング・名前解決などネットワークの基礎をLinux上で手を動かして学べる入門書。

Amazonで見る

※ Amazonのアソシエイトとして、当サイトは適格販売により収入を得ています。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次