如何配置具有多个静态 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 和接口地址达到您想要的效果。重新加载您的网络(systemctl restart network在 centos 7 上)。重复步骤并将 x 增加 1。

第二种情况,你复制/etc/sysconfig/network-scripts/ifcfg-eth0/etc/sysconfig/network-scripts/ifcfg-eth0-range0。然后在编辑器中打开文件并替换接口地址启动IPADDR并添加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/

相关内容