Skip to content

Commit ec3afdf

Browse files
committed
docs: add dnst-scanner e2e validation issue draft
1 parent 2fa0ce8 commit ec3afdf

1 file changed

Lines changed: 53 additions & 0 deletions

File tree

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
# E2E Validation (Step 2) - Optional
2+
3+
**Depends on:** #3 (Basic Scan)
4+
5+
## Summary
6+
7+
Optional step that tests resolvers from basic scan with actual Slipstream/DNSTT tunnel connections via health check endpoints.
8+
9+
**Motivation:** Basic scan confirms DNS resolution works, but some resolvers may still fail with actual tunnel traffic due to rate limiting, DPI, or connection issues. E2E validation confirms the full tunnel path works.
10+
11+
## Design
12+
13+
### Prerequisites
14+
15+
- Slipstream and/or DNSTT client binaries available
16+
- Server-side health check endpoints deployed (dnstm #27)
17+
- Output from basic scan (list of working resolvers)
18+
19+
### How It Works
20+
21+
1. Takes resolver list from basic scan output
22+
2. For each resolver, attempts actual tunnel connection:
23+
- Start Slipstream/DNSTT client using the resolver
24+
- Connect to health check endpoint on server
25+
- Verify response (e.g., echo back a token)
26+
3. Mark resolvers as `e2e_slipstream: true/false`, `e2e_dnstt: true/false`
27+
28+
### CLI
29+
30+
```bash
31+
# Basic scan only (default)
32+
dnst-scanner scan --tunnel-domain t.example.com
33+
34+
# Basic scan + E2E validation
35+
dnst-scanner scan --tunnel-domain t.example.com --e2e \
36+
--slipstream-health hc-s.example.com \
37+
--slipstream-fingerprint abc123 \
38+
--dnstt-health hc-d.example.com \
39+
--dnstt-pubkey xyz789
40+
```
41+
42+
### Binary Management
43+
44+
- Slipstream/DNSTT binaries required for E2E
45+
- Env var overrides: `DNST_SCANNER_SLIPSTREAM_PATH`, `DNST_SCANNER_DNSTT_PATH`
46+
- Or download from GitHub releases if not provided
47+
48+
### Output
49+
50+
Extends basic scan output with E2E results:
51+
- `e2e_slipstream`: true/false/skipped
52+
- `e2e_dnstt`: true/false/skipped
53+
- `e2e_latency_ms`: tunnel round-trip time

0 commit comments

Comments
 (0)