NetworkManagerを使用してRHEL/CentOSで静的IPアドレスを設定する

`nmcli`を使用してRHELまたはCentOSで永続的な静的IPを設定する方法。ゲートウェイ、DNS、アクティベーション、ロールバック確認を含みます。

NetworkManagerを使用してRHEL/CentOSで静的IPアドレスを設定する

ネットワーキングはサーバーで最初に正しく設定する必要があるものの一つです。RHELおよびCentOSでは、NetworkManagerを使用してインターフェースファイルを手動編集せずに永続的な静的IPアドレスを設定でき、新しいEnterprise Linuxリリースではより安全です。

このガイドでは、アドレス、ゲートウェイ、DNSサーバーを設定し、プロファイルをアクティベートし、変更が再起動後も持続することを確認するためのnmcliコマンドを説明します。

NetworkManagerとnmcliの理解

設定手順に入る前に、使用する主要コンポーネントを明確にしましょう。

NetworkManagerとは?

NetworkManagerはネットワーク設定を処理するデーモンで、ネットワーク接続の管理を容易にします。イーサネット、Wi-Fi、モバイルブロードバンド、VPNなど、さまざまな接続タイプを管理できます。ネットワークデバイスを自動的に検出して設定し、アクティブなネットワーク接続を維持しようとし、必要に応じて利用可能な接続を切り替えます。サーバーでは、ネットワークインターフェースが正しく設定され、再起動後も持続することを保証します。

nmcliとは?

nmcliはNetworkManagerのコマンドラインクライアントです。ターミナルからNetworkManagerを制御し、ネットワーク接続を設定できます。グラフィカルインターフェースが利用できないヘッドレスサーバー環境で特に便利です。nmcliコマンドは直感的で、ネットワークデバイスのステータス表示から複雑な接続プロファイルの作成・変更まで、NetworkManagerの全機能にアクセスする堅牢な方法を提供します。

前提条件

このガイドに従うには、以下を確認してください。

  • ルート権限: ネットワーク設定を変更するにはsudoアクセスまたはrootユーザーとしてログインする必要があります。
  • システム情報: 使用予定の静的IPアドレス、サブネットマスク(またはCIDR表記)、デフォルトゲートウェイ、DNSサーバーIPアドレス。
  • 特定されたネットワークインターフェース: 設定するネットワークインターフェース名(例:enp0s3eth0)を知っていること。その確認方法も説明します。

静的IPアドレスのステップバイステップ設定

以下はnmcliを使用した静的IPアドレスの設定方法です。

ステップ1: ネットワークインターフェースを特定する

まず、設定するネットワークインターフェースの名前を知る必要があります。nmcli deviceまたはnmcli device statusを使用して、アクティブなネットワークデバイスとそのステータスを一覧表示できます。

nmcli device status

出力例:

DEVICE     TYPE      STATE                   CONNECTION
enp0s3     ethernet  connected               System enp0s3
lo         loopback  unmanaged               --

この例では、enp0s3がイーサネットインターフェースです。インターフェース名をメモしてください。

ステップ2: 新しいネットワーク接続プロファイルを作成する

既存のDHCP管理プロファイルを直接変更するよりも、静的IP設定用に新しい接続プロファイルを作成するのが一般的に良い方法です。特に簡単に元に戻せるようにしたい場合に便利です。接続プロファイルは、特定のネットワーク接続のすべての設定を保存します。

新しいイーサネット接続プロファイルを作成するには、nmcli connection addコマンドを使用します。接続タイプ、説明的な接続名(con-name)、インターフェース名(ifname)を指定します。

sudo nmcli connection add type ethernet con-name my-static-eth ifname enp0s3
  • type ethernet: イーサネット接続を指定します。
  • con-name my-static-eth: この新しい接続プロファイルに名前を割り当てます。説明的な名前を選んでください。
  • ifname enp0s3: この接続プロファイルを物理ネットワークインターフェースenp0s3にリンクします。

代替方法: 既存のプロファイルを変更する

既存の接続(例:nmcli device statusの出力にあるSystem enp0s3)を変更したい場合は、既存のcon-nameを使用してnmcli connection modifyを使用します。

sudo nmcli connection modify "System enp0s3" # 接続名に置き換えてください

注意: 簡潔さと明確さのために、このガイドではmy-static-ethという新しい接続プロファイルを作成したと仮定します。

ステップ3: IPv4設定を構成する(IP、ゲートウェイ、DNS)

次に、my-static-eth接続プロファイルの静的IPアドレス、ゲートウェイ、DNSサーバーを設定しましょう。DHCPを無効にするために、IPv4メソッドをmanualに設定することが重要です。

IPアドレスとゲートウェイの設定

ipv4.addressesipv4.gatewayプロパティを使用します。IPアドレスはCIDR表記(例:192.168.1.100/24)で指定します。

sudo nmcli connection modify my-static-eth ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1
  • ipv4.addresses 192.168.1.100/24: 静的IPアドレスを192.168.1.100、サブネットマスクを24ビット(255.255.255.0)に設定します。
  • ipv4.gateway 192.168.1.1: ネットワークのデフォルトゲートウェイを設定します。

DNSサーバーの設定

1つ以上のDNSサーバーIPアドレスを指定します。複数のアドレスはカンマで区切ります。

sudo nmcli connection modify my-static-eth ipv4.dns "1.1.1.1,8.8.8.8"

組織が内部DNSを運用している場合は、代わりにそのリゾルバーIPを使用してください。例えば、プライベートサーバーでは192.168.1.10192.168.1.11を使用するかもしれません。

IPv4のDHCPを無効にする

IPv4メソッドをmanualに設定します。そうしないと、NetworkManagerがこのプロファイルに対してDHCPを試みる可能性があります。

sudo nmcli connection modify my-static-eth ipv4.method manual

サーバーがこの接続でIPv6を使用しない場合は、明示的に無効にします。

sudo nmcli connection modify my-static-eth ipv6.method disabled

ネットワークがIPv6に依存していない場合のみこれを行ってください。

ステップ4: 静的プロファイルをアクティベートする

新しい接続を起動します。SSH経由で作業している場合は、コンソールアクセスから実行するか、アクティブインターフェースを変更する前にロールバックをスケジュールしてください。

sudo nmcli connection up my-static-eth

同じインターフェースで古いDHCPプロファイルがまだアクティブな場合は、静的プロファイルが機能することを確認した後に停止します。

sudo nmcli connection down "System enp0s3"

"System enp0s3"nmcli connection showから取得した実際の古い接続名に置き換えてください。

ステップ5: アドレス、ルート、DNSを確認する

アクティブな接続を確認します。

nmcli connection show --active

IPアドレスを確認します。

ip addr show enp0s3

デフォルトルートを確認します。

ip route

次のようなルートが表示されるはずです。

default via 192.168.1.1 dev enp0s3

NetworkManagerが管理するDNS設定を確認します。

nmcli device show enp0s3 | grep DNS

次に、実際の接続をテストします。

ping -c 3 192.168.1.1
ping -c 3 1.1.1.1
getent hosts example.com

最初のコマンドはゲートウェイをチェックし、2番目はアウトバウンドIP接続をチェックし、3番目はDNS解決をチェックします。

リモート変更を安全に行う

静的IPの変更は、アドレスやゲートウェイを間違えるとSSHセッションを切断する可能性があります。リモートでプロファイルを適用する前に、別のセッションを開いておき、ロールバックをスケジュールすることを検討してください。

sudo shutdown -r +5 "ネットワークロールバック再起動"

新しい静的IPが機能する場合は、再起動をキャンセルします。

sudo shutdown -c

再起動が許容されないシステムでは、一時的なatジョブを作成するか、帯域外コンソールアクセスを使用して、ルートが間違っている場合に回復できるようにします。

まとめ

永続的なRHELおよびCentOSの静的IP設定にはnmcli接続プロファイルを使用してください。最小限の設定セットはipv4.addressesipv4.gatewayipv4.dnsipv4.method manualです。最も安全なワークフローは、プロファイルをアクティベートし、ルートとDNSの動作を確認し、サーバーが新しいアドレスで到達可能になった後にのみ古いDHCPプロファイルを削除または無効にすることです。