手当たり次第に書くんだ

飽きっぽいのは本能

Ubuntu 26.04 複数 NIC の基本設定

Ubuntu 26.04 サーバー管理ガイドに戻る

Ubuntu 26.04 で複数 NIC を扱う場合、重要なのは「NIC が複数あること」そのものではなく、それぞれの NIC にどの役割を持たせるかです。管理用、サービス公開用、ストレージ用、仮想化用のように役割を分けると、通信経路と障害範囲を整理しやすくなります。

この記事では、Bonding、Bridge、VLAN の詳細にはまだ踏み込みません。まずは単純に複数のインターフェースへアドレスを設定し、デフォルトルートを整理し、反映後にどこを見るべきかをまとめます。

複数 NIC で先に決めること

複数 NIC 構成では、設定ファイルを書く前に役割を決めておく方が安全です。どの NIC が SSH 管理用なのか、どの NIC がサービス提供用なのか、どの NIC がストレージやクラスタ内部通信用なのかを分けて考えます。

  • 管理用 NIC: SSH、監視、構成管理で使う
  • サービス用 NIC: Web、メール、DNS など利用者向け通信で使う
  • ストレージ用 NIC: NFS、iSCSI、Ceph など内部通信で使う
  • 仮想化用 NIC: Bridge や VM 接続の土台として使う
  • クラスタ用 NIC: Kubernetes、Ceph、HA 構成などのノード間通信で使う

すべての NIC にデフォルトゲートウェイを設定するのではなく、通常は外へ出る経路を 1 つに絞ります。複数の出口を使う場合は、Policy Based Routing など別の設計として扱った方がよいです。

インターフェースを確認する

まず OS が認識しているインターフェース名と状態を確認します。仮想マシンでは NIC を追加した順番やハイパーバイザーによって名前が変わるため、設定前の確認が重要です。

ip link
ip address
networkctl list

この記事では例として、ens160 を管理用、ens192 をサービス用、ens224 をストレージ用として扱います。実際には自分の環境の NIC 名へ置き換えてください。

現在のルートを確認する

複数 NIC で特に注意したいのはルーティングです。意図しない NIC から通信が出ていると、SSH、名前解決、パッケージ更新、クラスタ通信のどこかで不安定になります。

ip route
ip -6 route
resolvectl status

初期状態で DHCP が有効になっている NIC が複数ある場合、複数のデフォルトルートが入ることがあります。サーバー用途では、どの NIC を標準の出口にするかを明確にしておくのが基本です。

単純な複数 NIC の Netplan 例

次は、管理用 NIC にだけデフォルトルートを持たせ、サービス用とストレージ用にはアドレスだけを設定する例です。DNS も管理用 NIC 側にまとめています。

network:
  version: 2
  ethernets:
    ens160:
      addresses:
        - 192.0.2.10/24
      nameservers:
        addresses:
          - 192.0.2.53
      routes:
        - to: default
          via: 192.0.2.1
      mtu: 1500
    ens192:
      addresses:
        - 198.51.100.10/24
      mtu: 1500
    ens224:
      addresses:
        - 203.0.113.10/24
      mtu: 9000

ここで使っている IP アドレスは例示用です。実際のネットワークでは、管理、サービス、ストレージの各セグメントに合わせたアドレスとプレフィックスを設定します。

デフォルトルートは基本的に 1 つにする

複数 NIC で最初につまずきやすいのは、すべての NIC にゲートウェイを設定してしまうことです。通常のサーバーでは、デフォルトルートは管理用または外部接続用の NIC に 1 つだけ設定します。

ip route | grep default
ip route get 8.8.8.8

サービス用やストレージ用の NIC は、同一セグメント内の通信だけで使うならゲートウェイは不要です。別セグメントへ明示的に出したい場合は、静的ルートや Policy Based Routing として分けて設計します。

MTU をそろえる

ストレージ用や仮想化用のネットワークでは Jumbo Frame を使うことがあります。ただし、MTU はサーバー側だけでなく、スイッチ、対向サーバー、仮想スイッチまでそろっていないと通信不良の原因になります。

ip link show ens224
ping -M do -s 8972 203.0.113.11

9000 MTU の疎通確認では、環境によってヘッダー分を差し引いたサイズで確認します。Jumbo Frame を使わない環境では、まず 1500 で安定させる方が無難です。

設定を反映する

Netplan の反映は、単一 NIC のときと同じく構文確認から始めます。SSH 接続中に管理用 NIC の設定を変更する場合は、必ず復旧手段を確保してから作業します。

sudo netplan generate
sudo netplan try
# 問題がなければ
sudo netplan apply

反映後に確認する

反映後は、各 NIC に意図したアドレスが付いているか、デフォルトルートが想定どおりか、DNS が引けるかを確認します。複数 NIC の場合は、宛先ごとにどの NIC から通信が出るかを見ることが大切です。

ip address show ens160
ip address show ens192
ip address show ens224

ip route
ip route get 192.0.2.1
ip route get 198.51.100.1
ip route get 203.0.113.11

resolvectl status
getent hosts example.com

サービスの待ち受けにも注意する

複数 NIC にすると、サービスがどのアドレスで待ち受けるかも重要になります。たとえば SSH、Web、DNS、Redis、MariaDB などは、設定によって全インターフェースで待ち受けることも、特定アドレスだけで待ち受けることもあります。

ss -lntup
sudo systemctl status ssh

管理用 NIC だけで待ち受けたいサービス、サービス用 NIC で公開したいサービス、内部ネットワークだけで使いたいサービスを分けると、後続の firewall 設計も整理しやすくなります。

次に分けて考える構成

複数 NIC の基本が整理できたら、次は用途に応じて VLAN、Bonding、Bridge、Policy Based Routing へ進みます。物理サーバー、仮想化ホスト、Kubernetes ノード、ストレージノードでは、必要になる構成が変わります。

  • VLAN: 1 つの物理 NIC で複数セグメントを扱う
  • Bonding: 複数 NIC を束ねて冗長化や帯域確保を行う
  • Bridge: 仮想マシンやコンテナへ L2 接続を渡す
  • Policy Based Routing: 通信元や宛先に応じて出口を分ける

まとめ

Ubuntu 26.04 で複数 NIC を扱うときは、設定例を写す前に NIC の役割とルーティングを決めることが重要です。管理用、サービス用、ストレージ用のように用途を分け、デフォルトルートを整理し、反映後に実際の通信経路を確認することで、後続の VLAN、Bonding、Bridge 構成にも進みやすくなります。

Ubuntu 26.04 サーバー管理ガイドに戻る

Ubuntu 26.04 複数 NIC の基本設定

コメントを残す

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

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

トップへ戻る