Как боксу назначается адрес
Когда бокс создаётся, ему нужно выдать сетевые параметры: IP-адрес, маску сети, шлюз, адреса DNS-серверов. Есть два способа это сделать:
- Автоматический, по DHCP — адрес выдает DHCP-сервер, сама ОС адрес не хранит и каждый раз запрашивает его заново.
- Статический, вручную — адрес один раз прописывается в конфигурации интерфейса и не меняется, пока его явно не изменят.
На практике саму запись в конфигурационные файлы ОС выполняет автоматика в формате DHCP. От пользователя требуется другое — разобраться, какой тип адресации ему нужен и включить/проверить интерфейс. Об этом и пойдет речь ниже.
DHCP
DHCP (Dynamic Host Configuration Protocol) — протокол, по которому устройство при загрузке автоматически получает от сервера все нужные для работы в сети параметры: IP-адрес, маску подсети, адрес шлюза, адреса DNS-серверов.
Как это происходит:
- Каждому боксу при создании выделяется свой IPv4-адрес и подсеть IPv6 (/64) — они закреплены за боксом и не меняются, пока бокс не будет удалён.
- DHCP здесь — не источник случайного адреса из общего пула, а просто механизм доставки: сервер каждый раз подтверждает боксу именно его, уже закреплённый за ним адрес.
- Настройка на стороне бокса минимальна — ничего указывать не нужно, все параметры (адрес, маска, шлюз, DNS) приходят от DHCP-сервера автоматически. DHCP используется для боксов без явно заказанного статического адреса (то есть для основного адреса, выданного при создании) и для приватных сетей.
Статический адрес
Статический адрес нужен, когда к серверу обращаются по конкретному IP снаружи: веб-сервер, почтовый сервер и т.п. — адрес не должен «плавать».
Основной IPv4-адрес и подсеть IPv6 (/64) бокс получает автоматически при создании — их не нужно заказывать отдельно.
Дополнительные IPv4-адреса можно заказать в карточке бокса, в разделе «Сеть». Дополнительную подсеть IPv6 заказать нельзя — но и не нужно: адресов в выданной /64 более чем достаточно (2⁶⁴ адресов), дополнительные адреса можно просто взять из нее самостоятельно.
При создании бокса на нашей площадке сетевые интерфейсы уже настроены по DHCP и если вы не планируете менять или добавлять IP-адреса, их дополнительная настройка не нужна.
Дополнительный IPv4-адрес
Если вам нужен один или несколько дополнительных IPv4-адресов, то вы можете заказать их в карточке бокса — раздел «Сеть». После вам нужно будет:
- Дождаться сообщения в тикете или письма от нашей Поддержки со всей необходимой информацией
- Добавить дополнительный IP-адрес в сетевые интерфейсы бокса
Сделать это можно так:
Ubuntu / RHEL / Debian / Fedora / CentOS / AlmaLinux
Добавляем адрес в сетевой интерфейс:
ip addr add <дополнительный_адрес>/32 dev ens3
Проверяем:
ip a
Если в выводе вы видите:
inet <дополнительный_адрес>/32 scope global ens3
то все прошло успешно.
Дополнительно можно проверить связность с внешними сетями:
ping -I <дополнительный_адрес> 1.1.1.1 # или любой другой внешний адрес
Стоит учесть, что утилита
ipне сохраняет дополнительный адрес после перезагрузки бокса.Чтобы адрес сохранился и после перезагруки, нужно прописать его в сетевом интерфейсе:
vim /etc/netplan/50-cloud-init.yaml
network:
version: 2
ethernets:
ens3:
match:
macaddress: "11:11:11:11:11:11"
dhcp4: true
dhcp6: true
set-name: "ens3"
# добавьте поле addresses c дополнительным адресом
addresses:
- <дополнительный_адрес>/32netplan apply
FreeBSD
Добавление дополнительного IP-адреса на FreeBSD несколько отличается от других unix-like дистрибутивов:
ifconfig vtnet0 inet <дополнительный_адрес>/32 alias
Для постоянной работы доп.адреса в FreeBSD нужно также добавить его в сетевой интерфейс.
Включаем DHCP и добавляем дополнительный адрес в сетевой интерфейс:
service dhcpcd start echo 'ifconfig_vtnet0_alias0="inet <дополнительный_адрес>/32"' >> /etc/rc.conf
service netif restart
Kali Linux
Устанавливаем
NetworkManager:sudo apt update sudo apt install network-manager -y
Добавляем дополнительный адрес в интерфейс и активируем:
sudo nmcli connection modify "Wired connection 1" +ipv4.addresses <дополнительный_адрес>/32 nmcli connection up "Wired connection 1"
NetworkManager сохраняет адрес и после перезагрузки, поэтому дополнительная настройка не требуется.На менее популярных дистрибутивах, таких как Arch Linux, Gentoo, Alpine Linux и др. добавление дополнительного адреса может отличаться.
Приватная сеть
Приватная сеть объединяет боксы в одной локации по приватным IP-адресам.
Настройка приватной сети:
- Включите нужные боксы в приватную сеть, раздел «Сеть» ➝ «Приватная сеть»
- После этого у бокса появляется дополнительный сетевой интерфейс — он виден в выводе команды
ip a, но по умолчанию выключен. - Добавьте адреса из приватного диапазона в сетевые интерфейсы всех боксов в приватной сети. Адреса не должны совпадать
Приватные диапазоны:
- 10.0.0.0/8
- 172.16.0.0/12
- 192.168.0.0/16
Пример
/etc/netplan/50-cloud-init.yaml:network:
version: 2
ethernets:
ens3:
match:
macaddress: "52:54:00:04:10:20"
dhcp4: true
dhcp6: true
set-name: "ens3"
# Добавьте секцию ниже
ens8:
dhcp4: no
addresses:
- 10.47.183.92/24После применяем изменения:
netplan apply
И проверяем:
ssh root@<приватный_адрес> ping <приватный_адрес>
Если боксы в приватной сети пингуются между собой — вы все сделали правильно.
Диагностика типовых проблем
Если сети «нет вообще» или есть проблемы с доступом, полезно проверять по шагам — так сразу видно, на каком уровне обрыв:
- Есть ли адрес на интерфейсе —
ip a. Если адреса нет или интерфейс в состоянии DOWN — дальше проверять бессмысленно, проблема на уровне интерфейса. - Есть ли маршрут по умолчанию —
ip route. Если строкиdefault via ...нет — трафик наружу не пойдет, даже если адрес назначен верно. - Доступен ли шлюз —
ping <адрес шлюза>. Если не пингуется — проблема на уровне сети/провайдера, а не самой ОС. - Есть ли выход в интернет по IP —
ping 8.8.8.8. Если шлюз пингуется, а это — нет, проблема где-то за пределами бокса. - Работает ли DNS —
ping ya.ruилиnslookup ya.ru. Если по IP всё пингуется, а по имени — нет, дело в DNS-серверах (не прописаны, недоступны).
Так по цепочке локализуется, на каком именно уровне (интерфейс → маршрут → провайдер → DNS) находится проблема.
Потери пакетов и задержки
Если пинг проходит, но нестабильно (потери, скачки задержки), для локализации проблемы (у себя, у нас или дальше по маршруту) удобнее не
ping, а:traceroute <адрес>
Покажет, через какие узлы идёт трафик и на каком именно узле начинаются задержки или потери.
mtr <адрес>
По сути тот же
traceroute, но в реальном времени и с накоплением статистики по каждому узлу (% потерь, средняя/максимальная задержка) — удобнее для диагностики нестабильной связи, чем разовый traceroute.