手当たり次第に書くんだ

飽きっぽいのは本能

Ubuntu 22.04 Netplan ネットワーク設定 – DHCP / 固定 IP / DNS の基本

Ubuntu 22.04 では、サーバーのネットワーク設定に Netplan を使用します。Netplan は YAML でネットワーク設定を記述し、実際の設定を systemd-networkdNetworkManager に渡す仕組みです。

この記事では、Ubuntu 22.04 Server を前提に、DHCP、固定 IP、DNS、デフォルトルート、設定ファイルの権限、netplan trynetplan apply の使い分けを整理します。

Netplan の役割

Netplan は、ネットワーク設定を直接実行するデーモンではありません。/etc/netplan/*.yaml に書いた設定を読み取り、レンダラーである systemd-networkdNetworkManager 向けの設定へ変換します。

項目内容
設定ファイル/etc/netplan/*.yaml
Server でよく使う renderersystemd-networkd
Desktop でよく使う rendererNetworkManager
設定反映netplan try または netplan apply
注意点YAML のインデント、ファイル権限、SSH 作業時の切断

現在の設定を確認する

まず、現在のインターフェース名と Netplan 設定を確認します。インターフェース名は環境により異なるため、例の enp1s0 は自分の環境に合わせて読み替えます。

ip link
ip address
ls -l /etc/netplan
sudo cat /etc/netplan/*.yaml

DHCP の設定例

インストール直後や検証環境では、DHCP のまま使うのが簡単です。Ubuntu Server のインストーラーが生成する設定も、多くの場合は DHCP になります。

sudo tee /etc/netplan/00-main.yaml >/dev/null <<'EOF'
network:
  version: 2
  ethernets:
    enp1s0:
      dhcp4: true
EOF

sudo chmod 600 /etc/netplan/00-main.yaml

IPv6 も DHCPv6 や RA を使う場合、環境に応じて dhcp6 や RA の扱いを確認します。単純な検証では IPv4 DHCP だけでも十分です。

固定 IP の設定例

サーバー用途では、管理しやすいように固定 IP を設定することがあります。次は IPv4 と IPv6 を併記する例です。DNS とデフォルトルートも合わせて指定します。

sudo cp -a /etc/netplan /etc/netplan.bak.$(date +%Y%m%d%H%M%S)

sudo tee /etc/netplan/00-main.yaml >/dev/null <<'EOF'
network:
  version: 2
  ethernets:
    enp1s0:
      addresses:
        - 10.0.33.112/24
        - fd00::a00:2170/120
      nameservers:
        addresses:
          - 10.0.33.160
          - fd00::a00:21a0
      routes:
        - to: default
          via: 10.0.33.1
        - to: default
          via: fd00::a00:2101
EOF

sudo chmod 600 /etc/netplan/00-main.yaml

gateway4 ではなく routes を使う

古い例では gateway4 を使う設定が見つかることがありますが、現在は routes でデフォルトルートを明示する方がよいです。IPv4 と IPv6 を同じ考え方で扱えるため、デュアルスタック構成でも整理しやすくなります。

古い書き方現在寄せたい書き方
gateway4: 10.0.33.1routes: - to: default / via: 10.0.33.1
IPv4 だけを特別扱いしやすいIPv4 / IPv6 を同じ形で扱いやすい

netplan try と netplan apply

SSH で作業している場合、ネットワーク設定を間違えると接続が切れます。可能であればコンソールから作業するか、netplan try を使って一時適用します。

sudo netplan generate
sudo netplan try

netplan try は一定時間内に確認できなければ設定を戻すため、SSH 作業時の保険になります。ただし、環境によっては完全な保険にならないこともあるため、重要なサーバーではコンソール経由で作業できる状態を用意します。

確認後に本反映する場合は次のように実行します。

sudo netplan apply

設定後の確認

設定反映後は、アドレス、ルーティング、DNS、疎通を順番に確認します。

ip address show enp1s0
ip route
ip -6 route
resolvectl status
ping -c 3 10.0.33.1
ping -c 3 8.8.8.8
getent hosts example.com

ファイル権限の警告に対応する

Netplan の設定ファイルの権限が広すぎると、次のような警告が出ることがあります。

Permissions for /etc/netplan/00-main.yaml are too open. Netplan configuration should NOT be accessible by others.

設定ファイルは root のみが読めるようにします。

sudo chown root:root /etc/netplan/*.yaml
sudo chmod 600 /etc/netplan/*.yaml

SSH 作業時の注意

  • 作業前に現在の設定をバックアップする
  • インターフェース名を必ず確認する
  • SSH 接続中は netplan try を優先する
  • 作業端末とは別にコンソール復旧手段を用意する
  • DNS とルートは IP アドレス設定とセットで確認する

まとめ

Ubuntu 22.04 の Netplan 設定では、/etc/netplan/*.yaml に DHCP、固定 IP、DNS、routes を記述します。サーバーでは固定 IP を使うことが多いですが、設定ミスは即座に SSH 切断につながるため、netplan try とバックアップを使って慎重に反映します。

デフォルトルートは gateway4 ではなく routes へ寄せると、IPv4 / IPv6 を同じ考え方で整理できます。設定後はアドレス、ルート、DNS、疎通確認まで行うことが重要です。

参考
書籍
参考書籍

Advanced Ubuntu Administration and Management Best Practices

Ubuntu Server の運用項目を体系的に確認したい場合の参考書籍です。価格や在庫はリンク先で確認してください。

Amazon で見る

このリンクは Amazon アソシエイトリンクです。

関連記事

Ubuntu 22.04 Netplan ネットワーク設定 – DHCP / 固定 IP / DNS の基本

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る