ネットワーク設定の永続化 - ip/nmcli/NetworkManager【LPIC-1 109.2】

ネットワーク設定の永続化 - ip/nmcli/NetworkManager【LPIC-1 109.2】

この記事で達成できること

  • ip コマンドで一時的にIP・ルートを設定し、その設定が再起動で消える理由を説明できる
  • NetworkManager 環境で nmcli を使い、静的IPとデフォルトゲートウェイを永続的に設定できる
  • Ubuntu の netplan、Red Hat 系の ifcfg ファイルで永続設定を記述できる
  • hostnamectl/etc/hostname でホスト名を永続化できる
  • 「一時設定」と「永続設定」を混同して起きる典型的な事故を回避できる

LPIC-1 主題 109.2「基本的なネットワーク構成」(102 試験、重み 4)の中核。設定が再起動後も残るかどうかを意識して構成する力が問われる。

一時設定と永続設定はどう違うのか

ip コマンドで入れた設定はカーネルの実行中状態を直接書き換えるだけで、再起動すると消える。永続化するには設定ファイルか NetworkManager 等の管理ツールに登録する。

両者を取り違えると「設定したのに再起動で消えた」「ファイルに書いたのに反映されない」という事故につながる。役割を整理する。

種別 手段 反映タイミング 再起動後
一時設定 ip addr / ip route / ip link 即時 消える
永続設定(NM) nmcli connection modify + up up で反映 残る
永続設定(Ubuntu) /etc/netplan/*.yaml + netplan apply apply で反映 残る
永続設定(Red Hat 系) ifcfg-* + ifup / 再起動 ifup で反映 残る

本番作業の鉄則: まず ip で一時設定して疎通を確かめ、問題なければ同じ内容を永続設定に書き写す。いきなり永続ファイルだけ編集すると、設定ミス時に再起動で接続不能になり復旧が難しくなる。

ip コマンドで一時設定する

ip は iproute2 が提供する現行の標準ツール。ip OBJECT COMMAND の形で、address(IP)・link(インターフェース)・route(経路)を操作する。

旧来の ifconfig / route はメンテナンスされておらず、現在は ip に置き換わっている。試験でも実務でも ip を基準に覚える。

現在の状態を確認する

ip addr show
ip link show
ip route show
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 ...
    inet 192.168.1.10/24 brd 192.168.1.255 scope global eth0
default via 192.168.1.1 dev eth0
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.10

ip addr show でIPアドレス、ip route show でルーティングテーブルを確認する。addraddressa まで短縮できる。

IPアドレスを付与・削除する

ip address add 192.168.1.20/24 dev eth0
ip address del 192.168.1.20/24 dev eth0

公式の構文は ip address add IFADDR dev IFNAME、削除は ip address del IFADDR dev IFNAMEIFADDR192.168.1.20/24 のように「アドレス/プレフィックス長」で指定する。

インターフェースを up / down する

ip link set eth0 up
ip link set eth0 down

ip link set IFNAME up で有効化、down で無効化。IPを付与してもリンクが down のままだと通信できない。

デフォルトゲートウェイを設定する

ip route add default via 192.168.1.1 dev eth0
ip route del default via 192.168.1.1 dev eth0

default(= 0.0.0.0/0)宛ての経路を via で指定したゲートウェイに向ける。これがデフォルトゲートウェイの設定。ip route del は add と同じ引数で削除する。

ここまでの ip 設定はすべて一時的。再起動すると消える。本番では次節以降の永続化が必須。

nmcli で永続設定する

NetworkManager 環境では nmcli connection modify で接続プロファイルを書き換えると、その内容がディスクに保存され永続化される。nmcli connection up で再アクティブ化して反映する。

NetworkManager は多くのデスクトップ/サーバーディストリビューションの標準。プロファイル単位で設定を管理し、ip の一時設定とは別レイヤーで動く。

接続とデバイスの状態を確認する

nmcli connection show
nmcli device status
NAME                UUID                                  TYPE      DEVICE
Wired connection 1  abcd1234-...                          ethernet  eth0

DEVICE  TYPE      STATE      CONNECTION
eth0    ethernet  connected  Wired connection 1

nmcli connection show で接続プロファイル一覧、nmcli device status でデバイスとの紐付けを確認する。connectioncondevicedev まで短縮できる。

静的IPを永続設定する

nmcli connection modify "Wired connection 1" \
  ipv4.method manual \
  ipv4.addresses 192.168.1.10/24 \
  ipv4.gateway 192.168.1.1 \
  ipv4.dns 8.8.8.8
nmcli connection up "Wired connection 1"
Connection successfully activated ...

ipv4.method manual で静的(手動)に切り替え、ipv4.addressesipv4.gatewayipv4.dns を指定する。modify の時点でプロファイルに保存され、up で実際の設定が反映される。DHCP に戻すには ipv4.method auto を指定する。

新規プロファイルを作成する

nmcli connection add type ethernet ifname eth0 \
  ipv4.method manual ipv4.addresses 192.168.1.10/24 \
  ipv4.gateway 192.168.1.1 ipv4.dns 8.8.8.8

nmcli connection add で接続を新規作成する。connection add / modify による変更はデフォルトで永続(ディスク保存)であり、--temporary を付けたときだけ一時的になる。

netplan で永続設定する(Ubuntu)

Ubuntu は /etc/netplan/*.yaml に YAML で設定を書き、netplan apply で適用する。netplan はバックエンド(NetworkManager または systemd-networkd)へ設定を橋渡しするレンダラー。

YAML はインデントに厳格で、タブは使えない(スペースのみ)。設定ファイルの構造を覚える。

静的IPの YAML 例

ls /etc/netplan/
01-netcfg.yaml
network:
    version: 2
    ethernets:
        eth0:
            addresses:
                - 192.168.1.10/24
            routes:
                - to: default
                  via: 192.168.1.1
            nameservers:
                addresses:
                    - 8.8.8.8
                    - 8.8.4.4

デフォルトゲートウェイは routesto: default + via で表現する。addresses は「アドレス/プレフィックス長」のリスト。

設定を適用する

netplan try
netplan apply

netplan apply で設定を反映する。netplan try は適用後に一定時間で自動ロールバックするため、リモート作業での切断事故を防げる。

Red Hat 系の ifcfg ファイル

Red Hat 系の従来方式では /etc/sysconfig/network-scripts/ifcfg-<デバイス名> に設定を記述し、ifup / ifdown または再起動で反映する。

NetworkManager を併用する環境では、nmcli 経由の変更がこの ifcfg ファイルへ書き込まれる構成もある。どちらで管理しているかを把握しておく。

静的IPの ifcfg 例

cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
IPADDR=192.168.1.10
PREFIX=24
GATEWAY=192.168.1.1
DNS1=8.8.8.8

主なディレクティブ: BOOTPROTO=none(または static)で静的、dhcp で DHCP。ONBOOT=yes で起動時に自動有効化。IPADDR / PREFIX(または NETMASK)/ GATEWAY / DNS1 でアドレス系を指定する。

ifup / ifdown で反映する

ifdown eth0
ifup eth0

ifup <デバイス名> でインターフェースを有効化、ifdown で無効化する。ifcfg ファイルを編集したら ifdownifup で再読み込みする。

ホスト名を永続化する

hostnamectl hostname <名前> で静的ホスト名を設定すると /etc/hostname に書き込まれ、再起動後も残る。hostnamectl status で現在の各種ホスト名を確認できる。

ホスト名には静的(static)・一時的(transient)・装飾(pretty)の3種類がある。永続化の対象は static で、/etc/hostname が実体。

hostnamectl status
hostnamectl hostname host01
hostnamectl status
   Static hostname: localhost
   Static hostname: host01

hostnamectl hostname host01 が現行 systemd の書式。古い表記の hostnamectl set-hostname host01 も同じ意味で、/etc/hostname に永続化される。

ホスト名を変えたら /etc/hosts127.0.0.1(または 127.0.1.1)の行にも新しい名前を追加しておく。これを忘れると一部アプリで名前解決の警告や遅延が出る。

よくあるミスと回避策

ネットワーク設定の失敗は接続断に直結する。頻出する5つの落とし穴を押さえる。

  • ip 設定が再起動で消える: ip addr / ip route は一時設定。永続化するには nmcli・netplan・ifcfg のいずれかに書き写す
  • nmcli と ifcfg の二重管理: NetworkManager 管理下のインターフェースを ifcfg で直接編集すると競合する。どちらか一方に統一する
  • netplan apply 忘れ: YAML を編集しただけでは反映されない。必ず netplan apply(またはリモートなら netplan try)を実行する
  • ifconfig / route を使い続ける: 非推奨の旧ツール。現行は ip addr / ip route。試験も実務も ip 基準
  • nmcli modify 後に up し忘れる: modify はプロファイル保存のみ。nmcli connection up NAME で再アクティブ化しないと現行設定に反映されない

トラブルシューティング

症状: 再起動したらIP設定が消えた

原因: ip addr add など一時設定だけで、永続設定に書いていない

確認:

ip addr show
nmcli connection show

対処: NetworkManager 環境なら nmcli connection modify で永続化、Ubuntu なら /etc/netplan/*.yaml に記述。一時設定の内容を永続側へ書き写す。

症状: netplan の YAML を編集したが反映されない

原因: netplan apply を実行していない、または YAML のインデント(タブ混入)エラー

確認:

netplan try

対処: netplan apply で適用する。netplan try がエラーを返すなら YAML を見直す(タブ禁止、スペースインデント)。

症状: nmcli で設定したのに現在のIPが変わらない

原因: nmcli connection modify で保存しただけで、接続を再アクティブ化していない

確認:

nmcli device status

対処: nmcli connection up "接続名" で再アクティブ化する。これで保存済みプロファイルが現行設定に反映される。

作業完了チェックリスト

  • [ ] ip addr show / ip route show で現在の設定を確認した
  • [ ] 一時設定(ip)と永続設定の違いを理解した
  • [ ] nmcli・netplan・ifcfg のいずれかで静的IPを永続化した
  • [ ] デフォルトゲートウェイを永続設定した
  • [ ] hostnamectl hostname でホスト名を永続化した
  • [ ] 再起動またはサービス再起動後も設定が残ることを確認した

まとめ

環境 永続設定の手段 反映コマンド
一時設定(全環境) ip addr / ip route 即時(再起動で消える)
NetworkManager nmcli connection modify nmcli connection up
Ubuntu /etc/netplan/*.yaml netplan apply
Red Hat 系 ifcfg-* ifup / 再起動
ホスト名 /etc/hostname hostnamectl hostname

ネットワーク設定は「一時か永続か」を常に意識するのが要点。ip で素早く試し、動いたら永続側へ書き写す型を身につければ、再起動で消える事故も反映漏れも防げる。

次に読む