I need a new router. That's it, I just need a new router. I was previously using Google WiFi which did the job but I felt that it was limited for a power user like me who has over 50 devices and plans to add more in the future as I work in the field of technology. Google WiFi is great for people who just want a simple and easy wi-fi solution. It's a set it and forget it approach to wireless and it's easy for anyone to setup.
I currently have over 50 devices on my network and Google WiFi is super limited to controlling and managing these devices. The default IP range is 192.168.86.XXX /24 and you cannot change this to a 10.X.X.X /8 or even to a simple 192.168.1.XXX /24 range. There are also major problems with how Google WiFi is fully cloud-based and how a simple mistake on Google's end can destroy your entire network configuration.
Some reasons why I WANTED a new router
- Future? Smart Home
- Control and Customization
- Speed Increases
Off the shelf routers suck in terms of hardware and Google WiFi has decent hardware. My only option was to build my own router. I currently have Comcast Blast! which gives me 200Mbps down and 10Mbps up. I have over 50 devices and these devices need packets moving. Building my own router was my only option and I needed something that was power efficient, small, and powerful.
Let's get started on what hardware I choose for my router. I decided to go with the PCEngine's APU2 board which is based on an AMD Quad-Core APU.
I purchased the APU2C4 board directly from PCEngines. It features 4GB of RAM, 3 Intel NICs, 2 USB 3.0 Ports, 3 mSATA Slots, and as previously mention, the AMD Quad-Core APU.
With my purchase, I decided to add a Black Enclosure and US Power Adapter.
On Amazon, I decided to go with an ADATA SP310 128GB SSD. It features MLC NAND which is great and it was $69. It has plenty of storage for the pfsense operating system and was a bit overkill but I am planning to use the space for Squid Caching.
The build was as simple as installing the heatsink, screwing everything together, and inserting the SSD. This part only took me about 15 minutes to put together and everything came together nicely.
Here is where we hit a roadblock. When I purchased this board, I wasn't thinking about the console port. For some reason, I kept thinking this board had VGA and it would be as simple as creating a USB Installer using Terminal and installing using a monitor.
I ended up ordering a Thunderbolt 2 to Ethernet adapter and USB to DB9 Cable on Amazon (ONE DAY SHIPPING!) because I lost my original Ethernet adapter and I needed a DB9 cable in order to control this board.
I installed the latest pfsense_amd64_usbmemstick_console version. I used an application called "Serial" by Decisive Tactics to connect to my APU2 box. This was the hardest part of the installation as many of the console apps work and don't work with the APU2. PuTTy works best with Windows but I'm stuck with OS X until I upgrade to my 2016 MacBook Pro so I have enough storage for a Windows 10 installation.
After you're connected to the console, it's as simple as booting off the USB and going through the default settings of installing pfsense. It will automatically configure the ports as WAN, LAN, and OPT1 for all APU2 boxes
My setup is as follows:
Motorola Surfboard (Modem) ---> pfsense Appliance (Router) ---> Google WiFi (Access Point)
I have Squid acting as a cache for iOS Software and App updates, Mac Software and App updates, Windows updates, and a basic HTTP cache. Although about 80% of my traffic is SSL-encrypted (HTTPS), I won't intercept that traffic with my own LetsEncrypt certificate. I will let all of that data flow through the internet, as usual.
I have a few other basic security packages but for now, I haven't done anything crazy with my pfsense appliance.