На этой странице
Каждый сервер получает один выделенный IPv4-адрес и маршрутизируемую подсеть /64 IPv6. Если вам нужно больше IPv4 — для виртуальных машин, отдельных сервисов или почтового сервера с собственной репутацией, — на тот же сервер можно добавить дополнительные адреса.
Совет: сначала проверьте, не справится ли с задачей IPv6. Подсеть /64, предоставляемая вместе с сервером, бесплатна и содержит больше адресов, чем вам когда-либо понадобится; см. Настройка подсети /64 IPv6.
Заказ дополнительных адресов
| Вариант | Цена (без НДС) | Условия |
|---|---|---|
| Один IPv4-адрес | $2,50 за IP в месяц | До 4 на сервер без обоснования |
| Блок /29 (8 адресов) | Требуется обоснование | |
| Блок /28 (16 адресов) | Требуется обоснование |
Запросите их в личном кабинете: откройте сервер и выберите «Сеть». IPv4-адреса — дефицитный ресурс, поэтому для блоков мы просим краткое обоснование: одно-два предложения о том, для чего нужны адреса, например «восемь ВМ для разных клиентов, у каждой свой публичный IPv4». Все дополнительные услуги перечислены на странице Дополнительные услуги.
Как адреса доходят до сервера
Дополнительные адреса маршрутизируются на ваш сервер; точный способ и шлюз указаны в личном кабинете. На практике это означает следующее:
- Каждый адрес добавляется на основной сетевой интерфейс как /32, то есть как одиночный адрес, а не с маской сети основного IP.
- Еще один шлюз по умолчанию не добавляется. Ответы уходят через существующий маршрут по умолчанию, а адресом источника в них служит дополнительный адрес.
- Новые исходящие соединения по-прежнему используют основной IP, если только программа не привязана к другому адресу.
Если для блока в личном кабинете указан другой способ или шлюз, следуйте данным из личного кабинета.
Настройка адресов
В примерах на интерфейс enp1s0 добавляются адреса 198.51.100.25 и 198.51.100.26; имя вашего интерфейса покажет команда ip -br link. Чтобы сначала опробовать адрес, добавьте его «на лету» — такая настройка не сохранится после перезагрузки:
ip addr add 198.51.100.25/32 dev enp1s0Ubuntu: Netplan
Добавьте адреса к существующему интерфейсу в файле /etc/netplan/ после основного адреса:
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
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 открытой, пока применяете изменения, а затем в спокойное время один раз перезагрузите сервер, чтобы убедиться, что все адреса восстанавливаются.
Проверка новых адресов
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-запись.
Правила файрвола применяются ко всем адресам, если не указано иное. Чтобы открыть порт только на одном адресе, укажите его в качестве адреса назначения:
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 vmbr1echo 'net.ipv4.ip_forward = 1' > /etc/sysctl.d/99-forwarding.conf
sysctl --systemЗдесь 203.0.113.10 обозначает основной IP хоста. Внутри каждой ВМ настройте ее адрес как /32 и укажите основной IP хоста в качестве шлюза с пометкой on-link. Для ВМ с Ubuntu, сетевая карта которой называется ens18:
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.