2.5. nmstatectl で PCI アドレスを指定して静的 IP アドレスによるイーサネット接続を設定する
nmstatectl
ユーティリティーを使用して、Nmstate API を介してイーサネット接続を設定します。Nmstate API は、設定を行った後、結果が設定ファイルと一致することを確認します。何らかの障害が発生した場合には、nmstatectl
は自動的に変更をロールバックし、システムが不正な状態のままにならないようにします。
Nmstate を使用すると、静的 IP アドレス、ゲートウェイ、および DNS 設定を使用してイーサネット接続を設定し、それらをインターフェイス名ではなく PCI アドレスに基づいてデバイスに割り当てることができます。
前提条件
- サーバーの構成に物理イーサネットネットワークインターフェイスコントローラー (NIC) が存在する。
-
デバイスの PCI アドレスがわかっている。PCI アドレスは、
ethtool -i <interface_name> | grep bus-info
コマンドを使用して確認できます。 -
nmstate
パッケージがインストールされている。
手順
以下の内容を含む YAML ファイル (例:
~/create-ethernet-profile.yml
) を作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 上記の設定により、ID
0000:00:14.3
のデバイスのイーサネット接続プロファイルが、以下の設定で定義されます。-
静的 IPv4 アドレス:
192.0.2.1
(サブネットマスクが/24
) -
静的 IPv6 アドレス:
2001:db8:1::1
(サブネットマスクが/64
) -
IPv4 デフォルトゲートウェイ -
192.0.2.254
-
IPv6 デフォルトゲートウェイ -
2001:db8:1::fffe
-
IPv4 DNS サーバー -
192.0.2.200
-
IPv6 DNS サーバー -
2001:db8:1::ffbb
-
DNS 検索ドメイン -
example.com
-
静的 IPv4 アドレス:
設定をシステムに適用します。
nmstatectl apply ~/create-ethernet-profile.yml
# nmstatectl apply ~/create-ethernet-profile.yml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
現在の状態を YAML 形式で表示します。
nmstatectl show <interface_name>
# nmstatectl show <interface_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NIC の IP 設定を表示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow IPv4 デフォルトゲートウェイを表示します。
ip route show default
# ip route show default default via 192.0.2.254 dev <interface_name> proto static metric 102
Copy to Clipboard Copied! Toggle word wrap Toggle overflow IPv6 デフォルトゲートウェイを表示します。
ip -6 route show default
# ip -6 route show default default via 2001:db8:1::fffe dev <interface_name> proto static metric 102 pref medium
Copy to Clipboard Copied! Toggle word wrap Toggle overflow DNS 設定を表示します。
cat /etc/resolv.conf search example.com nameserver 192.0.2.200 nameserver 2001:db8:1::ffbb
# cat /etc/resolv.conf search example.com nameserver 192.0.2.200 nameserver 2001:db8:1::ffbb
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ping
ユーティリティーを使用して、このホストがパケットを他のホストに送信できることを確認します。ping <host-name-or-IP-address>
# ping <host-name-or-IP-address>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow