Я пытаюсь связать диапазон IP-адресов (всего 2048) на сервере Ubuntu, и это единственный способ Я знаю, что добавляю один за другим в файл интерфейсов и перезапускаю сетевую службу следующим образом:
### /etc/network/interfaces ###
auto enp2s0:1
iface enp2s0:1 inet static
address 200.20.39.1
netmask 255.255.255.255
auto enp2s0:2
iface enp2s0:2 inet static
address 200.20.39.2
netmask 255.255.255.255
etc etc.
Проблема с этим подходом заключается в том, что когда я перезапускаю сеть, чтобы применить эти изменения, и проверка команды ifconfig добавляет только 8 или 9 ips в то время, поэтому мне нужно снова перезапустить службу, чтобы добавить еще 8 и т. д., поэтому мне понадобится 30 часов, чтобы добавить эти IPS.
Я знаю, что в системах на основе Redhat у вас есть возможность легко добавлять диапазоны, например:
/etc/sysconfig/network-scripts/ifcfg-eth0-range0
IPADDR_START=192.168.0.100
IPADDR_END=192.168.0.200
CLONENUM_START=0
Есть ли способ сделать это в Ubuntu? или любой другой более быстрый способ?
Если вы этого не сделаете не обращайте внимания на отсутствие псевдонимов интерфейсов (например, : 0
, : 1
и т. д.), вы
Вы можете добавить любое количество IP-адресов на enp2s0
с помощью команды ip addr add
для события up
:
auto enp2s0
iface enp2s0 inet static
address 200.20.39.1
netmask 255.255.248.0
up ip addr add 200.20.39.1/21 dev enp2s0
up ip addr add 200.20.39.2/21 dev enp2s0
...
up ip addr add 200.20.39.254/21 dev enp2s0
...
и так далее.
Должно быть довольно легко сгенерировать 2048 строк программно, а затем простой ifdown enp2s0
/ ifup enp2s0
должен подготовить вас без многократного перезапуска сетевой службы.
ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ
] Помните, что вы должны выполнять ifdown
только в том случае, если подключены локально или удаленно через другой интерфейс , так как вы потеряете подключение к серверу при подключении к ] enp2s0
.
Если вы добавите подсеть в свой интерфейс lo
, Linux ответит на любой адрес в этой подсети.
Чтобы проиллюстрировать это, предположим, что у вас есть IP-адрес 192.168.1.99 на вашем интерфейсе Ethernet. Теперь добавьте 10.1.2.0/21 в свой интерфейс lo:
ip addr add 10.1.2.0/21 dev lo
Теперь он будет реагировать на любой запрос arp для любого IP-адреса в этом диапазоне, на любом интерфейсе.
Чтобы получить доступ к этим IP-адресам из других систем в вашем диапазоне 192.168.1.0/24, вам нужно будет установить маршрут в этих системах к этой подсети через ее основной адрес, то есть 192.168.1.99 в данном случае. В качестве альтернативы добавьте этот маршрут к шлюзу по умолчанию, он должен при необходимости отправлять перенаправления ICMP на этот хост.