We’re in the process of designing our new homestead, and while my wife adeptly handles the architectural portion of things, I find myself more interested in the nerdy portion of things, specifically in this case, the networking and media infrastructure. Seeing as we’re still 12 months or so away from breaking ground, I figured I’d start writing on the subject to better organize my thoughts, gather feedback from the community, share what I’ve learned, and make sure I don’t miss anything.
Here’s a quick rundown of what I’m hoping to accomplish, functionality wise:
- The ability to stream locally stored content to any media installation on the property, either one-off (I’m in the den and want to watch Mad Men) or simultaneously (every system on the property is streaming the same movie or playing the same playlist, all in sync)
- The ability to stream live content in the same manner; we’re planning to build a barn whose primary purpose will be hosting live musical performances, so it’d be neat to be able to stream live video of said performances back to the main house, as well as streaming the audio over the outdoor speakers for folks wondering the grounds or in the pool. This could also be used to stream vinyl to any/every room on the property which would be kinda cool.
- Finally, and perhaps most importantly, it would have to be simple and Just Fricken Work™. I work on technology for a living and the last thing I want to do once I’m done for the day is work on more broken computer crap.
From a technology perspective, I’m planning to leverage the following components:
FreeBSD / ZFS - File Server
It’s tough to beat ZFS for cheap, large disk storage, and FreeBSD is just that, 100% free. While a Drobo or Synology might better fit my Just Fricken Work™ philosophy what with their fancy web UI’s and behind the curtain magic, it is my hope is to operate just a single server, so having a full OS at my disposal will allow for running other daemons that an embedded style appliance might not. I’ll configure NFS shares for each of the different volumes I want to share out, and I’ll probably Portchannel both GigE ports on my FreeBSD server Just Because™
Matricom G-Box Q (or equivalent) + Kodi
If you aren’t familiar with Kodi (formerly known as XBMC) you really owe it to yourself to check it out. An completely free and open platform, it’s an outstanding media center solution, especially when coupled with an embedded system like the G-Box with hardware h.264 decoding. The G-Box features an HDMI port capable of 4k video as well as a TOSLINK optical audio output, so it will work with the latest fancy 7.1 HDMI stuff as well as an older-school 5.1 system right out of the box. It’s got onboard ethernet as well as Wi-Fi, two USB ports, and a remote control. This is all well and good, but the part that really sold me on the G-Box is the fact it’s completely fanless, i.e. silent, and that it runs Android! No Linux updates or system management to worry about, and the Android Kodi port is actively maintained and will be for the foreseeable future.
Black Box MediaCento IPX PoE Multicast Transmitter/Receiver
So I have yet to actually use these, but as far as I can tell they are going to solve the stream in sync and live stream challenges. What these things do is convert HDMI to multicast in hardware over your existing LAN. Both transmitters and receivers have rotary switches to select a “channel”, you plug them into ethernet, and voîla, same signal everywhere over Ethernet. The plan would be to have three transmitters on three different channels:
- One on a Kodi box for simultaneous streaming
- One in the music barn for live performance video/audio<
- One behind an AV->HDMI converter for vinyl in the den
Then, receivers would be fitted at any media system we’d want to be able to participate in the stream, as well as on the whole house / outdoor system. This isn’t 100% ideal, as changing the source would require rotating the switches, but hopefully that won’t need to happen all that often.
Single mode Fiber between Structures
In order to future proof connectivity between structures, I’ve decided to run Single Mode Fiber (SMF) between them. CAT6 can do 1000 Mbit at up to 295 feet, but 10G or any sort of multiplexing would not be possible, and because the structures will be a decent distance from each other I want to make sure I have a strong, reliable signal. While I cannot foresee requiring any more than 1 gig between structures, I certainly don’t want to set myself up to fail in the future should speeds above 1 gig all of a sudden become necessary. The workshop will act as a central hub for all of the fiber, and while I could build everything out on a ring with failover capabilities I think that’s a little excessive (unlike laying dark fiber between buildings, which of course is quite reasonable.)
Cisco Network Switches
I worked with Cisco gear for many years in my previous life as a datacenter guy, and have to say they are some of the best built, most resilient pieces of hardware on the planet. Certainly, a lesser switch would probably do just fine, however I’d rather purchase something that’s going to be stable, perform well, and last many, many years. Each structure will have slightly different requirements, so I won’t be using the same model of switch universally, however everything will be Cisco. The fiber will allow us to upgrade to 10G should it ever be necessary, but we’ll be sticking with GigE for starters, as 10G gear is way overkill and quite expensive.
- Main House - Cisco Catalyst 2960X-48LPD-L - 48 x GigE, 2 x SFP+, PoE for phones and cameras
- Shop/Hub - Cisco Catalyst 3850-12S-S - 12 x SFP, expandable to 2 x 10G uplink via module
- Guest House - Cisco Catalyst 3560CG-8PC-S - 8 x GigE, 2 x SFP, PoE for phones and cameras
- Music Barn - Cisco Catalyst 3560CG-8PC-S - 8 x GigE, 2 x SFP, PoE for phones and cameras
The fiber internet connection for the property will terminate in the Shop/Hub to that 3850 on a DMZ VLAN, and a server running pfSense will handle the routing/firewalling/VPN duties. The rest of the 3850’s ports will be on a Local VLAN and distribute connectivity via fiber to the rest of the switches on the property.
That’s all for Part 1, please let me know in the comments if you think I’m missing something or see a better way to do things.