ESXi 上の Rocky Linux 9 サーバーで、NetworkManager を用いて IPv4 の固定IPアドレスを設定した際に発生したトラブルと、その原因・対処法についてまとめます。
本記事は 自分用の備忘録 として、同様の環境で作業する方にも参考になるように詳細を整理したものです。
1. 環境
- OS:Rocky Linux 9
- 環境:ESXi 上の仮想マシン
- 設定対象インターフェース:
ens0p3(名称は記憶ベース) - 設定ツール:NetworkManager
- 設定方法:
.nmconnectionファイルの直接編集(nmcli/nmtui は使用せず)
固定IPを設定しようとして .nmconnection ファイルを直接編集したところ、設定が反映されず、プロファイルが NIC に紐付かない問題が発生しました。
2. どんな問題が起きたか
主な症状は次の通りです。
.nmconnectionに記述した IP、ゲートウェイ、DNS が反映されない- NIC(例:
ens0p3)と設定した connection profile が紐付かない - IPv4 設定が空のまま(DHCPでもmanualでもない)
- 再起動しても状態変わらず
原因を調査した結果、次の点が判明しました。
3. 原因:IPv6設定を単にコメントアウトしても無効化されない
.nmconnection の設定ファイル内では、
[ipv6]
method=auto
をコメントアウトしただけでは IPv6 が無効化されません。
その結果、NetworkManager が デフォルトの ipv6.method=auto を補完 し、
「IPv6 が中途半端に有効化された profile」
が生成されてしまいました。
これが原因で connection profile の読み込みが正常に行われず、IPv4 の設定も反映されなくなっていました。
NetworkManager の仕様として、
- コメントアウト = 設定なし
- 設定なしの場合、デフォルト値を補完
という動作になります。
4. 失敗した設定例(再現用)
※値はサンプルにしています。
[connection]
id=static-ens0p3
interface-name=ens0p3
type=ethernet
[ipv4]
address1=192.168.1.50/24,192.168.1.1 #[ipv6] #method=auto
一見 IPv6 が無効化されているように見えますが、実際は NetworkManager がデフォルト値を補完して以下と同じ状態になります:
ipv6.method=auto
5. 正しい設定例(成功パターン)
[connection]
id=static-ens0p3
interface-name=ens0p3
type=ethernet
autoconnect=true
[ipv4]
method=manual address1=192.168.1.50/24,192.168.1.1 dns=8.8.8.8;1.1.1.1;
[ipv6]
method=disabled
ポイント
- ipv4.method=manual を明示すること
- 指定しない場合、NetworkManager が DHCP に戻してしまう
- ipv6.method=disabled を必ず設定する
- コメントアウトでは無効化されない
interface-name=を明記して NIC と profile を確実に紐付ける
6. 設定反映の手順
.nmconnection を編集したあと、以下のいずれかが必要です。
(1) 設定の再読み込み
nmcli connection reload
(2) profile の再有効化
nmcli con down static-ens0p3
nmcli con up static-ens0p3
(3) NetworkManager 再起動(必要な場合)
systemctl restart NetworkManager
7. 確認に使える nmcli コマンド一覧
現在のデバイス状態
nmcli device show ens0p3
connection profile 一覧
nmcli connection show
profile の詳細内容
nmcli connection show static-ens0p3
IPv4/IPv6 の method を確認
nmcli -f ipv4.method,ipv6.method connection show static-ens0p3
実際のIPアドレス確認
ip a show ens0p3
8. トラブルシューティングチェックリスト
| チェック項目 | 詳細 |
|---|---|
ipv4.method=manual を指定しているか | DHCPに戻される最も多い原因 |
ipv6.method=disabled を明記しているか | コメントアウトでは無効化されない |
interface-name= が NIC と一致しているか | 命名が違うと profile が紐付かない |
nmcli connection reload を実行したか | 反映漏れ防止 |
| ESXi の仮想NICが変更されていないか | NIC再生成で名前が変わるケースあり |
9. まとめ(再発防止メモ)
今回ハマったポイントは次の 2 点でした:
- IPv6 をコメントアウトしても無効化されない
→method=disabledを明示する必要がある - NetworkManager は設定がない項目をデフォルト値で補完する
→ 思わぬ形で profile が壊れる原因になる
NetworkManager の設定ファイルは表面上シンプルですが、
「コメントアウト = 完全に無効化」にはならない点が落とし穴でした。
同じように .nmconnection を編集する作業を行う方の参考になれば幸いです。
