Пул адресов и адресация ВМ
Когда использовать
Когда нужно управлять тем, какие адреса сети достанутся виртуальным машинам: зарезервировать адрес под физическое оборудование или внешний сервис, вернуть ранее исключённый адрес, найти машину по адресу или проверить, не кончается ли запас.
Инструкция работает с уже созданной сетью. Создание сети — в отдельной инструкции: Как создать сеть и управлять ею.
Предусловия
- сеть создана и назначена виртуальному ЦОД (ВЦОД);
- для просмотра содержимого пула — привилегия
View IP Pool Details; - известна сеть, с пулом которой работаете: найти её можно по колонке
IDв спискеAll Networks; - версия vStack Center — 3.0.4.
Как машина получает адрес
Адрес выделяется в момент, когда к машине добавляют сетевой интерфейс: в карточке
ВМ это кнопка Add network. vStack Center берёт свободный адрес пула выбранной сети и
закрепляет его за машиной; в dual-stack-сети машина получает адреса обоих
семейств. Полученный адрес виден там же, в блоке Networks карточки машины —
колонка IP рядом с MAC и номером слота.
Пул решает, какие адреса вообще участвуют в выдаче. Для IPv4 это список разрешённых адресов, для IPv6 — список резервов, то есть исключений. Отсюда двойственность операций ниже: «исключить адрес» для IPv4 убирает запись из пула, а для IPv6 добавляет запись в резервы. Подробнее об асимметрии — Сети кластера: типы, dual-stack и пулы адресов.
Посмотреть содержимое пула
-
Откройте
Provider Data Center→All Networksи перейдите в карточку сети. -
Разверните блок
IPPool space. В его заголовке стоит подсеть сети, а ниже — сетка адресов этой подсети. Сетка строится по IPv4-подсети: резервы IPv6 в ней не показываются. -
Прочитайте состояние адресов по трём кнопкам-фильтрам над сеткой. Каждая показывает счётчик и оставляет в сетке только свои адреса; повторное нажатие снимает фильтр.
Фильтр Что за адреса Можно ли выдать машине N free IP addressадрес в пуле и никем не занят да, будет выдан следующей машине N used IP addressадрес уже закреплён за машиной нет, он занят N absent IP addressадрес входит в подсеть, но в пуле его нет нет, пока не вернёте адрес в пул -
Найдите нужный адрес: поле
Search IP addressнад сеткой ищет по вхождению, а селектор под сеткой меняет число адресов на странице (по умолчанию 24). -
Нажмите на адрес — откроется окно с подсетью (
Subnet address:), самим адресом (IP address:), меню доступных действий и полемComment.
Третье состояние, absent, — прямое следствие разрешающей логики IPv4: адрес
входит в подсеть, но выдать его нельзя, пока он не добавлен в пул. Заметку в поле
Comment стоит оставлять как раз для таких адресов: она сохраняется в ваших
настройках и напоминает, почему адрес выведен из выдачи.
Если пул не показывается
| Код | Причина | Что делать |
|---|---|---|
-403 «Access denied» | нет привилегии View IP Pool Details | запросите привилегию у администратора кластера |
-25503 «network_id param does not exist», -25504 «network_id param is null» | сеть не опознана: обращение ушло без идентификатора | вернитесь в All Networks и откройте карточку сети заново |
-25505 «network_id param is not numeric» | идентификатор сети передан не числом — так бывает только при программном обращении | передайте числовой идентификатор |
-25501 «Params section does not exist», -25502 «Params section is null» | обращение ушло без параметров — так бывает только при программном обращении | добавьте секцию параметров с идентификатором сети |
-7 | ошибка базы данных | повторите; если повтор не помог, обратитесь в поддержку |
Исключить адрес из выдачи
Так адрес выводят из-под автоматического выделения: например, чтобы отдать его физическому серверу или оставить под будущий сервис.
-
В блоке
IPPool spaceвключите фильтрN free IP addressи нажмите на нужный адрес. -
В меню действий выберите
Delete from IP pool. -
Подтвердите удаление в диалоге. Он спрашивает про конкретный адрес — сверьте его и нажмите
Delete; кнопкаCancelзакрывает диалог без изменений. -
Убедитесь, что адрес перешёл в категорию
absent: счётчикN absent IP addressвырос, а сам адрес виден под этим фильтром. Об успехе говорит и уведомление с номером адреса и сети.
У адреса в состоянии used действий в меню нет: занятый адрес из выдачи не
исключают. И наоборот — исключение не отбирает адрес у машины, которая уже его
получила: операция влияет только на будущую выдачу.
Для IPv6 та же операция заносит адрес в резервы; результат тот же — машине этот адрес больше не достанется.
Если адрес не исключается
| Код | Причина | Что делать |
|---|---|---|
-25722 «The address doesn't match network cidr» | адрес не входит в подсеть сети | сверьте адрес с CIDR сети |
-25724 «The address does not exist» | адрес уже вне пула — он показан под фильтром absent | ничего делать не нужно |
-25727 «The address is already reserved» | IPv6-адрес уже в резервах | ничего делать не нужно |
-25725 «The network does not support IPv4» | у сети нет IPv4-подсети | работайте с IPv6-адресами этой сети |
-25726 «The network does not support IPv6» | у сети нет IPv6-подсети | работайте с IPv4-адресами этой сети |
-25708 «address param is not valid» | адрес не читается | исправьте формат адреса |
-25720 «The network does not exist» | сети с таким идентификатором больше нет | обновите список All Networks |
Вернуть адрес в выдачу
Обратная операция: адрес снова становится доступен машинам.
-
В блоке
IPPool spaceвключите фильтрN absent IP addressи нажмите на нужный адрес. -
В меню действий выберите
Add. Подтверждения эта операция не спрашивает. -
Убедитесь, что адрес перешёл в категорию
free: счётчикN free IP addressвырос, а сам адрес виден под этим фильтром.
Для IPv6 та же операция снимает резерв.
Если адрес не возвращается в пул
| Код | Причина | Что делать |
|---|---|---|
-25622 «The address doesn't match network cidr» | адрес не входит в подсеть сети | сверьте адрес с CIDR сети |
-25623 «The address exists already» | адрес уже в пуле — он показан под фильтром free | ничего делать не нужно |
-25626 «The address is not reserved» | IPv6-адрес и так не зарезервирован | ничего делать не нужно |
-25624 «The network does not support IPv4» | у сети нет IPv4-подсети | работайте с IPv6-адресами этой сети |
-25625 «The network does not support IPv6» | у сети нет IPv6-подсети | работайте с IPv4-адресами этой сети |
-25608 «address param is not valid» | адрес не читается | исправьте формат адреса |
-25620 «The network does not exist» | сети с таким идентификатором больше нет | обновите список All Networks |
Узнать, какие адреса заняты и кем
-
Откройте карточку сети и разверните блок
IPPool usage. ТаблицаID,VDC name,Used IP Addressesразбивает занятые адреса по ВЦОД и отвечает на первый вопрос: какой ВЦОД израсходовал адреса этой сети. -
Спуститесь до машины. Откройте нужный ВЦОД →
Virtual Machinesи смотрите блокNetworksв карточках машин: колонкаIPпоказывает адрес, который получил интерфейс. -
Убедитесь, что адрес нашёлся именно на том интерфейсе: в блоке
Networksрядом сIPстоятSlot,PortиMAC.
Интерфейс доводит связку до ВЦОД, а не до машины сразу: готовую цепочку сеть → ВЦОД → машина → адрес отдаёт API — методы перечислены в конце страницы.
Оценить запас адресов
Запас адресов виден в трёх местах, каждое отвечает на свой вопрос.
| Где смотреть | Что показывает |
|---|---|
Provider Data Center → All Networks | колонки Used IP Addresses и Free IP Addresses по каждой сети кластера; кнопка CSV выгружает таблицу целиком |
Карточка сети, блок IPPool space | счётчики free, used и absent для подсети этой сети |
ВЦОД → Networks, таб IP Data | Used IP addresses by this vDC, Used IP Addresses, Free IP Addresses и Addrs limit — расход конкретного ВЦОД и его лимит |
Счётчики в интерфейсе считают адреса IPv4: Free IP Addresses — это адреса
пула, которые никем не заняты. Свободные IPv6-адреса считаются иначе, и у широких
подсетей их объём вообще не вычисляется — почему так, объясняет
Сети кластера: типы, dual-stack и пулы адресов.
См. также
- Сети кластера: типы, dual-stack и пулы адресов — почему пул IPv4 и пул IPv6 устроены по-разному.
- Как создать сеть и управлять ею — создание сети и её назначение ВЦОД.
Методы API
Операции этой страницы в API: net-ippool-show, net-ippool-add,
net-ippool-delete, net-ippool-usage, net-ippool-free — см.
Справочник API.