wgtunnel: client MTU 1420 → 1280 (S3.1, resolve §4.3 open decision)
The 2026-07-04 CGNAT smoke test found MTU 1420 silently black-holes bulk TCP on sub-~1480 paths (mobile ~1400, DS-Lite ~1452): handshake+ping stay healthy, PBS TLS page (and at S4 the backup itself) drops. Set a fleet-wide, permanent, family-agnostic client MTU of 1280 (RFC 8200 IPv6-minimum floor; outer 1340 v4 / 1360 v6 fits every realistic path). Client-only by construction — interface MTU caps box→PBS, advertised MSS caps PBS→box; the endpoint's wg0 is untouched (zero live-endpoint risk). New const clientMTU=1280 as the single home; golden pins exact "MTU = 1280" (red-proofed against a 1420 flip). Stale report.go comment updated. No wire/JSON change. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PSK5g6qYLknKj8u3QAFEr6
This commit is contained in:
@@ -130,6 +130,9 @@ func localPub(t *testing.T, m *Manager) string {
|
||||
return pub
|
||||
}
|
||||
|
||||
// TestRenderConf_Golden pins the EXACT conf bytes, including "MTU = 1280" (the IPv6-minimum
|
||||
// floor, doc 06 §4.3). Red-proofed 2026-07-04: flipping clientMTU back to 1420 fails this test
|
||||
// on the MTU line mismatch — the golden is non-vacuous, not a "contains MTU" check.
|
||||
func TestRenderConf_Golden(t *testing.T) {
|
||||
block := testBlock("ignored")
|
||||
conf, err := renderConf(block, vectorPrivB64)
|
||||
@@ -140,7 +143,7 @@ func TestRenderConf_Golden(t *testing.T) {
|
||||
[Interface]
|
||||
PrivateKey = ` + vectorPrivB64 + `
|
||||
Address = 10.77.0.2/32
|
||||
MTU = 1420
|
||||
MTU = 1280
|
||||
|
||||
[Peer]
|
||||
PublicKey = CQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQk=
|
||||
|
||||
Reference in New Issue
Block a user