Commit 8aa746d
committed
fix(origin-gate): stop over-blocking the two reachable /32s in 192.0.0.0/24
192.0.0.0/24 carries "Globally Reachable: False" as a block, but the IANA IPv4
Special-Purpose registry re-delegates two /32s inside it that are marked True:
192.0.0.9/32 Port Control Protocol Anycast (RFC 7723)
192.0.0.10/32 TURN Anycast (RFC 8155)
Refusing the /24 wholesale over-blocks both.
The uncomfortable part: this file's IPv6 side already carves out the very same
two services (2001:1::1 PCP and 2001:1::2 TURN) inside 2001::/23, with a comment
warning that the registry -- not the intuition that a prefix "looks internal" --
is the authority. The same reasoning was applied on one side and skipped on the
other.
Why it was missed: the bidirectional difference check that produced the IPv6
carve-outs was run over the IPv6 registry ONLY. The claim it was used to support
("registry-exact in both directions") was stated for the gate as a whole. A
completeness claim was therefore made from a check covering half its subject --
the same class the surrounding commits were written to close.
Found by an independent audit, not by me.
Now verified over BOTH registries, both directions, all four difference sets
empty:
IPv4 A-B (registry-False, not refused) -> empty
IPv4 B-A (registry-True, refused) -> empty
IPv6 A-B -> empty
IPv6 B-A -> empty
Test pins the carve-out at exactly two addresses wide: 192.0.0.9 and .10 stay
accepted, 192.0.0.8/.11/.1 stay refused. Discrimination proved -- removing the
carve-out turns the suite red (194/1); restored, 195/195.1 parent 4ec63df commit 8aa746d
2 files changed
Lines changed: 41 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
388 | 388 | | |
389 | 389 | | |
390 | 390 | | |
391 | | - | |
| 391 | + | |
| 392 | + | |
| 393 | + | |
| 394 | + | |
| 395 | + | |
| 396 | + | |
| 397 | + | |
| 398 | + | |
| 399 | + | |
| 400 | + | |
| 401 | + | |
| 402 | + | |
| 403 | + | |
| 404 | + | |
392 | 405 | | |
393 | 406 | | |
394 | 407 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
372 | 372 | | |
373 | 373 | | |
374 | 374 | | |
| 375 | + | |
| 376 | + | |
| 377 | + | |
| 378 | + | |
| 379 | + | |
| 380 | + | |
| 381 | + | |
| 382 | + | |
| 383 | + | |
| 384 | + | |
| 385 | + | |
| 386 | + | |
| 387 | + | |
| 388 | + | |
| 389 | + | |
| 390 | + | |
| 391 | + | |
| 392 | + | |
| 393 | + | |
| 394 | + | |
| 395 | + | |
| 396 | + | |
| 397 | + | |
| 398 | + | |
| 399 | + | |
| 400 | + | |
| 401 | + | |
0 commit comments