There are many guides on building home routers – too many. Most of them revolve building a budget box out of cheap components for 50 -100 dollars. This is a waste of time….a suitably quick machine can be purchased for little money and will just work. If you have a server rack in your home you likely will have no interest in this article (and shouldn’t). Porting enterprise equipment to a home environment with little to no maintenance can be a fun and ultimately rewarding experience – if you want to invest the time and possibly more money…depending on how / what hardware you source.
This is my far from my first effort at replacing a store purchased router. For the sake of simplicity a reliable (relatively) Buffalo device running DD-WRT has powered my home network. When I say simplicity (and reliability), it is because for many years i have used a windows server machine as a home router with ISA Server and eventually TMG 2010 (Threat Management Gateway). Both of these firewall products are now deprecated – for good reason. Windows as a router is not a terrible solution – arguably better than a retail router, but has some drawbacks. Many drawbacks. Namely, you will spend a lot of time RDP’ing into the box when you shouldn’t have to to validate basic functionality. I’ll spare the details for this write-up, but windows in any production environment, let alone a residence, can be a very temperamental and sensitive machine, especially if you like to be “aggressive” on occasion. I’ll elaborate on this in the future.
So let’s get creatively cheap and prowl around eBay. I came up with the following (eventually):
- D-Link DAP-1650 (Wireless Access Point) ~ $20 – $40
- Lenovo ThinkCentre M73 8GB Memory, 80GB SSD (Mini / Micro PC) $50 – $120
- 80GB SSD (From around the house) – many mini desktops come with SSDs – I got a deal on one with a spinner.
- Lenovo Gigabit LAN USB Dongle (From around the house) $10 – $30
The weak link here would be the D-Link. For a cheap access point, it surprisingly includes a gigabit LAN switch. A used mesh network controller, probably a retired enterprise Cisco unit and various access points with power over ethernet (POE) would be my preferred solution – in the future a variation of this will be my setup. Anyways, it works and blankets my current environment with reliable and fast WI-FI. Alternatively, the machine itself can be configured as a wireless access point (WAP) with an appropriate WIFI adapter and software configuration – this is more trouble than it is worth with inferior results.
D-Link DAP-1650 (Wireless Access Point)
Now the fun part. Originally I built a routing box with a Lenovo Q190 that had been collecting dust for a number of years. It didn’t accommodate all of my needs – more on that later. Eventually I replaced it with a ThinkCentre M73. The key to this is a small form factor and an SSD. When you consider what a store purchased router is (without all the antennas – marketing departments seem to love antennas) in its simplest form, you have a Linux box running on minimal hardware. Logical deduction would conclude that a beefier desktop PC with more than enough hardware would provide better performance – it does, much more than you would expect.
As for the Lenovo M73 that will be the basis for our router – it is an extremely quick, small form-factor PC. You might usually see these mounted to the reverse side of a monitor in a corporate environment. In this case, the machine i ordered came with a conventional HDD; this was immediately replaced with an 80GB SSD which i had previously acquired for about $20. Why an SSD? It’s faster, more reliable and boots faster than a retail router… Lastly, we need a USB dongle for either our LAN or WAN network; any option will do here as long as it is compatible with Centos 7 / RHEL and I would recommend going with an option that supports 1000baseT (GB LAN speeds).
Lenovo ThinkCentre M73 Intel G3220T 80GB SSHD 8GB Memory
So let’s begin with the installation and configuration. I recommend connecting your USB NIC(s) prior to the install so that they are detected. Along with that, you should also enable them during the setup procedure – this will save some configuration time later on. This guide will advise a minimal installation of your distribution.
- Install Centos / RHEL on the target machine
- Install Net-Tools Package
- Install Network Manager / NMTUI
- Configuring DHCP for LAN Address Assignment and DDNS
- Update System with Yum
- Enabling Routing and Configuring WAN / LAN Designations
- Install GUI (Optional)