My current home network is relatively complex: I share a home with my SO and between the two of us we have some 30 client devices running all the major OSes (Windows, macOS, iOS, Android, Linux) as well as three NASes (two Truenas Core boxes and an Odroid HC4 running Armbian) and a LibreElec (minimal Linux running Kodi) box for streaming video from the NASes to the TV over SMB.
The devices are divided into a few VLANs (my devices, hist devices, IoT stuff etc.) and core network services (routing, gateway to the internet, DHCP, Router Advertisement, DNS, RADIUS server for the WiFi) are handled by an OPNSense box. My internet connection is IPv6 only (IPv4 via DS-Lite) with a stable /56 prefix delegation and internally I dual stack (IPv4 via DHCP and IPv6 ULAs and GUAs via SLAAC).
I recently picked up a couple of used SFF boxes for cheap (6-core 8th Gen Core i7, 32GB RAM, 1TB NVME SSDs, single gigabit ethernet) with the intention of creating a small cluster to self host a few services like:
The devices are divided into a few VLANs (my devices, hist devices, IoT stuff etc.) and core network services (routing, gateway to the internet, DHCP, Router Advertisement, DNS, RADIUS server for the WiFi) are handled by an OPNSense box. My internet connection is IPv6 only (IPv4 via DS-Lite) with a stable /56 prefix delegation and internally I dual stack (IPv4 via DHCP and IPv6 ULAs and GUAs via SLAAC).
I recently picked up a couple of used SFF boxes for cheap (6-core 8th Gen Core i7, 32GB RAM, 1TB NVME SSDs, single gigabit ethernet) with the intention of creating a small cluster to self host a few services like:
- Directory and SSO
- home assistant
- gitlab or gitea
- build agents running Windows/Linux/macOS (if I can get it to work on Proxmox) to be able to do CI for multiple platforms at the same time
- owncloud/nextcloud
- an internal SMTP relay
- With the exception of Home Assistant, I would be the only one using the hosted services: should I put the cluster in its own VLAN and subnet or keep it together with my clients and existing servers? If I put it in its own VLAN it would be easier to turn it into an internet accessible DMZ, however since my switches are L2 only doing so would increase load on the gateway.
- Given that I own a domain and have some infrastructure off-prem (three websites on Github pages, a VPS, email for the domain hosted on Google), would it be better to use a subdomain (home.mydomain.com) to name devices on my LAN or should I implement split brain DNS?
- Split brain would be easy to implement, just define a zone for mydomain.com in Bind (already use it as DNS resolver) on the gateway. the rest of the internet uses what I set up in Cloudflare
- Split brain DNS means less typing when connecting to devices at home
- Split brain DNS also allows me to use mydomain.com for the directory, so I'd have principal names that map with my existing email addresses (user@mydomain.com vs user@home.mydomain.com)
- Subdomain means I could make an on-prem DNS server authoritative for the home subdomain, and have proper delegation and DNSSEC for the rest of the internet
- For directory service and SSO, the idea is to only have the servers - most of which running Linux - joined to the domain with clients logging in via manually kiniting or browser (SAML/OAUTH2). Is it better to go FreeIPA + something like Authelia/Authentik set up as web IdP provider using it as back end via LDAP, SAMBA + Authelia/Authentik in the same configuration or Active Directory Domain and Federation Services on Server Core?
- I have been labbing FreeIPA and got my Windows client to authenticate to SSH and SMB shares via Kerberos on a different Linux instance from the IPA controller.
- FreeIPA has an integrated CA which is nice, but also a bloody hog (on an LXC container it uses 1GB RAM with CA, half that without)
- FreeIPA is nicer to set up on Linux (fedora at least) and enrol clients with, but I'm not sure it can work with TrueNAS
- Samba does not want to work in an LXC container, ever. Kind of a pain to set up SSH SSO via Kerberos
- I don't need or want GPOs
- Can I just skip the web IDP for SAML/OAUTH2 support and just make my web services authenticate using GSSAPI/Windows Authentication instead? Windows goes out of its way to disable it by default (need to add the URIs to local intranet zone for it to work) - why?
- Having already set up proxmox on the cluster members, would it be better to go for putting each service in individual VMs or LXC containers where possible OR set up a Kubernetes cluster (two VMs per node, a worker and a manager) and run my services inside it?
- Is only having a single ethernet interface going to be a bottleneck for Kubernetes? Worried about intra-cluster traffic, especially for storage
- Right now the two nodes are far apart (placed on different desks in different rooms, connected to different switches and power outlets): would it be better to place them together connected to the same switch? Or is the increase in resiliency (if I need to unplug one for any reason chances are the other one would be left alone) worth it?