chore(test): подтвердить обмен и отзыв собственного BGP-префикса

This commit is contained in:
Denozordec committed 2026-10-09 22:40:30 +07:00
1 parent c9bf5abe55
commit f319eb947a
10 files changed
+690 -3

No files matched your search

+23
View File
@@ -847,3 +847,26 @@ Production image не содержит dev-only jose: первый fixture impor
**Контроль/runtime.** Свои objects удалены по exact IDs/атрибутам, baseline7 коллекций×2 совпал, оба CHR доступны, default/public/195.195.195.195/32 и credentials сохранены. Нормализованные SHA source/deployed DataGrid renderer и OSPF consumer совпадали до изменения, поэтому проблема не была вызвана отставшим компонентом стенда. Один frontend Docker build, production TypeScript/build, entry/node --check/compose --wait passed. mmapp-test/frontend:ux-ospf91/version1.0.0-test.ospf91, image sha256:b4bade515234115b3cad257ceb87ef7beb347e754ca92d6a97a25adc2199fd33. Context optimizer87 frontend +один consumer file, override SHA27a27569335c377bf8662fb5b39d200ce98d52925cafdf51dee165464c1532078, label не Git SHA. .env backup приватный, backend/migrations не менялись, полная регрессия/failover не повторялись. Один локальный commit без push.
Следующий92 — BGP propagation собственных private prefixes, withdrawal/re-advertisement и UI counters; только собственные GRE/instances/filter chains. Квота84% использовано после блока, этап12.5 и внешние границы остаются открытыми.
## 12.5.92 — BGP: собственный префикс, отзыв и повторное объявление (2026-10-09)
**Сценарий.** Свой GRE/link198.18.92.0/30 и bridge loopbacks198.18.192.1/32↔2/32, private AS65092/65093, explicit BGP instances/router IDs и direct eBGP connections. Address list output.network содержит только собственный loopback /32. Отдельные input/output chains принимают только соответствующий exact /32 по dst/dst-len и отклоняют остальное. Default-originate=never, network-blackhole=no, public/default/metadata prefixes не экспортировались.
| Проверка | Результат |
| --- | --- |
| Established / маршрут | Обе сессии Established; ровно1 learned BGP route на узле, active |
| Data plane | Собственные loopbacks Ping3/3 в обе стороны |
| Production API | Selected/catalog Established, prefixesRx1; неизвестные counters не заменены нулём |
| Отзыв | Отключение своей connection наCHR1 убрало active private route наCHR2 |
| Повторное объявление | Включение connection вернуло Established/active own prefix/API Rx1 |
| UI | 4/4 два CHR×1280/320: received1, Router ID, details/reload, document fits/pageerror0 |
**Доказательства.** [Native/API протокол](ux-ui/acceptance/bgp-prefix-2026-10-09.json). Withdrawal впервые наблюдался340,8ms после acknowledgement административного disable. Это не hold-timer/BFD detection или loss-based failover/SLA. Public routing не менялся; peer TCP179 проходит только через собственный GRE. Input принимает только remote loopback, output только local loopback, что проверено также отсутствием других BGP routes.
[Browser отчёт](ux-ui/acceptance/browser-bgp-prefix-2026-10-09.json), [ПК](ux-ui/screens/bgp-real-prefix-server1-1280-2026-10-09.png), [320px](ux-ui/screens/bgp-real-prefix-server1-320-2026-10-09.png) просмотрен: received1, Router ID198.18.192.2, unknown transmitted/active counters не выдуманы. Настоящие deployed API, без mocks. В URL сохранены server/state=Established/q собственного имени/session. RouterOS readonly session cache может сохранять старые строки, поэтому UI fixture отфильтрована по текущему имени и Established.
**Оснастка/границы.** Native lifecycle прошёл с первой попытки. Observer90s завершился до начала browser; первая браузерная попытка получила ECONNRESET до страницы. Уже принятые native операции не повторялись: для UI создана отдельная такая же пара, ожидание180s, после4 cases cleanup. Это две отдельно обозначенные фазы, не один общий snapshot. Правила подтверждены [BGP](https://help.mikrotik.com/docs/spaces/ROS/pages/331612228/routing%2Bbgp) и [Routing Filters](https://help.mikrotik.com/docs/spaces/ROS/pages/74678285/Route%2BSelection%2Band%2BFilters).
**Контроль/фиксация.** На каждой фазе exact ID/name/comment/chain/list/address/interface preflight; свои connections→instances→filter rules→address list/IP/bridge/GRE удалены. Исходные IDs8 коллекций×2 совпали, default/public/195.195.195.195/32 сохранены, оба CHR доступны, пароли не менялись. Product/source/dependencies не менялись, build/миграций/широких регрессий нет. Runtime backend diagnostics89/PG healthy, frontend ospf91; временных контейнеров не осталось. Один локальный commit без push.
Квота95% использовано после блока. Следующий93 — отдельный BGP loss/alternate-path сценарий и сведение остаточных внешних ограничений; начать со свежего лимита. Не приняты multi-peer/WAN policy failover, IPv6/scale/maximum throughput/Portal SSO/physical disconnect/durable retry и ранее перечисленные внешние границы IPsec. Этап12.5 целиком не закрыт.