Sprint 1: iptables/ipset Manager (policy routing, atomic swap, MSS clamping, IPv6) #24

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

Owner: backend · Est: 8 SP · P0 · Sprint 1 · Deps: #20, #22 · Refs #15 (референс — entrypoint.sh PoC)

  • Идемпотентный менеджер iptables/ipset: таблица 100 для policy routing (ip rule fwmark), mangle PREROUTING MARK/RETURN, nat POSTROUTING MASQUERADE, FORWARD.
  • Атомарная замена наборов: ipset create new → swap → destroy old (без окна, когда правила пусты).
  • MTU/MSS clamping (TCPMSS --clamp-mss-to-pmtu) — без этого часть сайтов не открывается.
  • IPv6-политика: явное решение и правила (по умолчанию direct, если в туннеле нет ipv6).
  • Проверка совместимости iptables-nft vs legacy при старте; все операции идемпотентны (restart-safe).

AC:

  • GIVEN чистый запуск, WHEN применён desired state, THEN наборы и правила созданы; повторный apply не даёт дублей.
  • GIVEN замена большого списка (11k+ префиксов), WHEN выполняется swap, THEN нет окна, когда трафик из списка уходит в VPN.
  • GIVEN страница с MTU-чутьём, WHEN клиент из LAN обращается к сайту через VPN, THEN TCP-сессии устанавливаются (MSS clamping работает).

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

**Owner:** backend · **Est:** 8 SP · **P0** · **Sprint 1** · **Deps:** #20, #22 · Refs #15 (референс — `entrypoint.sh` PoC) - Идемпотентный менеджер iptables/ipset: таблица 100 для policy routing (`ip rule fwmark`), mangle PREROUTING MARK/RETURN, nat POSTROUTING MASQUERADE, FORWARD. - Атомарная замена наборов: `ipset create new` → `swap` → `destroy old` (без окна, когда правила пусты). - MTU/MSS clamping (TCPMSS --clamp-mss-to-pmtu) — без этого часть сайтов не открывается. - IPv6-политика: явное решение и правила (по умолчанию direct, если в туннеле нет ipv6). - Проверка совместимости iptables-nft vs legacy при старте; все операции идемпотентны (restart-safe). AC: - GIVEN чистый запуск, WHEN применён desired state, THEN наборы и правила созданы; повторный apply не даёт дублей. - GIVEN замена большого списка (11k+ префиксов), WHEN выполняется swap, THEN нет окна, когда трафик из списка уходит в VPN. - GIVEN страница с MTU-чутьём, WHEN клиент из LAN обращается к сайту через VPN, THEN TCP-сессии устанавливаются (MSS clamping работает). 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#24