Over 10 years ago, I started working on a “DNS tools” site. Recently in my free time, I’ve started working on a second version of it, and I’d like to get some feedback on the new version so far, and whether anything is broken.
I’ve totally rewritten most of the site, and the main new feature is that you can ping and traceroute from several different locations in the world. There’s a few other sites that have features like this, but a lot of them have a pretty poor UI (eg. they just show raw traceroute output) so I’m trying to make a better one.
Yeah! It was a good use case for a bunch of VPSes I already had that were mostly idling, but I also got a few of @mikho’s 256 MB NAT VPSes for locations where I didn’t already have servers (eg. Italy, France, Norway, Germany, Singapore).
I still need to set up a few more VPSes… Got a few NAT VPSes with Inception Hosting that I need to configure. I’m also going to add New York and Luxembourg (both with BuyVM), I just need to find time to reformat those VPSes as 64-bit. I originally set them up as 32-bit given the low RAM (512 MB) but the DNSTools worker app is written in C# / .NET Core which only has 64-bit builds available now <_<
One of my favourite programming languages, plus it has some really nice features, and I wanted to learn more about some related technologies that I hadn’t used much in the past. For example the ping and traceroute pages push content to the browser using web sockets - That was trivial to do using SignalR.
The old site was PHP, which is okay, but you generally can’t get web sockets working well with PHP for example.
I’ve done some things with C# / .NET Core for my Master’s. Had to implement a GUI-based code repository (i.e. a git clone) using WCF (Windows Communication Foundation), which was interesting. However, with anything that is Windows-based, I just can’t shake the stigma that it’s bloated and could be done more efficiently with a different stack (go, python, etc.).
I know Microsoft has a bad rep in some cases, but .NET Core is actually really good. One of the best frameworks at the moment IMO. Uses less RAM than a comparable Node.js app, and Kestrel (the web server ASP .NET Core uses) is one of the fastest available, faster than both Nginx and Node.js.
Oh wow!! Thanks! I think I’m missing Romania and Bulgaria at the moment. I need OpenVZ7 though (running Debian 10 everywhere), whereas I think some locations I’m missing are still OpenVZ6. I’ve got a few US VPSes so don’t need any of those, but Canada might be good too once you have that available. Thanks so much
Yeah, Microsoft officially support running .NET on Linux now! They have a Debian repo too: Install .NET on Debian - .NET | Microsoft Learn. Their entire stack is open-source and they accept pull requests (which is nice because I can fix bugs in the framework myself ). It’s so different from the old Microsoft that hated open-source.
So as an update here, I now have 13 locations! Set up a few more NAT VPSes from Gullo’s Hosting @Cam and Inception Hosting @AnthonySmith in addition to the MrVM ones I’ve got so far (still missing a few but I’ll get to that eventually, when @mikho is ready). Scripted most of the setup using Ansible so it’s pretty easy to spin up new locations now. Fixed a bunch of bugs too.
Next plans are to rewrite the remaining code from the old site (mainly the DNS lookup functionality) so you can select the location to perform the DNS lookup from, and so I can delete the legacy codebase.
I rewrote the code for the DNS lookups so you can now select the location to perform the lookup from (which is useful when testing GeoIP). Added a few more locations - Now there’s 19 available to choose from.
Once everything is at feature parity with the old site (it’s pretty close now) and a few other small things are fixed, I’ll shut down the old site
Killed the old site last night - Now it’s just the new one
I’m glad you like it!
I’m planning on doing this!
I want to update the ‘DNS Traversal’ page to do it. Currently it’s using the legacy code, which queries all authoritative DNS servers and shows the results, but only from one location (currently only from Vegas). I want to update it to show all DNS results, from all the domain’s DNS servers, from all locations. Lots of queries, but they’ll all run in parallel so it shouldn’t be too slow.
The ping page shows the IP address in each location (eg. try ping google.com), but that’s a cached lookup so it’s not appropriate for every use case. The DNS lookup page always shows uncached results.