如何配置具有多個靜態 IP 的接口

如何配置具有多個靜態 IP 的接口

我正在設定一台機器,將在測試網路中使用並託管許多網站。我希望該主機有許多(大約 20k)IP 位址。

我知道我可以用腳本添加它們,比如說

ip addr add <ip>/<mask> dev eth0

並以這種方式得到它們。事實上,這工作得很好,但顯然不能在重新啟動後繼續存在。

如果我修改,/etc/sysconfig/network-scripts/ifcfg-eth0我可以分配一個持久的靜態IP,但我不相信我可以透過這種方式分配多個IP。

有沒有辦法永久分配大量靜態IP?

我想最壞的情況是我可以創建自己的 IP 服務並讓它ip透過 systemd 服務運行命令,但我想知道是否有更規範的方法來做到這一點。

答案1

ifcfg-我還沒有檢查它是否支援數十萬個,但如果您告訴 NetworkManager 您要這樣做,您似乎可以直接在文件中指定許多地址。

第一步是告訴 NetworkManager 我做了什麼

nmcli con mod eth0 ipv4.method manual

然後我修改了/etc/sysconfig/network-scripts/eth0所以它有

IPADDR0=<ip0>
NETMASK0=<mask0>
IPADDR1=<ip1>
NETMASK1=<mask1>

然後eth0擁有這兩個地址(至少在重新啟動後)。

更新:可惜的是,此方法僅允許每個介面最多 256 個位址。 (如果您有興趣,您可以在 src/settings/pluginos/ifcfg-rh/reader.c 的第 1366 行原始程式碼中查看 Fedora 21 隨附的版本 0.9.10 的限制。)

答案2

當你弄清楚的時候,這很容易。

我知道兩種方法,要么ifcfg-eth:x是單一位址的單獨文件,要么ifcfg-eth0-rangex是 IP 範圍的文件。該文件放置在/etc/sysconfig/network-scripts/資料夾中。

那麼第一個案例。只需複製/etc/sysconfig/network-scripts/ifcfg-eth0/etc/sysconfig/network-scripts/ifcfg-eth0:0.在編輯器中打開它並更改裝置到 eth0:0 和IPADDR到你想要的。重新載入您的網路(systemctl restart network在 centos 7 上)。重複步驟並將 x 加一。

/etc/sysconfig/network-scripts/ifcfg-eth0您複製到的第二個案例/etc/sysconfig/network-scripts/ifcfg-eth0-range0。然後在編輯器中打開該文件並替換IPADDRIPADDR_START並添加IPADDR_END以及該範圍對應的起始和終止 IP。如前所述重新加載網絡,更改將生效。

答案3

複製/etc/sysconfig/network-scripts/ifcfg-eth0/etc/sysconfig/network-scripts/ifcfg-eth0:0編輯

DEVICE="eth0:0"
BOOTPROTO="static"
IPADDR=192.168.230.252
NETWORK=192.168.230.0
NETMASK=255.255.255.0
IPV6INIT="yes"
NM_CONTROLLED="yes"
ONBOOT="yes"

您必須在同一網路上。

重啟。

如果您無法重新啟動,請嘗試ifconfig eth0:0 up(未測試這部分)

http://www.cyberciti.biz/faq/linux-creating-or-adding-new-network-alias-to-a-network-card-nic/

相關內容