chore(test): подтвердить обмен и отзыв собственного BGP-префикса
This commit is contained in:
1 parent
c9bf5abe55
commit
f319eb947a
10 files changed
+690
-3
No files matched your search
@@ -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 целиком не закрыт.
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
# План реализации UX/UI по пятичасовым окнам
|
||||
|
||||
Актуальное продолжение 2026-10-09: 12.5.91 устранил неоднозначное отображение IPv4 CIDR в OSPF: /32 больше не разбивается на /3 и2. Column180px/nowrap/title, red-before/green-after geometry test,7 E2E и4 live UI cases. Baseline7 коллекций×2 восстановлен. Backend ux-diagnostics89/frontend ux-ospf91. Следующий12.5.92 — обмен только собственным BGP prefix через GRE, отзыв и повторное объявление, API/UI контекст. Квота84% использовано; этап12.5 открыт.
|
||||
Актуальное продолжение 2026-10-09: 12.5.92 принял eBGP exchange одного собственного /32 на каждом CHR через свой GRE, Ping3/3×2, административный withdrawal/re-advertisement, API prefixesRx1 и4 live UI cases. Baseline8 коллекций×2 восстановлен. Runtime backend ux-diagnostics89/frontend ux-ospf91. Следующий12.5.93 — профильный BGP loss/alternate-path сценарий и окончательная матрица внешних ограничений; не начинать его без свежей квоты. Квота95% использовано после блока; этап12.5 открыт.
|
||||
|
||||
Общий план проекта MikrotikManager. Основан на согласованном плане из задачи; точка продолжения обновлена 2026-10-09. Источник фактического прогресса, проверок и ограничений — [журнал реализации](ux-ui-progress.md). Этот документ задаёт объём и критерии завершения, журнал фиксирует результат.
|
||||
|
||||
|
||||
+25
-2
@@ -1,6 +1,6 @@
|
||||
# UX/UI: журнал реализации
|
||||
|
||||
Актуальное продолжение 2026-10-09: 12.5.91 устранил неоднозначное отображение IPv4 CIDR в OSPF: /32 больше не разбивается на /3 и2. Column180px/nowrap/title, red-before/green-after geometry test,7 E2E и4 live UI cases. Baseline7 коллекций×2 восстановлен. Backend ux-diagnostics89/frontend ux-ospf91. Следующий12.5.92 — обмен только собственным BGP prefix через GRE, отзыв и повторное объявление, API/UI контекст. Квота84% использовано; этап12.5 открыт.
|
||||
Актуальное продолжение 2026-10-09: 12.5.92 принял eBGP exchange одного собственного /32 на каждом CHR через свой GRE, Ping3/3×2, административный withdrawal/re-advertisement, API prefixesRx1 и4 live UI cases. Baseline8 коллекций×2 восстановлен. Runtime backend ux-diagnostics89/frontend ux-ospf91. Следующий12.5.93 — профильный BGP loss/alternate-path сценарий и окончательная матрица внешних ограничений; не начинать его без свежей квоты. Квота95% использовано после блока; этап12.5 открыт.
|
||||
|
||||
Общий план: [UX/UI по этапам и пятичасовым окнам](ux-ui-plan.md). План задаёт объём, этот журнал фиксирует выполненные блоки и ограничения. Записи расположены от новых к старым; подробная история этапа12 также сохранена в [ux-ui-stage-12.md](ux-ui-stage-12.md).
|
||||
|
||||
@@ -36,7 +36,30 @@
|
||||
| 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–91 и ограничения ниже. Runtime backend ux-diagnostics89/frontend ux-ospf91. |
|
||||
| 12 | Итоговая доступность, адаптивность, производительность и регрессия | Локальная приёмка завершена в границах12.3.83; внешняя12.5 в работе, выполненные блоки1–92 и ограничения ниже. Runtime backend ux-diagnostics89/frontend ux-ospf91. |
|
||||
|
||||
## 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 целиком не закрыт.
|
||||
|
||||
## 12.5.91 — OSPF Data Grid: целый IPv4 CIDR (2026-10-09)
|
||||
|
||||
|
||||
@@ -2156,3 +2156,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 целиком не закрыт.
|
||||
@@ -0,0 +1,579 @@
|
||||
{
|
||||
"date": "2026-10-09",
|
||||
"nativeLifecycle": {
|
||||
"date": "2026-10-09",
|
||||
"name": "mm-bgp92-1791559769092",
|
||||
"devices": [
|
||||
{
|
||||
"serverId": 1,
|
||||
"catalog": {
|
||||
"id": "*2800002",
|
||||
"serverId": 1,
|
||||
"serverName": "CHR",
|
||||
"serverSite": "",
|
||||
"serverCountry": "",
|
||||
"name": "mm-bgp92-1791559769092-1",
|
||||
"peerIp": "198.18.92.2",
|
||||
"remoteAs": 65093,
|
||||
"localAs": 65092,
|
||||
"localId": "198.18.192.1",
|
||||
"remoteId": "198.18.192.2",
|
||||
"state": "Established",
|
||||
"type": "eBGP",
|
||||
"uptime": "280ms",
|
||||
"holdTime": 180,
|
||||
"keepalive": 60,
|
||||
"prefixesRx": 1,
|
||||
"prefixesTx": null,
|
||||
"inputMessages": 2,
|
||||
"outputMessages": 2,
|
||||
"capabilities": [
|
||||
"MP-BGP",
|
||||
"Route Refresh",
|
||||
"Extended Next-Hop",
|
||||
"Graceful Restart",
|
||||
"4-byte-AS"
|
||||
],
|
||||
"lastError": null,
|
||||
"afi": "ip"
|
||||
},
|
||||
"nativeRoute": {
|
||||
".id": "*2014D000",
|
||||
"active": "true",
|
||||
"bgp": "true",
|
||||
"distance": "20",
|
||||
"dst-address": "198.18.192.2/32",
|
||||
"dynamic": "true",
|
||||
"gateway": "198.18.92.2",
|
||||
"immediate-gw": "198.18.92.2%mm-bgp92-1791559769092",
|
||||
"inactive": "false",
|
||||
"routing-table": "main",
|
||||
"scope": "40",
|
||||
"target-scope": "10"
|
||||
},
|
||||
"pingReceived": 3,
|
||||
"pingAttempts": [
|
||||
3
|
||||
],
|
||||
"exactOwnPrefixOnly": true
|
||||
},
|
||||
{
|
||||
"serverId": 2,
|
||||
"catalog": {
|
||||
"id": "*2800002",
|
||||
"serverId": 2,
|
||||
"serverName": "CHR",
|
||||
"serverSite": "",
|
||||
"serverCountry": "",
|
||||
"name": "mm-bgp92-1791559769092-1",
|
||||
"peerIp": "198.18.92.1",
|
||||
"remoteAs": 65092,
|
||||
"localAs": 65093,
|
||||
"localId": "198.18.192.2",
|
||||
"remoteId": "198.18.192.1",
|
||||
"state": "Established",
|
||||
"type": "eBGP",
|
||||
"uptime": "110ms",
|
||||
"holdTime": 180,
|
||||
"keepalive": 60,
|
||||
"prefixesRx": 1,
|
||||
"prefixesTx": null,
|
||||
"inputMessages": 2,
|
||||
"outputMessages": 2,
|
||||
"capabilities": [
|
||||
"MP-BGP",
|
||||
"Route Refresh",
|
||||
"Extended Next-Hop",
|
||||
"Graceful Restart",
|
||||
"4-byte-AS"
|
||||
],
|
||||
"lastError": null,
|
||||
"afi": "ip"
|
||||
},
|
||||
"nativeRoute": {
|
||||
".id": "*2014D000",
|
||||
"active": "true",
|
||||
"bgp": "true",
|
||||
"distance": "20",
|
||||
"dst-address": "198.18.192.1/32",
|
||||
"dynamic": "true",
|
||||
"gateway": "198.18.92.1",
|
||||
"immediate-gw": "198.18.92.1%mm-bgp92-1791559769092",
|
||||
"inactive": "false",
|
||||
"routing-table": "main",
|
||||
"scope": "40",
|
||||
"target-scope": "10"
|
||||
},
|
||||
"pingReceived": 3,
|
||||
"pingAttempts": [
|
||||
3
|
||||
],
|
||||
"exactOwnPrefixOnly": true
|
||||
}
|
||||
],
|
||||
"cleanup": [
|
||||
{
|
||||
"serverId": 1,
|
||||
"/routing/bgp/connection": true,
|
||||
"/routing/bgp/instance": true,
|
||||
"/routing/filter/rule": true,
|
||||
"/ip/firewall/address-list": true,
|
||||
"/interface/gre": true,
|
||||
"/interface/bridge": true,
|
||||
"/ip/address": true,
|
||||
"/ip/route": true
|
||||
},
|
||||
{
|
||||
"serverId": 2,
|
||||
"/routing/bgp/connection": true,
|
||||
"/routing/bgp/instance": true,
|
||||
"/routing/filter/rule": true,
|
||||
"/ip/firewall/address-list": true,
|
||||
"/interface/gre": true,
|
||||
"/interface/bridge": true,
|
||||
"/ip/address": true,
|
||||
"/ip/route": true
|
||||
}
|
||||
],
|
||||
"initial": [
|
||||
{
|
||||
"sessions": [
|
||||
{
|
||||
".id": "*2800002",
|
||||
"ebgp": "",
|
||||
"established": "true",
|
||||
"hold-time": "3m",
|
||||
"input.filter": "mm-bgp92-1791559769092-in",
|
||||
"input.procid": "20",
|
||||
"instance": "mm-bgp92-1791559769092",
|
||||
"keepalive-time": "1m",
|
||||
"last-started": "2026-10-09 18:29:32",
|
||||
"local.address": "198.18.92.1",
|
||||
"local.afi": "ip",
|
||||
"local.as": "65092",
|
||||
"local.bytes": "68",
|
||||
"local.capabilities": "mp,rr,enhe,gr,as4",
|
||||
"local.cluster-id": "198.18.192.1",
|
||||
"local.eor": "",
|
||||
"local.id": "198.18.192.1",
|
||||
"local.messages": "2",
|
||||
"name": "mm-bgp92-1791559769092-1",
|
||||
"output.filter-chain": "mm-bgp92-1791559769092-out",
|
||||
"output.network": "mm-bgp92-1791559769092",
|
||||
"output.procid": "20",
|
||||
"prefix-count": "1",
|
||||
"remote.address": "198.18.92.2",
|
||||
"remote.afi": "ip",
|
||||
"remote.as": "65093",
|
||||
"remote.bytes": "68",
|
||||
"remote.capabilities": "mp,rr,enhe,gr,as4",
|
||||
"remote.eor": "",
|
||||
"remote.id": "198.18.192.2",
|
||||
"remote.messages": "2",
|
||||
"uptime": "280ms"
|
||||
}
|
||||
],
|
||||
"routes": [
|
||||
{
|
||||
".id": "*2014D000",
|
||||
"active": "true",
|
||||
"bgp": "true",
|
||||
"distance": "20",
|
||||
"dst-address": "198.18.192.2/32",
|
||||
"dynamic": "true",
|
||||
"gateway": "198.18.92.2",
|
||||
"immediate-gw": "198.18.92.2%mm-bgp92-1791559769092",
|
||||
"inactive": "false",
|
||||
"routing-table": "main",
|
||||
"scope": "40",
|
||||
"target-scope": "10"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"sessions": [
|
||||
{
|
||||
".id": "*2800002",
|
||||
"ebgp": "",
|
||||
"established": "true",
|
||||
"hold-time": "3m",
|
||||
"input.filter": "mm-bgp92-1791559769092-in",
|
||||
"input.procid": "20",
|
||||
"instance": "mm-bgp92-1791559769092",
|
||||
"keepalive-time": "1m",
|
||||
"last-started": "2026-10-09 17:29:33",
|
||||
"local.address": "198.18.92.2",
|
||||
"local.afi": "ip",
|
||||
"local.as": "65093",
|
||||
"local.bytes": "68",
|
||||
"local.capabilities": "mp,rr,enhe,gr,as4",
|
||||
"local.cluster-id": "198.18.192.2",
|
||||
"local.eor": "",
|
||||
"local.id": "198.18.192.2",
|
||||
"local.messages": "2",
|
||||
"name": "mm-bgp92-1791559769092-1",
|
||||
"output.filter-chain": "mm-bgp92-1791559769092-out",
|
||||
"output.network": "mm-bgp92-1791559769092",
|
||||
"output.procid": "20",
|
||||
"prefix-count": "1",
|
||||
"remote.address": "198.18.92.1",
|
||||
"remote.afi": "ip",
|
||||
"remote.as": "65092",
|
||||
"remote.bytes": "68",
|
||||
"remote.capabilities": "mp,rr,enhe,gr,as4",
|
||||
"remote.eor": "",
|
||||
"remote.id": "198.18.192.1",
|
||||
"remote.messages": "2",
|
||||
"uptime": "110ms"
|
||||
}
|
||||
],
|
||||
"routes": [
|
||||
{
|
||||
".id": "*2014D000",
|
||||
"active": "true",
|
||||
"bgp": "true",
|
||||
"distance": "20",
|
||||
"dst-address": "198.18.192.1/32",
|
||||
"dynamic": "true",
|
||||
"gateway": "198.18.92.1",
|
||||
"immediate-gw": "198.18.92.1%mm-bgp92-1791559769092",
|
||||
"inactive": "false",
|
||||
"routing-table": "main",
|
||||
"scope": "40",
|
||||
"target-scope": "10"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"withdrawal": {
|
||||
"ownConnectionDisabled": true,
|
||||
"activePrivateRouteGone": true,
|
||||
"firstObservedMs": 340.8078349999996
|
||||
},
|
||||
"recovered": [
|
||||
{
|
||||
"sessions": [
|
||||
{
|
||||
".id": "*2800003",
|
||||
"ebgp": "",
|
||||
"established": "true",
|
||||
"hold-time": "3m",
|
||||
"input.filter": "mm-bgp92-1791559769092-in",
|
||||
"input.procid": "20",
|
||||
"instance": "mm-bgp92-1791559769092",
|
||||
"keepalive-time": "1m",
|
||||
"last-started": "2026-10-09 18:29:34",
|
||||
"local.address": "198.18.92.1",
|
||||
"local.afi": "ip",
|
||||
"local.as": "65092",
|
||||
"local.bytes": "68",
|
||||
"local.capabilities": "mp,rr,enhe,gr,as4",
|
||||
"local.cluster-id": "198.18.192.1",
|
||||
"local.eor": "",
|
||||
"local.id": "198.18.192.1",
|
||||
"local.messages": "2",
|
||||
"name": "mm-bgp92-1791559769092-1",
|
||||
"output.filter-chain": "mm-bgp92-1791559769092-out",
|
||||
"output.network": "mm-bgp92-1791559769092",
|
||||
"output.procid": "20",
|
||||
"prefix-count": "0",
|
||||
"remote.address": "198.18.92.2",
|
||||
"remote.afi": "ip",
|
||||
"remote.as": "65093",
|
||||
"remote.bytes": "68",
|
||||
"remote.capabilities": "mp,rr,enhe,gr,as4",
|
||||
"remote.eor": "",
|
||||
"remote.id": "198.18.192.2",
|
||||
"remote.messages": "2",
|
||||
"uptime": "330ms"
|
||||
}
|
||||
],
|
||||
"routes": [
|
||||
{
|
||||
".id": "*2014D000",
|
||||
"active": "true",
|
||||
"bgp": "true",
|
||||
"distance": "20",
|
||||
"dst-address": "198.18.192.2/32",
|
||||
"dynamic": "true",
|
||||
"gateway": "198.18.92.2",
|
||||
"immediate-gw": "198.18.92.2%mm-bgp92-1791559769092",
|
||||
"inactive": "false",
|
||||
"routing-table": "main",
|
||||
"scope": "40",
|
||||
"target-scope": "10"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"sessions": [
|
||||
{
|
||||
".id": "*2800002",
|
||||
"ebgp": "",
|
||||
"established": "true",
|
||||
"hold-time": "3m",
|
||||
"input.filter": "mm-bgp92-1791559769092-in",
|
||||
"input.procid": "20",
|
||||
"instance": "mm-bgp92-1791559769092",
|
||||
"keepalive-time": "1m",
|
||||
"last-started": "2026-10-09 17:29:35",
|
||||
"last-stopped": "2026-10-09 17:29:34",
|
||||
"local.address": "198.18.92.2",
|
||||
"local.afi": "ip",
|
||||
"local.as": "65093",
|
||||
"local.bytes": "68",
|
||||
"local.capabilities": "mp,rr,enhe,gr,as4",
|
||||
"local.cluster-id": "198.18.192.2",
|
||||
"local.eor": "",
|
||||
"local.id": "198.18.192.2",
|
||||
"local.messages": "2",
|
||||
"name": "mm-bgp92-1791559769092-1",
|
||||
"output.filter-chain": "mm-bgp92-1791559769092-out",
|
||||
"output.network": "mm-bgp92-1791559769092",
|
||||
"output.procid": "20",
|
||||
"prefix-count": "1",
|
||||
"remote.address": "198.18.92.1",
|
||||
"remote.afi": "ip",
|
||||
"remote.as": "65092",
|
||||
"remote.bytes": "68",
|
||||
"remote.capabilities": "mp,rr,enhe,gr,as4",
|
||||
"remote.eor": "",
|
||||
"remote.id": "198.18.192.1",
|
||||
"remote.messages": "2",
|
||||
"uptime": "160ms"
|
||||
}
|
||||
],
|
||||
"routes": [
|
||||
{
|
||||
".id": "*2014D000",
|
||||
"active": "true",
|
||||
"bgp": "true",
|
||||
"distance": "20",
|
||||
"dst-address": "198.18.192.1/32",
|
||||
"dynamic": "true",
|
||||
"gateway": "198.18.92.1",
|
||||
"immediate-gw": "198.18.92.1%mm-bgp92-1791559769092",
|
||||
"inactive": "false",
|
||||
"routing-table": "main",
|
||||
"scope": "40",
|
||||
"target-scope": "10"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"recoveryCatalog": [
|
||||
{
|
||||
"id": "*2800003",
|
||||
"serverId": 1,
|
||||
"serverName": "CHR",
|
||||
"serverSite": "",
|
||||
"serverCountry": "",
|
||||
"name": "mm-bgp92-1791559769092-1",
|
||||
"peerIp": "198.18.92.2",
|
||||
"remoteAs": 65093,
|
||||
"localAs": 65092,
|
||||
"localId": "198.18.192.1",
|
||||
"remoteId": "198.18.192.2",
|
||||
"state": "Established",
|
||||
"type": "eBGP",
|
||||
"uptime": "330ms",
|
||||
"holdTime": 180,
|
||||
"keepalive": 60,
|
||||
"prefixesRx": 1,
|
||||
"prefixesTx": null,
|
||||
"inputMessages": 2,
|
||||
"outputMessages": 2,
|
||||
"capabilities": [
|
||||
"MP-BGP",
|
||||
"Route Refresh",
|
||||
"Extended Next-Hop",
|
||||
"Graceful Restart",
|
||||
"4-byte-AS"
|
||||
],
|
||||
"lastError": null,
|
||||
"afi": "ip"
|
||||
},
|
||||
{
|
||||
"id": "*2800002",
|
||||
"serverId": 2,
|
||||
"serverName": "CHR",
|
||||
"serverSite": "",
|
||||
"serverCountry": "",
|
||||
"name": "mm-bgp92-1791559769092-1",
|
||||
"peerIp": "198.18.92.1",
|
||||
"remoteAs": 65092,
|
||||
"localAs": 65093,
|
||||
"localId": "198.18.192.2",
|
||||
"remoteId": "198.18.192.1",
|
||||
"state": "Established",
|
||||
"type": "eBGP",
|
||||
"uptime": "160ms",
|
||||
"holdTime": 180,
|
||||
"keepalive": 60,
|
||||
"prefixesRx": 1,
|
||||
"prefixesTx": null,
|
||||
"inputMessages": 2,
|
||||
"outputMessages": 2,
|
||||
"capabilities": [
|
||||
"MP-BGP",
|
||||
"Route Refresh",
|
||||
"Extended Next-Hop",
|
||||
"Graceful Restart",
|
||||
"4-byte-AS"
|
||||
],
|
||||
"lastError": null,
|
||||
"afi": "ip"
|
||||
}
|
||||
]
|
||||
},
|
||||
"uiFixture": {
|
||||
"date": "2026-10-09",
|
||||
"name": "mm-bgp92-1791560069532",
|
||||
"devices": [],
|
||||
"cleanup": [
|
||||
{
|
||||
"serverId": 1,
|
||||
"/routing/bgp/connection": true,
|
||||
"/routing/bgp/instance": true,
|
||||
"/routing/filter/rule": true,
|
||||
"/ip/firewall/address-list": true,
|
||||
"/interface/gre": true,
|
||||
"/interface/bridge": true,
|
||||
"/ip/address": true,
|
||||
"/ip/route": true
|
||||
},
|
||||
{
|
||||
"serverId": 2,
|
||||
"/routing/bgp/connection": true,
|
||||
"/routing/bgp/instance": true,
|
||||
"/routing/filter/rule": true,
|
||||
"/ip/firewall/address-list": true,
|
||||
"/interface/gre": true,
|
||||
"/interface/bridge": true,
|
||||
"/ip/address": true,
|
||||
"/ip/route": true
|
||||
}
|
||||
],
|
||||
"initial": [
|
||||
{
|
||||
"sessions": [
|
||||
{
|
||||
".id": "*2800004",
|
||||
"ebgp": "",
|
||||
"established": "true",
|
||||
"hold-time": "3m",
|
||||
"input.filter": "mm-bgp92-1791560069532-in",
|
||||
"input.procid": "20",
|
||||
"instance": "mm-bgp92-1791560069532",
|
||||
"keepalive-time": "1m",
|
||||
"last-started": "2026-10-09 18:34:33",
|
||||
"local.address": "198.18.92.1",
|
||||
"local.afi": "ip",
|
||||
"local.as": "65092",
|
||||
"local.bytes": "68",
|
||||
"local.capabilities": "mp,rr,enhe,gr,as4",
|
||||
"local.cluster-id": "198.18.192.1",
|
||||
"local.eor": "",
|
||||
"local.id": "198.18.192.1",
|
||||
"local.messages": "2",
|
||||
"name": "mm-bgp92-1791560069532-1",
|
||||
"output.filter-chain": "mm-bgp92-1791560069532-out",
|
||||
"output.network": "mm-bgp92-1791560069532",
|
||||
"output.procid": "20",
|
||||
"prefix-count": "1",
|
||||
"remote.address": "198.18.92.2",
|
||||
"remote.afi": "ip",
|
||||
"remote.as": "65093",
|
||||
"remote.bytes": "68",
|
||||
"remote.capabilities": "mp,rr,enhe,gr,as4",
|
||||
"remote.eor": "",
|
||||
"remote.id": "198.18.192.2",
|
||||
"remote.messages": "2",
|
||||
"uptime": "0ms"
|
||||
}
|
||||
],
|
||||
"routes": [
|
||||
{
|
||||
".id": "*2014D000",
|
||||
"active": "true",
|
||||
"bgp": "true",
|
||||
"distance": "20",
|
||||
"dst-address": "198.18.192.2/32",
|
||||
"dynamic": "true",
|
||||
"gateway": "198.18.92.2",
|
||||
"immediate-gw": "198.18.92.2%mm-bgp92-1791560069532",
|
||||
"inactive": "false",
|
||||
"routing-table": "main",
|
||||
"scope": "40",
|
||||
"target-scope": "10"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"sessions": [
|
||||
{
|
||||
".id": "*2800003",
|
||||
"ebgp": "",
|
||||
"established": "true",
|
||||
"hold-time": "3m",
|
||||
"input.filter": "mm-bgp92-1791560069532-in",
|
||||
"input.procid": "20",
|
||||
"instance": "mm-bgp92-1791560069532",
|
||||
"keepalive-time": "1m",
|
||||
"last-started": "2026-10-09 17:34:33",
|
||||
"local.address": "198.18.92.2",
|
||||
"local.afi": "ip",
|
||||
"local.as": "65093",
|
||||
"local.bytes": "68",
|
||||
"local.capabilities": "mp,rr,enhe,gr,as4",
|
||||
"local.cluster-id": "198.18.192.2",
|
||||
"local.eor": "",
|
||||
"local.id": "198.18.192.2",
|
||||
"local.messages": "2",
|
||||
"name": "mm-bgp92-1791560069532-1",
|
||||
"output.filter-chain": "mm-bgp92-1791560069532-out",
|
||||
"output.network": "mm-bgp92-1791560069532",
|
||||
"output.procid": "20",
|
||||
"prefix-count": "0",
|
||||
"remote.address": "198.18.92.1",
|
||||
"remote.afi": "ip",
|
||||
"remote.as": "65092",
|
||||
"remote.bytes": "68",
|
||||
"remote.capabilities": "mp,rr,enhe,gr,as4",
|
||||
"remote.eor": "",
|
||||
"remote.id": "198.18.192.1",
|
||||
"remote.messages": "2",
|
||||
"uptime": "170ms"
|
||||
}
|
||||
],
|
||||
"routes": [
|
||||
{
|
||||
".id": "*2014D000",
|
||||
"active": "true",
|
||||
"bgp": "true",
|
||||
"distance": "20",
|
||||
"dst-address": "198.18.192.1/32",
|
||||
"dynamic": "true",
|
||||
"gateway": "198.18.92.1",
|
||||
"immediate-gw": "198.18.92.1%mm-bgp92-1791560069532",
|
||||
"inactive": "false",
|
||||
"routing-table": "main",
|
||||
"scope": "40",
|
||||
"target-scope": "10"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"runtime": {
|
||||
"backend": "ux-diagnostics89",
|
||||
"frontend": "ux-ospf91",
|
||||
"buildsPerformed": 0
|
||||
},
|
||||
"notes": [
|
||||
"Only own /32 is originated through address list and both-direction filter chains; default origination never, network-blackhole no.",
|
||||
"Withdrawal observed after administrative disable acknowledgement; not loss-based failover or hold-timer performance.",
|
||||
"First observer expired before browser start; native lifecycle was preserved and only UI fixture recreated.",
|
||||
"Read-only RouterOS session cache can retain old rows; UI filters Established and current fixture name."
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
{
|
||||
"date": "2026-10-09",
|
||||
"phase": "2 320",
|
||||
"cases": [
|
||||
{
|
||||
"serverId": 1,
|
||||
"width": 1280,
|
||||
"receivedPrefixCount": 1,
|
||||
"peerRouterIdVisible": true,
|
||||
"detailReload": true,
|
||||
"documentFits": true
|
||||
},
|
||||
{
|
||||
"serverId": 1,
|
||||
"width": 320,
|
||||
"receivedPrefixCount": 1,
|
||||
"peerRouterIdVisible": true,
|
||||
"detailReload": true,
|
||||
"documentFits": true
|
||||
},
|
||||
{
|
||||
"serverId": 2,
|
||||
"width": 1280,
|
||||
"receivedPrefixCount": 1,
|
||||
"peerRouterIdVisible": true,
|
||||
"detailReload": true,
|
||||
"documentFits": true
|
||||
},
|
||||
{
|
||||
"serverId": 2,
|
||||
"width": 320,
|
||||
"receivedPrefixCount": 1,
|
||||
"peerRouterIdVisible": true,
|
||||
"detailReload": true,
|
||||
"documentFits": true
|
||||
}
|
||||
],
|
||||
"errors": []
|
||||
}
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 145 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 57 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 145 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 57 KiB |
Reference in new issue
Block a user