Я настраиваю машину, которую буду использовать в тестовой сети и на которой будет размещаться множество веб-сайтов. Я хотел бы, чтобы этот хост имел много (порядка 20 Кб) IP-адресов.

Я знаю, что могу добавить их все с помощью сценария, скажем,

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

и получить их все таким образом. На самом деле, это работает просто отлично, но это не переживает перезагрузку, очевидно.

Если я изменю /etc/sysconfig/network-scripts/ifcfg-eth0 я могу назначить статический IP-адрес, который будет постоянным, но я не верю, что я могу назначить более одного таким образом.

Есть ли способ назначать много статических IP-адресов?

Я предполагаю, что в худшем случае я мог бы создать свой собственный IP-сервис и заставить его запускать команды ip через сервис systemd, но мне было интересно, есть ли более канонический способ сделать это.

3 ответа3

2

Я не проверял, поддерживает ли он десятки тысяч, но кажется, что вы можете указать много адресов в файле 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, если вам интересно.)

0

скопируйте /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/

0

Это легко, когда ты это понял.

Я знаю два способа: либо отдельные ifcfg-eth:x для отдельных адресов, либо ifcfg-eth0-rangex для диапазонов IP-адресов. Файл находится в папке /etc/sysconfig/network-scripts/ .

Итак, первый случай. Просто скопируйте /etc/sysconfig/network-scripts/ifcfg-eth0 в /etc/sysconfig/network-scripts/ifcfg-eth0:0 . Откройте его в редакторе и измените DEVICE на eth0:0 и IPADDR на то, что вы хотите. Перезагрузите вашу сеть (systemctl restart network на centos 7). Повторите шаг и увеличьте х с одним.

Во втором случае вы копируете /etc/sysconfig/network-scripts/ifcfg-eth0 в /etc/sysconfig/network-scripts/ifcfg-eth0-range0 . Затем откройте файл в редакторе, замените IPADDR на IPADDR_START и добавьте IPADDR_END с соответствующими начальными и конечными IP-адресами диапазона. Перезагрузите сеть, как упоминалось ранее, и изменения активны.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .