6de43622fa
- 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
tests/netns — сетевой тестовый стенд
Задача #21, используется тестами #41 и #43.
Цель: проверять split-tunnel без реального VPN-провайдера и без доступа к продакшн-сети.
План харнесса:
- Создать netns:
client,gw(шлюз с awg-интерфейсом),uplink(имитация ISP). - Поднять мок WireGuard-endpoint (userspace) вместо реального сервера.
- Запустить шлюз в netns с теми же правилами, что в контейнере.
- Проверить, куда ушёл пакет: интерфейс/метка/счётчики ipset и iptables.
Точки входа: tests/netns/run.sh (вызывается через make test-netns).