Концепция
Сетевая модель
Networking в ZennoHosting строится из отдельных ресурсов: private project networks, подключений VM внутри этих сетей и отдельных public IP resources с правилами port forwarding. Используйте их вместе, но не объединяйте в один общий lifecycle.
Модель сети
- Проект может владеть одной или несколькими network resources.
- Private network создаётся без ручной передачи
cidr; его назначает платформа. - VM подключаются к сетям явно и получают internal address в рамках модели платформы.
Public IP представлены как project-level ресурсы. Правила port forwarding управляются под конкретным
publicIpId.При создании VM поле
publicIpModeопределяет, нужно ли создать новый public IP, использовать существующий или вовсе не подключать public IP.
- 1
Создайте или проверьте private network
Начинайте с private network resource, чтобы у VM был понятный project-scoped контур подключения. Не предполагайте, что subnet нужно задавать вручную при создании.
- 2
Подключите VM и проверьте внутреннюю адресацию
Attach и update вызовы определяют, где VM находится в сети. Воспринимайте итоговый internal IP как platform-assigned значение, которое нужно читать из состояния ресурса.
- 3
Создайте или найдите project public IP resource
Публичный доступ настраивается не на объекте сети, а через отдельный project public IP resource, который определяется по
publicIpIdи может быть создан заранее или переиспользован. - 4
Создайте правила port forwarding под этим public IP
Каждое правило сопоставляет внешний порт и протокол с VM и портом внутри project network.
Модель удаления
Удаление public IP — отдельная операция. Если нужно освободить внешний адрес, вызывайте delete endpoint самого public IP, а не рассматривайте очистку public IP как часть удаления сети.
Важное различие
Product UI может визуально группировать private networking и public exposure, но каноническая API-модель остаётся разделённой: private networks отвечают за внутреннюю топологию, а public IP resources — за внешний адрес и правила forwarding.
Связанные endpoint
/projects/{projectId}/networksСоздать private project network с platform-assigned subnet.
/projects/{projectId}/networks/{networkId}/vmsПодключить VM к сети.
/projects/{projectId}/networks/{networkId}/vms/{vmId}Изменить параметры сетевого подключения VM.
/projects/{projectId}/public-ipsСоздать project-level ресурс public IP.
/projects/{projectId}/public-ipsПолучить список public IP resources проекта.
/projects/{projectId}/public-ips/{publicIpId}/port-forwardsСоздать правило внешнего port forwarding.
/projects/{projectId}/public-ips/{publicIpId}/port-forwardsПроверить правила forwarding, привязанные к public IP.
/projects/{projectId}/public-ips/{publicIpId}Удалить сам public IP resource.