fix(gre): сохранять и восстанавливать статические IPv6 адреса
This commit is contained in:
1 parent
655ea9727f
commit
f3cbc32720
21 files changed
+1643
-60
No files matched your search
@@ -1,6 +1,6 @@
|
||||
# UX/UI: протокол внешней приёмки 12.5
|
||||
|
||||
Актуальное продолжение 2026-10-11: завершён12.5.150 — Sessions columns/направления подписаны по-русски, ReUI/Frame/base-nova/data/sort/filter сохранены.2 viewport checks/ESLint/sequential types/frontend build/live PC/mobile passed. Runtime backend ux-month149/frontend ux-sessions150. Блоки142–150 завершены локальными коммитами без push;12.5 открыт. Следующий151 — application GRE IPv6 address lifecycle: catalog/create/update/history restore/delete с family-safe paths и static-address ownership; сначала подтвердить бюджет.
|
||||
Актуальное продолжение 2026-10-11: завершён12.5.151 — GRE IPv6 static-address lifecycle через приложение: чтение/create/PATCH/history restore/delete, дополнительные/выключенные адреса, family-safe IDs и legacy409.15 профильных E2E, source types/ESLint, обе production сборки, 984 compiled parity и real native API/SQL/Ping3/3×2/cleanup прошли. Runtime backend/frontend ux-gre151 healthy;12.5 открыт. Следующий152 — application WireGuard IPv6 address lifecycle, включая импорт/историю/удаление; работать укрупнённым разделом без повторения принятого GRE.
|
||||
|
||||
IPsec78: реальный PSK responder established, mode-config198.18.78.10 и online=true подтверждены API; точные собственные объекты удалены. Сертификатный/DN online, late failure и history restore остаются открытыми. [Отчёт](ux-ui/acceptance/ipsec-mode-config-2026-10-09.json), [журнал](ux-ui-progress.md).
|
||||
|
||||
@@ -696,7 +696,7 @@ flowchart LR
|
||||
|
||||
## 12.5.77 — основной блок IPsec (2026-10-09)
|
||||
|
||||
Актуальное продолжение 2026-10-11: завершён12.5.150 — Sessions columns/направления подписаны по-русски, ReUI/Frame/base-nova/data/sort/filter сохранены.2 viewport checks/ESLint/sequential types/frontend build/live PC/mobile passed. Runtime backend ux-month149/frontend ux-sessions150. Блоки142–150 завершены локальными коммитами без push;12.5 открыт. Следующий151 — application GRE IPv6 address lifecycle: catalog/create/update/history restore/delete с family-safe paths и static-address ownership; сначала подтвердить бюджет.
|
||||
Актуальное продолжение 2026-10-11: завершён12.5.151 — GRE IPv6 static-address lifecycle через приложение: чтение/create/PATCH/history restore/delete, дополнительные/выключенные адреса, family-safe IDs и legacy409.15 профильных E2E, source types/ESLint, обе production сборки, 984 compiled parity и real native API/SQL/Ping3/3×2/cleanup прошли. Runtime backend/frontend ux-gre151 healthy;12.5 открыт. Следующий152 — application WireGuard IPv6 address lifecycle, включая импорт/историю/удаление; работать укрупнённым разделом без повторения принятого GRE.
|
||||
|
||||
Подробный объём, протоколы, схема и ограничения: [12.5.77 в журнале](ux-ui-progress.md).
|
||||
|
||||
@@ -1633,3 +1633,19 @@ Column IDs, accessors, sorting/filtering, row values, direction meanings, grid l
|
||||
Existing viewport1440/320 cases passed: endpoint/tooltip/IPv4/ICMPv6 behaviour иno document overflow. ESLint passed. Первый types check совпал с Next dev записью generated routes.d.ts и прочитал незавершённый файл; после окончания E2E/webserver TypeScript повторён последовательно и passed без изменения source. Production frontend build passed. Frontend ux-sessions150 развёрнут, backend ux-month149/PG healthy; [receipt](ux-ui/acceptance/flow-sessions-column-labels-2026-10-11.json), [readonly PC/mobile smoke](ux-ui/acceptance/traffic-sessions-labels-smoke-2026-10-11.json). Rollback image/env сохранены. Network/password/device/schema changes нет; populated native145 не повторялся для copy-only delta.
|
||||
|
||||
Окно завершает coherent группу IPv6/NetFlow142–150. Следующий151 — application GRE IPv6 address lifecycle. Native inner proof109/145 уже есть, но gre-live читает только /ip/address, а entity-snapshots create/restore/delete всегда используют IPv4 resource. Нельзя просто объединить IPv6 catalog без family-safe write/delete paths: одинаковые ROS IDs в разных namespaces и dynamic link-local требуют отдельной обработки. План151: static IPv6 catalog, family-aware paths, create/update/restore/delete+legacy snapshot compatibility, запрет неоднозначной смены primary при multiple addresses, profile/native own tunnel cleanup иUI metadata. Сначала проверить лимит; не выпускать partial family migration.12.5 открыт, public IPv6 WAN/outer и внешние integrations остаются в матрице.
|
||||
|
||||
## 12.5.151 — управление статическими IPv6-адресами GRE (2026-10-11)
|
||||
|
||||
GRE читает IPv4 и IPv6 адреса; динамические адреса исключены из управления. Ошибка любого address catalog или неверный формат ответа останавливает чтение/запись, неполный ответ не становится пустым снимком. Выбранный выключенный сервер также исключён из опроса.
|
||||
|
||||
Create/PATCH/restore/delete выбирают /ip/address или /ipv6/address по проверенному CIDR; одинаковый RouterOS ID в разных семействах безопасен. Новые снимки содержат все статические адреса, disabled/advertise/comment/no-dad. PATCH меняет только целевой GRE, сохраняет дополнительные адреса; очистка поля передаёт явную пустую строку. Восстановление старой ревизии при нескольких текущих адресах возвращает409 до записи. Неоднозначные ID/name и переименование также409. Expanded/compressed IPv6 сравниваются по одному ключу. Применение from-pool/EUI-64 остановлено с объяснением: их выделение не принимается за обычный literal static address.
|
||||
|
||||
Существующие ReUI/Frame/base-nova сохранены, добавлена подсказка IPv4/IPv6 с префиксом. Проверки: config-sync4 scripts (включая14 invalid POST/PATCH до DB/REST), gre-comment и selected-context tests; backend/source-only types/ESLint;15 GRE E2E; backend/frontend production builds;984 emitted outputs совпали. Первый E2E запуск не стартовал из-за sandbox Windows/SWC canonicalize access; разрешённый повтор прошёл.
|
||||
|
||||
Настоящие production Fastify handlers + выделенная PG база + оба CHR:18 API requests включая создание IPv6 пары, PATCH IPv6, сохранение дополнительных IPv4/disabled IPv6, history restore многoадресного снимка, legacy409 и ID/name409, смену IPv6→IPv4, очистку, восстановление и DELETE. Ping3/3 в обе стороны после running=true и address invalid=false. Первоначальный короткий Ping получил0 вместо ожидаемых3 и остановил первый сценарий; причина не доказана. Его результат и очистка сохранены отдельно, повтор не скрывает начальный отказ. Это короткий dataplane, не доказательство бесшовности/throughput.
|
||||
|
||||
Оба запуска: собственные объекты удалены,8 static collections×2 совпали с baseline, отдельные базы удалены. Пароли не менялись, public/default routes не трогались. Native parent читает исходные enabled server credentials; background polling главного приложения продолжался, отсутствие всех background SQL writes не заявляется. Runtime backend/frontend ux-gre151 healthy, live read-only PC/mobile catalog/form smoke прошёл после cleanup; native mutation принята через изолированную базу, deployed browser mutation не выполнялась.
|
||||
|
||||
Протоколы: [native/cleanup](ux-ui/acceptance/gre-ipv6-native-2026-10-11.json), [API/history](ux-ui/acceptance/gre-ipv6-api-history-2026-10-11.json), [первый запуск](ux-ui/acceptance/gre-ipv6-initial-cleanup-2026-10-11.json), [compiled parity](ux-ui/acceptance/gre-ipv6-compiled-2026-10-11.json), [live UI](ux-ui/acceptance/gre-ipv6-smoke-2026-10-11.json).
|
||||
|
||||
Границы: IPv6 ULA inner по IPv4 GRE outer; IPv6 outer/public WAN, scale, длительное восстановление и from-pool/EUI-64 не приняты. Полная регрессия после139 не повторялась: выполнен профиль изменённых областей. Следующий152 — WireGuard IPv6 lifecycle;12.5 остаётся открытым.
|
||||
Reference in new issue
Block a user