4.8 KiB
4.8 KiB
HAR-разбор: SNAT / ipSpace / модификации (dev)
Дата: 2026-09-22. Источник: /home/naeel/TF/tf_provider/HAR/*.har (записи UI на dev-стенде, 2026-09-20).
Релевантные файлы: edge_.har (SNAT/Edge), ipSpace0.har, org_enough_.har, org_not_enough_.har, org0.har.
Поток modify в реальном API
POST /api/v1/svc/instanceOperations—{"instanceUid":"...","operation":"modify"}→ возвращаетinstanceOperationUid.POST /api/v1/svc/instanceOperationCfsParams— по одному запросу на параметр:{"paramValue":"...","instanceOperationUid":"...","svcOperationCfsParamId":NNN}.GET /svc/instanceOperations/{id}/validate-cfsPOST /svc/instanceOperations/{id}/run- Поллинг
GET /svc/instanceOperations/{id}.
Найденные payload-и
| Операция | param id | код | значение из HAR |
|---|---|---|---|
| edge modify | 368 | needEnableAVI |
false / true |
| edge modify | 369 | virtualServicesCount |
1 / 2 |
| edge modify | 856 | qosProfile |
QoS-100Mbit |
| edge modify | 372 | ipSpaceName |
no-needed / "" |
| edge modify | 1112 | routedNetConfiguration |
{"mainDns":"81.22.46.22","secondDns":"185.247.187.77","ipAddrPool":"10.10.102.0/24"} |
| org modify | 662 | vIPConfigure |
[{"name":"internet-ipv4-v1","count":"3"}] |
Ответы на открытые вопросы
- Тумблера «Выделить VIP для SNAT» в API НЕТ. SNAT управляется целиком через
ipSpaceName(param 372). ЕгоvalueList(из метаданных в HAR):no-needed, internet-antiddos-v1, internet-no-antiddos-v1, ...— то естьno-neededэто легальное значение «SNAT не нужен».- Включить SNAT:
ipSpaceName = <имя ipSpace из org>. - Выключить:
ipSpaceName = "no-needed".
- Включить SNAT:
- ✅ Каноническое «SNAT выключен» =
no-needed. Подтверждено: в UI (Edge → Modify → поле «ip Space для VIP», параметрipSpaceName) текущее значение показывается какno-needed. Reverse для SNAT =modifyсipSpaceName="no-needed"→ delete SNAT-модификатора можно реализовать не как no-op. (""изipSpace0.har— не каноническое, а промежуточное состояние.) - ❌ Де-аллокация IP в org (reverse) в HAR НЕ записана — есть только добавление. Payload удаления/уменьшения не подтверждён.
🔴 Ограничение (подтверждено): уменьшить/удалить ipSpace в
vcOrgнельзя, пока существуют дочерние инстансы (VDC/Edge/кластер). Следствие: reverse возможен только ПОСЛЕ уничтожения детей → порядок destroy критичен:кластер → SNAT-модификатор (no-needed) → org IP de-alloc → edge → vdc → org. Чтобы снять payload де-аллокации, нужен чистый org без детей (или плановый teardown).
Побочные факты
- У
ipSpaceName(372) в API естьvalueList, но в нашем YAML его нет → проверить, тянет ли генераторvalueList(возможно, он динамический: имена ipSpace конкретной org). - Имя ipSpace в живом примере —
internet-ipv4-v1(не произвольное). qosProfile(856) UI всегда шлёт какQoS-100Mbit.routedNetConfigurationпередаётся JSON-строкой.- В состоянии org:
"vip":{"no-needed":{},"internet-ipv4-v1":{"count":4}}—no-neededфигурирует и в стейте.
Что ещё нужно выяснить из UI (открытые вопросы)
- 🔴 Де-аллокация IP в org: записать HAR при удалении ipSpace / уменьшении count → какой payload (count=0? опустить элемент? отдельная операция?).
- �
valueListу ipSpaceName: динамический (текущие ipSpace org) или фиксированный? Проверить до/после добавления ipSpace. - 🟡 Имя ipSpace: свободный ввод или выбор из списка? Есть ли ограничения/уникальность?
- 🟡 Полное удаление ipSpace (не уменьшение count) и что UI делает при destroy Edge с включённым SNAT.