Synology

In Singapore kreeg ik als neventaak de rol van IT-manager, en werd ik geconfronteerd met serverinstallaties en het onderhoud daarvan. Singapore was sowieso een goedkope stad om een computerhobby uit te bouwen (ook qua software – leve Sim Lim Square!), dus al snel had ik meerdere DIY-Tower PC’s en uiteindelijk ook een Dell Server. Daar ben ik na onze terugkeer nog even mee verder gegaan, maar al gauw waren de kosten in Nederland te hoog en de mogelijkheden te beperkt voor goedwillende amateurs. Ik had toen wel een webserver, een LDAP server en Exchange server voor email. Maar zoals gezegd: dat was eigenlijk niet onderhoudbaar in schaarse vrije tijd. Daarom schakelde ik, na gedegen onderzoek, over op Synology. Ook daar heb ik meerdere generaties van verschillende performance klassen gehad en weer verkocht om tot mijn huidige opzet te komen. Voordeel van zo’n kleine NAS (Network Attached Storage) is dat er veel gratis applicatiepakketten beschikbaar zijn, en dat je alleen de hardware aanschaft, met hooguit een paar licenties als je meer wilt dan de doorsnee gebruiker. Ik heb bijvoorbeeld 6 camera’s rondom het huis, en dan moet je 4 camera-licenties kopen voor een surveillance toepassing. Ik heb maar 2 gebruikers, dus de 5 standaard inbegrepen email-licenties zijn voldoende (ik kan die via een truc eventueel ophogen naar 10, en verder zijn er onbeperkt aliases in te stellen). Dat is allemaal te overzien.

Gebruik Synology

Ik beschik momenteel over 2 Servers, de DS1517+ (foto boven artikel) en de DS718+ (foto hiernaast). Bovendien zijn er uitbreidingsstations aangesloten voor extra RAID-5 opslagruimte: DX213 en DX517. Deze servers vervullen in mijn lokale netwerk verschillende functies:

  • IP-TV server voor zowel kabel-TV als satelliet ontvangst
  • Multi-media server voor diverse entertainment van ebook tot film
  • Back-up van data mobiele apparaten
  • Office alternatief
  • Eigen email en chat server
  • Kalender, adresboek, notities en taken
  • … (nog wat andere netbeheersfuncties op de achtergrond, zoals LDAP)

Hiermee wil ik vooral zo onafhankelijk mogelijk zijn van Amerikaanse BigTech (ik heb, op WhatsApp en Android / Google na, ook helemaal geen social media accounts meer). Bovendien is het gewoon een leuke hobby!

Zoals ik eerder al vermelde, heb ik de eerste kennismaking met Home Assistant gehad via installaties op een Synology server. Er zijn verschillende installatie opties mogelijk, en voor eenvoudig gebruik zijn die prima. Maar zodra je een beetje meer wilt, zoals bijvoorbeeld domeincertificaten installeren, dan wordt het wat ingewikkelder (bedenk dat ik geen Linux specialist ben, of überhaupt dieptekennis heb van de software architectuur op de NAS). Ook bij updates van de server of van sommige pakketten bleek Home Assistant soms ineens te stoppen. Dat wil je niet bij automatisering in huis. Toen ik vervolgens met Z-Wave en Zigbee aan de slag wilde, bleken de USB-poorten van de NAS niet zo geschikt om betreffende antennes aan te sluiten. Dat is dan ook de eerste en belangrijkste reden waarom ik overgestapt ben naar Home Assistant Green.

Je merkt meteen dat deze module speciaal ontworpen is voor het vooraf geïnstalleerde Home Assistant pakket: alles loopt soepeltjes en snel, aanpassingen en speciale configuraties gaan makkelijker en bij een huiselijke toepassing zoals ik heb (en die is al best wel actief en complex) loop je niet tegen hardware begrenzingen aan. Er zijn andere producten op de markt die hogere specificaties hebben (op Rasberry Pi of andere NUC’s), maar die zijn ook een stuk duurder en wellicht alleen zinvol voor grote en specialistische configuraties. Zelf zou ik dan eerder een tweede HA Green aanschaffen, en taken wat verdelen (bijvoorbeel één voor Zigbee, en de ander voor Z-Wave). De Synology NAS gebruik ik alleen nog om elke dag een back-up van Home Assistant weg te schrijven (ik heb het uitgeprobeerd: het terugzetten van zo’n back-up is een fluitje van een cent). Maar gaandeweg ontdekte ik ook nog een andere, onvermoede mogelijkheid van Home Assistant: de Technitium DNS server. Om dat uit te leggen, moet ik toch weer terug naar Synology en de opzet van mijn netwerk hier in huis.

Een belangrijke voorwaarde voor de opzet van mijn netwerk thuis is beschikbaarheid. Onder alle omstandigheden, zelfs bij stroomuitval of grote internetstoringen, wil ik gebruik kunnen maken van eigen data en handige toepassingen. Daarom heb ik overal in huis ethernetkabels liggen, want WiFi verbindingen zijn niet altijd stabiel bij beweging in en om het huis. Bij stroomuitval heb ik noodoplossingen met zonne-energie en diverse LiFePo4-batterijen. Ten behoeve van mogelijke internetstoringen neem ik belangrijke functies voor netwerkverkeer in eigen beheer door een lokale DNS server te koppelen met servers voor LDAP en DHCP. Vooral bij stroomonderbreking ontstaat er een probleem: de servers gebruiken relatief veel stroom. Hoewel ze een paar uur op eigen voeding kunnen draaien, is het beter ze uit te schakelen als ze niet gebruikt worden. Daarmee vervallen belangrijke netwerkfuncties en vooral de automatiseringen vanuit Home Assistant, zoals bewaking en stroomregeling (andere netwerkapparatuur kan makkelijk op noodstroom werken, als het tenminste overdag licht genoeg is).

Beknopte uitleg termen

Neem als voorbeeld een stad met een stratennetwerk waarlangs vele gebouwen staan, bewoond / gebruikt door mensen. DHCP kun je vergelijken met het gemeentelijk adressenregister: aan elk vastgoed object is een unieke postcode-huisnummer combinatie gekoppeld (een straatnaam en stad zijn slechts leesbare representaties, zogenoemde metadata, vergelijkbaar met in onbruik geraakte WINS server). Dat zijn de IP-adressen van PC’s en andere apparaten die via het netwerk communiceren. Denk je even in dat elk vastgoed object de naam draagt van de bewoner, dan is DNS een soort adresboek, waarin die naam aan een adres gekoppeld is. Geef een naam op, en je krijgt een object-adres terug. Reverse DNS is het omgekeerde: geef een adres op, en je vindt de naam van het object. Dit soort informatie is publiekelijk toegankelijk. Om toegang te krijgen tot een object, moet je weten wie daartoe gerechtigd is. Dat is waar LDAP voor dient: een lijst van gebruikers en apparaten die gebruik mogen maken van diensten, zoals geleverd vanuit de objecten. Samen met nog andere functies, zoals SSO, regelt LDAP het inloggen van gebruikers op netwerken en apparaten. Tenslotte is de router simpelweg het navigatiesysteem, dat vertelt hoe je van het ene naar het andere object gaat. Het zal duidelijk zijn dat al deze netwerk functies met elkaar samenwerken. Minimaal gebruiken ze elkaars informatie, maar beter nog helpen ze elkaar om de informatie over de objecten en gebruikers in het netwerk up-to-date te houden.

Een object zelf kan binnenshuis ook weer zo’n netwerk constructie hebben. En een groep objecten (bijvoorbeeld een stad) kan deel uitmaken van een groter netwerk (provincie of land), steeds met dezelfde netwerk functies zoals eerder beschreven. Voorbeeld: je mobiele telefoon krijgt altijd een IP-adres, of je nu op het mobiele netwerk zit, thuis je WiFi gebruikt, of in een winkel met WLAN verbinding maakt. Het maakt niet uit of je in Nederland bent, of ergens anders: dezelfde principes zorgen ervoor dat je online bent. Dat zijn allemaal voorbeelden van geneste netwerken.

Mijn huisnetwerk moet dus niet alleen intern goed werken, maar vooral ook zorgen voor verbinding met de buitenwereld. Niemand is tegenwoordig onbekend met hackers en andere internet criminelen. Netwerkapparaten hebben daarom vrijwel altijd firewall beveiliging, waardoor (ongewenste) toegang van buitenaf wordt geblokkeerd, tenzij van binnenuit uitgenodigd. Soms is het echter nodig om toegang te geven aan bezoekers, bijvoorbeeld als je een website hebt, of email wilt ontvangen. Daarvoor heeft de router een extra functie, genaamd “port forwarding”, waarbij bepaalde soorten informatie naar een vooraf bepaald object gestuurd worden.

De oude oplossing zorgde er niet voor dat DHCP en DNS elkaar op de hoogte hielden van veranderingen in het netwerk. De standaard DNS server in Synology is beperkt, en kan bijvoorbeeld niet automatisch reverse DNS aanmaken. Nieuwe apparaten op het netwerk moeten handmatig worden toegevoegd aan de hand van de DHCP informatie uit de router. En als de server om welke reden dan ook opnieuw start, ligt DNS een tijdje plat, waardoor apparaten even zoekende zijn (melding: “slechte internetverbinding”). Het is overigens ook mogelijk om een DHCP server op Synology te installeren, maar die is niet veel beter, en werkt ook niet samen met DNS. Bovendien is de afhankelijkheid van de NAS alleen maar groter daardoor. Toen ik HA Green geinstalleerd had was Home Assistant niet meer beperkt door de NAS, maar pas toen ik de Technitium DNS (en DHCP) ontdekte, kwam ik achter de grote voordelen van deze opzet.

In de nieuwe opzet heb ik ook de Synology servers anders ingedeeld. De DS1517+ heeft nu alleen nog maar entertainment en Office functies, waarvoor de twee uitbreidingseenheden extra opslag bieden. Die set-up vreet de meeste stroom, en kan dus tijdens stroomuitval zonder bezwaar uitgeschakeld worden. De kleinere (en nieuwere) DS718+ is in vergelijking daarmee veel zuiniger in gebruik, en kan eventueel aan blijven staan. Bovendien levert de eigen batterij (een EcoFlow River 3 Max Plus met UPS functie) bij volle lading dan ruim 10 uur stroom, 3 keer zo lang als met alle apparaten aangesloten. Daarom zijn hier de kritische toepassingen ondergebracht: Email, Chat, Notes, Adresboek, Kalender, LDAP, SSO en Surveillance (in noodsituaties zullen publieke communicatiekanalen langer in de lucht blijven, dus is het goed intern ook beschikbaar te zijn).

De Technitium DNS (en DHCP) server op HA Green is veel geavanceerder als voorheen beschikbaar op zowel router als NAS. Ik ben begonnen met de standaard instellingen, en heb successievelijk een en ander geoptimaliseerd voor mijn situatie. Dat is te gedetailleerd om hier toe te lichten, maar de hulpteksten in het programma zijn zeer helder, en ik ga ervan uit dat bijna iedereen de juiste instellingen kan vinden. De voordelen zijn (in willekeurige volgorde):

  • De DNS server maakt automatisch de bijbehorende reverse DNS zone aan.
  • De DNS server maakt gebruik van forwarders, eenvoudig te selecteren uit een lijst, of zelf in te vullen. Als een aanvraag vanuit het lokale netwerk door de eigen DNS server niet kan worden beantwoord, stuurt deze het verzoek door naar een publieke DNS server ergens op het internet.
  • Ik beheer bij mijn domeinnaam ook mijn eigen publieke DNS server. Het is wel zaak om de juiste waarden van DNS records in de publieke en de private server in te stellen. Voorbeeld: de publieke DNS server heeft een MX-record, aangevend waar mijn email server te vinden is, welke naar mijn glasvezel-IP-adres wijst. Van daaruit zorgt port-forwarding voor de juiste route. Het lokale MX record wijst echter direct naar de specifieke server (anders kun je vanuit je eigen netwerk niet goed bij je eigen emails komen). Er is dus enige zorgvuldigheid gevraagd! Uitgangspunt is dat het lokale netwerk volledig operationeel is als je de glasvezel loskoppelt (zoals bij internetstoringen).
  • De DHCP server zorgt bij adres-toewijzing (“lease”) ervoor dat ook DNS records en zones worden gecreëeerd.
  • Het instellen van vaste IP-adressen is zeer eenvoudig: je verandert een dynamic lease naar reserved, eventueel na aanpassing van het IP-adres, en door even de netwerkverbinding van het betreffende apparaat los en weer aan te koppelen is het (nieuwe) IP-adres toegewezen aan dat apparaat, en zijn ook de overeenkomstige DNS records aangepast.
  • Er zijn veel DNS zones mogelijk (niet dat dit meteen zinvol is, maar toch: ik heb een situatie waarin automatisch een sub-zone werd gemaakt voor een speciale groep apparaten).
  • De DHCP server kan meerdere “scopes” (adresbereiken) aan, zelfs van totaal verschillende netwerksegmenten (voorbeeld: ik heb voor “WiFi 1” het segment 192.168.1.0 /24, en voor “WiFi 2” 192.168.0.0 /24).
  • De DNS server heeft ingebouwde, eenvoudig in te stellen filters die trackers, advertenties en omleidingen naar dubieuze websites blokkeren (“PI-hole” functie, voor de liefhebbers). Dat betekent dat als je een website bezoekt en een cookie wil een advertentie plaatsen (waarvoor altijd een DNS aanvraag wordt ingediend), deze aanvraag “ins blaue hinein” verdwijnt, en de advertentie niet verschijnt. Op de webpagina (of in je email) verschijnt dan een leeg veld met wat cryptische tekst. Dat is zeer rustgevend, vind ik.
  • De applicatie biedt veel mogelijkheden om ongewenste (re-)directs via DNS te blokkeren of juist toe te staan. Sommige websites werken helemaal niet als er teveel cookies of trackers geblokkeerd worden. Soms worden er namelijk interne links gebruikt om een pagina dynamisch op te bouwen (zoals bijvoorbeeld bij Reddit), en dan is het beter om specifiek dit domein meer mogelijkheden te geven.
  • Eke dag wordt automatisch een update gemaakt van de complete Home Assistant set-up, inclusief Technitium. Herstarten van HA Green kost hooguit een paar minuutjes (soms nodig bij updates van onderdelen van de programmatuur). Dat is geen groot probleem voor gebruikers in het lokale netwerk.

Deze setup draait naar volle tevredenheid. Met HA Green kreeg ik de mogelijkheid voor veel betrouwbaardere communicatie via Zigbee en Z-Wave, en kon ik ook een RS-485 aansluiting met ModBus besturing implementeren. Ik heb tevens via een aparte WiFi-router een subnet gemaakt waar alleen de home automation apparaten gebruik van maken. Zo kan ik het normale WLAN netwerk uitschakelen zonder mijn automatiseringen te verliezen (mobiele apparaten kunnen met een USB-C naar Ethernet adapter nog steeds worden gebruikt). HA Green is daarmee dual-ported met Ethernet en WiFi. Maar dit is onderwerp voor een ander bericht!