traceroute uses UDP by default, not ICMP

At least on Linux. Don’t believe me? Run tcpdump -nn -i <interface> 'host example.com' in one shell and traceroute example.com in another. tcpdump will pick up all 3 of {ICMP, UDP, TCP}, and on my machine the pattern is clear: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20:58:47.187086 IP 1.2.3.4.41369 > 93.184.216.34.33434: UDP, length 32 20:58:47.187160 IP 1.2.3.4.39830 > 93.184.216.34.33435: UDP, length 32 20:58:47.187190 IP 1.2.3.4.43467 > 93.184.216.34.33436: UDP, length 32 20:58:47.187221 IP 1.2.3.4.50462 > 93.184.216.34.33437: UDP, length 32 20:58:47.187254 IP 1.2.3.4.35842 > 93.184.216.34.33438: UDP, length 32 20:58:47.187285 IP 1.2.3.4.44146 > 93.184.216.34.33439: UDP, length 32 20:58:47.187318 IP 1.2.3.4.50311 > 93.184.216.34.33440: UDP, length 32 20:58:47.187346 IP 1.2.3.4.34388 > 93.184.216.34.33441: UDP, length 32 20:58:47.187375 IP 1.2.3.4.43703 > 93.184.216.34.33442: UDP, length 32 20:58:47.187405 IP 1.2.3.4.35304 > 93.184.216.34.33443: UDP, length 32 20:58:47.187448 IP 1.2.3.4.50157 > 93.184.216.34.33444: UDP, length 32 20:58:47.187474 IP 1.2.3.4.58392 > 93.184.216.34.33445: UDP, length 32 20:58:47.187503 IP 1.2.3.4.45918 > 93.184.216.34.33446: UDP, length 32 20:58:47.187530 IP 1.2.3.4.38313 > 93.184.216.34.33447: UDP, length 32 20:58:47.187556 IP 1.2.3.4.41520 > 93.184.216.34.33448: UDP, length 32 20:58:47.187582 IP 1.2.3.4.55240 > 93.184.216.34.33449: UDP, length 32 20:58:47.225929 IP 1.2.3.4.60724 > 93.184.216.34.33450: UDP, length 32 20:58:47.225970 IP 1.2.3.4.43648 > 93.184.216.34.33451: UDP, length 32 20:58:47.226016 IP 1.2.3.4.52561 > 93.184.216.34.33452: UDP, length 32 I have no idea why. Performance? Getting around sysadmins who unwitting block all ICMP packets? It surprised me, at least. ...

November 29, 2023

One problem with user-scoped `systemd` timers

I’ve discovered one big downside of [putting systemd times into ~/.config/systemd/user/][1]: They stop running when you log out. Two ways around this problem: Bite the bullet, and install the timers into /etc/systemd/. This means giving up chezmoi version control, making the overall system more snowflake-y. I’m not crazy about it. Remote in with tmux, instead of ever logging out, just use C-b d to detach from the session. I’m going with #2. The lead developer of ktty is known not to like tmux, so there’s probably a way to detach long-running SSH sections inside of kitty itself – but I haven’t found it yet. Have you? ...

November 26, 2023

A good place to symlink local builds

I’ve been a big fan of both spaced repetition in general and the Anki spaced repetition system in particular for a long time now. So today, after a fresh new install and blinging out of Ubuntu 23.10, I decided to take the next step, as I often do with programs I use a lot, and try to build and compile it myself. This turned out to be pretty easy! The docs warn that ./run is slower than the non-optimized build, but I don’t notice much of a difference on my machine. It did however leave me with the question: Where should I put the anki symlink to ./run? ...

November 18, 2023