Global ICMPv6 Type 2 (Packet Too Big) Filter Atlas

Per-hop PTB acceptance walk aggregated across countries. Generated 2026-05-30T13:25:53Z

3
countries
200
AS-paths walked
877
hop observations
62
transit ASes seen
4
flagged filterers

Top filterers

Transit ASes ranked by filter_score × log(paths_through), so the list elevates ASes with BOTH substantial path coverage AND a high fraction of hops where our forged PTB went unhonoured. Filter score is not_honored / (honored + not_honored) across all hops we tested in that AS's ranges. Minimum 3 paths and 5% filter score to appear here.

ASHolder paths honored not_honored filter % countries (paths)
AS5603SIOL-NET - Telekom Slovenije, d.d., SI5519999%ita(37), slo(12), srb(6)
AS6939HURRICANE - Hurricane Electric LLC, US1011150%ita(85), srb(11), slo(5)
AS20473AS-VULTR - The Constant Company, LLC, US303100%ita(3)
AS6762SEABONE-NET - TELECOM ITALIA SPARKLE S.p.A., IT58746%ita(5)
Methodology & caveats. For every AS where Type 2 verdicts disagreed across our vantages, we walked the local-vantage forward path hop-by-hop, sending a 1500-byte ICMPv6 Echo to each hop, then a forged ICMPv6 PTB (MTU=1280) sourced from our vantage, then another 1500-byte Echo. If the second Echo Reply arrived fragmented or with a smaller payload, the hop honoured the PTB. Otherwise it didn't.

This tests host-mode PTB acceptance (PTBs aimed at the hop itself). A router that honours PTBs to itself can still be filtering PTBs transiting through it -- so a high filter score is strong evidence of an issue, but a low filter score isn't proof of full PTB transparency. Many hops drop ICMPv6 Echo to themselves or rate-limit it via CoPP; those are recorded as no_response and excluded from the score denominator. Anycast destinations are skipped explicitly.

Local-vantage only at present (orchestrator host). Per-vantage walks via SSH from the remote vantage points are a planned follow-up; that will sharpen the picture by exposing transits that filter asymmetrically.

Source data: data/global/ptb_atlas.json · rolling history at data/global/ptb_atlas_history/ (last 30 days). Built daily by scripts/28_global_ptb_atlas.py.