Files
awg-dash/tests/netns
embeddevio 6de43622fa test(#21): утилиты стенда, раннер с JSON-отчётом и README харнесса
- netns_common.py — обёртки над ip/nft/iptables: проверка netns и линков,
  счётчики правил меток и kill-switch (nft -j и iptables -v -x), чтение
  JSONL-логов мока и детектора, отправка трафика через probe.py;
- run_tests.py — прогон unittest с JSON-отчётом (pytest не нужен: работает
  и на хосте, и в alpine-образе);
- README.md — схема топологии, таблица тестов, переменные окружения и pitfalls
  (root/CAP_NET_ADMIN, rp_filter, отсутствие nft и ping в образе).

Refs #21
Refs #15
2026-10-21 23:48:22 +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).