Как привязать диапазон IP-адресов к интерфейсам ubuntu

Я пытаюсь связать диапазон 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? или любой другой более быстрый способ?

2
задан 8 October 2018 в 16:58
2 ответа

Если вы этого не сделаете не обращайте внимания на отсутствие псевдонимов интерфейсов (например, : 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 .

1
ответ дан 3 December 2019 в 11:24

Если вы добавите подсеть в свой интерфейс 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 на этот хост.

1
ответ дан 3 December 2019 в 11:24

Теги

Похожие вопросы