i've been working on a website to let you do DNS experiments and as always I'm surprised by how many design decisions there are to make for such a small-scale project
even leaving the UX design aside (which is so hard!!), I have absolutely 0 motivation to do maintenance work on my projects, so I need to be careful now to make sure I don't have to do maintenance later
one decision was whether to make the DNS server distributed to improve latency. I decided to run just 1 server with the HTTP server and DNS server sharing a process because managing distributed systems really sucks and it's an educational project, it's ok if it's a bit slow
I need to live stream DNS queries to clients as they come in. I spent a bunch of time thinking about how to do this (firebase? redis?) and eventually decided -- they're in the same process! I can just send the queries directly using a Go channel. No need to add a component.
originally I was letting anyone set any arbitrary dns record on any subdomain and I got stressed about the security implications of that, so I had to spend a few hours figuring out more secure way to do that which doesn't add friction for users
• • •
Missing some Tweet in this thread? You can try to
force a refresh
something I don't understand about BGP: can I (as a Regular Person with no special privileges) actually look up past BGP route announcements to see where facebook withdrew its BGP routes? how/where do I do it?
I now have links to a lot of tools but I still don't really understand how to use/interpret them, I feel like I need a screencast of someone explaining how to use one of these tools to look at this facebook issue :)
like this BGPlay interface is not that intuitive. maybe 129.134.30.12/24 is the wrong subnet and I should be looking at something else?
dns question I'm having trouble googling the answer to: why do MX records have a priority (like '10 aspmx.l.google.com.')? like A records and NS records also have multiple servers, but they don't have a priority
I'm not going to do this but sometimes I think about writing a book called "networking for millennials" which explains which networking things still make sense today and which ones made sense historically but are kind of outdated given how we design infrastructure now
computer language poll: is mail.google.com a subdomain of google.com? (not a trick question, no wrong answers, please don't argue about it in the replies, I'm just curious what different people think the word "subdomain" means :) )
the ambiguity here is that mail.google.com doesn't have its own NS/SOA record. An example of a subdomain that *does* have those things is alpha.canada.ca -- it has a different authoritative DNS server than canada.ca does.
anyway I think arguing about definitions of words is super boring but I always think it's interesting when a really common technical term has multiple meanings (so far 6% of people definitely voted no to that poll! :))
here's a fun open source story! i wrote a ruby profiler called rbspy 3 years ago. when I started the project, segiddins filed an issue asking for C functions to be profiled correctly (github.com/rbspy/rbspy/is…). I spent some trying to fix it but never figured out how to do it (1/2)
and then just last week, acj wrote a beautiful pull request that fixes the issue github.com/rbspy/rbspy/pu…! It uses a method of resolving the C function names that I didn't know was possible! It was so fun to get to see how it works and we merged it yesterday. (2/2)
maintaining an open source project is boring sometimes (like when you're redoing your CI again!) but I really love learning from other people's contributions to the project
does anyone know a clear explanation of **exactly* what happens when you send a packet to 8.8.8.8 from a docker container? (i *think* the packet goes out through the veth pair, gets SNAT-ed, and comes back through the docker0 bridge but I'm very confused about it)
found this great blog post thanks to @vaijab that shows how to trace a packet's journey with `perf trace` and I'm so happy right now blog.yadutaf.fr/2017/07/28/tra…
also I think this post by @iximiuz is the clearest explanation of container networking I've ever read (though it still doesn't feel simple to me :) ) iximiuz.com/en/posts/conta…