feat: add declarative sing-box egress control plane
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
# Тестирование
|
||||
|
||||
## Уровни
|
||||
|
||||
1. Unit: URI, policy, version, renderer, redaction.
|
||||
2. Failure injection: candidate rejection, restart failure, URI/config rollback,
|
||||
idempotency и manual rollback swap.
|
||||
3. Real binary: `sing-box 1.13.19 check` на Linux и schema/format validation на Windows.
|
||||
4. Privileged Linux: TUN, nftables, systemd и HTTP data-plane healthcheck.
|
||||
5. Canary: DNS A change без endpoint CIDR и credential rotation.
|
||||
6. Reboot: guard ordering, persisted config и path watcher.
|
||||
|
||||
## Unit tests
|
||||
|
||||
```bash
|
||||
make check
|
||||
```
|
||||
|
||||
Тест с реальным бинарником включается явно:
|
||||
|
||||
```bash
|
||||
SING_BOX_1_13_19=/usr/bin/sing-box make test
|
||||
```
|
||||
|
||||
Он предварительно проверяет exact version и `with_quic`. Windows-бинарник не
|
||||
может создать Linux auto-redirect и поэтому выполняет `format` полной схемы;
|
||||
обязательный `check` остаётся в Linux CI/Incus.
|
||||
|
||||
## Privileged acceptance
|
||||
|
||||
В disposable Incus-контейнере с двумя NIC:
|
||||
|
||||
1. установить sing-box 1.13.19 и пакет;
|
||||
2. применить test URI;
|
||||
3. проверить таблицу 2022 и marks;
|
||||
4. подтвердить, что `eth1 -> eth0` отклоняется без sing-box;
|
||||
5. подтвердить TCP/UDP/DNS через TUN при рабочем HY2;
|
||||
6. сломать credential и проверить автоматический rollback;
|
||||
7. изменить A-запись endpoint, не меняя URI/config;
|
||||
8. перезагрузить контейнер и повторить doctor.
|
||||
|
||||
Production A-запись не используется для эксперимента: нужен staging hostname.
|
||||
Reference in New Issue
Block a user