šŸš— My '83 Datsun On the Side of the Information Superhighway šŸ›£ļø

How I Learned To Avoid USB Ethernet Adapters the Hard Way

Background

I recetly decided to setup a small server running IPFire on the edge of my network so I could easily host a secure DMZ. I didnā€™t have any hardware lying around that could run it so I put together the following requirements:

I ended up getitng a great deal on Ebay on a used HP EliteDesk 705 G3 Desktop Mini:

img

I plugged in my two USB3->ethernet adapters, installed and configured IPFire, and in about an hour I had an excellent router/firewall/IPS/whatever system on the edge of my network. Thank goodness Iā€™m so smart and really knocked this one out of the park, right?

img

Anatomy of an Outage

Things worked oh-so-well for about 3 weeks but then something funny happened.

First, I discovered a super-cool media server call Jellyfin. I have a large media library on my home file server and have been using Kodi for a while to access it of CIFS. This worked fairly well but I didnā€™t like that Kodi a) didnā€™t have a great web client for watching movies and b) wasnā€™t able to transcode videos on-the-fly. Jellyfin solves both of these problems and after a few days of poking around I was hooked.

So one day I was watching Rick and Morty in my kitchen for about 90 minutes when suddenly the video just froze. I wasnā€™t able to ping the file server or router from my laptop, all of which were on my private, non-DMZ network. After a little troubleshooting I discovered that even when I plgged my laptop directly into the USB->ethernet adapter for my private network I wasnā€™t able to talk to the router. Luckily I had another, unused USB->ethernet adapter so I just replaced the ā€œbrokenā€ one with that. Thank goodness I never throw anything away šŸ˜¼

After a few reboots everything worked again and I went right back to my video streaming. And then it happened again 20 minutes later.

ā€œOh, I know, it must be the USB portā€ I thought, so I chose a different one. After a few more reboots everything worked again for a couple of hours but it failed again. Rinse and repeat anothe 3 times. Every outage was a little longer and required more reboots and swap-outs and praying to the gods of flaky computer problems.

The last outage (hopefully!) was so bad that I ended up re-installing IPFire. Thankfully that is very simple but good lord itā€™s not something I want to do every couple of days. Itā€™s been about a week since I did that and so far, so good.

img

Solutions

Iā€™m very fortunate to have many good friends, and some of those friends know a heckuva lot more about networking and hardware than I do. After discussing this very strange issue with them we basically theorized that Jellyfin is probably putting a lot of strain on the network adapter. That strain was causing a relatively large amount of power to be drawn or heat to be created and that was causing the either USB->ethernet adapter or the USB bus to stop working for one reason or another.

To avoid the problem Iā€™ve done the following:

Now I appear to be in much better shape. Iā€™ve watched a ton of video using Jellyfin over the last week and I havenā€™t seen any problems.

Lessons Learned

If youā€™re reading this you proabably are like me: a cheap bastard.You want to really maximize what you get for what you spend and you donā€™t mind doing a little more work in the short term to make that happen. This is an admirable trait.

What I have learned from this experience is that you are very likely to not save money on a custom home router by using USB3->ethernet adapters. They work great if you want to plug your laptop into a wired network connection during the day, but I just havenā€™t had a good experience with running them on a router that has to work 99.99% of the time.

The good news is, you donā€™t have to buy gray market hardware or spends big buck on niche network hardware. All you need to do is buy the smallest, cheapest computer that you can afford that includes at least one PCIe interface. You can then add an inexpensive 2-port gigabit ethernet card to the device to give yourself enough ports to run both private and DMZ networks.

In my case, I wouldnā€™t even need to find a different computer model. I would just need to buy the ā€œnext size upā€ of the 705 G3, which is the ā€œsmall form factor (SFF)ā€ model.

img

Itā€™s a little bigger and it uses a little more power, but itā€™s still a nice, small computer. And itā€™s not even that much more expensive.

Hereā€™s my costs for my current rig:

Part Price Already owned?
Used G3 Mini $110 No
USB3->Ethernet Adapter 1 $25 Yes
USB3->Ethernet Adapter 2 $25 Yes
$160

Hereā€™s current prices for the alternative

Part Price Already owned?
Used G3 SFF $160 No
2-port PCIe Ethernet Adapter $22 No
$182

If I could go back I would definitely redo things with the G3 SFF and save myself and my family a ton of hassle. And who knows? If the USB adapters issues continue this is a relatively cheap and easy solution.

Please learn from my mistakes. You can build a powerful, flexible and low-powered router for less than $200 without rolling the dice on flaky USB->ethernet adapters.


Tags: #networking, #security, #hardware