Sprint 1: DNS-based split-tunnel (dnsmasq + ipset, защита от DNS-утечки) #26

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

Owner: backend · Est: 8 SP · P1 · Sprint 1 · Deps: #24 · Refs #15

  • Встроенный dnsmasq: ipset по доменам (домены → ipset для MARK), upstream-форвардинг, кэш, TTL.
  • Защита от DNS-утечки: перехват :53 от LAN-клиентов на dnsmasq шлюза (иначе DNS-split не работает при ручных DNS на клиентах).
  • Обновление ipset по TTL/расписанию, обработка CNAME и доменов с динамическими IP; лимиты на кол-во доменов и размер набора.

AC:

  • GIVEN домен в списке, WHEN клиент из LAN его резолвит, THEN его A-записи попадают в ipset и трафик идёт в VPN.
  • GIVEN клиент использует внешний DNS (1.1.1.1), WHEN он резолвит домен из списка, THEN его трафик в VPN всё равно попадает (перехват :53).
  • GIVEN домен с CNAME, WHEN TTL истёк, THEN набор обновляется без рестарта dnsmasq/контейнера.

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

**Owner:** backend · **Est:** 8 SP · **P1** · **Sprint 1** · **Deps:** #24 · Refs #15 - Встроенный dnsmasq: ipset по доменам (домены → ipset для MARK), upstream-форвардинг, кэш, TTL. - Защита от DNS-утечки: перехват :53 от LAN-клиентов на dnsmasq шлюза (иначе DNS-split не работает при ручных DNS на клиентах). - Обновление ipset по TTL/расписанию, обработка CNAME и доменов с динамическими IP; лимиты на кол-во доменов и размер набора. AC: - GIVEN домен в списке, WHEN клиент из LAN его резолвит, THEN его A-записи попадают в ipset и трафик идёт в VPN. - GIVEN клиент использует внешний DNS (1.1.1.1), WHEN он резолвит домен из списка, THEN его трафик в VPN всё равно попадает (перехват :53). - GIVEN домен с CNAME, WHEN TTL истёк, THEN набор обновляется без рестарта dnsmasq/контейнера. 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#26