Sprint 1: движок режимов маршрутизации + reconcile + исключения/приоритеты #27

Open
opened 2026-10-21 23:24:29 +03:00 by embeddevio · 0 comments
Owner

Owner: backend · Est: 5 SP · P0 · Sprint 1 · Deps: #24, #23 · Refs #15

  • 4 режима: GeoIP, DNS-based, All-VPN, Direct-only — переключение без перезапуска контейнера.
  • Reconcile-цикл: desired state (БД) → diff → идемпотентное применение; периодический reconcile на случай ручных правок в ядре.
  • Исключения (IP/подсеть/домен) с приоритетом выше режима; детект конфликтующих правил (одна подсеть в include+exclude) с предупреждением.
  • Смена режима — атомарная и откатываемая: при ошибке применения возврат предыдущего режима.

AC:

  • GIVEN режим GeoIP, WHEN клиент идёт на ресурс из RU-списка, THEN трафик direct; WHEN на ресурс вне списка, THEN трафик в VPN.
  • GIVEN режим All-VPN, WHEN любой внешний трафик, THEN всё в VPN; GIVEN Direct-only — всё напрямую.
  • GIVEN добавлено исключение для подсети, WHEN режим GeoIP, THEN именно эта подсеть идёт наперекор режиму и это видно в UI/API.
  • GIVEN ошибка применения нового режима (мок падения iptables), WHEN API-запрос, THEN ответ 4xx/5xx и режим остаётся прежним.

DoD: coverage ≥70%, CI green, ревью владельца роли.

**Owner:** backend · **Est:** 5 SP · **P0** · **Sprint 1** · **Deps:** #24, #23 · Refs #15 - 4 режима: `GeoIP`, `DNS-based`, `All-VPN`, `Direct-only` — переключение без перезапуска контейнера. - Reconcile-цикл: desired state (БД) → diff → идемпотентное применение; периодический reconcile на случай ручных правок в ядре. - Исключения (IP/подсеть/домен) с приоритетом выше режима; детект конфликтующих правил (одна подсеть в include+exclude) с предупреждением. - Смена режима — атомарная и откатываемая: при ошибке применения возврат предыдущего режима. AC: - GIVEN режим GeoIP, WHEN клиент идёт на ресурс из RU-списка, THEN трафик direct; WHEN на ресурс вне списка, THEN трафик в VPN. - GIVEN режим All-VPN, WHEN любой внешний трафик, THEN всё в VPN; GIVEN Direct-only — всё напрямую. - GIVEN добавлено исключение для подсети, WHEN режим GeoIP, THEN именно эта подсеть идёт наперекор режиму и это видно в UI/API. - GIVEN ошибка применения нового режима (мок падения iptables), WHEN API-запрос, THEN ответ 4xx/5xx и режим остаётся прежним. DoD: coverage ≥70%, CI green, ревью владельца роли.
embeddevio added this to the Sprint 1 — Ядро шлюза: tunnel / routing / GeoIP / DNS milestone 2026-10-21 23:24:29 +03:00
embeddevio added the backendstatus/backlog labels 2026-10-21 23:24:29 +03:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: embeddevio/awg-dash#27