Как настроить интерфейс с множеством статических IP-адресов?

Как настроить интерфейс с множеством статических IP-адресов?

Я настраиваю машину, которую буду использовать в тестовой сети и на которой будет размещено много веб-сайтов. Я хотел бы, чтобы у этого хоста было много (порядка 20 тыс.) 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 адресов на интерфейс. (Если вам интересно, вы можете увидеть ограничение для версии 0.9.10, которая поставляется с Fedora 21, в исходном коде на строке 1366 src/settings/pluginos/ifcfg-rh/reader.c.)

решение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. Затем открываете файл в редакторе и заменяетеIPADDRсIPADDR_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/

Связанный контент