router

Set a static IP address with nmtui on Raspberry Pi OS 12 'Bookworm'

Old advice for setting a Raspberry Pi IP address to a static IP on the Pi itself said to edit the /etc/dhcpcd.conf file, and add it there.

But on Raspberry Pi OS 12 and later, dhcpcd is no longer used, everything goes through Network Manager, which is configured via nmcli or nmtui. If you're booting into the Pi OS desktop environment, editing the IP settings there is pretty easy.

But setting a static IP via the command line is a little different.

First, get the interface information—you can get a list of all interfaces with nmcli device status:

$ nmcli device status
DEVICE         TYPE      STATE                   CONNECTION         
eth0           ethernet  connected               Wired connection 1 
lo             loopback  connected (externally)  lo                 
wlan0          wifi      disconnected            --                 

In my case, I want to set an IP on eth0, the built-in Ethernet.

Setting up a Mikrotik 10 Gbps Switch the first time

Since I've done this four times now... and each time it's just a session of reading the docs, searching the forums, etc. until I get everything configured just so, I thought I'd document how I bring up a new MikroTik switch.

Mikrotik Cloud Router Switch CRS309-1G-8S+in

I personally love the CRS309-1G-8S+IN, and have three of them running in my homelab. They're less than $250, with 8 10 Gbps SFP+ ports, a 1 Gbps RJ45 port, and a serial console port.

But the best thing for my home use is they are fanless. Blissful silence, outside of a couple beeps the first time you plug it in.

Self-hosting with AT&T Fiber Internet

Today I got AT&T Fiber Internet installed at my house, and I thought I'd document a few things I observed during and after the install.

They trenched fiber boxes between pairs of houses in my neighborhood. It seems like they have little fiber hubs for 8 houses in a set, and those little hubs connect back to the main neighborhood box with an 8 or 10-strand cable, directly buried in the ground.

Apparently my street's main run was kinked somewhere, and only one of the strands had full signal, so I'm the lucky winner who signed up first, and I get that fiber until they run a new cable underground :)

BGW320 AT&T Internet Gateway - Fiber

Monitoring my ASUS RT-AX86U Router with Prometheus and Grafana

I've been running my Internet Monitoring Pi for a year or so, and it's nice to collect data on Internet performance from inside my network.

But my router—currently an ASUS RT-AX86U—also tracks its own metrics for inbound and outbound traffic, among other things:

ASUSWRT-Merlin System Status Dashboard metrics

Sometimes having the raw data from the router that's on the edge of the network can tell a different story than measuring things behind the router. So I want to grab this data and put it into Prometheus.

8 New Compute Module 4 boards for Spring 2022

It's been a busy start to the year on my Raspberry Pi PCIe Devices website. Not only have we finally made some significant progress learning about the BCM2711's PCIe bus (both good and bad), I've also added a few dozen new Raspberry Pi CM4-based boards to the site.

In my YouTube video today, I go through four of them in depth, showing how they're built and what they're used for.

The four projects I cover in depth are:

  1. Bigtreetech's Raspberry Pad 5
  2. Seeed Studio's reTerminal
  3. Waveshare's Dual Ethernet 5G/4G base board
  4. Ab-log's RPi4-RTC-PoE DIN rail computer

And there are some other projects I'm watching closely as they journey down the road towards production:

Network interface routing priority on a Raspberry Pi

52Pi Raspberry Pi Compute Module 4 Router Board

As I start using Raspberry Pis for more and more network routing activities—especially as the Compute Module 4 routers based on Debian, OpenWRT, and VyOS have started appearing—I've been struggling with one particular problem: how can I set routing priorities for network interfaces?

Now, this is a bit of a loaded question. You could dive right into routing tables and start adding and deleting routes from the kernel. You could mess with subnets, modify firewalls, and futz with iptables.

But in my case, my need was simple: I wanted to test the speed of a specific interface, either from one computer to another, or over the Internet (e.g. via speedtest-cli).

The problem is, even if you try limiting an application to a specific IP address (each network interface has its own), the Linux kernel will choose whatever network route it deems the best.

Two Tiny Dual-Gigabit Raspberry Pi CM4 Routers

Since I started testing various PCI Express cards on the Raspberry Pi Compute Module 4, I've been excited to see what new kinds of custom networking devices people would come up with.

Well, after months of delays due to part shortages, both DFRobot and Seeed Studios have come out with their 2-port Gigabit router board designs, and I was happy to receive a sample of each for testing:

DFRobot and Seeed Studios Router Boards with Dual Gigabit Ethernet

The boards are tiny, and even with the Compute Module 4 installed, they are incredibly small—take a look at the entire assembled DFRobot unit, complete with a Raspberry Pi attached:

DFRobot CM4 IoT Router Board with Raspberry Pi CM4 and Quarter

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.

AirPort Extreme showing 'Device Not Found'? Here's a fix

If you've had an AirPort Extreme for a while, and recently (within the past year or two) had it go missing from your network (when you open AirPort Utility you get 'Device Not Found'), there's a good chance you ran into the same issue I did. Basically, everything was running great, then one day around August 2016, my Extreme disappeared from the network—even though it was routing Internet traffic for all the devices in my house just as good as ever!

The fix?

  1. Open AirPort utility (it will likely show "Device Not Found").
  2. Unplug your AirPort Extreme, and wait 10 seconds.
  3. Plug it back in, and connect to the WiFi network as soon as possible, then immediately go to the AirPort Utility.
  4. The AirPort should appear and be manageable (by clicking on it) for a brief period—quickly click on it, click Edit, then clear out any Apple IDs in the 'Back to My Mac' section.

AirPort Extreme Back to My Mac Apple ID listing

Reviving an old dresser by rebuilding the wooden drawer rails

My wife and I needed an extra dresser to keep up with the growing family (third baby is on the way in a few months!), and since we would rather buy things that last—but not buy new if we can save a bundle of money—we bought a used wood dresser on Craigslist:

Craigslist wood dresser

First lesson: always inspect every last bit of furniture before loading it up and hauling it away! Most of the rails were in not-great condition, and the guides on the drawers weren't in great shape either:

Craigslist dresser with old broken wood drawer rail guide

We decided to make the best of the situation and make as good a repair as possible, resulting in much improved (like new!) rails: