Finally all the parts arrived to build a custom router capable of...

Posted 2024-11-15 | Back to blog index

Finally all the parts arrived to build a custom router capable of 10 Gbit to replace the rental ISP router!

The basis for the router is a Lenovo ThinkCentre Tiny M720q I got off Yahoo! Auctions for $70 with CPU, RAM and NVMe all included.

A box of parts: Thinkcentre tiny, dual head 10 Gbit NIC, DAC cable, PCIe riser and bracket, USB drive

Opening it up reveals a SATA cage and a VGA port that I don't need, taking those out reveals a PCIe x8 port, I'm going to need that!

But it's not a standard slot, a regular card won't fit in there (and the case is too small for a card to stand up in anyway)

ThinkCentre tiny but opened up ThinkCentre tiny with the SATA cage and VGA port removed Proprietary PCIe slot marked PCIE 8X

That's what this riser and bracket from AliExpress are for!

Now we can fit this $20 surplus Huawei-branded Intel dual 10 Gbit NIC in here

PCIe riser and case bracket Riser installed NIC installed

It's alive! Here we can see the specs

* Core i3-8100T CPU @ 3.10GHz

* 8 GB RAM

* 256 GB Kioxia/Toshiba NVMe drive

BIOS screen revealing model ID 10T7S1K900 BIOS specs screenMainCPU TypeCPU SpeedCPU Core CountInstalled MemoryMemory Bus SpeedActive VideoOnboard AudioOnboard EthernetCPU FanM.2 Drive 1SATA Drive 1Lenovo BIOS Setup UtilityIntel (R) Core (TM) i3-8100T CPU @ 3.10GHz3.10 GHz48192 MB2400 MHzIGDEnabledEnabledUperatingKXG6A2NU256G TOSHIBANone

The NIC works at least!

Due to a lack of 10 Gbit SFP+s for testing just to see if everything works right now I'm using some scrap 1 Gbit LR SFPs that came preinstalled in some switches I bought a few years ago, that's what's on the left WAN side. On the right is the 10 Gbase-T SFP+ going to my laptop

Rear of tiny PC showing a yellow fiber and a white RJ45

It's cute how the dot over the “i” lights up

Lenovo ThinkCentre but the dot over the i is a smol red LED

Installed pfSense, but doing a quick check, the performance numbers are looking off. Less than 5 gig up and the CPU gets pegged at 50%

Gonna try a Ubuntu LiveCD as a sanity check to make sure it's not the PCIe riser or something (but why is the performance slower in only one direction?)

pfSense installer detected NIC iPerf showing 5G up, 7G down Screenshot of iperf3 running while showing 49% CPU usage

I saw that Lenovo had integrated their logo with Windows boot and I guess that makes sense, but Ubuntu also integrates with the OEM logo?

PCs have come a far way…

Boot screen: Lenovo, spinner, Ubuntu logo

Yep, performance is waaaaay better under Linux. And checking top it's barely using any COU at all (like 5%?)

I guess I'm going with OpenWRT instead then

iperf3. 8G up and 9G down

Just doing some googling, getting results ranging from "you can't run iperf on pfSense!" to "pfSense isn't a router, it's a firewall, you shouldn't be using it as a router" to obscure sysctl things to tweak.

Every time I try to use FreeBSD for something it ends like this. Using TrueNAS CORE was also a mess.

Definitely going OpenWRT/Linux for this router.

That said OpenWRT isn't going to be a walk in the park either since the IPIP6 support needed for IPv4 support on my ISP wasn't merged until earlier this year and still isn't in the stable release

After a bit over 2 hours of tearing my hair out while piecing together several different conflicting and vague guides on qiita and various Japanese blogs, I finally got the IPv4 tunnel working!!! 🎉

Time for bed 😪

Reverted to the ISP router for now. I want to back up this config, then blow it away and rebuild it from scratch so I know what I did that was actually needed...

Two ping sessions: first one errored out with destination is unreachable, second one succeeded OpenWRT status screen showing IPv4 upstream being a tunnel and IPv6 upstream being a DHCPv6 client

Redid the config from scratch to remove any weird stuff I did just trying to get it working, and set up all the port forwards etc and put it in place of the ISP router

Did a speed test and… capped to 1Gbit?

Oops, I had bought a 1 Gbit DAC rather than a 10 Gbit one… I wasn't paying attention and the “10GTek” brand name had fooled me… Good trying I had a longer one on order (this one was too short anyway) and that one will be correct

So once that DAC comes in I'll clean this up and cable manage

Pile of network equipment

As for power draw… It idles at 16W, and peaks at 29W when routing 7.5 Gbit of data. This is with dual copper SFP+. I have not messed with any power-saving stuff in BIOS.

The ISP router runs at a solid 16W regardless of what it's doing.

Power meter - 16W Power meter - 29W

So, um, I went to install something and it failed, the root partition had been remounted read-only due to file system corruption. fsck couldn't make heads or tails of it, the fs was trashed. Well that's worrying!

Only thing I can think of is that it's because I resized the root partition using the instructions that told you how to do it when the system was booted and running.

Since I had a config backup it was really easy to just re-image the drive and restore. This time I resized it in Ubuntu

Update on 2024-11-18:

Aaaand there we go! Everything installed in it's place, tidied up and labeled. I got USB-C to DC cables to replace the separate bricks for the ThinkCentre and ONU with a single USB-C PD brick, and tidied up with shorter cables for everything else.

Really happy with how it turned out! The 10 Gbit internet upgrade project is a success!

A shelf with two switches, a ThinkCentre, a 10G-ONU, a Synology NAS, and lots of cables on it A power strip strapped to the side of a shelf; revealing neat labeling.

Back to blog index