Как присвоить несколько IP адресов, и диапазон IP адресов сетевому интерфейсу в Debian
Debian - это какой-то недо-Linux))
С одной стороны, поддержка железа в Debian, чаще всего, появляется раньше.
С другой стороны, с программами и инструментами не всегда лады ;)
Итак, есть задача - присвоить сетевому интерфейсу в Debian несколько IP-адресов.
Которая расщепляется в две вариации:
1. присвоить несколько IP-адресов
2. присвоить диапазон! IP-адресов.
Пусть наша сетевуха определяется как eth0.
Вариация 1 решается довольно просто, штатными средствами. А именно, в файл /etc/network/interfaces
Добавляем следующие записи:
auto lo
iface lo inet loopback
auto eth0
allow-hotplug eth0
iface eth0 inet static
address 192.168.10.1
netmask 255.255.255.0
gateway 192.168.10.100
auto eth0:1
iface eth0:1 inet static
address 192.168.10.2
netmask 255.255.255.0
auto eth0:2
iface eth0:2 inet static
address 192.168.10.3
netmask 255.255.255.0
Ну вы поняли. Вариант рабочий.
Если IP-шников не очень много.
А что делать если у нас есть целый диапазон IP-адресов, и мы хотим присвоить их сетевухе ?
То бишь вариация 2.
Например, в CentOS для этого есть штатная возможность, называется ifcfg-range.
А в Debian'е нет такой возможности.
Поэтому придется "колхозить" - писать скрипт и запускать их при запуске системы.
Пишем скрипт следующего содержания:
#!/bin/sh
ALIASIFACE="eth0"
ALIASNET="46.185.232"
ALIASMASK="255.255.255.0"
ALIASTART="3"
ALIASEND="254"
ALIASMODE="up"
if [ "${IFACE}" = "${ALIASIFACE}" ]; then
if [ "${MODE}" = "stop" ]; then
ALIASMODE="down"
fi
for IP in $(/usr/bin/seq ${ALIASTART} 1 ${ALIASEND}); do
/sbin/ifconfig ${ALIASIFACE}:${IP} ${ALIASNET}.${IP} netmask ${ALIASMASK} ${ALIASMODE}
done
fi
exit 0
Сохраняем с названим eth0-alias
И сохраняем этот файл в двух местах:
/etc/network/if-up.d/eth0-alias
/etc/network/if-down.d/eth0-alias
Выставляем атрибут скрипту исполняемый:
chmod +x eth0-alias
Так же, можно комбинировать варианты ;)
Более подробно: https://uzlec.ru/diapazon-adresov-ip-na-setevom-interfejse-v-debian.html