Files
awg-dash/tests/netns
embeddevio 79cbcab397 test(#21): netns-стенд — топология client/gw/uplink, lib и точка входа
Основы харнесса для тестов без реального VPN-провайдера:
- lib.sh — конфигурация стенда (netns, адреса, fwmark/таблицы) и правила
  netfilter с поддержкой nft и iptables (в alpine-образе приложения nft нет);
- topology.sh — up/down/status/killswitch: veth-пары client<->gw<->uplink,
  ip_forward, ip rule fwmark 51820 -> table 51820, метки OUTPUT/FORWARD,
  DROP kill-switch для прямого выхода в «публичную» сеть;
- run.sh — preflight, запуск мока и детектора утечки в netns uplink, прогон
  тестов, снос стенда с проверкой отсутствия остатков.

Refs #21
Refs #15
2026-10-21 23:47:48 +03:00
..

tests/netns — сетевой тестовый стенд

Задача #21, используется тестами #41 и #43.

Цель: проверять split-tunnel без реального VPN-провайдера и без доступа к продакшн-сети.

План харнесса:

  1. Создать netns: client, gw (шлюз с awg-интерфейсом), uplink (имитация ISP).
  2. Поднять мок WireGuard-endpoint (userspace) вместо реального сервера.
  3. Запустить шлюз в netns с теми же правилами, что в контейнере.
  4. Проверить, куда ушёл пакет: интерфейс/метка/счётчики ipset и iptables.

Точки входа: tests/netns/run.sh (вызывается через make test-netns).