chore(ux): подтвердить четырёхбайтовые ASN в IPv6 BGP
This commit is contained in:
1 parent
fef7bc5520
commit
22b0e8ae8e
10 files changed
+491
-12
No files matched your search
@@ -1,6 +1,6 @@
|
||||
# UX/UI: протокол внешней приёмки 12.5
|
||||
|
||||
Актуальное продолжение 2026-10-12: завершён 12.5.161 — selected/legacy BGP state сохраняет Unknown вместо Idle/Active догадок. Alert rules не считают unknown разрывом/восстановлением; collector baseline сохраняет last known state через gap.92 captured native rows/73 unknown/19 established replay, live-maps/alert/outbox profiles/build/988 compiled parity/2 real UI passed; SQL stability check skipped явно. Runtime backend ux-bgp161b/frontend ux-bfd158 healthy. Следующий162 — native BGP4-byte private ASN/IPv6 peers и UI, без повторения BFD fault;12.5 открыт.
|
||||
Актуальное продолжение 2026-10-12: завершён 12.5.162 — native IPv6 BGP private4-byte AS4200000162/4200000163, as4 capability/local+remote ASN/API/UI подтверждены. Initial/recovery Ping3/3×2/administrative withdrawal135ms (не SLA)/2 real UI/11 projected static collections×2 cleanup/own container removal passed. Runtime ux-bgp161b/ux-bfd158 сохранён. Следующий163 — защита BGP alert collector от дублирующихся legacy serverName:peerName keys;12.5 открыт.
|
||||
|
||||
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-12: завершён 12.5.161 — selected/legacy BGP state сохраняет Unknown вместо Idle/Active догадок. Alert rules не считают unknown разрывом/восстановлением; collector baseline сохраняет last known state через gap.92 captured native rows/73 unknown/19 established replay, live-maps/alert/outbox profiles/build/988 compiled parity/2 real UI passed; SQL stability check skipped явно. Runtime backend ux-bgp161b/frontend ux-bfd158 healthy. Следующий162 — native BGP4-byte private ASN/IPv6 peers и UI, без повторения BFD fault;12.5 открыт.
|
||||
Актуальное продолжение 2026-10-12: завершён 12.5.162 — native IPv6 BGP private4-byte AS4200000162/4200000163, as4 capability/local+remote ASN/API/UI подтверждены. Initial/recovery Ping3/3×2/administrative withdrawal135ms (не SLA)/2 real UI/11 projected static collections×2 cleanup/own container removal passed. Runtime ux-bgp161b/ux-bfd158 сохранён. Следующий163 — защита BGP alert collector от дублирующихся legacy serverName:peerName keys;12.5 открыт.
|
||||
|
||||
Подробный объём, протоколы, схема и ограничения: [12.5.77 в журнале](ux-ui-progress.md).
|
||||
|
||||
@@ -1781,3 +1781,15 @@ Backend build прошёл, окончательный Docker кандидат u
|
||||
Протоколы: [compiled988](ux-ui/acceptance/bgp-unknown-compiled-2026-10-12.json), [native payload replay](ux-ui/acceptance/bgp-unknown-replay-2026-10-12.json), [deployed API/UI](ux-ui/acceptance/bgp-unknown-deployed-2026-10-12.json). RouterOS конфигурация/пароли этим блоком не менялись, новые native fixtures не создавались, ReUI/Frame/base-nova UI primitives сохранены.
|
||||
|
||||
Следующий162 — native private4-byte ASN в IPv6 BGP и отображение длинных AS на1440/320; прежний BFD fault повторять без новой delta не требуется.12.5 открыт.
|
||||
|
||||
## 12.5.162 — четырёхбайтовые ASN в IPv6 BGP и интерфейсе (2026-10-12)
|
||||
|
||||
Два CHR7.24.5, own IPv4 outer GRE/IPv6 ULA fd00:162:1::1↔2/64 и loopbacks fd00:162:ff::1↔2/128. Private AS4200000162↔4200000163 взяты из [диапазона IANA4200000000–4294967294](https://www.iana.org/assignments/as-numbers), reserved4294967295 не использован. Input/output filters принимают только exact own/remote /128, afi=ipv6, default-originate=never и network-blackhole=no. Native Established и negotiated as4, local/remote AS сохранили исходные10-значные числа вместо AS_TRANS; catalog совпал, capabilities содержит4-byte-AS. Каждый узел получил ровно один own remote IPv6 NLRI, initial Ping3/3×2.
|
||||
|
||||
Readonly production UI1440/320 показал обе IPv6 сессии/Established и точные remote ASN в DOM, no errors/document overflow. Mobile проверен визуально; AS columns могут требовать горизонтального table scroll, одновременная viewport visibility всех columns не заявляется. Administrative disable одной own BGP connection снял own remote IPv6 route на другом узле, первое наблюдение135ms после PATCH, не hold timer/BFD/SLA/continuous loss. Enable вернул Established/NLRI и Ping3/3×2. BFD fault160 без source delta не повторялся.
|
||||
|
||||
Own connections/instances/routing filters/address-list/IPv6/bridge/GRE удалены,11 static collections×2 совпали по выбранным конфигурационным полям, filter order сохранён. Helper exit0; container удалён после exact-ID/state check. Main DB только читалась helper, background polling продолжался; пароли/public/default paths не менялись, оба CHR доступны при cleanup. Source/dependencies/build после161 не менялись, runtime ux-bgp161b/ux-bfd158 сохранён.
|
||||
|
||||
Протоколы: [native/as4/withdrawal/recovery/cleanup](ux-ui/acceptance/bgp-four-byte-asn-native-2026-10-12.json), [2 live UI](ux-ui/acceptance/bgp-ipv6-162-live-ui-2026-10-12.json), [ПК](ux-ui/screens/bgp-ipv6-162-1440-2026-10-12.png), [телефон](ux-ui/screens/bgp-ipv6-162-320-2026-10-12.png). Live UI162 использует отдельный файл bgp-ipv6-162-live-ui, протокол160 сохранён отдельно.
|
||||
|
||||
Границы: private four-byte ASN между двумя RouterOS, single-path IPv6 внутри IPv4 GRE, не interop со сторонними peers, IPv6 public outer/WAN, scale/physical redundancy. Следующий163 — проверка duplicate legacy alert keys serverName:peerName: два разных устройства с одинаковыми именами не должны создавать ложные state transitions внутри одного snapshot.12.5 открыт.
|
||||
+3
-3
@@ -1,12 +1,12 @@
|
||||
# План реализации UX/UI по пятичасовым окнам
|
||||
|
||||
Актуальное продолжение 2026-10-12: завершён 12.5.161 — selected/legacy BGP state сохраняет Unknown вместо Idle/Active догадок. Alert rules не считают unknown разрывом/восстановлением; collector baseline сохраняет last known state через gap.92 captured native rows/73 unknown/19 established replay, live-maps/alert/outbox profiles/build/988 compiled parity/2 real UI passed; SQL stability check skipped явно. Runtime backend ux-bgp161b/frontend ux-bfd158 healthy. Следующий162 — native BGP4-byte private ASN/IPv6 peers и UI, без повторения BFD fault;12.5 открыт.
|
||||
Актуальное продолжение 2026-10-12: завершён 12.5.162 — native IPv6 BGP private4-byte AS4200000162/4200000163, as4 capability/local+remote ASN/API/UI подтверждены. Initial/recovery Ping3/3×2/administrative withdrawal135ms (не SLA)/2 real UI/11 projected static collections×2 cleanup/own container removal passed. Runtime ux-bgp161b/ux-bfd158 сохранён. Следующий163 — защита BGP alert collector от дублирующихся legacy serverName:peerName keys;12.5 открыт.
|
||||
|
||||
Общий план проекта MikrotikManager. Основан на согласованном плане из задачи; точка продолжения обновлена 2026-10-12. Источник фактического прогресса, проверок и ограничений — [журнал реализации](ux-ui-progress.md). Этот документ задаёт объём и критерии завершения, журнал фиксирует результат.
|
||||
|
||||
## Актуальная точка продолжения — 2026-10-12
|
||||
|
||||
Актуальное продолжение 2026-10-12: завершён 12.5.161 — selected/legacy BGP state сохраняет Unknown вместо Idle/Active догадок. Alert rules не считают unknown разрывом/восстановлением; collector baseline сохраняет last known state через gap.92 captured native rows/73 unknown/19 established replay, live-maps/alert/outbox profiles/build/988 compiled parity/2 real UI passed; SQL stability check skipped явно. Runtime backend ux-bgp161b/frontend ux-bfd158 healthy. Следующий162 — native BGP4-byte private ASN/IPv6 peers и UI, без повторения BFD fault;12.5 открыт.
|
||||
Актуальное продолжение 2026-10-12: завершён 12.5.162 — native IPv6 BGP private4-byte AS4200000162/4200000163, as4 capability/local+remote ASN/API/UI подтверждены. Initial/recovery Ping3/3×2/administrative withdrawal135ms (не SLA)/2 real UI/11 projected static collections×2 cleanup/own container removal passed. Runtime ux-bgp161b/ux-bfd158 сохранён. Следующий163 — защита BGP alert collector от дублирующихся legacy serverName:peerName keys;12.5 открыт.
|
||||
|
||||
Этапы0–11 завершены в локальных границах журнала. История выполненных внешних блоков и доказательства сохранены в [журнале](ux-ui-stage-12.md) и [протоколе](ux-ui-external-acceptance.md). Реальная Telegram доставка, Portal SSO, multi-instance и оставшиеся профильные сетевые ограничения открыты.
|
||||
|
||||
@@ -371,6 +371,6 @@ flowchart LR
|
||||
|
||||
## 12.5.77 — основной блок IPsec (2026-10-09)
|
||||
|
||||
Актуальное продолжение 2026-10-12: завершён 12.5.161 — selected/legacy BGP state сохраняет Unknown вместо Idle/Active догадок. Alert rules не считают unknown разрывом/восстановлением; collector baseline сохраняет last known state через gap.92 captured native rows/73 unknown/19 established replay, live-maps/alert/outbox profiles/build/988 compiled parity/2 real UI passed; SQL stability check skipped явно. Runtime backend ux-bgp161b/frontend ux-bfd158 healthy. Следующий162 — native BGP4-byte private ASN/IPv6 peers и UI, без повторения BFD fault;12.5 открыт.
|
||||
Актуальное продолжение 2026-10-12: завершён 12.5.162 — native IPv6 BGP private4-byte AS4200000162/4200000163, as4 capability/local+remote ASN/API/UI подтверждены. Initial/recovery Ping3/3×2/administrative withdrawal135ms (не SLA)/2 real UI/11 projected static collections×2 cleanup/own container removal passed. Runtime ux-bgp161b/ux-bfd158 сохранён. Следующий163 — защита BGP alert collector от дублирующихся legacy serverName:peerName keys;12.5 открыт.
|
||||
|
||||
Подробный объём, протоколы, схема и ограничения: [12.5.77 в журнале](ux-ui-progress.md).
|
||||
+14
-2
@@ -1,6 +1,6 @@
|
||||
# UX/UI: журнал реализации
|
||||
|
||||
Актуальное продолжение 2026-10-12: завершён 12.5.161 — selected/legacy BGP state сохраняет Unknown вместо Idle/Active догадок. Alert rules не считают unknown разрывом/восстановлением; collector baseline сохраняет last known state через gap.92 captured native rows/73 unknown/19 established replay, live-maps/alert/outbox profiles/build/988 compiled parity/2 real UI passed; SQL stability check skipped явно. Runtime backend ux-bgp161b/frontend ux-bfd158 healthy. Следующий162 — native BGP4-byte private ASN/IPv6 peers и UI, без повторения BFD fault;12.5 открыт.
|
||||
Актуальное продолжение 2026-10-12: завершён 12.5.162 — native IPv6 BGP private4-byte AS4200000162/4200000163, as4 capability/local+remote ASN/API/UI подтверждены. Initial/recovery Ping3/3×2/administrative withdrawal135ms (не SLA)/2 real UI/11 projected static collections×2 cleanup/own container removal passed. Runtime ux-bgp161b/ux-bfd158 сохранён. Следующий163 — защита BGP alert collector от дублирующихся legacy serverName:peerName keys;12.5 открыт.
|
||||
|
||||
Общий план: [UX/UI по этапам и пятичасовым окнам](ux-ui-plan.md). План задаёт объём, этот журнал фиксирует выполненные блоки и ограничения. Записи расположены от новых к старым; подробная история этапа12 также сохранена в [ux-ui-stage-12.md](ux-ui-stage-12.md).
|
||||
|
||||
@@ -36,7 +36,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–161 и ограничения ниже. Runtime backend ux-month149/frontend ux-sessions150. |
|
||||
| 12 | Итоговая доступность, адаптивность, производительность и регрессия | Локальная приёмка завершена в границах12.3.83; внешняя12.5 в работе, выполненные блоки1–162 и ограничения ниже. Runtime backend ux-month149/frontend ux-sessions150. |
|
||||
|
||||
## 12.5.162 — четырёхбайтовые ASN в IPv6 BGP и интерфейсе (2026-10-12)
|
||||
|
||||
Два CHR7.24.5, own IPv4 outer GRE/IPv6 ULA fd00:162:1::1↔2/64 и loopbacks fd00:162:ff::1↔2/128. Private AS4200000162↔4200000163 взяты из [диапазона IANA4200000000–4294967294](https://www.iana.org/assignments/as-numbers), reserved4294967295 не использован. Input/output filters принимают только exact own/remote /128, afi=ipv6, default-originate=never и network-blackhole=no. Native Established и negotiated as4, local/remote AS сохранили исходные10-значные числа вместо AS_TRANS; catalog совпал, capabilities содержит4-byte-AS. Каждый узел получил ровно один own remote IPv6 NLRI, initial Ping3/3×2.
|
||||
|
||||
Readonly production UI1440/320 показал обе IPv6 сессии/Established и точные remote ASN в DOM, no errors/document overflow. Mobile проверен визуально; AS columns могут требовать горизонтального table scroll, одновременная viewport visibility всех columns не заявляется. Administrative disable одной own BGP connection снял own remote IPv6 route на другом узле, первое наблюдение135ms после PATCH, не hold timer/BFD/SLA/continuous loss. Enable вернул Established/NLRI и Ping3/3×2. BFD fault160 без source delta не повторялся.
|
||||
|
||||
Own connections/instances/routing filters/address-list/IPv6/bridge/GRE удалены,11 static collections×2 совпали по выбранным конфигурационным полям, filter order сохранён. Helper exit0; container удалён после exact-ID/state check. Main DB только читалась helper, background polling продолжался; пароли/public/default paths не менялись, оба CHR доступны при cleanup. Source/dependencies/build после161 не менялись, runtime ux-bgp161b/ux-bfd158 сохранён.
|
||||
|
||||
Протоколы: [native/as4/withdrawal/recovery/cleanup](ux-ui/acceptance/bgp-four-byte-asn-native-2026-10-12.json), [2 live UI](ux-ui/acceptance/bgp-ipv6-162-live-ui-2026-10-12.json), [ПК](ux-ui/screens/bgp-ipv6-162-1440-2026-10-12.png), [телефон](ux-ui/screens/bgp-ipv6-162-320-2026-10-12.png). Live UI162 использует отдельный файл bgp-ipv6-162-live-ui, протокол160 сохранён отдельно.
|
||||
|
||||
Границы: private four-byte ASN между двумя RouterOS, single-path IPv6 внутри IPv4 GRE, не interop со сторонними peers, IPv6 public outer/WAN, scale/physical redundancy. Следующий163 — проверка duplicate legacy alert keys serverName:peerName: два разных устройства с одинаковыми именами не должны создавать ложные state transitions внутри одного snapshot.12.5 открыт.
|
||||
|
||||
## 12.5.161 — неизвестные состояния BGP без ложных оповещений (2026-10-12)
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Оставшаяся внешняя приёмка — 2026-10-12
|
||||
|
||||
Это актуальная матрица после 12.5.161. Исторические записи сохраняют версии и ограничения на момент выполнения; поздние проверки ниже уточняют их. Этап 12.5 открыт. Успех в двух CHR и одном backend не означает приёмку всех конфигураций, интеграций или полной регрессии.
|
||||
Это актуальная матрица после 12.5.162. Исторические записи сохраняют версии и ограничения на момент выполнения; поздние проверки ниже уточняют их. Этап 12.5 открыт. Успех в двух CHR и одном backend не означает приёмку всех конфигураций, интеграций или полной регрессии.
|
||||
|
||||
Стенд: Debian13/Compose, PostgreSQL18.6, два CHR RouterOS7.24.5. Backend `ux-bgp161b`, frontend `ux-bfd158`; production lab использует AUTH_REQUIRED=false. Подписанные JWT/RBAC проверялись в изолированных процессах. Все собственные объекты112 удалены, исходные13 коллекций×2 (включая logging/certificates/files/routes) проверены; пароли не менялись.
|
||||
|
||||
@@ -14,11 +14,11 @@
|
||||
| VXLAN | Собственная пара/private Ping/catalog/URL/export75–76; bridge/FDB/port loss/recovery107; IPv6 ULA inner по IPv4 outer108 | API приложения read-only: create/delete проверены native. IPv6 outer, масштаб/производительность, профильные mutation RBAC/concurrency отдельно не приняты |
|
||||
| IPsec | PSK и сертификатное шифрование77–82, active peer/online/mode-config, scoped NAT/group, partial/unknown/applied receipts, restore conflicts, JWT; full DN/специальные символы/online110; literal CN namespace guards и explicit FQDN111; certificate/PSK shared ID unknown/recovery112; multiple sessions controlled snapshots113; shared certificate rows/target guards114; preserve-certificate UI/native DELETE115; explicit deletion binding/PSK collision116; legacy export binding118; real duplicate DN sessions/Linux Ping/UI119; DN DER/ASCII tag и FQDN SAN native120; implicit unique DNS SAN/mixed IDs/API/UI121; короткий CHILD/IKE rekey/reconnect122; server pin и unbound same-CA certificate refusal123; own RSA Root/Intermediate/client chain/CRLs/IKE/reauth138; external revoked CRL new-handshake refusal/existing-session boundary137; certificate-bound malformed/signed expired CRL IKE refusal/recovery136; certificate-bound missing-CDP404/IKE refusal and recovery135; external HTTP CRL download/404/cache preservation134; isolated diagnostic buffers132; own ECDSA P-256/Ping/API export131 and final18×2 inventory; isolated same-key/CA time boundary with explicit AUTH_FAILED130; valid-renewal control timeout/clock/log observation129; original/renewed controls and time-invalid timeout observation128; CRL-issued cert/CA no-write delete guards127; own CRL-enabled valid/revoked control126; local revoked flag/CRL-disabled reconnect observation125; certificate reauth/CHILD absence boundary/UI124 | Реальные duplicate certificate-derived DN sessions приняты119; arbitrary custom PKI/OIDs/policies/path-length and missing/intermediate-revoked chain; native intermediate chain accepted138; ECDSA P-256 accepted131;128/129 timeout cause still unknown,130 time boundary accepted; periodic refresh; existing IKE survives short external-revocation observation137, automatic termination not guaranteed; direct CHR-to-CHR CRL HTTP failure cause134; reauth/CHILD loss принят124; длительный rekey/переходная потеря пакетов; прочие ID типы/ADDR4/manual DN/custom PKI; native edit identical matching rules rejected; клиентские Windows/macOS/iOS/Android, прочие DN форматы/custom OIDs/IKE ID namespaces, полная PKI и policy/profile/proposal restore, физический disconnect, durable retry/multi-instance, IPv6/maximum throughput |
|
||||
| OSPF/BFD | Real Full/own routes84–85, раздельные наблюдения BFD86, effective disabled/optimizer cost/partial/RBAC87, alternate path90 и CIDR91; basic native OSPFv3/API/UI154 (harness timeout отдельно), OSPFv3/BFDv6 loss/recovery/API/UI159 | BFD-only sustained route gate не гарантирован:153 подтвердил поздние Full/active при BFD Down в30s samples, UI предупреждение/recovery принято. В90 переходный Ping18/40 с55% loss: бесшовность не принята. REST timing — наблюдаемая граница, не SLA; basic BFDv6 принят159; IPv6 outer/WAN/scale/independent WAN открыты |
|
||||
| BGP | Established83, exact /32 exchange/API/UI/administrative withdrawal92, BFD primary GRE loss/alternate/recovery93; basic native IPv6 eBGP/AFI/NLRI/Ping/withdrawal/API/UI155; native IPv6 BGP/BFD scoped withdrawal/recovery160 | Hold timer/TCP loss безBFD принят104; packet loss в переходе, разные внешние peers/WAN policy, basic BFDv6 принят160; IPv6 outer/public WAN/scale. Два логических пути используют тот же public WAN; physical redundancy не принята |
|
||||
| BGP | Established83, exact /32 exchange/API/UI/administrative withdrawal92, BFD primary GRE loss/alternate/recovery93; basic native IPv6 eBGP/AFI/NLRI/Ping/withdrawal/API/UI155; native IPv6 BGP/BFD scoped withdrawal/recovery160; private4-byte ASN/as4/API/UI162 | Hold timer/TCP loss безBFD принят104; packet loss в переходе, разные внешние peers/WAN policy, basic BFDv6 принят160; IPv6 outer/public WAN/scale. Два логических пути используют тот же public WAN; physical redundancy не принята |
|
||||
| Recursive routes | Production PUT/change/own history restore88, disabled guards, partial/unknown/applied outcomes, live формы/контекст | Автоматический rollback/retry, durable receipts и несколько экземпляров отсутствуют; PUT не является idempotent noop. Полная произвольная legacy catalog миграция не принята |
|
||||
| Diagnostics/terminal | Allowlist/native reads, Ping/trace/route/MTU/DNS, actual avg-rtt, disabled guards, JWT/live PC/mobile89; real default memory tail/log limits/API/UI133 | DNS использует backend resolver; MTU — ограниченная оценка, не гарантированный максимум. Stop ожидания не доказывает остановку RouterOS команды; arbitrary CLI и physical disconnect не приняты |
|
||||
| Portal/интеграции | Локальные и isolated JWT guards; UI/API error states в границах журналов | Настоящий Portal issuer/login/отзыв прав; RIPE SDK two-IP/no-fetch passed140, native IPv6 ULA flow pipeline passed145 (IPv4 transport), public IPv6 WAN/local licensed MaxMind/S3/container/certificate jobs и Gitea delivery требуют отдельных тестовых endpoints/аккаунтов. Не отправлять сообщения и не публиковать релиз без соответствующего поручения |
|
||||
| Общая приёмка | Локальная12.3.83; UI1244/context221/compiled984 parity139; профильные build/E2E/live проверки последующих блоков | Traffic initial live mock-id gate passed141; IPv6 special ranges/cache passed142; unknown RIPE coordinates passed143; IPv6 synthetic UDP/worker/SQL passed144; native CHR ULA/IPFIX/API/UI passed145; ICMPv6/IPv6 endpoint labels passed146; HTTP DTO validation passed147; scoped flow catalog/serverId guards passed148; strict monthly calendar passed149; Sessions labels passed150; application GRE static IPv6 lifecycle151 passed; WireGuard static IPv6 lifecycle152 и disabled SQL/API gates passed; OSPF/BFD boundary/warning153 passed; OSPFv3 routes154 accepted in recorded bounds; BGP IPv6 basic155 passed; bigint ID/SQL guards156 passed; общая UI1260/context221/backend24 regression157 passed; IPv6 BFD correlation158 profile/deployed passed; native OSPFv3/BFDv6 boundary/recovery159 passed; BGP IPv6/BFD withdrawal/recovery160 passed; selected BGP/alert unknown guards161 replay/profiles/deployed passed (SQL stability skipped); последующие изменения проверять отдельно; scoped axe не означает полную WCAG сертификацию |
|
||||
| Общая приёмка | Локальная12.3.83; UI1244/context221/compiled984 parity139; профильные build/E2E/live проверки последующих блоков | Traffic initial live mock-id gate passed141; IPv6 special ranges/cache passed142; unknown RIPE coordinates passed143; IPv6 synthetic UDP/worker/SQL passed144; native CHR ULA/IPFIX/API/UI passed145; ICMPv6/IPv6 endpoint labels passed146; HTTP DTO validation passed147; scoped flow catalog/serverId guards passed148; strict monthly calendar passed149; Sessions labels passed150; application GRE static IPv6 lifecycle151 passed; WireGuard static IPv6 lifecycle152 и disabled SQL/API gates passed; OSPF/BFD boundary/warning153 passed; OSPFv3 routes154 accepted in recorded bounds; BGP IPv6 basic155 passed; bigint ID/SQL guards156 passed; общая UI1260/context221/backend24 regression157 passed; IPv6 BFD correlation158 profile/deployed passed; native OSPFv3/BFDv6 boundary/recovery159 passed; BGP IPv6/BFD withdrawal/recovery160 passed; selected BGP/alert unknown guards161 replay/profiles/deployed passed (SQL stability skipped); private4-byte ASN162 native/API/UI passed; последующие изменения проверять отдельно; scoped axe не означает полную WCAG сертификацию |
|
||||
|
||||
Доказательства и точные ограничения: [полная история этапа12](ux-ui-stage-12.md), [внешний протокол](ux-ui-external-acceptance.md), [BGP93](ux-ui/acceptance/bgp-failover-2026-10-10.json), [паспорт стенда](ux-ui-test-server.md). Невыполненные пункты не являются все блокерами данного лабораторного сценария: для выпуска необходимо явно определить требуемые конфигурации и принять их либо согласовать ограничение.
|
||||
|
||||
@@ -696,3 +696,15 @@ Backend build прошёл, окончательный Docker кандидат u
|
||||
Протоколы: [compiled988](ux-ui/acceptance/bgp-unknown-compiled-2026-10-12.json), [native payload replay](ux-ui/acceptance/bgp-unknown-replay-2026-10-12.json), [deployed API/UI](ux-ui/acceptance/bgp-unknown-deployed-2026-10-12.json). RouterOS конфигурация/пароли этим блоком не менялись, новые native fixtures не создавались, ReUI/Frame/base-nova UI primitives сохранены.
|
||||
|
||||
Следующий162 — native private4-byte ASN в IPv6 BGP и отображение длинных AS на1440/320; прежний BFD fault повторять без новой delta не требуется.12.5 открыт.
|
||||
|
||||
## 12.5.162 — четырёхбайтовые ASN в IPv6 BGP и интерфейсе (2026-10-12)
|
||||
|
||||
Два CHR7.24.5, own IPv4 outer GRE/IPv6 ULA fd00:162:1::1↔2/64 и loopbacks fd00:162:ff::1↔2/128. Private AS4200000162↔4200000163 взяты из [диапазона IANA4200000000–4294967294](https://www.iana.org/assignments/as-numbers), reserved4294967295 не использован. Input/output filters принимают только exact own/remote /128, afi=ipv6, default-originate=never и network-blackhole=no. Native Established и negotiated as4, local/remote AS сохранили исходные10-значные числа вместо AS_TRANS; catalog совпал, capabilities содержит4-byte-AS. Каждый узел получил ровно один own remote IPv6 NLRI, initial Ping3/3×2.
|
||||
|
||||
Readonly production UI1440/320 показал обе IPv6 сессии/Established и точные remote ASN в DOM, no errors/document overflow. Mobile проверен визуально; AS columns могут требовать горизонтального table scroll, одновременная viewport visibility всех columns не заявляется. Administrative disable одной own BGP connection снял own remote IPv6 route на другом узле, первое наблюдение135ms после PATCH, не hold timer/BFD/SLA/continuous loss. Enable вернул Established/NLRI и Ping3/3×2. BFD fault160 без source delta не повторялся.
|
||||
|
||||
Own connections/instances/routing filters/address-list/IPv6/bridge/GRE удалены,11 static collections×2 совпали по выбранным конфигурационным полям, filter order сохранён. Helper exit0; container удалён после exact-ID/state check. Main DB только читалась helper, background polling продолжался; пароли/public/default paths не менялись, оба CHR доступны при cleanup. Source/dependencies/build после161 не менялись, runtime ux-bgp161b/ux-bfd158 сохранён.
|
||||
|
||||
Протоколы: [native/as4/withdrawal/recovery/cleanup](ux-ui/acceptance/bgp-four-byte-asn-native-2026-10-12.json), [2 live UI](ux-ui/acceptance/bgp-ipv6-162-live-ui-2026-10-12.json), [ПК](ux-ui/screens/bgp-ipv6-162-1440-2026-10-12.png), [телефон](ux-ui/screens/bgp-ipv6-162-320-2026-10-12.png). Live UI162 использует отдельный файл bgp-ipv6-162-live-ui, протокол160 сохранён отдельно.
|
||||
|
||||
Границы: private four-byte ASN между двумя RouterOS, single-path IPv6 внутри IPv4 GRE, не interop со сторонними peers, IPv6 public outer/WAN, scale/physical redundancy. Следующий163 — проверка duplicate legacy alert keys serverName:peerName: два разных устройства с одинаковыми именами не должны создавать ложные state transitions внутри одного snapshot.12.5 открыт.
|
||||
+13
-1
@@ -1,6 +1,6 @@
|
||||
# Этап 12: итоговая приёмка UX/UI
|
||||
|
||||
Актуальное продолжение 2026-10-12: завершён 12.5.161 — selected/legacy BGP state сохраняет Unknown вместо Idle/Active догадок. Alert rules не считают unknown разрывом/восстановлением; collector baseline сохраняет last known state через gap.92 captured native rows/73 unknown/19 established replay, live-maps/alert/outbox profiles/build/988 compiled parity/2 real UI passed; SQL stability check skipped явно. Runtime backend ux-bgp161b/frontend ux-bfd158 healthy. Следующий162 — native BGP4-byte private ASN/IPv6 peers и UI, без повторения BFD fault;12.5 открыт.
|
||||
Актуальное продолжение 2026-10-12: завершён 12.5.162 — native IPv6 BGP private4-byte AS4200000162/4200000163, as4 capability/local+remote ASN/API/UI подтверждены. Initial/recovery Ping3/3×2/administrative withdrawal135ms (не SLA)/2 real UI/11 projected static collections×2 cleanup/own container removal passed. Runtime ux-bgp161b/ux-bfd158 сохранён. Следующий163 — защита BGP alert collector от дублирующихся legacy serverName:peerName keys;12.5 открыт.
|
||||
|
||||
План: [ux-ui-plan.md](ux-ui-plan.md). Фактические результаты: [ux-ui-progress.md](ux-ui-progress.md). Подготовлен после сводных проверок 11Б; завершение каждого блока требует локального коммита без push.
|
||||
|
||||
@@ -3086,3 +3086,15 @@ Backend build прошёл, окончательный Docker кандидат u
|
||||
Протоколы: [compiled988](ux-ui/acceptance/bgp-unknown-compiled-2026-10-12.json), [native payload replay](ux-ui/acceptance/bgp-unknown-replay-2026-10-12.json), [deployed API/UI](ux-ui/acceptance/bgp-unknown-deployed-2026-10-12.json). RouterOS конфигурация/пароли этим блоком не менялись, новые native fixtures не создавались, ReUI/Frame/base-nova UI primitives сохранены.
|
||||
|
||||
Следующий162 — native private4-byte ASN в IPv6 BGP и отображение длинных AS на1440/320; прежний BFD fault повторять без новой delta не требуется.12.5 открыт.
|
||||
|
||||
## 12.5.162 — четырёхбайтовые ASN в IPv6 BGP и интерфейсе (2026-10-12)
|
||||
|
||||
Два CHR7.24.5, own IPv4 outer GRE/IPv6 ULA fd00:162:1::1↔2/64 и loopbacks fd00:162:ff::1↔2/128. Private AS4200000162↔4200000163 взяты из [диапазона IANA4200000000–4294967294](https://www.iana.org/assignments/as-numbers), reserved4294967295 не использован. Input/output filters принимают только exact own/remote /128, afi=ipv6, default-originate=never и network-blackhole=no. Native Established и negotiated as4, local/remote AS сохранили исходные10-значные числа вместо AS_TRANS; catalog совпал, capabilities содержит4-byte-AS. Каждый узел получил ровно один own remote IPv6 NLRI, initial Ping3/3×2.
|
||||
|
||||
Readonly production UI1440/320 показал обе IPv6 сессии/Established и точные remote ASN в DOM, no errors/document overflow. Mobile проверен визуально; AS columns могут требовать горизонтального table scroll, одновременная viewport visibility всех columns не заявляется. Administrative disable одной own BGP connection снял own remote IPv6 route на другом узле, первое наблюдение135ms после PATCH, не hold timer/BFD/SLA/continuous loss. Enable вернул Established/NLRI и Ping3/3×2. BFD fault160 без source delta не повторялся.
|
||||
|
||||
Own connections/instances/routing filters/address-list/IPv6/bridge/GRE удалены,11 static collections×2 совпали по выбранным конфигурационным полям, filter order сохранён. Helper exit0; container удалён после exact-ID/state check. Main DB только читалась helper, background polling продолжался; пароли/public/default paths не менялись, оба CHR доступны при cleanup. Source/dependencies/build после161 не менялись, runtime ux-bgp161b/ux-bfd158 сохранён.
|
||||
|
||||
Протоколы: [native/as4/withdrawal/recovery/cleanup](ux-ui/acceptance/bgp-four-byte-asn-native-2026-10-12.json), [2 live UI](ux-ui/acceptance/bgp-ipv6-162-live-ui-2026-10-12.json), [ПК](ux-ui/screens/bgp-ipv6-162-1440-2026-10-12.png), [телефон](ux-ui/screens/bgp-ipv6-162-320-2026-10-12.png). Live UI162 использует отдельный файл bgp-ipv6-162-live-ui, протокол160 сохранён отдельно.
|
||||
|
||||
Границы: private four-byte ASN между двумя RouterOS, single-path IPv6 внутри IPv4 GRE, не interop со сторонними peers, IPv6 public outer/WAN, scale/physical redundancy. Следующий163 — проверка duplicate legacy alert keys serverName:peerName: два разных устройства с одинаковыми именами не должны создавать ложные state transitions внутри одного snapshot.12.5 открыт.
|
||||
@@ -1,6 +1,6 @@
|
||||
# Тестовый сервер UX/UI — 2026-10-10
|
||||
|
||||
Сервер161.104.46.222: завершён 12.5.161 — selected/legacy BGP state сохраняет Unknown вместо Idle/Active догадок. Alert rules не считают unknown разрывом/восстановлением; collector baseline сохраняет last known state через gap.92 captured native rows/73 unknown/19 established replay, live-maps/alert/outbox profiles/build/988 compiled parity/2 real UI passed; SQL stability check skipped явно. Runtime backend ux-bgp161b/frontend ux-bfd158 healthy. Следующий162 — native BGP4-byte private ASN/IPv6 peers и UI, без повторения BFD fault;12.5 открыт.
|
||||
Сервер161.104.46.222: завершён 12.5.162 — native IPv6 BGP private4-byte AS4200000162/4200000163, as4 capability/local+remote ASN/API/UI подтверждены. Initial/recovery Ping3/3×2/administrative withdrawal135ms (не SLA)/2 real UI/11 projected static collections×2 cleanup/own container removal passed. Runtime ux-bgp161b/ux-bfd158 сохранён. Следующий163 — защита BGP alert collector от дублирующихся legacy serverName:peerName keys;12.5 открыт.
|
||||
|
||||
| Параметр | Проверенное состояние |
|
||||
| --- | --- |
|
||||
@@ -1512,3 +1512,15 @@ Backend build прошёл, окончательный Docker кандидат u
|
||||
Протоколы: [compiled988](ux-ui/acceptance/bgp-unknown-compiled-2026-10-12.json), [native payload replay](ux-ui/acceptance/bgp-unknown-replay-2026-10-12.json), [deployed API/UI](ux-ui/acceptance/bgp-unknown-deployed-2026-10-12.json). RouterOS конфигурация/пароли этим блоком не менялись, новые native fixtures не создавались, ReUI/Frame/base-nova UI primitives сохранены.
|
||||
|
||||
Следующий162 — native private4-byte ASN в IPv6 BGP и отображение длинных AS на1440/320; прежний BFD fault повторять без новой delta не требуется.12.5 открыт.
|
||||
|
||||
## 12.5.162 — четырёхбайтовые ASN в IPv6 BGP и интерфейсе (2026-10-12)
|
||||
|
||||
Два CHR7.24.5, own IPv4 outer GRE/IPv6 ULA fd00:162:1::1↔2/64 и loopbacks fd00:162:ff::1↔2/128. Private AS4200000162↔4200000163 взяты из [диапазона IANA4200000000–4294967294](https://www.iana.org/assignments/as-numbers), reserved4294967295 не использован. Input/output filters принимают только exact own/remote /128, afi=ipv6, default-originate=never и network-blackhole=no. Native Established и negotiated as4, local/remote AS сохранили исходные10-значные числа вместо AS_TRANS; catalog совпал, capabilities содержит4-byte-AS. Каждый узел получил ровно один own remote IPv6 NLRI, initial Ping3/3×2.
|
||||
|
||||
Readonly production UI1440/320 показал обе IPv6 сессии/Established и точные remote ASN в DOM, no errors/document overflow. Mobile проверен визуально; AS columns могут требовать горизонтального table scroll, одновременная viewport visibility всех columns не заявляется. Administrative disable одной own BGP connection снял own remote IPv6 route на другом узле, первое наблюдение135ms после PATCH, не hold timer/BFD/SLA/continuous loss. Enable вернул Established/NLRI и Ping3/3×2. BFD fault160 без source delta не повторялся.
|
||||
|
||||
Own connections/instances/routing filters/address-list/IPv6/bridge/GRE удалены,11 static collections×2 совпали по выбранным конфигурационным полям, filter order сохранён. Helper exit0; container удалён после exact-ID/state check. Main DB только читалась helper, background polling продолжался; пароли/public/default paths не менялись, оба CHR доступны при cleanup. Source/dependencies/build после161 не менялись, runtime ux-bgp161b/ux-bfd158 сохранён.
|
||||
|
||||
Протоколы: [native/as4/withdrawal/recovery/cleanup](ux-ui/acceptance/bgp-four-byte-asn-native-2026-10-12.json), [2 live UI](ux-ui/acceptance/bgp-ipv6-162-live-ui-2026-10-12.json), [ПК](ux-ui/screens/bgp-ipv6-162-1440-2026-10-12.png), [телефон](ux-ui/screens/bgp-ipv6-162-320-2026-10-12.png). Live UI162 использует отдельный файл bgp-ipv6-162-live-ui, протокол160 сохранён отдельно.
|
||||
|
||||
Границы: private four-byte ASN между двумя RouterOS, single-path IPv6 внутри IPv4 GRE, не interop со сторонними peers, IPv6 public outer/WAN, scale/physical redundancy. Следующий163 — проверка duplicate legacy alert keys serverName:peerName: два разных устройства с одинаковыми именами не должны создавать ложные state transitions внутри одного snapshot.12.5 открыт.
|
||||
@@ -0,0 +1,387 @@
|
||||
{
|
||||
"date": "2026-10-12",
|
||||
"block": "12.5.162",
|
||||
"name": "mm-bgp162-1791774990658",
|
||||
"devices": [
|
||||
{
|
||||
"serverId": 1,
|
||||
"catalog": {
|
||||
"id": "*280000C",
|
||||
"serverId": 1,
|
||||
"serverName": "CHR",
|
||||
"serverSite": "",
|
||||
"serverCountry": "",
|
||||
"name": "mm-bgp162-1791774990658-1",
|
||||
"peerIp": "fd00:162:1::2",
|
||||
"remoteAs": 4200000163,
|
||||
"localAs": 4200000162,
|
||||
"localId": "198.18.255.1",
|
||||
"remoteId": "198.18.255.2",
|
||||
"state": "Established",
|
||||
"type": "eBGP",
|
||||
"uptime": "250ms",
|
||||
"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": "ipv6"
|
||||
},
|
||||
"route": {
|
||||
".id": "*2014F000",
|
||||
"active": "true",
|
||||
"bgp": "true",
|
||||
"distance": "20",
|
||||
"dst-address": "fd00:162:ff::2/128",
|
||||
"dynamic": "true",
|
||||
"gateway": "fd00:162:1::2",
|
||||
"immediate-gw": "fd00:162:1::2%mm-bgp162-1791774990658-g",
|
||||
"inactive": "false",
|
||||
"routing-table": "main",
|
||||
"scope": "40",
|
||||
"target-scope": "10"
|
||||
}
|
||||
},
|
||||
{
|
||||
"serverId": 2,
|
||||
"catalog": {
|
||||
"id": "*280000A",
|
||||
"serverId": 2,
|
||||
"serverName": "CHR",
|
||||
"serverSite": "",
|
||||
"serverCountry": "",
|
||||
"name": "mm-bgp162-1791774990658-1",
|
||||
"peerIp": "fd00:162:1::1",
|
||||
"remoteAs": 4200000162,
|
||||
"localAs": 4200000163,
|
||||
"localId": "198.18.255.2",
|
||||
"remoteId": "198.18.255.1",
|
||||
"state": "Established",
|
||||
"type": "eBGP",
|
||||
"uptime": "100ms",
|
||||
"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": "ipv6"
|
||||
},
|
||||
"route": {
|
||||
".id": "*2014F000",
|
||||
"active": "true",
|
||||
"bgp": "true",
|
||||
"distance": "20",
|
||||
"dst-address": "fd00:162:ff::1/128",
|
||||
"dynamic": "true",
|
||||
"gateway": "fd00:162:1::1",
|
||||
"immediate-gw": "fd00:162:1::1%mm-bgp162-1791774990658-g",
|
||||
"inactive": "false",
|
||||
"routing-table": "main",
|
||||
"scope": "40",
|
||||
"target-scope": "10"
|
||||
}
|
||||
}
|
||||
],
|
||||
"cleanup": [
|
||||
{
|
||||
"serverId": 1,
|
||||
"/routing/bgp/connection": true,
|
||||
"/routing/bgp/instance": true,
|
||||
"/routing/filter/rule": true,
|
||||
"/ipv6/firewall/address-list": true,
|
||||
"/interface/gre": true,
|
||||
"/interface/bridge": true,
|
||||
"/ipv6/address": true,
|
||||
"/ipv6/route": true,
|
||||
"/ip/address": true,
|
||||
"/ip/route": true,
|
||||
"/ipv6/firewall/filter": true
|
||||
},
|
||||
{
|
||||
"serverId": 2,
|
||||
"/routing/bgp/connection": true,
|
||||
"/routing/bgp/instance": true,
|
||||
"/routing/filter/rule": true,
|
||||
"/ipv6/firewall/address-list": true,
|
||||
"/interface/gre": true,
|
||||
"/interface/bridge": true,
|
||||
"/ipv6/address": true,
|
||||
"/ipv6/route": true,
|
||||
"/ip/address": true,
|
||||
"/ip/route": true,
|
||||
"/ipv6/firewall/filter": true
|
||||
}
|
||||
],
|
||||
"initial": [
|
||||
{
|
||||
"serverId": 1,
|
||||
"sessions": [
|
||||
{
|
||||
".id": "*280000C",
|
||||
"ebgp": "",
|
||||
"established": "true",
|
||||
"hold-time": "3m",
|
||||
"input.filter": "mm-bgp162-1791774990658-in",
|
||||
"input.procid": "20",
|
||||
"instance": "mm-bgp162-1791774990658",
|
||||
"keepalive-time": "1m",
|
||||
"last-started": "2026-10-12 06:16:41",
|
||||
"local.address": "fd00:162:1::1",
|
||||
"local.afi": "ipv6",
|
||||
"local.as": "4200000162",
|
||||
"local.bytes": "98",
|
||||
"local.capabilities": "mp,rr,enhe,gr,as4",
|
||||
"local.cluster-id": "198.18.255.1",
|
||||
"local.eor": "",
|
||||
"local.id": "198.18.255.1",
|
||||
"local.messages": "2",
|
||||
"name": "mm-bgp162-1791774990658-1",
|
||||
"output.filter-chain": "mm-bgp162-1791774990658-out",
|
||||
"output.network": "mm-bgp162-1791774990658",
|
||||
"output.procid": "20",
|
||||
"prefix-count": "0",
|
||||
"remote.address": "fd00:162:1::2",
|
||||
"remote.afi": "ipv6",
|
||||
"remote.as": "4200000163",
|
||||
"remote.bytes": "98",
|
||||
"remote.capabilities": "mp,rr,enhe,gr,as4",
|
||||
"remote.eor": "",
|
||||
"remote.id": "198.18.255.2",
|
||||
"remote.messages": "2",
|
||||
"uptime": "250ms"
|
||||
}
|
||||
],
|
||||
"routes": [
|
||||
{
|
||||
".id": "*2014F000",
|
||||
"active": "true",
|
||||
"bgp": "true",
|
||||
"distance": "20",
|
||||
"dst-address": "fd00:162:ff::2/128",
|
||||
"dynamic": "true",
|
||||
"gateway": "fd00:162:1::2",
|
||||
"immediate-gw": "fd00:162:1::2%mm-bgp162-1791774990658-g",
|
||||
"inactive": "false",
|
||||
"routing-table": "main",
|
||||
"scope": "40",
|
||||
"target-scope": "10"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"serverId": 2,
|
||||
"sessions": [
|
||||
{
|
||||
".id": "*280000A",
|
||||
"ebgp": "",
|
||||
"established": "true",
|
||||
"hold-time": "3m",
|
||||
"input.filter": "mm-bgp162-1791774990658-in",
|
||||
"input.procid": "20",
|
||||
"instance": "mm-bgp162-1791774990658",
|
||||
"keepalive-time": "1m",
|
||||
"last-started": "2026-10-12 05:16:42",
|
||||
"local.address": "fd00:162:1::2",
|
||||
"local.afi": "ipv6",
|
||||
"local.as": "4200000163",
|
||||
"local.bytes": "98",
|
||||
"local.capabilities": "mp,rr,enhe,gr,as4",
|
||||
"local.cluster-id": "198.18.255.2",
|
||||
"local.eor": "",
|
||||
"local.id": "198.18.255.2",
|
||||
"local.messages": "2",
|
||||
"name": "mm-bgp162-1791774990658-1",
|
||||
"output.filter-chain": "mm-bgp162-1791774990658-out",
|
||||
"output.network": "mm-bgp162-1791774990658",
|
||||
"output.procid": "20",
|
||||
"prefix-count": "0",
|
||||
"remote.address": "fd00:162:1::1",
|
||||
"remote.afi": "ipv6",
|
||||
"remote.as": "4200000162",
|
||||
"remote.bytes": "98",
|
||||
"remote.capabilities": "mp,rr,enhe,gr,as4",
|
||||
"remote.eor": "",
|
||||
"remote.id": "198.18.255.1",
|
||||
"remote.messages": "2",
|
||||
"uptime": "100ms"
|
||||
}
|
||||
],
|
||||
"routes": [
|
||||
{
|
||||
".id": "*2014F000",
|
||||
"active": "true",
|
||||
"bgp": "true",
|
||||
"distance": "20",
|
||||
"dst-address": "fd00:162:ff::1/128",
|
||||
"dynamic": "true",
|
||||
"gateway": "fd00:162:1::1",
|
||||
"immediate-gw": "fd00:162:1::1%mm-bgp162-1791774990658-g",
|
||||
"inactive": "false",
|
||||
"routing-table": "main",
|
||||
"scope": "40",
|
||||
"target-scope": "10"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"pings": [
|
||||
{
|
||||
"serverId": 1,
|
||||
"sent": 3,
|
||||
"received": 3
|
||||
},
|
||||
{
|
||||
"serverId": 2,
|
||||
"sent": 3,
|
||||
"received": 3
|
||||
}
|
||||
],
|
||||
"withdrawal": {
|
||||
"elapsedMs": 135,
|
||||
"ownIpv6RouteWithdrawn": true
|
||||
},
|
||||
"recovery": [
|
||||
{
|
||||
"serverId": 1,
|
||||
"sessions": [
|
||||
{
|
||||
".id": "*280000D",
|
||||
"ebgp": "",
|
||||
"established": "true",
|
||||
"hold-time": "3m",
|
||||
"input.filter": "mm-bgp162-1791774990658-in",
|
||||
"input.procid": "20",
|
||||
"instance": "mm-bgp162-1791774990658",
|
||||
"keepalive-time": "1m",
|
||||
"last-started": "2026-10-12 06:17:16",
|
||||
"local.address": "fd00:162:1::1",
|
||||
"local.afi": "ipv6",
|
||||
"local.as": "4200000162",
|
||||
"local.bytes": "98",
|
||||
"local.capabilities": "mp,rr,enhe,gr,as4",
|
||||
"local.cluster-id": "198.18.255.1",
|
||||
"local.eor": "",
|
||||
"local.id": "198.18.255.1",
|
||||
"local.messages": "2",
|
||||
"name": "mm-bgp162-1791774990658-1",
|
||||
"output.filter-chain": "mm-bgp162-1791774990658-out",
|
||||
"output.network": "mm-bgp162-1791774990658",
|
||||
"output.procid": "20",
|
||||
"prefix-count": "1",
|
||||
"remote.address": "fd00:162:1::2",
|
||||
"remote.afi": "ipv6",
|
||||
"remote.as": "4200000163",
|
||||
"remote.bytes": "98",
|
||||
"remote.capabilities": "mp,rr,enhe,gr,as4",
|
||||
"remote.eor": "",
|
||||
"remote.id": "198.18.255.2",
|
||||
"remote.messages": "2",
|
||||
"uptime": "380ms"
|
||||
}
|
||||
],
|
||||
"routes": [
|
||||
{
|
||||
".id": "*2014F000",
|
||||
"active": "true",
|
||||
"bgp": "true",
|
||||
"distance": "20",
|
||||
"dst-address": "fd00:162:ff::2/128",
|
||||
"dynamic": "true",
|
||||
"gateway": "fd00:162:1::2",
|
||||
"immediate-gw": "fd00:162:1::2%mm-bgp162-1791774990658-g",
|
||||
"inactive": "false",
|
||||
"routing-table": "main",
|
||||
"scope": "40",
|
||||
"target-scope": "10"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"serverId": 2,
|
||||
"sessions": [
|
||||
{
|
||||
".id": "*280000A",
|
||||
"ebgp": "",
|
||||
"established": "true",
|
||||
"hold-time": "3m",
|
||||
"input.filter": "mm-bgp162-1791774990658-in",
|
||||
"input.procid": "20",
|
||||
"instance": "mm-bgp162-1791774990658",
|
||||
"keepalive-time": "1m",
|
||||
"last-started": "2026-10-12 05:17:16",
|
||||
"last-stopped": "2026-10-12 05:17:16",
|
||||
"local.address": "fd00:162:1::2",
|
||||
"local.afi": "ipv6",
|
||||
"local.as": "4200000163",
|
||||
"local.bytes": "98",
|
||||
"local.capabilities": "mp,rr,enhe,gr,as4",
|
||||
"local.cluster-id": "198.18.255.2",
|
||||
"local.eor": "",
|
||||
"local.id": "198.18.255.2",
|
||||
"local.messages": "2",
|
||||
"name": "mm-bgp162-1791774990658-1",
|
||||
"output.filter-chain": "mm-bgp162-1791774990658-out",
|
||||
"output.network": "mm-bgp162-1791774990658",
|
||||
"output.procid": "20",
|
||||
"prefix-count": "1",
|
||||
"remote.address": "fd00:162:1::1",
|
||||
"remote.afi": "ipv6",
|
||||
"remote.as": "4200000162",
|
||||
"remote.bytes": "98",
|
||||
"remote.capabilities": "mp,rr,enhe,gr,as4",
|
||||
"remote.eor": "",
|
||||
"remote.id": "198.18.255.1",
|
||||
"remote.messages": "2",
|
||||
"uptime": "280ms"
|
||||
}
|
||||
],
|
||||
"routes": [
|
||||
{
|
||||
".id": "*2014F000",
|
||||
"active": "true",
|
||||
"bgp": "true",
|
||||
"distance": "20",
|
||||
"dst-address": "fd00:162:ff::1/128",
|
||||
"dynamic": "true",
|
||||
"gateway": "fd00:162:1::1",
|
||||
"immediate-gw": "fd00:162:1::1%mm-bgp162-1791774990658-g",
|
||||
"inactive": "false",
|
||||
"routing-table": "main",
|
||||
"scope": "40",
|
||||
"target-scope": "10"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"recoveryPings": [
|
||||
{
|
||||
"serverId": 1,
|
||||
"sent": 3,
|
||||
"received": 3
|
||||
},
|
||||
{
|
||||
"serverId": 2,
|
||||
"sent": 3,
|
||||
"received": 3
|
||||
}
|
||||
],
|
||||
"passed": true
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
{
|
||||
"date": "2026-10-12",
|
||||
"block": "12.5.162",
|
||||
"runtime": {
|
||||
"backend": "ux-bgp161b",
|
||||
"frontend": "ux-bfd158"
|
||||
},
|
||||
"cases": [
|
||||
{
|
||||
"width": 1440,
|
||||
"rows": 2,
|
||||
"ipv6PeersRendered": true,
|
||||
"establishedRendered": true,
|
||||
"fourByteAsnRendered": true,
|
||||
"noOverflow": true,
|
||||
"errors": []
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"rows": 2,
|
||||
"ipv6PeersRendered": true,
|
||||
"establishedRendered": true,
|
||||
"fourByteAsnRendered": true,
|
||||
"noOverflow": true,
|
||||
"errors": []
|
||||
}
|
||||
],
|
||||
"bounds": [
|
||||
"Readonly production API with real two CHR IPv6 peers over own GRE/IPv4 outer; no response substitution",
|
||||
"Native IPv6 NLRI/Ping/withdrawal/cleanup are checked separately; no public IPv6 WAN, independent WAN, arbitrary external peer, scale or throughput claim"
|
||||
]
|
||||
}
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 134 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 49 KiB |
Reference in new issue
Block a user