Ubuntu

如何分配多個公共IP地址

  • January 10, 2016

我有一台伺服器(Ubuntu 14.04)並想分配這些多個公共 IP 地址。

預期的:

  • 我想 ping 從 XXX.XXX.XXX.128 到 XXX.XXX.XXX.143 的所有 IP 地址

目前設置:

  • IP 地址 XXX.XXX.XXX.128/28 (255.255.255.240)
  • 我只能ping XXX.XXX.XXX.128
  • 介面配置(/etc/network/interfaces):
auto eth0:0
iface eth0:0 inet static
   address XXX.XXX.XXX.128
   netmask 255.255.255.240

您只需在介面文件中定義同一設備上的多個介面即可指定多個 IP 地址。例如:

auto eth0
iface eth0 inet static
 address 192.168.0.129
 netmask 255.255.255.240
iface eth0 inet static
 address 192.168.0.130
 netmask 255.255.255.240

等等。在舊版本中,您需要在定義介面時使用 eth0:0、eth0:1、eth0:2 等語法來執行此操作,但我相當確定 14.04 不支持它。

做同樣事情的其他方法包括在啟動介面時使用 iface 節中的“up”行添加額外的 IP,如下所示:

auto eth0
iface eth0 inet static
 address 192.168.0.129
 netmask 255.255.255.240
 up /sbin/ip address add 192.168.0.130/28 dev eth0
 down /sbin/ip address delete 192.168.0.130 dev eth0

建議使用 down 子句以確保在介面關閉或斷開連接時干淨地關閉介面。您可以指定多個向上或向下命令,或者在您有大量要添加到介面的 ips 的情況下,呼叫使用 ip 命令添加/刪除所需 IPs 的腳本。

請記住,在您定義的子網中,.128 和 .143 被保留為網路和廣播地址,因此您不應將它們分配給介面。您還沒有為傳出流量指定預設網關。子網遮罩不用於聲明“我想要所有這些 IP”,它是有關介面所在網路的資訊,允許系統確定是否可以將流量直接發送到 IP(如果它在本地子網)或需要通過網關(使用“網關 ABCD”線在介面上定義)進行路由。如果 /28 不准確,您應該找出網路的實際子網遮罩和網關詳細資訊。

引用自:https://serverfault.com/questions/748005