Перейти к основному содержимому

Сетевая модель

Сеть в ZennoHosting собирается из трёх независимых частей: приватных сетей проекта, подключений машин к этим сетям и публичных адресов с правилами проброса портов. Работают они вместе, но жизненные циклы у них разные.

Как устроена модель

  • Проекту может принадлежать одна или несколько приватных сетей.
  • Диапазон адресов задаёт платформа: передавать cidr вручную при создании сети не нужно.

  • Машины подключаются к сети явным вызовом и получают внутренний адрес.
  • Публичные адреса — самостоятельные ресурсы проекта. Правила проброса портов создаются внутри конкретного publicIpId.

  • При создании машины поле publicIpMode решает, взять новый адрес, использовать существующий или обойтись без публичного адреса.

  • У сетей и публичных адресов, как и у машин, есть поле status: по нему видно, готов ресурс или над ним идёт операция.

  1. 1

    Создайте приватную сеть или возьмите существующую

    Сеть даёт машинам общий контур внутри проекта. Подсеть назначается автоматически, задавать её вручную не нужно.

  2. 2

    Подключите машину и прочитайте её адрес

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

  3. 3

    Создайте публичный адрес или найдите готовый

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

  4. 4

    Добавьте правила проброса портов

    Правило связывает внешний порт и протокол с машиной и портом внутри сети проекта.

Удаление

Публичный адрес освобождается собственным запросом на удаление. Удаление сети его не затрагивает: это разные ресурсы. Пока адрес используется, освободить его не получится — придёт 409 Conflict.

Интерфейс и API видят это по-разному

В личном кабинете приватная сеть и внешний доступ могут показываться рядом как одно целое. В API это по-прежнему разные ресурсы: сети отвечают за внутреннюю топологию, публичные адреса — за внешний адрес и правила проброса.

Связанные эндпоинты