<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: apenwarr</title><link>https://news.ycombinator.com/user?id=apenwarr</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Thu, 24 Sep 2026 18:43:45 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=apenwarr" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by apenwarr in "Making Tailscale Faster"]]></title><description><![CDATA[
<p>(Tailscale cofounder) Yes, that’s most of it. Most packet-level optimizations are necessarily platform specific and this post was mostly about the linux dataplane.<p>That said, the architectural multiqueue improvements and memory optimizations are useful starting points to build on for every platform.</p>
]]></description><pubDate>Thu, 24 Sep 2026 02:11:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=49825354</link><dc:creator>apenwarr</dc:creator><comments>https://news.ycombinator.com/item?id=49825354</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49825354</guid></item><item><title><![CDATA[New comment by apenwarr in "Making Tailscale Faster"]]></title><description><![CDATA[
<p>(Tailscale cofounder) Nothing to announce yet, but yes, we absolutely do sponsor wireguard, with money and with code.</p>
]]></description><pubDate>Thu, 24 Sep 2026 02:07:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=49825322</link><dc:creator>apenwarr</dc:creator><comments>https://news.ycombinator.com/item?id=49825322</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49825322</guid></item><item><title><![CDATA[New comment by apenwarr in "Making Tailscale Faster"]]></title><description><![CDATA[
<p>(Tailscale cofounder) Many years ago I made a VPN for experimental purposes that kept IPsec’s data plane but abandoned IKE. It’s actually a pretty good arrangement and might be applicable here.<p>My implementation relied on the extremely finicky Linux kernel IPsec and would never have worked in userspace macOS or windows. But yes, a Tailscale control plane with a per-node switchable data plane, one of which is IPsec with PQC, is a real option that would work.<p>By locking down the control plane it becomes incompatible with classic IPsec, but also avoids most of the security gotchas that plagued IPsec.</p>
]]></description><pubDate>Thu, 24 Sep 2026 01:27:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=49825042</link><dc:creator>apenwarr</dc:creator><comments>https://news.ycombinator.com/item?id=49825042</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49825042</guid></item><item><title><![CDATA[New comment by apenwarr in "Making Tailscale Faster"]]></title><description><![CDATA[
<p>(Tailscale cofounder) I’m a little more optimistic; wireguard was always going to need a v2 eventually, that’s just the nature of cryptography. It’ll always be simpler than IPsec as long as it avoids live negotiation (you need to specify your suite up front for each node you talk to; v1 and v2 are the only suites) and continues to go over UDP instead of IPsec’s “it’s a different transport protocol!” madness.<p>Things like Google’s PSP already achieve that while still being hardware acceleratable: <a href="https://github.com/google/psp" rel="nofollow">https://github.com/google/psp</a><p>Post-quantum negotiation will kinda suck but you don’t have to sacrifice everything.</p>
]]></description><pubDate>Thu, 24 Sep 2026 01:07:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=49824912</link><dc:creator>apenwarr</dc:creator><comments>https://news.ycombinator.com/item?id=49824912</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49824912</guid></item><item><title><![CDATA[New comment by apenwarr in "Making Tailscale Faster"]]></title><description><![CDATA[
<p>(Tailscale cofounder) That’s a good callout on DoH support, thanks.<p>That said, note that if you run your own DNS server on your tailnet, the regular UDP DNS is automatically private because it’s carried over Tailscale. That’s the most common setup for non-SaaS DNS servers. DoH doesn’t really add anything in that arrangement. (And it’s more fiddly because you need to get and refresh a TLS cert.)</p>
]]></description><pubDate>Thu, 24 Sep 2026 00:20:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=49824541</link><dc:creator>apenwarr</dc:creator><comments>https://news.ycombinator.com/item?id=49824541</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49824541</guid></item><item><title><![CDATA[New comment by apenwarr in "Making Tailscale Faster"]]></title><description><![CDATA[
<p>(Tailscale cofounder) I see a few comments here that using kernel wireguard would make it faster; it’s not really that simple. In fact, for a while (and we wrote a blog post about it), our optimizations made wireguard-go faster than kernel wireguard because it was better optimized. They adopted some of those improvements and now we’re on to the next order of magnitude together.<p>For really high bandwidth cases, things like DPDK are the long term best choice and are primarily userspace, for good reasons. Kernel mode is not the pure benefit it once was (if it ever was).<p>Separately, wireguard itself has a problem that the crypto suite it uses is not supported by hardware accelerators. So if we want to get into the hundreds of gigabits range, we will possibly need to switch packet formats entirely. (But, wireguard also needs to update to support post-quantum so maybe they’ll fix both problems at the same time and we can join in.)</p>
]]></description><pubDate>Thu, 24 Sep 2026 00:04:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=49824432</link><dc:creator>apenwarr</dc:creator><comments>https://news.ycombinator.com/item?id=49824432</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49824432</guid></item><item><title><![CDATA[New comment by apenwarr in "Tailscale didn't stop the Hugging Face intrusion"]]></title><description><![CDATA[
<p>Is your theory that "any competent security review" will find every security hole in a product? Because that sure would be great if it were true. Unfortunately it does not match my experience.</p>
]]></description><pubDate>Fri, 31 Jul 2026 21:05:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=49128512</link><dc:creator>apenwarr</dc:creator><comments>https://news.ycombinator.com/item?id=49128512</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49128512</guid></item><item><title><![CDATA[New comment by apenwarr in "Tailscale didn't stop the Hugging Face intrusion"]]></title><description><![CDATA[
<p>(Tailscale CEO) I don't know what to tell you. The problems that are found internally, or via security reviews and pentests we pay for, are ones that we fix before releasing. They don't need bulletins.<p>Bugs that are found by other people are found, by definition, after release. They are therefore more likely to need a bulletin.</p>
]]></description><pubDate>Fri, 31 Jul 2026 20:57:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=49128427</link><dc:creator>apenwarr</dc:creator><comments>https://news.ycombinator.com/item?id=49128427</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49128427</guid></item><item><title><![CDATA[New comment by apenwarr in "Tailscale didn't stop the Hugging Face intrusion"]]></title><description><![CDATA[
<p>(Tailscale CEO) You have posted here multiple times that "none of the code has had a security audit" and that the SOC2 audit "is not the same thing."<p>It's true that those two audits aren't the same thing. However, the SOC2 auditor confirms, in the published report, that Tailscale has regular and ongoing security audits including penetration tests and many kinds of code reviews.<p>The security audit report, which you perhaps imagine to be a long list of vulnerabilities... doesn't look like that. It says we <i>don't</i> have a long list of vulnerabilities. The security bulletins are all here: <a href="https://tailscale.com/security-bulletins" rel="nofollow">https://tailscale.com/security-bulletins</a></p>
]]></description><pubDate>Fri, 31 Jul 2026 20:46:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=49128339</link><dc:creator>apenwarr</dc:creator><comments>https://news.ycombinator.com/item?id=49128339</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49128339</guid></item><item><title><![CDATA[New comment by apenwarr in "Every layer of review makes you 10x slower"]]></title><description><![CDATA[
<p>I’m glad you liked it!</p>
]]></description><pubDate>Wed, 18 Mar 2026 17:12:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=47428411</link><dc:creator>apenwarr</dc:creator><comments>https://news.ycombinator.com/item?id=47428411</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47428411</guid></item><item><title><![CDATA[New comment by apenwarr in "Every layer of review makes you 10x slower"]]></title><description><![CDATA[
<p>Japanese manufacturing addressed this too! There’s a whole branch of Deming’s work around supply chains and how it’s often worth working with “more expensive” suppliers when their quality is consistently high, because compensating for low quality inputs to your own work is far more expensive.</p>
]]></description><pubDate>Wed, 18 Mar 2026 17:10:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=47428381</link><dc:creator>apenwarr</dc:creator><comments>https://news.ycombinator.com/item?id=47428381</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47428381</guid></item><item><title><![CDATA[New comment by apenwarr in "Tailscale Peer Relays is now generally available"]]></title><description><![CDATA[
<p>(Tailscale founder here) Two main differences: first, every DERP server used by your tailnet must be accessible by every node on your tailnet at all times, otherwise you get hard-to-debug netsplits. That's a very high bar to maintain so we've historically recommended you don't try. In contrast, peer relays are "if a given pair of nodes can connect through any of the relays, go for it" so deploying one is always a performance and reliability improvement.<p>Secondly, peer relays support UDP while DERP is TCP-only. That would be fixable by simply improving the DERP protocol, but as we explored that option, we decided to implement the Peer Relay layer instead as a more complete solution.</p>
]]></description><pubDate>Wed, 18 Feb 2026 19:09:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=47064974</link><dc:creator>apenwarr</dc:creator><comments>https://news.ycombinator.com/item?id=47064974</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47064974</guid></item><item><title><![CDATA[New comment by apenwarr in "A first look at Aperture by Tailscale (private alpha)"]]></title><description><![CDATA[
<p>[Tailscale CEO here] I see a lot of comments asking why Tailscale would branch away from our "core product" and build this thing that seems unrelated at first. One answer is that just about every single Tailscale customer (or homelab user!) is dipping their toes into AI right now, and they often come to us and ask how to integrate their stuff into Tailscale. Aperture is our answer to that.<p>A separate goal I have personally: demonstrate that anyone can build really neat stuff directly on top of the "Tailscale platform." One of my rules for the Aperture team was, you're not allowed to change core Tailscale, you have to build entirely on top as if you were some partner company. So this is a demo of how <i>anybody</i> can make pretty slick, easy-to-use, and yet highly secure stuff by building on Tailscale (the open source packages, or the commercial product, or both).</p>
]]></description><pubDate>Wed, 28 Jan 2026 17:29:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=46798591</link><dc:creator>apenwarr</dc:creator><comments>https://news.ycombinator.com/item?id=46798591</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46798591</guid></item><item><title><![CDATA[New comment by apenwarr in "Tailscale Services"]]></title><description><![CDATA[
<p>(I'm a Tailscale employee) The recent versions of the Tailscale k8s operator actually used a pre-release of the Services feature to do exactly that. So, not much difference. The official Services release is making that functionality available for more use cases (and generally better documented and user friendly).</p>
]]></description><pubDate>Thu, 30 Oct 2025 14:48:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=45760639</link><dc:creator>apenwarr</dc:creator><comments>https://news.ycombinator.com/item?id=45760639</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45760639</guid></item><item><title><![CDATA[New comment by apenwarr in "Frequent reauth doesn't make you more secure"]]></title><description><![CDATA[
<p>You’re right except in the very specific case of the App Store purchase or download process. You only get one chance at FaceID and then it demands a password. But, if you cancel and do it again, you get another chance at FaceID. It’s mystifying why they’d make that UX choice.</p>
]]></description><pubDate>Fri, 13 Jun 2025 00:18:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=44264575</link><dc:creator>apenwarr</dc:creator><comments>https://news.ycombinator.com/item?id=44264575</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44264575</guid></item><item><title><![CDATA[New comment by apenwarr in "Choose your own IP"]]></title><description><![CDATA[
<p>(Tailscale cofounder here) Tailscale already gives every node on every tailnet a globally unique internal IPv6 address, that is reachable even if you don't have IPv6 on the "outside" network. If your apps and OSes are all willing to use IPv6, you haven't had a problem since the early days of Tailscale; they've been solved for years.<p>Alas, the "apps and OSes are all willing to use IPv6" problem is a persistent one, so we have to make IPv4 work too.</p>
]]></description><pubDate>Sat, 09 Dec 2023 23:17:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=38587207</link><dc:creator>apenwarr</dc:creator><comments>https://news.ycombinator.com/item?id=38587207</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38587207</guid></item><item><title><![CDATA[New comment by apenwarr in "Systems design 2: What we hope we know"]]></title><description><![CDATA[
<p>It’s possible to build a cache without any insight, but to make a cache that works well in a given domain requires knowledge from outside the world of caching itself. The same is true of summarization and compression.</p>
]]></description><pubDate>Sun, 16 Apr 2023 03:04:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=35586888</link><dc:creator>apenwarr</dc:creator><comments>https://news.ycombinator.com/item?id=35586888</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=35586888</guid></item><item><title><![CDATA[New comment by apenwarr in "Using Tailscale without using Tailscale"]]></title><description><![CDATA[
<p>Tailscale now supports custom OIDC providers. But if you already have the ability to host one, you won’t benefit from what’s in the above article (which is about hosting stuff at home even without a public IP address). <a href="https://tailscale.com/blog/custom-oidc/" rel="nofollow">https://tailscale.com/blog/custom-oidc/</a></p>
]]></description><pubDate>Sat, 01 Apr 2023 22:23:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=35404737</link><dc:creator>apenwarr</dc:creator><comments>https://news.ycombinator.com/item?id=35404737</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=35404737</guid></item><item><title><![CDATA[New comment by apenwarr in "Tailnet Lock"]]></title><description><![CDATA[
<p>I recommend against using Funnel for this use case (because it exposes your server to everyone in the world, not just your trusted users). Tailscale node sharing is free and secure for private networks of friends, and there are lots of people using it with Minecraft: <a href="https://tailscale.com/kb/1084/sharing/" rel="nofollow">https://tailscale.com/kb/1084/sharing/</a><p>To answer the question in another thread, node sharing also works with UDP. (Funnel is TCP-only due to the vagaries of IP addresses and TLS certificates when facing the outside world, sigh.)</p>
]]></description><pubDate>Thu, 15 Dec 2022 17:25:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=34002781</link><dc:creator>apenwarr</dc:creator><comments>https://news.ycombinator.com/item?id=34002781</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=34002781</guid></item><item><title><![CDATA[New comment by apenwarr in "Tailscale with Avery Pennarun"]]></title><description><![CDATA[
<p>(Interviewee here) WireGuard itself barely touches DNS, and tailscale as far as I know doesn’t have any code that would change how your external DNS resolution works. What you’re seeing might be a misdiagnosis. If you email tailscale support we’ll be happy to help figure out what happened and if it’s a bug.</p>
]]></description><pubDate>Mon, 21 Nov 2022 02:06:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=33687815</link><dc:creator>apenwarr</dc:creator><comments>https://news.ycombinator.com/item?id=33687815</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=33687815</guid></item></channel></rss>