frontpage.
newsnewestaskshowjobs

Open Source @Github

fp.

Open in hackernews

The iPad was on Tailscale: a WebRTC debugging story

https://p2claw.com/blog/2026-06-09-the-ipad-was-on-tailscale/
19•syllogistic•1h ago

Comments

syllogistic•1h ago
Author here.

This started as a blank page on one device and ended two weeks later at the intersection of two bugs: webrtc-rs hardcodes INITIAL_MTU=1228 [never updated, no path probing, retransmits at the same size forever], and Tailscale's packet filter classifies any IPv6 packet with a Fragment header as unknown protocol, so the default deny fires. On every platform, counted under reason="acl". Neither is unreasonable alone. Together: silent wedge, every health check green, because everything that tests the path is small and only the payload fragments. Two-command repro on any tailnet: ping -s 100 works, ping -s 1400 over the Tailscale IPv6 address is 100% loss. Full WebRTC repro and captures: https://github.com/phact/mtu-webrtc-bug. We've reported upstream to both projects https://github.com/tailscale/tailscale/issues/20083 and https://github.com/webrtc-rs/webrtc/issues/806. Happy to answer questions. Especially interested if anyone knows the history behind the IPv6 fragment decision in Tailscale's filter.

inigyou•1h ago
I don't understand how a product as popular as Tailscale can get this far while dropping certain ordinary types of packets.

It is impossible to parse the UDP or TCP port number out of a fragment. This is surely the reason the ACL module entirely rejects them. TCP will adjust it's segment size based on PMTUD so as to not require fragmentation. This is why it hasn't been noticed so far. But fragmented UDP packets are a corner case of normal behavior and it boggles the mind that someone could just decide to completely drop them.

UDP fragment filtering could be implemented by a global fragments on/off setting (works for "allow everything" = fragments on, cautious = fragments off) or by blocking the first fragment which includes the port number (and blocking it if the port number is split across fragments which I think is technically allowed but completely abnormal).

syllogistic•58m ago
Author here,

Agreed. The port-number point is the most plausible rationale I've heard, more convincing than the RFC line in their source comment. The historical fix for "can't classify fragments" was virtual reassembly or flow tracking [conntrack on linux, scrub in pf], so dropping them outright punts past known prior approaches. Even your lighter idea would have saved us: a first-fragment match would have let our pair through.

We've reported upstream to both projects, tailscale/tailscale#20083 and webrtc-rs/webrtc#806, and webrtc-rs already invited a PR.

inigyou•47m ago
You are shadowbanned.
katericksonnow•1h ago
MTU black holes are the worst because every health check is small enough to survive.
hylaride•57m ago
I'm having flashbacks to 1990s-era PPPoE, where the slightly smaller MTU had issues with some server OS's that had TCP/IP stacks that didn't support or ignored MTUs smaller than 1500 bytes and bulk data transfers would get messed up. I don't remember which ones, but it was some commercial UNIX.
Sean-Der•51m ago
Amazing debugging, I loved reading that. HN doesn't get enough good posts like this anymore :)

If https://github.com/pion/sctp/issues/12 had happened (not just in Pion but across all implementations) this could have been fixed years ago. The hardcoding we all settle for is tragic.

syllogistic•36m ago
Author here, thank you, that means a lot coming from you. Pion was the prior art I pointed the webrtc-rs maintainers at. And pion/sctp#12 is super relevant. A known, proposed fix years before we hit it.

"The hardcoding we all settle for" might be the epigraph for the whole incident. webrtc-rs invited a PR for the configurable-MTU + better default half [webrtc-rs/webrtc#806] to unblock folks today. Whether PMTUD gets implemented will be interesting to see.

Building an HTML-first site doubled our users overnight

https://mohkohn.co.uk/writing/html-first/
618•edent•4h ago•272 comments

AMA: I'm Eric Ries (The Lean Startup) & Author of New Bestseller Incorruptible

176•eries•2h ago•93 comments

PgDog is funded and coming to a database near you

https://pgdog.dev/blog/our-funding-announcement
167•levkk•3h ago•91 comments

Apache Burr: Build reliable AI agents and applications

https://burr.apache.org/
66•anhldbk•2h ago•32 comments

GitHub Authentication issues related to API requests

https://www.githubstatus.com/incidents/fcj3088jg1wx
53•Multicomp•1h ago•12 comments

Mercedes‑Benz starts large‑scale production of electric axial flux motor

https://media.mercedes-benz.com/en/article/bebac2af-acdc-465a-9538-adb0bf3d8ccf
386•raffael_de•9h ago•233 comments

All 9,300 Japanese train station, animated by the year it opened (1872–2026)

https://jivx.com/eki
117•momentmaker•4h ago•39 comments

macOS Container Machines

https://github.com/apple/container/blob/main/docs/container-machine.md
1075•timsneath•16h ago•376 comments

Buy a train, bridge or tracks from the Swiss Railway

https://sbbresale.ch/
120•kisamoto•2d ago•59 comments

Postgres by Example

https://github.com/boringcollege/postgres-by-example
12•thenewedrock•59m ago•1 comments

Who Runs Your Rust Future? Hands-On Intro to Async Rust

https://aibodh.com/posts/async-rust-chapter-1-hands-on-intro-to-async-rust/
64•febin•2d ago•9 comments

DiffusionGemma: 4x Faster Text Generation

https://blog.google/innovation-and-ai/technology/developers-tools/diffusion-gemma-faster-text-gen...
50•meetpateltech•54m ago•6 comments

'They take you out of life, out of time': a journey into Spain's cave paintings

https://www.theguardian.com/science/2026/jun/02/journey-into-spain-palaeolithic-cave-paintings-al...
31•NaOH•2d ago•10 comments

The Last Evolution, by John W Campbell Jr. (1932)

https://www.gutenberg.org/files/27462/27462-h/27462-h.htm
6•cf100clunk•1h ago•0 comments

Smudging the game disc to make speedrunning 'SpongeBob' faster

https://www.inverse.com/input/gaming/the-dirty-secret-that-makes-speedrunning-on-spongebob-a-lot-...
22•pncnmnp•14h ago•10 comments

A Server Called Mercury

https://kennethreitz.org/essays/2026-06-05-a_server_called_mercury
10•zdw•3d ago•3 comments

Reviving Papers with Code

https://paperswithcode.co/
155•nielz_r•2d ago•31 comments

AWS Bedrock to require sharing data with Anthropic for Mythos and future models

333•TomAnthony•8h ago•198 comments

The iPad was on Tailscale: a WebRTC debugging story

https://p2claw.com/blog/2026-06-09-the-ipad-was-on-tailscale/
20•syllogistic•1h ago•8 comments

Ask HN: Are most corporate SWE jobs performative?

86•hnthrow10282910•3h ago•102 comments

Hacking for Defense Stanford 2026 – Lessons Learned Presentations

https://steveblank.com/2026/06/08/g-for-defense-stanford-2026-lessons-learned-presentations/
63•sblank•1d ago•36 comments

Claude Fable 5

https://www.anthropic.com/news/claude-fable-5-mythos-5
2500•Philpax•1d ago•1997 comments

Upcoming breaking changes for npm v12

https://github.blog/changelog/2026-06-09-upcoming-breaking-changes-for-npm-v12/
453•plasma•20h ago•186 comments

US Consumer Price Index up 4.2%

https://www.bls.gov/news.release/cpi.nr0.htm
143•ortusdux•1h ago•124 comments

I Hate (Most) Keyboard 'Fn' Keys

https://danq.me/2026/06/09/fn-keys/
148•speckx•3h ago•159 comments

Magnetoelectric antennas could transform how underwater robots talk

https://newatlas.com/engineering/magnetoelectric-antennas-submarine-robots-communications/
63•breve•3d ago•26 comments

Chrome is looking to permanently drop MV2 extension

https://www.neowin.net/news/google-chrome-is-killing-all-ublock-origin-bypasses-microsoft-edge-op...
341•d3Xt3r•11h ago•312 comments

German ruling declares Google liable for false answers in AI Overviews

https://the-decoder.com/landmark-german-ruling-declares-googles-ai-overviews-are-googles-own-word...
868•ahlCVA•15h ago•478 comments

RIP software hackathons. Long live the hardware hackathon

https://blog.oscars.dev/posts/rip-software-hackathons-long-live-the-hardware-hackathon/
252•ozcap•18h ago•127 comments

Notes on DeepSeek

https://twitter.com/NikoMcCarty/status/2064686557400100884
78•vinhnx•3h ago•57 comments