我正在设置一台机器,用于测试网络,并将托管许多网站。我希望这台主机有许多(大约 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/