18b911d582
- mock_wg_endpoint.py — UDP-эндпоинт, повторяющий раскладку сообщений WireGuard (initiation 148 байт -> response 92 байта), режимы respond/drop переключаются на лету через файл; JSONL-лог для ассертов; - leak_sink.py — UDP+TCP детектор утечки на 198.51.100.9:9999 внутри netns uplink (RFC 5737 TEST-NET-2); - probe.py — отправка handshake initiation или raw-UDP из указанного netns с разбором ответа в JSON. Только stdlib: работает в alpine-образе. 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).