Сетевая модель
Сеть в ZennoHosting собирается из трёх независимых частей: приватных сетей проекта, подключений машин к этим сетям и публичных адресов с правилами проброса портов. Работают они вместе, но жизненные циклы у них разные.
Как устроена модель
- Проекту может принадлежать одна или несколько приватных сетей.
Диапазон адресов задаёт платформа: передавать
cidrвручную при создании сети не нужно.- Машины подключаются к сети явным вызовом и получают внутренний адрес.
Публичные адреса — самостоятельные ресурсы проекта. Правила проброса портов создаются внутри конкретного
publicIpId.При создании машины поле
publicIpModeрешает, взять новый адрес, использовать существующий или обойтись без публичного адреса.У сетей и публичных адресов, как и у машин, есть поле
status: по нему видно, готов ресурс или над ним идёт операция.
- 1
Создайте приватную сеть или возьмите существующую
Сеть даёт машинам общий контур внутри проекта. Подсеть назначается автоматически, задавать её вручную не нужно.
- 2
Подключите машину и прочитайте её адрес
Подключение и изменение параметров определяют место машины в сети. Внутренний адрес назначает платформа — читайте его из состояния ресурса, а не рассчитывайте сами.
- 3
Создайте публичный адрес или найдите готовый
Внешний доступ настраивается не на сети, а на отдельном ресурсе публичного адреса. Его можно создать заранее и переиспользовать.
- 4
Добавьте правила проброса портов
Правило связывает внешний порт и протокол с машиной и портом внутри сети проекта.
Удаление
Публичный адрес освобождается собственным запросом на удаление. Удаление сети его не затрагивает: это разные
ресурсы. Пока адрес используется, освободить его не получится — придёт 409 Conflict.
Интерфейс и API видят это по-разному
В личном кабинете приватная сеть и внешний доступ могут показываться рядом как одно целое. В API это по-прежнему разные ресурсы: сети отвечают за внутреннюю топологию, публичные адреса — за внешний адрес и правила проброса.
Связанные эндпоинты
/projects/{projectId}/networksСоздать приватную сеть проекта с автоматической подсетью.
/projects/{projectId}/networks/{networkId}/vmsПодключить машину к сети.
/projects/{projectId}/networks/{networkId}/vms/{vmId}Изменить параметры подключения машины.
/projects/{projectId}/public-ipsВыделить публичный адрес в проекте.
/projects/{projectId}/public-ipsПолучить список публичных адресов проекта.
/projects/{projectId}/public-ips/{publicIpId}/port-forwardsСоздать правило проброса портов.
/projects/{projectId}/public-ips/{publicIpId}/port-forwardsПосмотреть правила, привязанные к адресу.
/projects/{projectId}/public-ips/{publicIpId}Освободить публичный адрес.