10 из 15 конфигураций серверов в наличииМгновенная выдачаБез платы за установку

Сеть

Добавление дополнительных IPv4-адресов

Закажите дополнительные IPv4-адреса для сервера, настройте их в Ubuntu, Debian, AlmaLinux и Rocky Linux так, чтобы они сохранялись после перезагрузки, проверьте их работу и передайте виртуальным машинам.

5 мин чтенияОбновлено UbuntuDebianAlmaLinuxRocky LinuxProxmox VE

Применимо к
UbuntuDebianAlmaLinuxRocky LinuxProxmox VE
Время чтения
5 минут
Обновлено
Тема
Сеть

Не получается? Инженеры отвечают 24/7

На этой странице

Каждый сервер получает один выделенный IPv4-адрес и маршрутизируемую подсеть /64 IPv6. Если вам нужно больше IPv4 — для виртуальных машин, отдельных сервисов или почтового сервера с собственной репутацией, — на тот же сервер можно добавить дополнительные адреса.

Совет: сначала проверьте, не справится ли с задачей IPv6. Подсеть /64, предоставляемая вместе с сервером, бесплатна и содержит больше адресов, чем вам когда-либо понадобится; см. Настройка подсети /64 IPv6.

Заказ дополнительных адресов

ВариантЦена (без НДС)Условия
Один IPv4-адрес$2,50 за IP в месяцДо 4 на сервер без обоснования
Блок /29 (8 адресов)$18/мес.Требуется обоснование
Блок /28 (16 адресов)$36/мес.Требуется обоснование

Запросите их в личном кабинете: откройте сервер и выберите «Сеть». IPv4-адреса — дефицитный ресурс, поэтому для блоков мы просим краткое обоснование: одно-два предложения о том, для чего нужны адреса, например «восемь ВМ для разных клиентов, у каждой свой публичный IPv4». Все дополнительные услуги перечислены на странице Дополнительные услуги.

Как адреса доходят до сервера

Дополнительные адреса маршрутизируются на ваш сервер; точный способ и шлюз указаны в личном кабинете. На практике это означает следующее:

  • Каждый адрес добавляется на основной сетевой интерфейс как /32, то есть как одиночный адрес, а не с маской сети основного IP.
  • Еще один шлюз по умолчанию не добавляется. Ответы уходят через существующий маршрут по умолчанию, а адресом источника в них служит дополнительный адрес.
  • Новые исходящие соединения по-прежнему используют основной IP, если только программа не привязана к другому адресу.

Если для блока в личном кабинете указан другой способ или шлюз, следуйте данным из личного кабинета.

Настройка адресов

В примерах на интерфейс enp1s0 добавляются адреса 198.51.100.25 и 198.51.100.26; имя вашего интерфейса покажет команда ip -br link. Чтобы сначала опробовать адрес, добавьте его «на лету» — такая настройка не сохранится после перезагрузки:

Shell
ip addr add 198.51.100.25/32 dev enp1s0

Ubuntu: Netplan

Добавьте адреса к существующему интерфейсу в файле /etc/netplan/ после основного адреса:

YAML
network:
  version: 2
  ethernets:
    enp1s0:
      addresses:
        - 203.0.113.10/24
        - 198.51.100.25/32
        - 198.51.100.26/32
        - 2001:db8:1234:5678::1/64
      routes:
        - to: default
          via: 203.0.113.1
        - to: default
          via: fe80::1

Основной адрес и маршруты приведены для примера: оставьте свои без изменений, причем основной адрес должен идти первым, чтобы оставаться адресом источника по умолчанию для исходящего трафика. Примените настройки командой netplan try: она откатит изменения через 120 секунд, если вы их не подтвердите.

Debian: ifupdown

В файле /etc/network/interfaces после существующего блока для интерфейса добавьте по одному блоку (stanza) на каждый адрес:

Конфигурация
iface enp1s0 inet static
    address 198.51.100.25/32

iface enp1s0 inet static
    address 198.51.100.26/32

Затем добавьте те же адреса «на лету» командой ip addr add, как показано выше, вместо того чтобы перезапускать интерфейс через SSH.

AlmaLinux и Rocky Linux: NetworkManager

Shell
nmcli connection modify enp1s0 +ipv4.addresses 198.51.100.25/32
nmcli connection modify enp1s0 +ipv4.addresses 198.51.100.26/32
nmcli connection up enp1s0

Если имя подключения отличается от имени интерфейса, используйте имя из вывода nmcli connection show.

Внимание: опечатка в сетевой конфигурации может сделать сервер недоступным. Держите консоль IPMI открытой, пока применяете изменения, а затем в спокойное время один раз перезагрузите сервер, чтобы убедиться, что все адреса восстанавливаются.

Проверка новых адресов

Shell
ip -br address show dev enp1s0
curl --interface 198.51.100.25 -sI https://www.debian.org

Первая команда выводит адреса интерфейса. Вторая отправляет запрос с дополнительного адреса: HTTP-ответ подтверждает, что трафик маршрутизируется в обе стороны. С вашего компьютера команда ping 198.51.100.25 тоже должна получить ответ, если только файрвол не отбрасывает ping.

Привязка сервисов к адресу

Большинство серверных программ по умолчанию принимают подключения на всех адресах. Чтобы закрепить адрес за одним сервисом, явно привяжите его: например, listen 198.51.100.25:443 ssl; в nginx или smtp_bind_address = 198.51.100.25 в Postfix, чтобы исходящая почта отправлялась с этого адреса. Адресу, с которого отправляется почта, нужна соответствующая обратная DNS-запись.

Правила файрвола применяются ко всем адресам, если не указано иное. Чтобы открыть порт только на одном адресе, укажите его в качестве адреса назначения:

Shell
ufw allow proto tcp to 198.51.100.25 port 443

В firewalld используйте расширенное правило (rich rule), например firewall-cmd --permanent --add-rich-rule='rule family="ipv4" destination address="198.51.100.25" port port="443" protocol="tcp" accept', а затем firewall-cmd --reload.

Передача дополнительных IP виртуальным машинам

Поскольку адреса маршрутизируются на ваш сервер, хост должен перенаправлять их на ВМ: подключите ВМ к мосту без физического порта, включите пересылку пакетов (IP forwarding) и добавьте маршрут /32 для каждого адреса ВМ. На хосте Proxmox VE — в файле /etc/network/interfaces:

Конфигурация
auto vmbr1
iface vmbr1 inet static
    address 203.0.113.10/32
    bridge-ports none
    bridge-stp off
    bridge-fd 0
    up ip route add 198.51.100.25/32 dev vmbr1
    up ip route add 198.51.100.26/32 dev vmbr1
Shell
echo 'net.ipv4.ip_forward = 1' > /etc/sysctl.d/99-forwarding.conf
sysctl --system

Здесь 203.0.113.10 обозначает основной IP хоста. Внутри каждой ВМ настройте ее адрес как /32 и укажите основной IP хоста в качестве шлюза с пометкой on-link. Для ВМ с Ubuntu, сетевая карта которой называется ens18:

YAML
network:
  version: 2
  ethernets:
    ens18:
      addresses:
        - 198.51.100.25/32
      routes:
        - to: default
          via: 203.0.113.10
          on-link: true

Добавьте также обычную секцию nameservers. Адреса, переданные ВМ таким образом, не должны одновременно настраиваться на собственном интерфейсе хоста. Остальная настройка описана в руководстве Установка Proxmox VE.

Следующие шаги

Задайте PTR-запись для каждого адреса, который отправляет почту или должен иметь узнаваемое имя, как описано в руководстве Настройка обратных DNS-записей. На каждый адрес распространяются Правила допустимого использования, запрещающие спам и другие злоупотребления. Все еще не получается? Создайте тикет в разделе Поддержка и приложите вывод ip -br address и ip route.

Нужна помощь?

Клиенты с активным сервером создают тикеты в личном кабинете, а отвечают на них инженеры 24/7.

Как работает поддержка