Linux で IP アドレスを追加する方法:Ubuntu・Debian・CentOS・Rocky Linux に追加 IPv4 をバインド

11 分で読めます 7 回閲覧 0
目次

JUSTG クラウドサーバーに追加 IP を注文した場合や、ヨハネスブルグ・モスクワの専用サーバーで /24 ブロックを利用する場合、通信に応答させるにはまず Linux で追加 IP アドレスを設定する必要があります。このガイドでは、ip addr add による一時的なバインド、Ubuntu の netplan・Debian の /etc/network/interfaces・CentOS/Rocky/AlmaLinux の nmcli による永続設定、別サブネットの IP に対するソースルーティング、そしてループによる /24 一括バインドを説明します。例のアドレスはドキュメント用です。クライアントエリアに表示される IP・プレフィックス・ゲートウェイに置き換えてください。

ネットワーク設定を誤ると SSH が切断されることがあります。クライアントエリアの VNC または IPMI コンソール(クライアントエリア → 製品とサービス → サーバーを選択 → 管理/コントロールパネル。見つからない場合はチケットを送信)を用意し、割り当てられたアドレスだけをバインドしてください。

ステップ1:インターフェース名と現在の IP を確認

ip の簡易表示で、各インターフェースとアドレスが一覧できます。メイン IP が付いているインターフェース(eth0、ens3、enp1s0 など)とデフォルトゲートウェイを控えておきます。

ip -br a
ip route show default

ステップ2:ip addr add で一時的に IP を追加(テスト用)

新しいアドレスを試す最速の方法は、実行時に追加することです。再起動すると消えるため、最初の確認に安全です。

# add the extra IPv4 (not persistent, lost after reboot)
ip addr add 203.0.113.11/24 dev eth0

# confirm and test outgoing traffic from the new address
ip -br a show eth0
ping -c 3 -I 203.0.113.11 1.1.1.1

# remove it again if needed
ip addr del 203.0.113.11/24 dev eth0

新しい送信元アドレスからの ping が通れば、IP はサーバーに正しくルーティングされています。永続設定に進みましょう。

ステップ3:Ubuntu の netplan で追加 IP を永続化

Ubuntu のネットワーク設定は /etc/netplan/ 配下の YAML ファイルにあります。インターフェースの addresses リストに新しいアドレスを追加します。インデントは必ずスペースを使ってください。

# /etc/netplan/50-cloud-init.yaml (the file name may differ)
network:
  version: 2
  ethernets:
    eth0:
      addresses:
        - 203.0.113.10/24
        - 203.0.113.11/24
      routes:
        - to: default
          via: 203.0.113.1
      nameservers:
        addresses: [1.1.1.1, 8.8.8.8]
netplan try      # rolls back automatically if you lose access and do not confirm
netplan apply

cloud-init で構築されたサーバーで、再起動後に変更が上書きされる場合は、cloud-init のネットワーク管理を無効にします。

echo "network: {config: disabled}" > /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg

ステップ4:Debian の /etc/network/interfaces で IP を追加

ifupdown を使う Debian では、同じインターフェースに複数の iface ブロックを書けます。ブロックを 1 つ追加するごとにアドレスが 1 つ増えます。

# /etc/network/interfaces
auto eth0
iface eth0 inet static
    address 203.0.113.10/24
    gateway 203.0.113.1

iface eth0 inet static
    address 203.0.113.11/24

VNC コンソールから適用するか、メンテナンス時間帯に再起動してください。

systemctl restart networking

ステップ5:CentOS・Rocky Linux・AlmaLinux の nmcli で IP を追加

これらのシステムは NetworkManager を使います。接続名は System eth0、eth0、Wired connection 1 などの場合があるので、まず一覧で確認します。+ を付けるとメイン IP を置き換えずに追加できます。

nmcli con show                       # find the connection name
nmcli con mod "System eth0" +ipv4.addresses 203.0.113.11/24
nmcli con up "System eth0"
nmcli -g ipv4.addresses con show "System eth0"

その後 ip -br a を実行し、両方のアドレスがインターフェースにあることを確認します。

ステップ6:IP が別サブネットの場合のソースルーティング

追加 IP が独自のゲートウェイを持つ別サブネットの場合、応答パケットが誤った送信元でメインゲートウェイから出て破棄されることがあります。ポリシールーティングで、追加 IP からの通信をそのゲートウェイ経由にします。

# extra IP 198.51.100.10 with its own gateway 198.51.100.1
ip addr add 198.51.100.10/24 dev eth0
ip route add default via 198.51.100.1 dev eth0 table 100
ip rule add from 198.51.100.10 table 100
ip rule show

再起動後も維持するには、対応する永続設定を使います。

# netplan: add under eth0
      routes:
        - to: default
          via: 203.0.113.1
        - to: default
          via: 198.51.100.1
          table: 100
      routing-policy:
        - from: 198.51.100.10
          table: 100

# nmcli (CentOS / Rocky / AlmaLinux)
nmcli con mod "System eth0" +ipv4.routes "0.0.0.0/0 198.51.100.1 table=100" \
  +ipv4.routing-rules "priority 100 from 198.51.100.10 table 100"
nmcli con up "System eth0"
追加ブロックがメイン IP 宛てにルーティングされていて専用ゲートウェイがない場合、ポリシールーティングは不要です。/32 プレフィックスでアドレスを追加してください。

ステップ7:JUSTG 専用サーバーで /24 をまとめてバインド

/24 には 256 個のアドレスがあります。割り当て情報でゲートウェイと使用可能範囲を確認してください。以下の例では .1 がゲートウェイ、.2〜.254 が使用可能です。テストにはループで一括追加します。

# example: 198.51.100.0/24, gateway 198.51.100.1, usable .2 - .254
for i in $(seq 2 254); do
  ip addr add 198.51.100.$i/24 dev eth0
done
ip -4 -o addr show dev eth0 | wc -l

永続設定では、253 行を手で書く代わりに設定をコマンドで生成します。

# Ubuntu (netplan): print the address lines, then paste them under "addresses:"
for i in $(seq 2 254); do echo "        - 198.51.100.$i/24"; done

# Debian (/etc/network/interfaces): one line inside the eth0 stanza
    up for i in $(seq 2 254); do ip addr add 198.51.100.$i/24 dev eth0; done

# CentOS / Rocky / AlmaLinux (NetworkManager)
ADDRS=$(for i in $(seq 2 254); do printf "198.51.100.%s/24," "$i"; done)
nmcli con mod "System eth0" +ipv4.addresses "${ADDRS%,}"
nmcli con up "System eth0"

再起動後に ip -4 -o addr show dev eth0 | wc -l で数を数え、すべてのアドレスが戻ったことを確認します。

よくある質問

VPS の IPv4 を増やすにはどうすればよいですか?

JUSTG のクラウドサーバーには IPv4 が 1 つ含まれます。追加の IPv4 はクライアントエリアのアップグレードオプションから注文でき、すべてのクラウドサーバーで IPv6 を無料で利用できます。

新しい IP が ip -br a に表示されるのに外部から届きません。

割り当て情報とプレフィックス・ゲートウェイを照合し、ファイアウォールでそのアドレスのサービスが許可されているか確認し、ping -I でテストしてください。それでも失敗する場合、IP がまだサーバーにルーティングされていない可能性があります。

外向き通信にはどのアドレスが使われますか?

サブネットのプライマリ(最初の)アドレスです。アプリケーション側で特定の IP にバインドするか、ルートに src を指定できます。

それでも解決しない場合は、IP 割り当て情報と ip -br a の出力を添えてチケットを送信し、JUSTG テクニカルサポートにお問い合わせください。

この回答は役に立ちましたか?