fix(ipsec): подтвердить достоверность операций и приёмку раздела
This commit is contained in:
1 parent
e2d81f9657
commit
f80d9b7637
28 files changed
+969
-170
No files matched your search
+40
-2
@@ -1,6 +1,6 @@
|
||||
# UX/UI: журнал реализации
|
||||
|
||||
Актуальное продолжение 2026-10-09: 12.5.76 завершил укрупнённый раздел VXLAN: достоверный снимок/MTU, запрет опроса выключенных устройств, устойчивое меню, Docker deploy обеих частей и реальная приёмка двух CHR. Browser4/4, повторное применение экспортированного fragment с MTU1400 и Ping3/3 в обе стороны, probe0 и cleanup passed. Runtime backend/frontend ux-vxlan76, version1.0.0-test.vxlan76; происхождение сборки — base HEAD6b068ac плюс явный manifest13 файлов. Следующий12.5.77 — IPsec целиком: карта API/операций, собственная тестовая пара, профильные проверки и исправления, deployment/приёмка/cleanup, один локальный коммит. Этап12.5 открыт.
|
||||
Актуальное продолжение 2026-10-09: 12.5.77 завершил укрупнённый основной блок IPsec: достоверное чтение, запрет опроса выключенных устройств, совместимый RouterOS7 мастер, раздельные ID клиентов, безопаснее удаление, URL устройства/вкладки, Docker обеих частей и реальная приёмка. Local30/30 + context6/6 + backend67, live browser4/4, PSK и сертификатный защищённый GRE/Ping3/3 на двух CHR; cleanup/DB controls passed. Runtime backend/frontend ux-ipsec77, version1.0.0-test.ipsec77. Следующий12.5.78 — остаточная профильная приёмка IPsec: сопоставление active-peer/online, выдача mode-config, поздние ошибки операций и история восстановления; затем маршрутизация. Этап12.5 открыт.
|
||||
|
||||
Общий план: [UX/UI по этапам и пятичасовым окнам](ux-ui-plan.md). План задаёт объём, этот журнал фиксирует выполненные блоки и ограничения. Записи расположены от новых к старым; подробная история этапа12 также сохранена в [ux-ui-stage-12.md](ux-ui-stage-12.md).
|
||||
|
||||
@@ -36,7 +36,45 @@
|
||||
| 10 | Маршрутизация, диагностика, карта и терминал | Завершён в границах локальной приёмки 2026-10-01; блоки 10.1–10.71, внешние ограничения в 10.71 |
|
||||
| 11А | Пользователи, контейнеры, сертификаты и резервные копии | Завершён в границах локальной приёмки 2026-10-01; 11А.1–11А.33, внешние ограничения в 11А.33 |
|
||||
| 11Б | Оповещения, сбор данных, интеграции, релизы и настройки | Завершён в границах локальной приёмки 2026-10-03; ограничения и evidence в11Б.7 |
|
||||
| 12 | Итоговая доступность, адаптивность, производительность и регрессия | Локальная приёмка завершена в границах12.3.83; внешняя12.5 в работе, выполненные блоки1–76 и ограничения ниже. Runtime backend/frontend ux-vxlan76. |
|
||||
| 12 | Итоговая доступность, адаптивность, производительность и регрессия | Локальная приёмка завершена в границах12.3.83; внешняя12.5 в работе, выполненные блоки1–77 и ограничения ниже. Runtime backend/frontend ux-ipsec77. |
|
||||
|
||||
## 12.5.77 — IPsec: основной раздел, RouterOS7 и реальная профильная приёмка (2026-10-09)
|
||||
|
||||
Укрупнённый блок включает backend/API/UI, тесты, production Docker build/deploy, собственные реальные объекты на обоих CHR и очистку. Один локальный коммит после блока, без push. Установленные ReUI/Frame/base-nova компоненты сохранены.
|
||||
|
||||
**Достоверность и операции.** Чтение восьми коллекций IPsec больше не скрывает отказ RouterOS или некорректный контейнер/строки/ID пустым успешным списком. Агрегатор сохраняет успешные устройства и сообщает ошибку конкретного устройства; observed history не запускается для неудачного среза. Выключенный сервер исключён из чтения и операций, ID разбирается целиком. Init/User/Peer формы сохраняют поля при отказах по существующим шаблонам. Статический IPv4 проверяется до изменений; отсутствующий явный peer и дубликат клиента отклоняются. Зарезервированные имена mode-config учитываются в истории и очистке, поскольку RouterOS7.24.5 отклонил comment.
|
||||
|
||||
**Совместимость RouterOS7.** Мастер создаёт сертификатную identity с digital-signature, certificate находится в identity; неподдерживаемые certificate/send-cert убраны из peer и restore body. Исправлены responder=yes для mode-config, доверие CA, неподдерживаемые profile/mode-config comment и identity place-before. Из генерации убраны DH1024/1536 и SHA1. Сертификатная роль учитывает identity references. Plain PSK remote ID при создании превращается в key-id. Отображаемое имя сертификатного клиента хранится в identity, подписанный CN/ключ/имя сертификата сохраняются.
|
||||
|
||||
**Выбор объекта и удаление.** Клиенты используют явные rosId namespace identity:/cert:; совпадение ID разных RouterOS меню больше не выбирает чужой объект. Неоднозначный legacy ID даёт409 с предложением обновить список; CA не является клиентом. Удаление сервера заранее читает весь объём, сохраняет стандартный/чужой policy template, не скрывает ошибки и удаляет CA после leaf сертификатов. Чужие identity/policy и сертификат, подписанный управляемым CA, блокируют удаление до первой записи. Общий/чужой mode-config сохраняется при удалении клиента. Это проверки перечисленных ссылок, не гарантия учёта всех внешних потребителей PKI.
|
||||
|
||||
**Контекст и интерфейс.** URL сохраняет server и tab при reload; неизвестное устройство остаётся отдельным срезом с ошибкой и заблокированным созданием клиента. Сохранена цель мастера при переключении контекста. Форма peer больше не предлагает сертификат, относящийся к identity. Реальный browser выявил возврат вкладки после закрытия Sheet; локальные query-state обновления переведены на History API без отдельного RSC перехода. [Next.js API](https://nextjs.org/docs/app/guides/single-page-applications). Тестовые PNG сохраняются в каталог конкретного запуска после ошибки записи общего файла Windows.
|
||||
|
||||
**Проверки.** npm backend test:ipsec:67 новых проверок + config tests, entity-snapshots passed; backend/scoped frontend TypeScript и ESLint passed. Итоговый профильный набор30/30 (включает связанные GRE cases), context-race6/6. Реальный browser4/4: оба CHR ×1280/320px, готовность, peer/client формы, URL/tab/reload и отсутствие page overflow; без HTTP mocks. [Browser protocol](ux-ui/acceptance/browser-ipsec-section-2026-10-09.json). Полная регрессия проекта не повторялась.
|
||||
|
||||
**Реальная схема.** На194.226.121.150 и104.165.244.7 выполнены HTTP init без NAT, создание/disable/enable/duplicate PSK клиента,400 на неверный IP,404 на отсутствующий peer, выпуск сертификатов, проверка .p12 через OpenSSL и сохранение CN при переименовании. Для сетевой проверки native REST создал собственные profile/proposal/peer/identity/policy/GRE и198.18.255.249/30↔.250/30; IPsec encrypt/require защищал GRE между публичными /32, без изменения firewall/default route. PSK, затем digital-signature с реальным экспортированным клиентским ключом: Ping3/3 в обе стороны, ph2-state established и ненулевые SA bytes. В импортированной цепочке CA/leaf получили одинаковое имя от RouterOS; тест назначает им уникальные имена по ID. Сертификатная роль задана явно: CHR1 responder, CHR2 initiator. Это native site-to-site проверка криптографии/экспорта; выдача road-warrior lease и импорт через приложение не объявляются проверенными.
|
||||
|
||||
**Ошибки чтения и выключенные устройства.** Две собственные временные DB записи home-router/exit-node указывали на HTTP probe. Выключенные GET сообщали disabled, операции404, native calls0. Включение только fake endpoint вернуло настоящий upstream401: не было ложной успешной пустой сводки, два исправных CHR сохранились в частичном результате;16 probe calls на два чтения. Все fake записи удалены. [Native protocol](ux-ui/acceptance/ipsec-section-2026-10-09.json).
|
||||
|
||||
**Развёртывание и состояние.** Образы backend/frontend ux-ipsec77/version1.0.0-test.ipsec77 собраны и развёрнуты;3 services running, backend/PG healthy, frontend проверен HTTP/browser. Source: архив базового HEAD e2d81f9 +14 явных working-file overrides, SHA256 e0a034a855eb2d07696a1849c9baed738890e7c84108d5a3d6dbe652188bee9e; [manifest](ux-ui/acceptance/ipsec-section-source-manifest-2026-10-09.json). Это не архив одного уже закоммиченного revision. Приватный pre-deploy PG backup2510309 bytes/0600, pg_restore --list passed; .env/прежние VXLAN образы сохранены на сервере. DB после: servers2/speedHistory9/retention14/migrations9. Пароли не менялись; оба CHR/SSH доступны, единичный401 CHR2 при контрольном чтении не повторился. [Deployment](ux-ui/acceptance/deploy-ipsec-section-2026-10-09.json), [smoke8 страниц](ux-ui/acceptance/deploy-browser-ipsec-section-2026-10-09.json).
|
||||
|
||||
Очистка последнего цикла сравнила IPsec/PKI/GRE/IP/routes/IPv4 firewall/file metadata на обоих CHR: все проверки true. При восстановлении раннего цикла широкий отбор отклонила автоматическая проверка: выполнены инвентаризация и preflight17 точных ID/атрибутов собственного запуска, затем их разрешённая очистка. Удаление каталога flash наCHR2 отклонено отдельно: системное имя/пустота не доказывают ownership; каталог сохранён. Приватные .p12/.pass/.pem теста удалены, ключи не включены в отчёт/Git.
|
||||
|
||||
| Референс | Схема и реальные экраны |
|
||||
| --- | --- |
|
||||
| [Data Grid Filtering2](https://reui.io/preview/base/data-grid-filtering-2?ref=mcp) | Устройство/URL → достоверный срез → клиент; [ПК](ux-ui/screens/ipsec-real-clients-server1-1280-2026-10-09.png), [телефон](ux-ui/screens/ipsec-real-clients-server2-320-2026-10-09.png) |
|
||||
| [Sheet8](https://reui.io/preview/base/sheet-8?ref=mcp), [Tabs API/preview](https://reui.io/components/tabs?ref=mcp) | Peer/клиент → сохранение ввода → подтверждение API → возврат в тот же срез |
|
||||
|
||||
```mermaid
|
||||
flowchart LR
|
||||
A[Устройство и вкладка в URL] --> B{Достоверный срез?}
|
||||
B -->|Нет| C[Ошибка и последние данные]
|
||||
B -->|Да| D[Peer или клиент с явным ID]
|
||||
D --> E[Форма и подтверждение API]
|
||||
E --> F[Native проверка и возврат]
|
||||
```
|
||||
|
||||
Остаточные границы: online/active-peer корреляция, настоящая выдача mode-config, NAT/интернет, IPv6, Windows/macOS/iOS/Android подключения, late failure receipts/DB/transport, history restore, многопроцессность, IPsec-specific live JWT/RBAC и throughput не приняты этим блоком. Основной раздел внедрён и принят в перечисленных сценариях; этап12.5 и эти профильные ограничения остаются открытыми.
|
||||
|
||||
## 12.5.76 — VXLAN: достоверность, экспорт и полная профильная приёмка (2026-10-09)
|
||||
|
||||
|
||||
Reference in new issue
Block a user