Benchmarking DNS on my Mac with Pi-Hole

After watching Level1Techs' THE FORBIDDEN ROUTER II - DIAL-UP BY DAWN video, I wanted to do some DNS benchmarking on my local network.

Since I run Pi-hole locally, and rely on it for local DNS resolution, I wanted to have a baseline so I could compare performance over time.

In the video, Wendell mentioned the use of Gibson's Windows-only DNS Benchmark tool. But that's Windows-only. Or maybe Linux under WINE, but definitely not a native / open source tool that's easily used across different platforms.

I looked around and settled on bulldohzer—for now, at least—as it's easy to install anywhere Node.js runs. I have Node.js installed via Homebrew on my Mac, so I just ran:

npm install --location=global bulldohzer

Then I could run a benchmark against Google and my own local DNS resolver (Pi-Hole):

Starlink Roaming makes mobile usage possible

May 5th Update: this feature is now official, and is called "Portability." To enable it, you will need to pay an extra $25/month, though I haven't been charged yet despite using the feature. Starlink says mobility (using Dishy while in motion) is not yet supported and will void your kit's warranty.

I've logged into my account, and I now see a note that reads Click "Manage Service Options" to add Portability. — that screen leads to this Starlink Portability FAQ page with more details. I haven't signed up for it yet, and I'm waiting to see what happens next billing cycle... I still can't update the service address to my cousin's location.

I almost got banned from Hacker News

Hacker News frontpage - logged in as geerlingguy

I started submitting my blog posts to Hacker News around 2016, but only ones I thought relevant to the HN community.

Until 2020, I would do this about once a week, and most submissions would fall off /newest within an hour, never to be seen again. But a problem arose (well, 'problem' depends on your perspective 😉): over time, more of my posts started hitting HN's front page.

HN is an interesting community—unlike Reddit, on which most material considered 'self-promotion' is verboten (because so much is spammy resumé-boosting or corporate material), HN encourages genuine self-promotion (at least judging by what hits the front page).

I took down Starlink (but I haven't cancelled)

Today's video is about Starlink—I've had an active subscription since last February, and as it's been a year, I figured I should post an update.

The tl;dr: when I had a new roof put on late last summer, I took down 'Dishy McFlatface', but I haven't put the dish back up. I have been holding out hope I could transfer my hardware to my cousin, who lives on a farm 70 miles away, and only gets 300 Kbps upload on her DSL, but so far that seems to be a pipe dream.

In the video below, I outline four problems that have tempered my optimism when it comes to SpaceX's Starlink Internet service:

.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }

The rest of this post is a lightly-edited transcript of the video.

Using 4G LTE wireless modems on a Raspberry Pi

For a recent project, I needed to add cellular connectivity to a Raspberry Pi (actually, an entire cluster... but that's a story for a future time!).

Raspberry Pi 4 model B with 4G LTE wireless Quectel modem and antenna and USB adapter

I figured I'd document the process in this blog post so people who follow in my footsteps don't need to spend quite as much time researching. This post is the culmination of 40+ hours of reading, testing, and head-scratching.

There doesn't seem to be any good central resource for "4G LTE and Linux" out there, just a thousand posts about the ABC's of getting an Internet connection working through a 4G modem—but with precious little explanation about why or how it works. (Or why someone should care about random terms like PPP, ECM, QMI, or MBIM, or why someone would choose qmi_wwan over cdc_ether, or ... I could go on).

Hopefully you can learn something from my notes. Or point out places where I'm glaringly wrong :)

SpaceX's Starlink Review - Four months in

SpaceX's Starlink internet service uses satellites in low-earth orbit to provide high-speed Internet to underserved parts of the world, especially places without easy access to cable or fiber.

Jeff Geerling with SpaceX Starlink Dishy

SpaceX's Starlink beta opened up in my area, so I installed Dishy—that's the nickname for the large white satellite dish above—and I've been testing it and comparing it to my Cable internet.

I have Raspberry Pis monitoring my Internet—one on Starlink, and one on Spectrum. And I also have a power monitor measuring power usage. And I've tracked everything since day one to see if weather like snow and thunderstorms affect service, and how Starlink compares to Cable.

Here's the bottom line: Most of the time, I couldn't tell I was using Starlink. And that's good. Everything felt the same.

Monitor your Internet with a Raspberry Pi

Internet Service Providers are almost universally despised. They've pushed for the FCC to continue defining 25 Mbps as "high use" broadband, and on top of that they overstate the quality of service they provide. A recently-released map of broadband availability in the US paints a pretty dire picture:

USA map showing areas with limited high speed broadband availability

Here in St. Louis—where I guess I should count my lucky stars we have 'high use' broadband available—I have only two options: I can get 'gigabit' cable Internet from Spectrum, or 75 megabit DSL from AT&T.

That's it.

And you're probably thinking, "Gigabit Internet is great, stop complaining!"

Setting up a Raspberry Pi with 2 Network Interfaces as a very simple router

I needed a very basic 'Internet sharing' router setup with one of my Raspberry Pis, and I thought I'd document the setup process here in case I need to do it again.

I should note that for more complex use cases, or where you really need to worry about security and performance, you should use something like OpenWRT, pfSense, or VyOS—or just buy a decent out-of-the-box router!

Seeed Studios Raspberry Pi Compute Module 4 Router Board

But I needed a super-simple router setup for some testing (seriously... look at the picture—the thing's about to fall off my desk!), and I had two network interfaces on a Raspberry Pi running the 64-bit build of Raspberry Pi OS. These instructions work on that OS, as well as Debian, Ubuntu, and derivative distros.

Using the Shelly Plug to monitor Starlink's power consumption

I recently wrote about using a Raspberry Pi to remotely monitor an Internet connection, and in my case, to monitor Starlink (SpaceX's satellite Internet service).

Power Consumption Grafana dashboard with Shelly Plug US power usage coming through

One other important thing I wanted to monitor was how much power Starlink used over time, and I was considering just manually taking a reading off my Kill-A-Watt every morning, but that's boring. And not very accurate since it's one point in time per day.

Shelly Plug US

Setting up Starlink, SpaceX's Satellite Internet

Starlink Dishy and box from SpaceX

In March, I got an email from SpaceX saying Starlink was available at my address, and I could pre-order. I paid $500 for the equipment, plus $25 for a Volcano Roof Mount, and $99 for the first month of service, and a few weeks later, I got the kit you see in the image above.

I was a little too excited about getting Starlink, though, because I realized after I started looking for mounting locations that Starlink needed a 100° view of the northern sky, and my house is literally surrounded by 70-80 ft trees.

So I thought, why not let a cousin who lives out in a rural area try it out while I figure out what to do about mounting 'Dishy' (a common nickname for the Starlink satellite dish) on my own house?

After all, my cousin Annie, who lives in Jonesburg, MO, currently pays for the maximum available DSL plan to her farm (Haarmann Farms), and gets a measly 5 Mbps down, and 0.46 Mbps up—on a good day: