chore(test): проверить реальную GRE пару и очистку туннелей

This commit is contained in:
Denozordec committed 2026-10-08 15:36:55 +07:00
1 parent 37bc356ff7
commit 56f29a60d1
11 files changed
+373 -5

No files matched your search

+12
View File
@@ -343,3 +343,15 @@ Retry POST0, Telegram calls0, JS errors0, SQL fixture counts сохраняли
Контроль основной БД до/после совпадает: servers2, speedHistory9, retention14. Дополнительный SELECT подтвердил роли home-router. Эфемерный контейнер завершён/удалён, pool закрыт; остались только три основные Compose-службы. Пароли, адресация и правила устройств не менялись. Эта инвентаризация не закрывает ROS4/5/6 или остальные внешние ограничения.
Следующий12.5.51 — проверить реальные пустые состояния, выбор устройства/URL-контекст и доступность форм сетевых экранов на production frontend, без изменения RouterOS. После этого конкретный план создания изолированных тестовых объектов должен сохранять административный доступ и существующую конфигурацию. План/паспорт/протокол синхронизированы; локальный коммит без push.
## 12.5.51 — реальная GRE пара, связность и lifecycle (2026-10-08)
По прямому поручению пользователя VPN-приёмка продолжается с созданием реальных тестовых туннелей, особенно GRE. [Lifecycle](ux-ui/acceptance/gre-real-lifecycle-2026-10-08.json): production backend8782054, два CHR7.24.5, собственные имена mm-acceptance-gre-* и комментарий владения. Перед записью проверены локальные внешние адреса и отсутствие пересечения198.18.255.248/30 с существующей адресацией/недефолтными маршрутами. POST application API создал обе GRE стороны и /ip/address:201/201. Внешние endpoints194.226.121.150 ↔104.165.244.7, внутренние198.18.255.249/30 ↔198.18.255.250/30, MTU1400,keepalive2s/3. Дополнительных static/default routes и Firewall правил не создавалось.
После running=true независимый RouterOS Ping через указанный GRE интерфейс:3/3 в каждом направлении,0%loss,~54ms. Это реальная point-to-point связность, не benchmark и не шифрованный IPsec. PATCH MTU первого конца1360, disable и enable дали200 и подтверждены отдельным чтением RouterOS. [Browser](ux-ui/acceptance/browser-gre-real-2026-10-08.json): настоящие созданные объекты, формы обоих устройств, local IP и server/tunnel URL-контекст/reload/320px, JS errors0; browser проход читает/отменяет формы, создание/изменение выполнял production API. [ФормаCHR1](ux-ui/screens/gre-real-form-server1-320-2026-10-08.png) просмотрена, [CHR2](ux-ui/screens/gre-real-form-server2-320-2026-10-08.png) сохранена.
Первый запуск Ping до готовности получил timeout; [повтор после running](ux-ui/acceptance/gre-ready-ping-2026-10-08.json) подтвердил3/3. Первый harness остановил свою очистку на слишком строгом сравнении baseline, включавшем runtime IDs; причина конкретного несовпадения не была сохранена полностью. [Независимая очистка](ux-ui/acceptance/gre-cleanup-recovery-2026-10-08.json) удалила оставшуюся собственную сторону и подтвердила отсутствие интерфейсов/IP/connected route, исходные количества0GRE/1–2addresses/4–5routes. Harness исправлен: сначала очистить обе стороны, сравнивать конфигурационные поля без runtime IDs, сохранить evidence до assertion. Повторный полный lifecycle прошёл с exitCode0: DELETE200/200, все выбранные поля GRE/IP/route/IPv4 Firewall совпали с baseline. Прямое административное восстановление чужих объектов не выполнялось.
Обнаружен настоящий дефект: принятый remoteInnerIp возвращается пустым, затем теряется в форме редактирования. Связность обеспечивается настройкой обоих реальных /ip/address, но сохранение формы этим не считается исправленным. Следующий12.5.52 — исправить metadata persistence/restore peer IP и профильные тесты, затем развернуть и повторить настоящий GRE цикл. Ограничения ROS6 для остальных VPN/прав/частичных отказов остаются. Control main2servers/9speed/retention14 сохранён; application GRE revisions намеренно остаются журналом выполненных действий. Временный контейнер/туннель8018 удалены; RouterOS тестовые объекты очищены. Локальный коммит без push.
Официальная схема пары и keepalive: [MikroTik GRE](https://manual.mikrotik.com/docs/virtual-private-networks/gre/). Документация текущей версии проверена, реальные команды/ответы — RouterOS7.24.5.
+14 -2
View File
@@ -1,12 +1,12 @@
# План реализации UX/UI по пятичасовым окнам
Актуальное продолжение 2026-10-08: 12.5.50 GET-only инвентаризация двух CHR прошла:78 чтений, RouterOS7.24.5, выбранные поля конфигурации при повторном чтении совпали. VPN/BGP/OSPF и IPv4 Firewall не настроены, IPsec содержит только стандартный template. Оба app типа home-router; ROS4/5/6 действия и связность этим не подтверждены. Main controls2servers/9speed/retention14 сохранены. Runtime backend8782054/frontendb55588f прежний. Следующий12.5.51 — реальные пустые состояния и контекст сетевых экранов без изменения RouterOS.
Актуальное продолжение 2026-10-08: 12.5.51 создал реальную GRE пару через production API, проверил MTU/enable/disable, двусторонний Ping3/3 и реальные UI формы/URL/320px. Обе стороны удалены, выбранная конфигурация восстановлена. Подтверждён дефект: remoteInnerIp теряется в receipt и форме. Следующий12.5.52 — исправить сохранение peer IP; runtime backend8782054/frontendb55588f прежний. При VPN приёмке создавать собственные реальные тестовые объекты, особенно GRE, и удалять их после проверки.
Общий план проекта MikrotikManager. Основан на согласованном плане из задачи; точка продолжения обновлена 2026-10-08. Источник фактического прогресса, проверок и ограничений — [журнал реализации](ux-ui-progress.md). Этот документ задаёт объём и критерии завершения, журнал фиксирует результат.
## Актуальная точка продолжения — 2026-10-08
Этапы0–11 завершены в описанных локальных границах. Этап12 открыт. На тестовом сервере161.104.46.222 работают backend8782054/frontendb55588f и два CHR. Внешние проверки подтвердили PG backup/restore/rollback, остановку фоновой работы для одного экземпляра, API JWT/RBAC и браузерные состояния восстановления. Native TCP/UDP speed, история и UI проверены в границах журнала; доступ ко второму CHR восстановлен пользователем. Очередь Telegram проверена на реальном PG: dedupe, конкурентный claim, retry/version, ошибки сохранения и неопределённый исход; ответы отправителя подменялись, реальной доставки это не доказывает. Блоки12.5.43–45 подтвердили browser retry/checkpoint и развернули понятное пояснение HTTP500. 12.5.46 подтвердил browser JWT/RBAC очереди на реальном HTTP/PG; 12.5.47 подтвердил изоляцию checkpoint при смене двух реальных HTTP/PG источников в конфигурации local; 12.5.48 подтвердил scoped axe/клавиатуру в обеих темах и320px; 12.5.49 собрал Q-матрицу и подтвердил отсутствие настройки Telegram; 12.5.50 подтвердил GET-only инвентаризацию: VPN/BGP/OSPF пусты, роли home-router/home-router; следующий12.5.51 — production UI пустых сетевых состояний и контекста устройства. Реальная Telegram доставка, Portal SSO, физический TCP disconnect, multi-instance и остальные профильные сетевые сценарии остаются открытыми. [Протокол](ux-ui-external-acceptance.md) и [журнал](ux-ui-stage-12.md) содержат доказательства и ограничения.
Этапы0–11 завершены в описанных локальных границах. Этап12 открыт. На тестовом сервере161.104.46.222 работают backend8782054/frontendb55588f и два CHR. Внешние проверки подтвердили PG backup/restore/rollback, остановку фоновой работы для одного экземпляра, API JWT/RBAC и браузерные состояния восстановления. Native TCP/UDP speed, история и UI проверены в границах журнала; доступ ко второму CHR восстановлен пользователем. Очередь Telegram проверена на реальном PG: dedupe, конкурентный claim, retry/version, ошибки сохранения и неопределённый исход; ответы отправителя подменялись, реальной доставки это не доказывает. Блоки12.5.43–45 подтвердили browser retry/checkpoint и развернули понятное пояснение HTTP500. 12.5.46 подтвердил browser JWT/RBAC очереди на реальном HTTP/PG; 12.5.47 подтвердил изоляцию checkpoint при смене двух реальных HTTP/PG источников в конфигурации local; 12.5.48 подтвердил scoped axe/клавиатуру в обеих темах и320px; 12.5.49 собрал Q-матрицу и подтвердил отсутствие настройки Telegram; 12.5.50 подтвердил GET-only инвентаризацию: VPN/BGP/OSPF пусты, роли home-router/home-router; По уточнению пользователя12.5.51 создал реальные GRE туннели и подтвердил lifecycle/связность; обнаружена потеря peer IP, следующий12.5.52 — исправление сохранения metadata. Реальная Telegram доставка, Portal SSO, физический TCP disconnect, multi-instance и остальные профильные сетевые сценарии остаются открытыми. [Протокол](ux-ui-external-acceptance.md) и [журнал](ux-ui-stage-12.md) содержат доказательства и ограничения.
Выполненные внешние сценарии не заменяют приёмку оставшихся интеграций и условий эксплуатации. Датированные продолжения ниже — история; точный следующий шаг указан в начале [журнала](ux-ui-progress.md).
@@ -320,3 +320,15 @@ REST запрос → ожидание → подтверждённый output /
2026-10-03: 11Б.4.3.1.1 — live Alerts без первоначальных demo/0, strict primary reader/known/time, 3 E2E/lint/typecheck/build прошли. Далее independent secondary readers/source 11Б.4.3.1.2.
2026-10-03: 11Б.4.3.1.2.1 — strict secondary API (GRE partial failures/unknown status), 4 unit/typecheck/lint прошли. Module не подключён. Далее 11Б.4.3.1.2.2 independent UI/source.
## 12.5.51 — реальная GRE пара, связность и lifecycle (2026-10-08)
По прямому поручению пользователя VPN-приёмка продолжается с созданием реальных тестовых туннелей, особенно GRE. [Lifecycle](ux-ui/acceptance/gre-real-lifecycle-2026-10-08.json): production backend8782054, два CHR7.24.5, собственные имена mm-acceptance-gre-* и комментарий владения. Перед записью проверены локальные внешние адреса и отсутствие пересечения198.18.255.248/30 с существующей адресацией/недефолтными маршрутами. POST application API создал обе GRE стороны и /ip/address:201/201. Внешние endpoints194.226.121.150 ↔104.165.244.7, внутренние198.18.255.249/30 ↔198.18.255.250/30, MTU1400,keepalive2s/3. Дополнительных static/default routes и Firewall правил не создавалось.
После running=true независимый RouterOS Ping через указанный GRE интерфейс:3/3 в каждом направлении,0%loss,~54ms. Это реальная point-to-point связность, не benchmark и не шифрованный IPsec. PATCH MTU первого конца1360, disable и enable дали200 и подтверждены отдельным чтением RouterOS. [Browser](ux-ui/acceptance/browser-gre-real-2026-10-08.json): настоящие созданные объекты, формы обоих устройств, local IP и server/tunnel URL-контекст/reload/320px, JS errors0; browser проход читает/отменяет формы, создание/изменение выполнял production API. [ФормаCHR1](ux-ui/screens/gre-real-form-server1-320-2026-10-08.png) просмотрена, [CHR2](ux-ui/screens/gre-real-form-server2-320-2026-10-08.png) сохранена.
Первый запуск Ping до готовности получил timeout; [повтор после running](ux-ui/acceptance/gre-ready-ping-2026-10-08.json) подтвердил3/3. Первый harness остановил свою очистку на слишком строгом сравнении baseline, включавшем runtime IDs; причина конкретного несовпадения не была сохранена полностью. [Независимая очистка](ux-ui/acceptance/gre-cleanup-recovery-2026-10-08.json) удалила оставшуюся собственную сторону и подтвердила отсутствие интерфейсов/IP/connected route, исходные количества0GRE/1–2addresses/4–5routes. Harness исправлен: сначала очистить обе стороны, сравнивать конфигурационные поля без runtime IDs, сохранить evidence до assertion. Повторный полный lifecycle прошёл с exitCode0: DELETE200/200, все выбранные поля GRE/IP/route/IPv4 Firewall совпали с baseline. Прямое административное восстановление чужих объектов не выполнялось.
Обнаружен настоящий дефект: принятый remoteInnerIp возвращается пустым, затем теряется в форме редактирования. Связность обеспечивается настройкой обоих реальных /ip/address, но сохранение формы этим не считается исправленным. Следующий12.5.52 — исправить metadata persistence/restore peer IP и профильные тесты, затем развернуть и повторить настоящий GRE цикл. Ограничения ROS6 для остальных VPN/прав/частичных отказов остаются. Control main2servers/9speed/retention14 сохранён; application GRE revisions намеренно остаются журналом выполненных действий. Временный контейнер/туннель8018 удалены; RouterOS тестовые объекты очищены. Локальный коммит без push.
Официальная схема пары и keepalive: [MikroTik GRE](https://manual.mikrotik.com/docs/virtual-private-networks/gre/). Документация текущей версии проверена, реальные команды/ответы — RouterOS7.24.5.
+16 -2
View File
@@ -1,11 +1,13 @@
# UX/UI: журнал реализации
Актуальное продолжение 2026-10-08: 12.5.50 GET-only инвентаризация двух CHR прошла:78 чтений, RouterOS7.24.5, выбранные поля конфигурации при повторном чтении совпали. VPN/BGP/OSPF и IPv4 Firewall не настроены, IPsec содержит только стандартный template. Оба app типа home-router; ROS4/5/6 действия и связность этим не подтверждены. Main controls2servers/9speed/retention14 сохранены. Runtime backend8782054/frontendb55588f прежний. Следующий12.5.51 — реальные пустые состояния и контекст сетевых экранов без изменения RouterOS.
Актуальное продолжение 2026-10-08: 12.5.51 создал реальную GRE пару через production API, проверил MTU/enable/disable, двусторонний Ping3/3 и реальные UI формы/URL/320px. Обе стороны удалены, выбранная конфигурация восстановлена. Подтверждён дефект: remoteInnerIp теряется в receipt и форме. Следующий12.5.52 — исправить сохранение peer IP; runtime backend8782054/frontendb55588f прежний. При VPN приёмке создавать собственные реальные тестовые объекты, особенно GRE, и удалять их после проверки.
Общий план: [UX/UI по этапам и пятичасовым окнам](ux-ui-plan.md). План задаёт объём, этот журнал фиксирует выполненные блоки и ограничения. Записи расположены от новых к старым; подробная история этапа12 также сохранена в [ux-ui-stage-12.md](ux-ui-stage-12.md).
## Правила продолжения
- По поручению2026-10-08 при внешнем тестировании VPN создавать реальные собственные тестовые туннели, особенно GRE; проверять API/RouterOS/связность и очищать только созданные объекты, сохраняя исходную конфигурацию.
- План: ReUI PRO, Frame, base-nova; KpiStatGrid, ServerTileRail и CodeExportSheet остаются источниками общих композиционных решений.
- Работа последовательно, без субагентов. После каждого завершённого этапа — локальный коммит на русском, без push.
- В начале этапа и после значимых проверок читать пятичасовой лимит. Базовый резерв 25%; по текущему прямому поручению пользователя продолжать до конца лимитов, сохраняя проверенные блоки локальными коммитами.
@@ -32,7 +34,19 @@
| 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–50 и ограничения ниже. Runtime backend8782054/frontendb55588f. |
| 12 | Итоговая доступность, адаптивность, производительность и регрессия | Локальная приёмка завершена в границах12.3.83; внешняя12.5 в работе, выполненные блоки1–51 и ограничения ниже. Runtime backend8782054/frontendb55588f. |
## 12.5.51 — реальная GRE пара, связность и lifecycle (2026-10-08)
По прямому поручению пользователя VPN-приёмка продолжается с созданием реальных тестовых туннелей, особенно GRE. [Lifecycle](ux-ui/acceptance/gre-real-lifecycle-2026-10-08.json): production backend8782054, два CHR7.24.5, собственные имена mm-acceptance-gre-* и комментарий владения. Перед записью проверены локальные внешние адреса и отсутствие пересечения198.18.255.248/30 с существующей адресацией/недефолтными маршрутами. POST application API создал обе GRE стороны и /ip/address:201/201. Внешние endpoints194.226.121.150 ↔104.165.244.7, внутренние198.18.255.249/30 ↔198.18.255.250/30, MTU1400,keepalive2s/3. Дополнительных static/default routes и Firewall правил не создавалось.
После running=true независимый RouterOS Ping через указанный GRE интерфейс:3/3 в каждом направлении,0%loss,~54ms. Это реальная point-to-point связность, не benchmark и не шифрованный IPsec. PATCH MTU первого конца1360, disable и enable дали200 и подтверждены отдельным чтением RouterOS. [Browser](ux-ui/acceptance/browser-gre-real-2026-10-08.json): настоящие созданные объекты, формы обоих устройств, local IP и server/tunnel URL-контекст/reload/320px, JS errors0; browser проход читает/отменяет формы, создание/изменение выполнял production API. [ФормаCHR1](ux-ui/screens/gre-real-form-server1-320-2026-10-08.png) просмотрена, [CHR2](ux-ui/screens/gre-real-form-server2-320-2026-10-08.png) сохранена.
Первый запуск Ping до готовности получил timeout; [повтор после running](ux-ui/acceptance/gre-ready-ping-2026-10-08.json) подтвердил3/3. Первый harness остановил свою очистку на слишком строгом сравнении baseline, включавшем runtime IDs; причина конкретного несовпадения не была сохранена полностью. [Независимая очистка](ux-ui/acceptance/gre-cleanup-recovery-2026-10-08.json) удалила оставшуюся собственную сторону и подтвердила отсутствие интерфейсов/IP/connected route, исходные количества0GRE/1–2addresses/4–5routes. Harness исправлен: сначала очистить обе стороны, сравнивать конфигурационные поля без runtime IDs, сохранить evidence до assertion. Повторный полный lifecycle прошёл с exitCode0: DELETE200/200, все выбранные поля GRE/IP/route/IPv4 Firewall совпали с baseline. Прямое административное восстановление чужих объектов не выполнялось.
Обнаружен настоящий дефект: принятый remoteInnerIp возвращается пустым, затем теряется в форме редактирования. Связность обеспечивается настройкой обоих реальных /ip/address, но сохранение формы этим не считается исправленным. Следующий12.5.52 — исправить metadata persistence/restore peer IP и профильные тесты, затем развернуть и повторить настоящий GRE цикл. Ограничения ROS6 для остальных VPN/прав/частичных отказов остаются. Control main2servers/9speed/retention14 сохранён; application GRE revisions намеренно остаются журналом выполненных действий. Временный контейнер/туннель8018 удалены; RouterOS тестовые объекты очищены. Локальный коммит без push.
Официальная схема пары и keepalive: [MikroTik GRE](https://manual.mikrotik.com/docs/virtual-private-networks/gre/). Документация текущей версии проверена, реальные команды/ответы — RouterOS7.24.5.
## 12.5.50 — инвентаризация двух CHR без изменения конфигурации (2026-10-08)
+13 -1
View File
@@ -1,6 +1,6 @@
# Этап 12: итоговая приёмка UX/UI
Актуальное продолжение 2026-10-08: 12.5.50 GET-only инвентаризация двух CHR прошла:78 чтений, RouterOS7.24.5, выбранные поля конфигурации при повторном чтении совпали. VPN/BGP/OSPF и IPv4 Firewall не настроены, IPsec содержит только стандартный template. Оба app типа home-router; ROS4/5/6 действия и связность этим не подтверждены. Main controls2servers/9speed/retention14 сохранены. Runtime backend8782054/frontendb55588f прежний. Следующий12.5.51 — реальные пустые состояния и контекст сетевых экранов без изменения RouterOS.
Актуальное продолжение 2026-10-08: 12.5.51 создал реальную GRE пару через production API, проверил MTU/enable/disable, двусторонний Ping3/3 и реальные UI формы/URL/320px. Обе стороны удалены, выбранная конфигурация восстановлена. Подтверждён дефект: remoteInnerIp теряется в receipt и форме. Следующий12.5.52 — исправить сохранение peer IP; runtime backend8782054/frontendb55588f прежний. При VPN приёмке создавать собственные реальные тестовые объекты, особенно GRE, и удалять их после проверки.
План: [ux-ui-plan.md](ux-ui-plan.md). Фактические результаты: [ux-ui-progress.md](ux-ui-progress.md). Подготовлен после сводных проверок 11Б; завершение каждого блока требует локального коммита без push.
@@ -1508,3 +1508,15 @@ Retry POST0, Telegram calls0, JS errors0, SQL fixture counts сохраняли
Контроль основной БД до/после совпадает: servers2, speedHistory9, retention14. Дополнительный SELECT подтвердил роли home-router. Эфемерный контейнер завершён/удалён, pool закрыт; остались только три основные Compose-службы. Пароли, адресация и правила устройств не менялись. Эта инвентаризация не закрывает ROS4/5/6 или остальные внешние ограничения.
Следующий12.5.51 — проверить реальные пустые состояния, выбор устройства/URL-контекст и доступность форм сетевых экранов на production frontend, без изменения RouterOS. После этого конкретный план создания изолированных тестовых объектов должен сохранять административный доступ и существующую конфигурацию. План/паспорт/протокол синхронизированы; локальный коммит без push.
## 12.5.51 — реальная GRE пара, связность и lifecycle (2026-10-08)
По прямому поручению пользователя VPN-приёмка продолжается с созданием реальных тестовых туннелей, особенно GRE. [Lifecycle](ux-ui/acceptance/gre-real-lifecycle-2026-10-08.json): production backend8782054, два CHR7.24.5, собственные имена mm-acceptance-gre-* и комментарий владения. Перед записью проверены локальные внешние адреса и отсутствие пересечения198.18.255.248/30 с существующей адресацией/недефолтными маршрутами. POST application API создал обе GRE стороны и /ip/address:201/201. Внешние endpoints194.226.121.150 ↔104.165.244.7, внутренние198.18.255.249/30 ↔198.18.255.250/30, MTU1400,keepalive2s/3. Дополнительных static/default routes и Firewall правил не создавалось.
После running=true независимый RouterOS Ping через указанный GRE интерфейс:3/3 в каждом направлении,0%loss,~54ms. Это реальная point-to-point связность, не benchmark и не шифрованный IPsec. PATCH MTU первого конца1360, disable и enable дали200 и подтверждены отдельным чтением RouterOS. [Browser](ux-ui/acceptance/browser-gre-real-2026-10-08.json): настоящие созданные объекты, формы обоих устройств, local IP и server/tunnel URL-контекст/reload/320px, JS errors0; browser проход читает/отменяет формы, создание/изменение выполнял production API. [ФормаCHR1](ux-ui/screens/gre-real-form-server1-320-2026-10-08.png) просмотрена, [CHR2](ux-ui/screens/gre-real-form-server2-320-2026-10-08.png) сохранена.
Первый запуск Ping до готовности получил timeout; [повтор после running](ux-ui/acceptance/gre-ready-ping-2026-10-08.json) подтвердил3/3. Первый harness остановил свою очистку на слишком строгом сравнении baseline, включавшем runtime IDs; причина конкретного несовпадения не была сохранена полностью. [Независимая очистка](ux-ui/acceptance/gre-cleanup-recovery-2026-10-08.json) удалила оставшуюся собственную сторону и подтвердила отсутствие интерфейсов/IP/connected route, исходные количества0GRE/1–2addresses/4–5routes. Harness исправлен: сначала очистить обе стороны, сравнивать конфигурационные поля без runtime IDs, сохранить evidence до assertion. Повторный полный lifecycle прошёл с exitCode0: DELETE200/200, все выбранные поля GRE/IP/route/IPv4 Firewall совпали с baseline. Прямое административное восстановление чужих объектов не выполнялось.
Обнаружен настоящий дефект: принятый remoteInnerIp возвращается пустым, затем теряется в форме редактирования. Связность обеспечивается настройкой обоих реальных /ip/address, но сохранение формы этим не считается исправленным. Следующий12.5.52 — исправить metadata persistence/restore peer IP и профильные тесты, затем развернуть и повторить настоящий GRE цикл. Ограничения ROS6 для остальных VPN/прав/частичных отказов остаются. Control main2servers/9speed/retention14 сохранён; application GRE revisions намеренно остаются журналом выполненных действий. Временный контейнер/туннель8018 удалены; RouterOS тестовые объекты очищены. Локальный коммит без push.
Официальная схема пары и keepalive: [MikroTik GRE](https://manual.mikrotik.com/docs/virtual-private-networks/gre/). Документация текущей версии проверена, реальные команды/ответы — RouterOS7.24.5.
+12
View File
@@ -351,3 +351,15 @@ Retry POST0, Telegram calls0, JS errors0, SQL fixture counts сохраняли
Контроль основной БД до/после совпадает: servers2, speedHistory9, retention14. Дополнительный SELECT подтвердил роли home-router. Эфемерный контейнер завершён/удалён, pool закрыт; остались только три основные Compose-службы. Пароли, адресация и правила устройств не менялись. Эта инвентаризация не закрывает ROS4/5/6 или остальные внешние ограничения.
Следующий12.5.51 — проверить реальные пустые состояния, выбор устройства/URL-контекст и доступность форм сетевых экранов на production frontend, без изменения RouterOS. После этого конкретный план создания изолированных тестовых объектов должен сохранять административный доступ и существующую конфигурацию. План/паспорт/протокол синхронизированы; локальный коммит без push.
## 12.5.51 — реальная GRE пара, связность и lifecycle (2026-10-08)
По прямому поручению пользователя VPN-приёмка продолжается с созданием реальных тестовых туннелей, особенно GRE. [Lifecycle](ux-ui/acceptance/gre-real-lifecycle-2026-10-08.json): production backend8782054, два CHR7.24.5, собственные имена mm-acceptance-gre-* и комментарий владения. Перед записью проверены локальные внешние адреса и отсутствие пересечения198.18.255.248/30 с существующей адресацией/недефолтными маршрутами. POST application API создал обе GRE стороны и /ip/address:201/201. Внешние endpoints194.226.121.150 ↔104.165.244.7, внутренние198.18.255.249/30 ↔198.18.255.250/30, MTU1400,keepalive2s/3. Дополнительных static/default routes и Firewall правил не создавалось.
После running=true независимый RouterOS Ping через указанный GRE интерфейс:3/3 в каждом направлении,0%loss,~54ms. Это реальная point-to-point связность, не benchmark и не шифрованный IPsec. PATCH MTU первого конца1360, disable и enable дали200 и подтверждены отдельным чтением RouterOS. [Browser](ux-ui/acceptance/browser-gre-real-2026-10-08.json): настоящие созданные объекты, формы обоих устройств, local IP и server/tunnel URL-контекст/reload/320px, JS errors0; browser проход читает/отменяет формы, создание/изменение выполнял production API. [ФормаCHR1](ux-ui/screens/gre-real-form-server1-320-2026-10-08.png) просмотрена, [CHR2](ux-ui/screens/gre-real-form-server2-320-2026-10-08.png) сохранена.
Первый запуск Ping до готовности получил timeout; [повтор после running](ux-ui/acceptance/gre-ready-ping-2026-10-08.json) подтвердил3/3. Первый harness остановил свою очистку на слишком строгом сравнении baseline, включавшем runtime IDs; причина конкретного несовпадения не была сохранена полностью. [Независимая очистка](ux-ui/acceptance/gre-cleanup-recovery-2026-10-08.json) удалила оставшуюся собственную сторону и подтвердила отсутствие интерфейсов/IP/connected route, исходные количества0GRE/1–2addresses/4–5routes. Harness исправлен: сначала очистить обе стороны, сравнивать конфигурационные поля без runtime IDs, сохранить evidence до assertion. Повторный полный lifecycle прошёл с exitCode0: DELETE200/200, все выбранные поля GRE/IP/route/IPv4 Firewall совпали с baseline. Прямое административное восстановление чужих объектов не выполнялось.
Обнаружен настоящий дефект: принятый remoteInnerIp возвращается пустым, затем теряется в форме редактирования. Связность обеспечивается настройкой обоих реальных /ip/address, но сохранение формы этим не считается исправленным. Следующий12.5.52 — исправить metadata persistence/restore peer IP и профильные тесты, затем развернуть и повторить настоящий GRE цикл. Ограничения ROS6 для остальных VPN/прав/частичных отказов остаются. Control main2servers/9speed/retention14 сохранён; application GRE revisions намеренно остаются журналом выполненных действий. Временный контейнер/туннель8018 удалены; RouterOS тестовые объекты очищены. Локальный коммит без push.
Официальная схема пары и keepalive: [MikroTik GRE](https://manual.mikrotik.com/docs/virtual-private-networks/gre/). Документация текущей версии проверена, реальные команды/ответы — RouterOS7.24.5.
@@ -0,0 +1,34 @@
{
"date": "2026-10-08",
"frontendSource": "b55588f",
"backendSource": "8782054",
"name": "mm-acceptance-gre-1791448301390",
"httpMocks": false,
"actualCreatedGre": true,
"cases": [
{
"serverId": 1,
"urlContextPreserved": true,
"localInnerIp": "198.18.255.249/30",
"remoteInnerIp": "",
"remoteInnerIpLost": true,
"formMatchesDevice": true,
"mobileFits": true
},
{
"serverId": 2,
"urlContextPreserved": true,
"localInnerIp": "198.18.255.250/30",
"remoteInnerIp": "",
"remoteInnerIpLost": true,
"formMatchesDevice": true,
"mobileFits": true
}
],
"pageErrors": [],
"limits": [
"GRE objects created/changed through real application API; this browser pass reads/cancels forms only",
"Remote inner IP field is lost after persistence; defect confirmed in receipt and form",
"No browser write or deletion in this pass; server harness performs bounded cleanup"
]
}
@@ -0,0 +1,26 @@
{
"date": "2026-10-08",
"name": "mm-acceptance-gre-1791447724873",
"states": [
{
"serverId": 1,
"deletedInRecovery": false,
"greCount": 0,
"addressCount": 1,
"routeCount": 4,
"noOwnTunnelOrAddressOrConnectedRoute": true
},
{
"serverId": 2,
"deletedInRecovery": true,
"greCount": 0,
"addressCount": 2,
"routeCount": 5,
"noOwnTunnelOrAddressOrConnectedRoute": true
}
],
"limits": [
"Independent verification of own-object removal and counts; first harness lost its detailed in-memory comparison after assertion",
"Application audit revisions remain intentionally"
]
}
@@ -0,0 +1,29 @@
{
"date": "2026-10-08",
"name": "mm-acceptance-gre-1791447724873",
"results": [
{
"serverId": 1,
"target": "198.18.255.250",
"runningBeforePing": true,
"sent": 3,
"received": 3,
"packetLoss": 0,
"avgRtt": "54ms302us"
},
{
"serverId": 2,
"target": "198.18.255.249",
"runningBeforePing": true,
"sent": 3,
"received": 3,
"packetLoss": 0,
"avgRtt": "54ms250us"
}
],
"bidirectionalPingPassed": true,
"limits": [
"Repeated 3 packets per direction after running=true; initial pre-readiness timeout recorded separately",
"Point-to-point ICMP, no throughput or encryption claim"
]
}
@@ -0,0 +1,217 @@
{
"date": "2026-10-08",
"backendSource": "8782054",
"frontendSource": "b55588f",
"name": "mm-acceptance-gre-1791448301390",
"subnet": "198.18.255.248/30",
"changes": [
{
"method": "POST",
"path": "/api/gre/tunnels",
"status": 201
},
{
"method": "POST",
"path": "/api/gre/tunnels",
"status": 201
},
{
"method": "PATCH",
"path": "/api/gre/tunnels",
"status": 200
},
{
"method": "PATCH",
"path": "/api/gre/tunnels",
"status": 200
},
{
"method": "PATCH",
"path": "/api/gre/tunnels",
"status": 200
},
{
"method": "DELETE",
"path": "/api/gre/tunnels",
"status": 200
},
{
"method": "DELETE",
"path": "/api/gre/tunnels",
"status": 200
}
],
"pings": [
{
"serverId": 1,
"target": "198.18.255.250",
"interface": "mm-acceptance-gre-1791448301390",
"rows": [
{
"sent": "1",
"received": "1",
"packet-loss": "0",
"time": "54ms365us",
"avg-rtt": "54ms365us"
},
{
"sent": "2",
"received": "2",
"packet-loss": "0",
"time": "54ms164us",
"avg-rtt": "54ms264us"
},
{
"sent": "3",
"received": "3",
"packet-loss": "0",
"time": "54ms482us",
"avg-rtt": "54ms337us"
}
],
"received": 3
},
{
"serverId": 2,
"target": "198.18.255.249",
"interface": "mm-acceptance-gre-1791448301390",
"rows": [
{
"sent": "1",
"received": "1",
"packet-loss": "0",
"time": "54ms258us",
"avg-rtt": "54ms258us"
},
{
"sent": "2",
"received": "2",
"packet-loss": "0",
"time": "54ms386us",
"avg-rtt": "54ms322us"
},
{
"sent": "3",
"received": "3",
"packet-loss": "0",
"time": "54ms285us",
"avg-rtt": "54ms309us"
}
],
"received": 3
}
],
"realRouterOs": true,
"creates": [
{
"serverId": 1,
"status": 201,
"name": "mm-acceptance-gre-1791448301390",
"returnedRemoteInnerIp": "",
"requestedRemoteInnerIp": "198.18.255.250/30"
},
{
"serverId": 2,
"status": 201,
"name": "mm-acceptance-gre-1791448301390",
"returnedRemoteInnerIp": "",
"requestedRemoteInnerIp": "198.18.255.249/30"
}
],
"createdState": [
{
"serverId": 1,
"interface": {
"rosId": "*4",
"name": "mm-acceptance-gre-1791448301390",
"localAddress": "194.226.121.150",
"remoteAddress": "104.165.244.7",
"mtu": "1400",
"keepalive": "2s,3",
"running": "false",
"disabled": "false"
},
"addresses": [
"198.18.255.249/30"
]
},
{
"serverId": 2,
"interface": {
"rosId": "*4",
"name": "mm-acceptance-gre-1791448301390",
"localAddress": "104.165.244.7",
"remoteAddress": "194.226.121.150",
"mtu": "1400",
"keepalive": "2s,3",
"running": "false",
"disabled": "false"
},
"addresses": [
"198.18.255.250/30"
]
}
],
"runningBeforePing": true,
"bidirectionalPingPassed": true,
"updatedState": [
{
"serverId": 1,
"interface": {
"rosId": "*4",
"name": "mm-acceptance-gre-1791448301390",
"localAddress": "194.226.121.150",
"remoteAddress": "104.165.244.7",
"mtu": "1360",
"keepalive": "2s,3",
"running": "true",
"disabled": "false"
},
"addresses": [
"198.18.255.249/30"
]
},
{
"serverId": 2,
"interface": {
"rosId": "*4",
"name": "mm-acceptance-gre-1791448301390",
"localAddress": "104.165.244.7",
"remoteAddress": "194.226.121.150",
"mtu": "1400",
"keepalive": "2s,3",
"running": "true",
"disabled": "false"
},
"addresses": [
"198.18.255.250/30"
]
}
],
"cleanup": [
{
"serverId": 1,
"/interface/gre": true,
"/ip/address": true,
"/ip/route": true,
"/ip/firewall/filter": true,
"/ip/firewall/nat": true,
"/ip/firewall/mangle": true
},
{
"serverId": 2,
"/interface/gre": true,
"/ip/address": true,
"/ip/route": true,
"/ip/firewall/filter": true,
"/ip/firewall/nat": true,
"/ip/firewall/mangle": true
}
],
"limits": [
"Plain GRE, not encrypted IPsec; no throughput test",
"Only own interface/IPs and generated connected route changed; no default routes or firewall changes",
"Application GRE revisions intentionally remain as audit history",
"Ping success establishes tested point-to-point traffic only"
]
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB