Joakim Melin

Vidare äventyr med Unraid

Unraid

Efter min lyckade och samtidigt misslyckade första installation av Unraid så rev jag hela systemet, stoppade i ytterligare tre SSD-diskar och satte sedan igång med att bygga min array på rätt sätt. Det rätta sättet var enligt vad jag kunde läsa mig till detta: ZFS eller btrfs för array:en där datat lagras, ZFS för den eller de diskar man vill använda som cache och paritetsdisken ska vara en SSD-disk som är minst lika stor som den största disken i din array. Så jag tänkte att ZFS är väl en bra väg att gå och satte därmed igång med att bygga det hela.

Unraid filsystem

Unraid är hyfsat ologiskt när det gäller att bygga en array, i synnerhet när det gäller just vilket filsystem man ska välja. Man kan välja att lägga till diskarna till en array och startar man sedan denna array så väljer Unraid själv vilket filsystem som körs, vilket i praktiken innebär XFS som vad jag förstår närmast är standard i Unraid.

Man måste därför klicka in sig på varje disk och sätta ZFS som filsystem. Inte helt logiskt som sagt men när man väl vet det så är det ingen ko på isen direkt.

Unraids implementation av ZFS är inte mer logisk. I Freenas man kan sätta cache och logg-diskar för en volym men i Unraid så kan man välja en cachedisk och sedan en paritetsdisk. Vad man ska med en paritetsdisk till när man samtidigt har valt raid-z 1 eller 2 som uppsättning för ZFS, vilket alltså innebär att man kan tappa en eller två diskar i sin volym utan att förlora data, är för mig obegripligt.

Unraid med ZFS

Men låt gå då - jag satte upp det hela enligt den modellen: ZFS med raid-z 1 och en paritetsdisk och sedan formatterades diskarna och pang så var det klart. Två saker noterade jag omedelbart: ZFS åt upp i princip allt av de 20 gigabyte internminne som sitter i NAS-datorn (kanske inte helt oväntat men Freenas har ett bra sätt att balansera det där - Unraid verkar inte besitta samma egenskaper), och min NAS-dator gick oerhört långsamt. Kanske hade det gått snabbare med en cachedisk men på något sätt är jag en aning skeptisk till det, utan att kunna ta på varför.

Jag satte därefter igång med att tanka över de över två terabyte data som ska lagras på den och noterade snart att den hade problem med vissa filnamn, prestanda och… vips så kraschade Unraid.

Unraid med ZFS

Så jag började läsa på ännu mer. Efter ett par timmars studerande och funderande så kom jag fram till följande konfiguration: sex stycken 1TB SSD-diskar i min array, en 1TB SSD-disk för paritet och 500 gigabyte SSD-disk för cache. Jag satte cachedisken till ZFS och arraydiskarna till XFS.

Unraid med ZFS

Efter att jag byggt upp denna konfiguration så formligen flyger lagringen fram. Dock kan man bli lite smått ledsen på tiden det tar att bygga en ny paritetsdisk men det är knappast Unraids fel.

Unraid med ZFS

Inga krascher har inträffat och de Docker-baserade applikationer jag installerat fungerar också utmärkt. Här skiljer sig Unraid väldigt mycket mot exempelvis Truenas. Kanske är det en indikation på att Unraid främst vänder sig till hobbyister och hemanvändare medan Truenas siktar lite högre upp i “näringskedjan” för i Unraid så finns det i princip allt i form av “plugins” som körs som kontainrar under Docker. Man kan också köra virtuella maskiner under Unraid (jag har inte testat det ännu men gissar att det baseras på Qemu eller liknande då virtio-drivrutiner ska användas för Windows-baserade virtuella maskiner).

Jag får acceptera att jag inte har TRIM-stöd för mina SSD:er när jag använder XFS, men med tanke på hur billigt det är med SSD-diskar på en terabyte nu för tiden kan jag nog leva med det.

När detta skrivs är det drygt två dygn kvar på Unraids “Cyber Weekend Sale” där de erbjuder 10 procents rabatt på alla licenser. Unraid är till skillnad mot Truenas inte gratis utan kostar pengar men det är en engångskostnad och man kan provköra Unraid utan att betala i åtminstone en månad utan problem så är du nyfiken rekommenderar jag att du tar en titt.

Äventyr med Unraid

Unraid

Efter att ha använt Truenas i närmare ett år så kom jag till ett par slutsatser. Det första är att jag blivit galet trött på att lyssna på fyra stycken 4TB-diskar snurra och knattra. Det andra är att äldre hårddiskar, som de nyss nämnda 4TB-diskarna, inte är en bra ide att köra med Truenas och ZFS då det verkar ta livet av dem i en hyfsat hög hastighet. Låt vara att detta var gamla Seagate “Enterprise”-diskar på 4TB vardera som redan hade ett antal år på nacken, men under det dryga året jag kört denna lösning så har jag fått kasta fyra diskar som packat ihop.

Detta kombinerat med att jag var nyfiken på en annan lösning gjorde att jag grävde djupt i plånboken, köpte mig ytterligare ett antal SSD-diskar och smackade ihop en “ny” maskin med åtta 1TB SSD-diskar, 20GB RAM och en AMD Ryzen 5 2400G-processor som numera kör Unraid.

Resan var dock inte helt smärtfri för att komma dit.

När jag började bygga min Unraid-maskin hade jag nämligen bara fyra SSD-diskar. Eftersom jag gjorde som jag brukar göra så läste jag givetvis ingen dokumentation utan laddade ned verktyget för att skapa en USB-sticka för Unraid och sen satte jag igång.

Unraid skiljer sig nämligen från Truenas på många sätt, och ett av dessa är att Unraid inte går att installera på en hårddisk. Det är byggt för att boota från en USB-sticka. Det är ju inget problem om man väljer en bra USB-sticka som inte redan har raderats 511 gånger (jag kommer till det senare). Tanken med USB-stickan är inte så dum som den kan låta - eftersom man betalar för Unraid så kan man också lätt flytta systemet med USB-stickan till en annan maskin om man vill använda systemet där istället.

Jag satte igång att skapa en array baserad på filsystemet XFS. Det verkade som standardinstallationen så jag valde det och vips så hade jag en array på 4TB (4 x 1TB SSD). Detta var mitt första misstag.

Mitt andra misstag var jag inte läste på om behovet av en paritetsdisk. Eftersom XFS inte är ett RAID-system, eller på något sätt erbjuder någon form av redudans utan just en paritetsdisk, så är det sistnämnda inte ett önskemål, det är ett krav.

Mitt tredje misstag var att välja just XFS. Unraid gör en stor affär av att man kan putta i vilka hårddiskar man vill i sitt system och vips så har man en NAS. Det är förvisso sant, men om man väljer XFS kan man i efterhand inte expandera sin array. Unraid skriver själva på sin blogg att det bara är att expandera, men det är i mitt tycke en aning luddigt:

“Unraid’s native XFS or BTRFS file systems deliver good read speeds for most media server users.

The array is readily expandable (an essential consideration for you media data hoarders out there as your collections grow!)”

Detta faktum upptäckte jag efter att jag köpt ytterligare tre SSD-diskar på 1TB vardera, tre för data och en för paritet.

disksetup i Unraid

Mitt fjärde misstag var samma som mitt tredje: att välja XFS. Unraid är nämligen egentligen byggt för att använda sig av vanliga hårddiskar. Man kan, om man kör XFS, använda SSD:er för cache, men det är inte rekommenderat att man bygger en vanlig array baserad på XFS om man använder enbart SSD:er. Detta beror på att Unraid inte stödjer TRIM när man använder XFS (använder man btrfs eller zfs så är detta inte ett problem). Har man en cachedisk inlagd i sin XFS-array så kan man köra trim på den, men inte övriga diskar i array:en.

Vad är då lösningen? Jag fick tömma hela min array på data, radera den och sedan skapa en ny array baserad på btrfs eller zfs.

Mitt femte misstag var att jag valde ett äldre USB-minne att boota från. Det är nämligen så att även om Unraid inte skriver loggar och annat till USB-minnet så lagrar den en hel del väldigt viktig information om systemet, i synnerhet information om dina diskar, din licens, din array, konfiguration, och så vidare. I mitt fall så visade sig problemet med USB-minnet inte förrän jag startade om systemet och det inte gick att starta från det längre.

Jag försökte läsa ut information från USB-minnet men partitionstabellen var rökt och de filer som jag faktiskte behövde var korrupta. Så jag fick börja om med ett nytt, i alla bemärkelser, USB-minne och koppla ur mina tre nya diskar. Efter det var det inte svårare än att lägga till de fyra diskar jag redan hade och vips så var min array tillbaka. Till och mina Docker-containrar bara fungerade utan vidare. Hade jag däremot haft en paritetsdisk och inte vetat vilken disk det var så hade jag haft betydligt större problem.

Lösningen på detta är att ta regelbunden backup på konfigurationen - det finns en funktion för detta i det för övrigt riktigt trevliga webbgränssnittet. Varför USB-minnet avled? Vem vet - det kanske inte var byggt för att vara inkopplat dygnet runt.

Detta är en första bloggpost av mina intryck av Unraid. I del två reder jag ut hur en fungerande konfiguration, med sina fördelar och nackdelar, ser ut.

Datormagazin Retro #7: boka ditt nummer idag!

Nog för att en Mac eller iPad är rolig. Eller kanske till och med en PC. Men ibland är det senaste inte riktigt vad själen behöver. Ibland behöver man få frossa i forntiden, i det som var (för allt var ju bättre förr, som alla vet). Det är för såna som dig som vi gör tidningen Datormagazin Retro och nu är det dags för vårt sjunde nummer!

Som vanligt kommer tidningen vara fullpackad med intressant och rolig läsning, och här är några artikelideér vi surrat om under planeringen:

  • Historien om Dune 2
  • Vi besöker Embracer Games Archive
  • Programmera mera på C128
  • Världens mest sällsynta Amiga
  • Giana Sisters vs. Super Mario Bros
  • Demodags
  • Backchat med Brad S
  • Expertens bästa tips
  • … och mycket mer

Glid över till Datormagazin Retros kampanjsajt omedelbums och spana in de fina paketen som erbjuds. Ju snabbare vi har 1000 förbeställningar, desto snabbare kommer tidningen levereras.

Cloudflare-tunnel och Wordpress

Då jag kör alla mina webbsajter, och även poddens dito, via tunnlar hos Cloudflare så är det givetvis så att saker och ting är en aning annorlunda jämfört med att köra sajten “naket” direkt mot Internet. Cloudflares tunnel fungerar som en proxy som routar trafiken via Cloudflare och i Cloudflares proxy termineras även SSL-certifikaten för webbsajterna, med mera.

Detta fungerar utan några som helst problem för sajter som denna, men för Wordpress är det annorlunda. Wordpress är, och har alltid varit, ganska uselt på att hantera SSL. En värre blir det när man ställer en webbsajt baserad på Wordpress bakom en proxy, i det här fallet tunneln via Cloudflare. Jag lyckades till slut få det att fungera när jag gjorde hela flytten till egen server hos Hetzner i somras men då jag var tvungen att rota runt lite i konfigurationen idag, och givetvis hade sönder allt eftersom jag inte mindes hur jag löst det, så bestämde jag mig för att dokumentera det för mig själv och för andra som funderar på att göra samma lösning.

Varför ska man titta på en tunnel hos Cloudflare, kanske du undrar? Om du kör en server hemma och inkommande trafik är spärrad, eller om din internetleverantör använder sig av det som kallas för Carrier-grade NAT, eller CGNAT (för att ta två exempel), så kan en gratis tunnel hos Cloudflare göra att du faktiskt kan köra din webbsajt hemma ändå.

Wordpress och Cloudflare-tunnel

När man sätter upp sin tunnel mellan Cloudflare och sin egna server så finns det ingen anledning att skicka trafiken över https (kryptering medelst SSL)-protokollet då trafiken mellan Cloudflare och din server går i en krypterad tunnel. Alltså gör man det enkelt för sig och låter webbservern hemma prata http, utan något SSL-certifikat. När man installerat sin Wordpress-sajt och fått igång tunneln mellan servern och Cloudflare kommer man upptäcka att sajten fungerar fin-fint när man besöker den, men när man går in i inställningarna och vill ändra sajtens adress till https://www.dinsajt.tldså brakar det. Du kan inte logga in administrationsgränssnittet och ställa tillbaka webbsajtens adress till http://www.dinsajt.tld och om du inte vill sätta igång och rota i databasen för att där ändra webbsajtens adress (den lagras i databasen, nämligen) så är läget en aning knepigt.

Sajten kommer kunna fortsätta att ta emot besök men när man vill logga in i det administrativa gränssnittet så får man det ökända felmeddelandet om “too many re-directs”. Detta beror på att Cloudflare-tunneln försöker leda om all trafik till https medan webbservern hemma är konfigurerad för att endast prata http. Detta gör att Wordpress vill prata https medan webbservern vill prata http, och sen går detta i en loop några gånger tills webbläsaren ger upp.

Lösningen är relativt enkel, och den matas in i wp-config.php-filen där din Wordpress-konfiguration ligger.

Dessa två rader är din räddning:

define('WP_HOME','http://www.dinsajt.tld'); define('WP_SITEURL','http://www.dinsajt.tld');

Genom att ange http i dessa två rader så kommer du kunna logga in i administrationsgränssnittet igen och kunna fortsätta arbeta med din webbsajt.

Snart kommer dock ett annat problem att uppstå, och det beror på att Wordpress tror att den kommunicerar via http och inte https vilket gör att innehållet i Wordpress inte skickas enbart över https, så-kallat mixed content. Detta löser du genom att ange följande rad i wp-config.php:

$_SERVER['HTTPS']='on';

Nu talar du om för Wordpress att den skickar ut all data via https.

Ett tredje problem kan uppstå om du installerar en plugin för exempelvis trafikanalys till din webbsajt. Du kan se felmeddelanden som detta:

Error connecting to WordPress REST API. Disable ad-blocker for this page or unblock /wp-json/wp-statistics/v2/metabox in the ad-blocker configuration.

Detta har dels med problemet ovan, mixed content, och dels med att Cloudflare har en egen brandvägg som nyper ihop så fort den misstänker att det går lite väl mycket trafik till en viss del av din webbsajt. Jättebra i normala fall men inte i detta läge.

För att komma runt detta så skapar du en regel hos Cloudflare för att slå av säkerheten för www.dinwebbsajt.tld/wp-json/*. Mina två regler för poddens webbsajt ser ut så här:

Efter att du skapat denna regel och också lagt in ändringarna i wp-config.phpså ska din sajt fungera normalt.

ftp.melin.org är tillbaka

När jag skrotade mitt Raspberry Pi-kluster så hade jag inte längre något att köra min “ftp”-server på hemma. Jag säger “ftp” men egentligen så serveras filerna över https då jag inte kan köra ftp hem av olika anledningar.

Hur som haver, nu är tjänsten tillbaka igen. Jag har hört att flera personer har frågat efter den så jag satte upp en virtuell server på min Truenas-maskin och tack vare en tunnel via Cloudflare så går det nu att komma åt filerna igen. Yay!

Du hittar hela grannlåten på ftp.melin.org. Mycket nöje.

Katastrofen som är Fedora 38

Då och då brukar jag installera min favorit-Linuxdistribution, Fedora, på en hyfsat modern PC och se vad denna version av Linux går för.

Jag insåg idag att det var ett bra tag sedan jag skrev om det senast så här kommer en liten uppdatering på läget. Bilden ovan kan anses vara hyfsat indikativ på hur mitt lilla test gick…

De senaste åren har för Fedora inneburit en gradvid utfasning av X.org till förmån för Wayland som fönsterhanterare, och små men stadiga förbättringar på en rad olika områden. Andra områden har förändrats till, i mitt tycke, det sämre. Överlag måste man dock säga att gänget bakom det grafiska gränssnittet Gnome tar steg för steg mot en del av det jag pekade på redan 2018 vilket är väldigt glädjande. Små, enkla, verktyg som exempelvis det för att ta skärmbilder har blivit betydligt bättre. Integrationen i Gnome mot Microsofts onlinetjänster fortsätter att vara omöjligt dåliga. Mycket saknas dock fortfarande och det är säkerligen lika frustrerande för utvecklarna av Gnome som det är för oss som använder det.

Här följer några exempel på hur Gnome, och Fedora, innehåller både framsteg men också stampande på ett och samma ställe år efter år:

När jag försöker ansluta med mitt “Microsoft-konto” som jag har för mailkontot som Microsoft hanterar åt mig via Exchange Online, så får jag ett meddelande att kontot inte finns. Om detta beror på att implementationen i Gnome för detta gentemot Microsoft är gammal vet jag inte. Jag testade istället att ansluta via Gnomes Exchange-implementation och den är ungefär lika usel den. Den förstår inte att slå upp var autodiscover.melin.org pekar, utan istället står den och snurrar i all evighet utan att varken ge upp eller lyckas. Jag anger då korrekt serveradress, outlook.office.com men det hjälper inte heller för då går det inte att logga in, trots att inloggningsnamn och lösenord är verifierade och korrekta.

Jag testar med e-postklienten Thunderbird istället och till min glädje ser jag att när jag matar in mina kontouppgifter kan den slå upp vilken server den ska ansluta till, känna av att kontot ligger hos Exchange Online, erbjuda sig att installera den plugin som krävs för full integration, och sedan göra klart allt. Det tog ett par minuter. Mycket bra. Att Thunderbird numera i praktiken framstår som en webbläsare snarare än en e-postklient kan vi lämna därhän, det fungerar och det fungerar väldigt bra.

Integrationen mot Nextcloud är sedan ett bra tag inbyggt i Gnome men det förvånar mig till denna dag hur långsam den är. Att man dessutom inte får någon lokal katalog i filsystemet (exempelvis ~/NextCloud) av filerna utan att Gnomes Nextcloud-implementation tycks logga in varje gång jag vill komma åt mina filer och listar (efter ett antal sekunders väntan) innehållet i Nextcloud-kontot, är rätt irriterande.

Installera drivrutiner

Jag ville installera drivrutiner för mitt grafikkort från Nvidia för att förbereda mig för punkten som kommer efter denna. Jag surfade till Nvidia och laddade ned drivrutinen och försöker installera den. “Jag måste vara root”, meddelar installationsprogrammet. Det kan jag förstå. Så jag blir root. Då meddelar installationsprogrammet att de känner av att jag kör X.org (vilket jag inte gjorde, eller kunde. Jag kommer till det strax) och jag skulle istället logga in utan att ha X.org igång.

Jag loggar ut från Fedora och trycker alt-f2för att få upp en textsession, vilket gick efter en stund. Efter lyckad inloggning försöker jag köra installationsprogrammet för Nvidias drivrutin igen, men med samma resultat.

När jag var på väg att ge upp hela denna övning så ser jag i “mjukvarubutiken” att någon vänlig själ packat ihop drivrutinerna så jag laddar hem dem den vägen.

Frid och fröjd? Nja…

Spela spel

Jag tänkte att jag skulle testa hur det är att spela spel i Fedora 38. Jag har aldrig riktigt gjort det i Linux och jag såg att de hade en demoversion av Quake 3 i sin egna mjukvarukatalog så varför inte?

Spelet laddades ned och jag ska därefter starta det. Gnome kraschar. Jag startar om datorn, tänkandes att drivrutinen kanske måste läsas in, men resultatet blir det samma. “Wayland måste vara problemet”, tänker jag.

Jag testar att logga ut från Gnome och väljer att logga in med X.org som fönsterhanterare istället. Inget av de alternativ som finns som ger mig X.org fungerar dock - jag möts av en grå skärm där varken muspekare eller skrivbord syns eller fungerar. Jag väntar 7-8 minuter innan jag trycker på stora knappen och stänger av datorn.

Jag loggar in med Wayland igen och försöker starta Quake 3 en gång till. Krasch. Den här gången tänker jag att jag åtminstone ska rapportera in felet. Jag kanske sitter på något ultraovanligt edgecase som är jätteviktigt att de får reda på (troligen inte…).

Efter att ha fyllt i felorsak och tillåtit åtkomst till diverse information så möts jag av dialogrutan ovan. Jag har inget konto i Bugzilla och jag tänker inte skaffa ett heller. Jag ignorerar dialogrutan och kör vidare men möts snart av följande vy:

Det är nu jag ger upp.

Summering

Jag älskar Linux. Jag gillar verkligen Fedora. Jag gillar tanken på en modern Linuxdistribution som fungerar med tjänster som faktiskt finns i omvärlden. Jag gillar att Fedora äntligen integrerat Flatpaks i sin egna “mjukvarubutik” för det finns massor med kul saker att ladda ned och testa bredvid applikationer som Slack, Discord, Thunderbird och en hel del annat intressant.

Huruvida de som utvecklar Fedora faktiskt testar saker är en annan pilsner. Från början var Fedora en distribution där Red Hat testade saker, där man kunde förvänta sig att saker var trasiga, eller gick sönder, och det fick man vackert leva med. Men det är inte så Fedora Linux marknadsförs längre - nu är det “ditt operativsystem” som är “innovativt” och är byggd med “kärlek”.

Jag ville bara installera Linux och testa att spela lite för att se om det faktiskt gick. Men det gick inte, och Fedora framstår som trasigare än på många år. Missförstå mig rätt - det finns miljontals användare av Fedora, och de finns av en anledning för det finns väldigt mycket bra som faktiskt fungerar väl.

Kanske är jag ett edgecase ändå: jag ville använda min PC utan att ta hänsyn till om den hade Windows 10 eller Fedora Linux 38 installerat. Det kanske är en utopi? Kanske är det så att Linux aldrig riktigt kommer ikapp resten av marknaden (det vill säga: Windows och macOS) ? Kanske är det så att kör man Linux på skrivbordet så får man leva med att det fungerar hyfsat mycket men inte till 100 procent?

Det finns säkert lösningar på allt det jag upplevde under några timmars testande, men inte alla har tid, lust eller tålamod att börja gräva ner sig i det träsket. Jag tillhör tyvärr den kategorin just nu.

Vilken Linuxdistribution ska jag testa nu? Debian, kanske?

Jag återkommer när jag gjort den resan. Det borde inte ta tre år till nästa rapport men jag lovar ingenting.

Xiaomi smart tower fan

Den oerhörda sommarvärmen i juni gjorde att min yngste son krävde att få en fläkt även på hans rum. Inga konstigheter, men det gjorde också att jag var en fläkt “kort” i vardagsrummet.

Då jag tidigare testat en av Xiaomis “smarta” fläktar med hyfsad framgång så tänkte jag helt sonika köpa en likadan fläkt till, men nu var de slutsålda överallt. Vad som däremot inte var slutsålt var en annan modell, en tornfläkt kallad “Smart tower fan” vilken jag snabbt insåg skulle passa bättre i hörnet i vardagsrummet där den gamla fläkten hade stått. Prislappen var inte överdrivet jobbig heller, strax under tusenlappen, så jag slog till.

Glädjande nog levererades fläkten tämligen omgående och efter uppackning och installation (den lät sig anslutas till Homekit via Homebridge utan större problem - Xiaomi verkar inte riktigt ha landat HomeKit-stöd i alla sina produkter ännu…) så var det dags att köra igång och testa den. Fläkten är för övrigt högre än vad man kan tro - den är 1,1 meter hög vilket gör att den syns utan att egentligen ta särskilt mycket plats.

En annan glädjande egenskap jag i sedvanlig ordning hade missat var att denna fläkt är betydligt mer avancerad i sina inställningar jämfört med Xiaomis Smart standing fan 2 lite. Här kan man nämligen ställa in fläktens hastighet och pendlingslängd med rätt stor precision vilket är glädjande. De inställningar ni ser i bilden ovan är i princip de jag brukar köra med och då är fläkten visserligen inte ljudlös men heller inte störande. Xiaomi smart tower fan har tre olika driftlägen: “Sleep” som ska passa bra när man sover, “Natural breeze” som ska simulera en vanlig naturlig vind och “Direct breeze” som erbjuder det jämnaste luftflödet och passar bra när det är varmt som attan hemma.

Fläkten ska enligt Xiaomi kunna flytta upp till 541 kubikmeter luft per timme “utan att dra mycket energi”. Jag har inte mätt hur mycket ström fläkten faktiskt drar men jag har inte sett någon nämnvärd ökning av energiförbrukning i mitt hem sedan jag började använda denna fläkt så gott som dagligen. För de med små barn ska det också nämnas att det inte går att peta in fingrarna i denna fläkt, vilket torde vara ett stort plus.

En summering kanske?

På plussidan får man säga att designen, priset och funktionen (minus det som kommer härnäst) finns.

På minussidan avsaknaden av stöd för Homekit. Xiaomi menar att de stödjer “de vanligaste röstassistenterna, Google Assistant och Alexa” och det är säkert sant utifrån ett marknadsperspektiv men eftersom de faktiskt stödjer Homekit med vissa av sina produkter, varför inte alla? Det går som sagt att lösa med hjälp av Homebridge men då jag flyttat alla mina Xiaomi-produkter (förutom Smart LED Desk lamp pro) till ett separat wifi-nätverk hemma (avskilt från mitt interna där alla datorer, telefoner, med mera finns) så kan inte Homekit prata med enheterna längre såvida jag inte börjar mecka runt med en massa brandväggsregler. Vilket jag i ärlighetens namn inte orkar med just nu.

Xiaomis app är kanske inte världens bästa men den duger.

Diverse noteringar, del 1

Tänkte få ur mig diverse kortare uppdateringar om olika saker som inte rikigt räcker till för en längre bloggpost.


Asteroid City

Asteroid City - Wes Andersons senaste film. Som vanligt är den visuellt fullpackad med stora och små egenheter som jag verkligen älskar, men är den bra? Nej, egentligen inte. Den känns ganska tom och så fullsmetad med namnkunniga filmstjärnor som alla kunnat bära filmen på egen hand. I Wes Andersons andra filmer, där det också tenderar att ingå (minst) en handfull namnkunniga stjärnor så har de små egna avsnitt i filmerna där de får spela ut.

I Asteroid City buntas de ofta ihop tillsammans och det tar fokus från det redan ganska svaga manuset. Wes Anderson har gjort många filmer jag verkligen avgudar (Rushmore, The Grand Budapest Hotel, The Royal Tenenbaums och The French Dispatch) men han verkar blanda och ge och Asteroid City kändes mer som The Darjeeling Limited eller The Life Aquatic with Steve Zissou: rörig och ofokuserad.

Jag diskuterar för övrigt Asteroid City med Christian i senaste avsnittet av Björeman / Melin / Åhs som släpps vilken dag som helst nu.


Jag lyckades efter mycket om och men få igång en Matrix-server genom en Cloudflare-tunnel. Det knepiga var att få federingen att fungera men denna guide var till stor hjälp. Nu fungerar det så fint så.


Jag och mina två söner tyckte det skulle vara en kul ide att se alla Transformers-filmerna. Två filmer in är jag inte så säker på att det var ett bra beslut av mig men jag uthärdar då detta är synnerligen hjärndöd underhållning. Kanske vore det på plats med ett VMA: se inga filmer som Michael Bay har regisserat - endast en film har fått över 7.0 i betyg på IMDB (13 hours) och ser man till hela hans katalog som regissör så har flera av hans musikvideos för diverse artister fått högre betyg på IMDB än hans filmer.


Jag brukar inte se på fotboll förutom när det är större mästerskap som ska avhandlas och nu pågår dam-VM som bäst. Ett par saker som jag noterat är dels att damspelare tillbringar betydligt mindre tid liggandes på gräset och fejkar skador än sina manliga motsvarigheter och dels att våra svenska tjejer utan större problem kvalificerar sig till VM och EM. Något man inte kan säga om herrarna i landslaget…


Jag bestämde mig för att sluta använda ethernetanslutningen i min skärm. Wifi-6 är helt enkelt snabbare, men det kanske säger mer om skärmens nätverksprestanda i synnerhet snarare än Ethernet i allmänhet och detta verkar inte vara ett problem enbart för Mac-ägare utan också för de som kör Windowsdatorer.


Sinéad O´Connor har gått bort, 56 år gammal. Ett kreativt och bitvit kaotiskt liv kom till ända på ett till synes väldigt plötsligt sätt. Dokumentären om hennes liv, Nothing Compares, kom minst sagt lägligt och kan ses på SVT Play.


Älgskav. Mums.

Lyckades få med mig nästan ett kilo älgskav från min resa till Lycksele och nu står en smaskig gryta på programmet.


Fyra dagar kvar på årets sommarsemester. Vet inte vars värmen tog vägen men det har ändå varit behagligt väder på något sätt. Resor till Skara Sommarland och Arboga med barnen och till Lycksele och Umeå har varit precis lagom mycket resande för min del. Fyra sovmorgnar kvar och sen är det upp i svinottan igen.

Från VPS till egen server

En gång i tiden så hade jag ett eget serverkluster i källaren, med fina maskiner från Super Micro, Dell och till och med Apple i form av Xserve. Det var utmanande, roligt, utmattande (i synnerhet när källaren svämmade över, vilket hände både en och tre gånger…), dyrt och också oerhört flexibelt i det att jag kunde köra i princip vad som helst hemma, på mitt egna nätverk.

Fig 5: Halvjobbigt läge

För två år sedan gick flytten till en lägenhet och med det försvann också möjligheterna att köra massor med servrar och lagring och annat roligt, inte bara på grund av platsbrist utan också på grund av de ständigt skenande elpriserna.

Så jag hyrde en VPS istället, hos ett franskt bolag som heter OVH som är ganska trevligt. För en dryg hundralapp i månaden (priset har sakta gått upp i takt med inflation och stigande elpriser) har jag kört denna sajt och en rad andra dito på denna lilla VPS med fyra gigabyte minne och 80 gigabyte lagring. Den har sannerligen fått göra skäl för pengarna och i takt med att den började få det lite jobbigt med prestanda (vilket sammanföll med att den fick mer att göra, helt enkelt) och jag samtidigt började känna att köra min Mastodon-instans hemma på en liten AMD-baserad server (den kördes i mitt Raspberry Pi-kluster i ungefär ett år vilket fungerade överraskande bra) inte längre var hållbart så började jag rikta blickarna mot min VPS hos OVH. För att den skulle orka med att köra även Mastodon på samma virtuella server skulle kostnaden gå från en dryg hundralapp i månaden till närmare 300 kronor.

Det visar sig att för lite mer än 300 kronor kan man få så mycket mer. Man kan hyra en hel server, med 64 gigabyte internminne, 512 gigabyte SSD-baserad lagring (i en speglad konfiguration) och en Intel Core i7-7700-processor fyra fysiska processorkärnor (att jämföra med två virtuella dito hos OVH), en publik IPv4-adress och en publik IPv6-adress för drygt 360 kronor per månad. Företaget som gör detta möjligt heter Hetzner och en titt på deras sida för serverauktioner visar hur de hyr ut inte helt nya, men ändå livskraftiga, maskiner i en rad datacenter. Det datacenter jag valde ligger i Helsingfors.

Så jag slog till. Sedan började den minst sagt långa processen att börja bygga upp vad jag i princip hade i min källare för över två år sedan. I princip allt fick göras från minnet då jag inte hade någonting kvar från den tiden, vilket var bitvis utmanande men också bra eftersom jag fick chansen att göra saker och ting “rätt” den här gången.

Installation

Jag hade från början bestämt mig för att köra en virtualiseringsplattform på den här servern och valet föll inte helt överraskande på Proxmox. Jag installerade därför Debian 11 och därefter Proxmox ovanpå detta vilket gick utmärkt.

Därefter kunde jag öppna port 8006 i Hetzners brandvägg och komma åt min Proxmox-server.

“Vänta lite nu!”, kanske du tänker. Ja, att exponera SSH eller Proxmox webbgränssnitt mot hela vida världen är verkligen ingen god ide. Det åtgärdades omgående och jag ska nu förklara hur.

Lösningen heter Cloudflare och deras lösning Zero Trust. För hobbyanvändare är merparten av funktionerna i denna lösning gratis att använda men den förutsätter också att du använder Cloudflare:s DNS-tjänster (också gratis) för dina domäner.

I praktiken fungerar det så här:

Man skapar först en tunnel hos Cloudflare och därefter installerar man en agentmjukvara från Cloudflare på sin server (i mitt fall den server jag hyrt från Hetzner och kör Proxmox på). Därefter är tunneln uppe och man kan då skapa en access till Proxmox och koppla på autentisering på denna så endast du kan komma åt den (tips: sätt mottagande server till https://localhost:8006 och slå på att ignorera TLS-fel så Cloudflare accepterar ditt icke-signerade certifikat). Det smarta här är att man också kan skapa publika tunnlar utan accessregler som kan användas för publika webbsajter, så all trafik går över en och samma tunnel.

Du kan även skapa ett säkert sätt att via din webbläsare logga in med SSH på din server. Glöm inte att slå på autentisering!

Varför då, undrar du? Eftersom Proxmox tar över nätverkskortet i maskinen så finns det i praktiken två sätt att lösa åtkomst från omvärlden till dina webbservrar: en tunnel från exempelvis Cloudflare, eller att du skapar en brygga i Proxmox och sedan routar trafik till och från den bryggan med IP-tables i Proxmox-maskinen och samtidigt öppnar upp för samma trafik både i Hetzners brandvägg och i IP-tables på Proxmox-maskinen. Båda alternativen fungerar, men jag valde att ta det första då det också löser en rad problem. Bland dessa finns DDOS-skydd och certifikathantering, där det tidigare blir oerhört svårt att lösa på egen hand men det senare går att lösa med IP-tables-alternativet och en reverse proxy som all trafik routas till och som skapar certifkat hos Let’s Encrypt.

Genom att köra tunneln hos Cloudflare så får jag också en reverse proxy hos dem där jag kan välja vilken server trafiken ska skickas till. I bilden ovan visas exemplet för min Mastodon-server och hur trafiken flödar till den. Notera att du måste skapa en reverse proxu för varje hostnamn du använder (en för @, en för www, och så vidare) och de hostnamn du matar in här får inte redan finnas i DNS:en för domänen hos Cloudflare utan radera dem först.

Valet av http eller https är alltså på mottagande server och inte hur det ska hanteras mot omvärlden - i detta fall har jag skapat ett egensignerat certifikat på Mastodon-servern, satt att Cloudflare ska ignorera TLS-problem och sedan är det bara att köra.

Konfigurera nätverket

Nästa problem att lösa var hur de virtuella maskinerna som körs i Proxmox kunde prata med omvärlden. Det löstes genom att skapa en brygga i Proxmox (vmbr0), starta om nätverket (ifup -a) och därefter lägga in detta i konfigurationsfilen för nätverket på Proxmox-servern (/etc/network/interfaces):

auto lo
iface lo inet loopback

iface lo inet6 loopback

auto enp0s31f6
iface enp0s31f6 inet static
	address 95.217.37.144/26
	gateway 95.217.37.129
	up route add -net 95.217.37.128 netmask 255.255.255.192 gw 95.217.37.129 dev enp0s31f6

iface enp0s31f6 inet6 static
	address 2a01:4f9:2b:2fce::2/64
	gateway fe80::1

auto vmbr0
iface vmbr0 inet static
	address 10.10.10.1/24
	bridge-ports none
	bridge-stp off
	bridge-fd 0
	post-up   echo 1 > /proc/sys/net/ipv4/ip_forward
        post-up   iptables -t nat -A POSTROUTING -s '10.10.10.0/24' -o enp0s31f6 -j MASQUERADE
        post-down iptables -t nat -D POSTROUTING -s '10.10.10.0/24' -o enp0s31f6 -j MASQUERADE
	post-up   iptables -t raw -I PREROUTING -i fwbr+ -j CT --zone 1
	post-down iptables -t raw -D PREROUTING -i fwbr+ -j CT --zone 1

Starta om nätverket igen (ifup -a) och därefter kan du skapa din första virtuella server i Proxmox. I denna anger du samma IP-nät som vmbr0 tillhör (10.10.10.0/24), exempelvis 10.10.10.10/24, ange 10.10.10.1 som default gateway och ange sedan den samma DNS som din server hos Hetzner använder. Det går att använda valfri DNS om du tweakar brandväggen hos Hetzner och tillåter trafik ut genom den på port 53/UDP men jag har märkt att Hetzners egna (185.12.64.1) fungerar riktigt bra.

Därefter är det “bara” att sätta igång och sätta upp flera maskiner. Ett tips är också att utnyttja Hetzners erbjudande om en “storage box” med 100 gigabyte lagring. Jag monterade den via SAMBA/CIFS från NFS-servern jag satt upp och kör backuper till den på alla webbar en gång per dygn. Jag monterade också samma lagring från databasservern och dumpar databasbackuper dit en gång per dygn. Vill man ha mer än 100 gigabyte lagringsyta så går det givetvis att köpa till för inte helt obcena priser ska väl tilläggas.

Finns det saker du inte kan köra via Cloudflares proxy och tunnel? Ja, det gör det. Nextcloud är ett sådant exempel. Cloudflare är tydliga med att tunneln och proxyn är till för webbcontent, alltså text och bilder. Att använda den för synkningstjänster som Nextcloud, Owncloud eller annat är inte tillåtet och fungerar för övrigt inget vidare heller. Andra saker du däremot kan få, men som kostar extra, är att Cloudflare exponerar vilka IP-adresser trafiken kommer från till dina servrar via X-Forwarded-For i headern på varje request till webbservrarna. Utan det ser det ut som all trafik kommer från den IP-adress som Cloudflares agentmjukvara körs på. Jag kan leva med det men det kan vara bra att tänka på, i synnerhet om man gillar statistik och inte vill nyttja Google Analytics.

Lycka till!

Dream Router: en drömrouter till budgetpris

Dream Router

I takt med att jag skaffat allt fler “Kinaprodukter” i form av fläktar och annat från exempelvis Xiaomi eller robotdammsugare från Roborock så har jag då och då funderat på vad de där enheterna skickar hem för information till Kina egentligen. Att blockera dem från Internet förtar ju en del av funktionen - de ska ju styras från en app eller via någon form av automation (exempelvis Apples Home-applikation via Homebridge) och då krävs en Internetkoppling för att det ska fungera.

Samtidigt började min gamla Unifi-accesspunkt få problem med både räckvidd och stabilitet. Den har trots allt 6-7 år på nacken och det är inte superunderligt om den börjat bli trött. Ett växande intresse för Wifi 6-standarden började också infinna sig varför jag gjorde vad jag gör när för många små problem resulterar i en och samma lösning: jag tänkte kasta pengar på problemet.

Kinaprodukternas snokande kunde givetvis lösas genom att jag satte upp ett separat VLAN och ett separat WIFI-nätverk för detta, och min annars utmärkta switch från Mikrotik kan säkert hantera VLAN men det är inte med någon form av briljans, om man säger så. Eftersom min accesspunkt ändå var på upphällningen så var det bara en sak att göra: shoppa.

Som den oerhört ekonomiske person jag är så gick jakten till Prisjakt och jag sökte helt sonika på “wifi 6” för att se vad jag fick upp för resultat. TP-Link, Asus och andra routrar dök givetvis upp och de var inte bara förvånansvärt dyra utan de känns också lite… kladdiga. Jag vet inte varför men mitt test med TP-Link:s “Deco” för 1,5 år sedan gav knappast mersmak av olika anledningar.

Då såg jag att Unifi-routern Dream Router hade börjat komma ned i pris ordentligt. Inte så konstigt det heller, å andra sidan, med tanke på att den har drygt två år på nacken. Den har på sätt och vis ’ersatts’ av Dream Machine från samma bolag vilken erbjuder betydligt bättre prestanda (vi kommer till det senare) än vad Dream Router kan erbjuda.

Men men - i övrigt klickade Dream Router i alla boxar och jag slog till, som man brukar säga. Ett dygn senare så sitter jag nu här och har precis installerat den, men det var sannerligen inte en supersmidig installation direkt.

Installation

Glad i hågen packade jag upp min Dream Router och petade i ett mikro-SD-kort (vilket visar sig vara potentiellt dumt och helt onödigt om man inte har ‘rätt’ mikro-SD-kort när det gäller typ och storlek och dessutom har säkerhetskameror från Unifi. Dumt, undrar du? Jag kommer till det…) och pluggade där efter in nät och internet och varskodde barnen om att de kunde ägna sig åt att läsa böcker en stund då pappa skulle uppgradera routern.

Routern startade och det tog en stund. En ganska lång stund. Att starta upp en Dream Router tar så lång tid så det nästan blir lite löjligt, men till slut så var den igång och efter ytterligare en stunds väntan så hade vi också trådbunden anslutning till Internet igen. Men inget wifi, givetvis, då jag inte konfigurerat detta ännu.

Här började problemen. Jag laddade ned Unifi-appen från App Store och enligt alla konstens regler fick den tillgång till både wifi och bluetooth i min iPhone 14. Men varken app eller telefon kunde ansluta till Dream Routern. Jag testade att starta om routern men resultatet blev det samma.

Här gjorde jag två saker. Kanske hör de ihop, kanske inte: jag tog ut SD-kortet (vilket jag misstänkte ställde till uppstarten av routern) och gjorde en fabriksåterställning och efter ~15-20 minuters väntan så kunde jag faktiskt ansluta till den med appen i min iPhone och jag kunde börja konfigurera routern.

Yay? Icke så - nu kunde den inte upprätta någon anslutning mot min Internetleverantör.

Dream Router

Jag noterade att Dream Routern som standard är inställd på att ha en statisk IPv4-adress på WAN-porten vilket jag kunde ställa om till DHCPv4 istället. Men det fungerade ändå inte. Att Dream Routern betedde sig på detta sätt berodde på att den inte kunde få en IP-adress från min internetleverantör. Som standard ska Dream Routern testa att få en adress via DHCP först. Detta ordnade sig efter att jag loggat in hos min Internetleverantör och där kunde “släppa leasen” på min IP-adress och då började det fungera efter någon minut.

Uppsättningen utöver detta var rätt enkel och jag har sedan dess slagit på både en och annan funktion i min Dream Router. Mer om det senare.

Prestanda

Dream Router

Under installationen så körde Unifi-appen ett hastighetstest. Då jag sitter med gigabit-internet så är det givetvis trevligt att kunna dra nytta av så mycket som möjligt av denna anslutning, även om jag och min barn i praktiken oftast endast använder en bråkdel av den prestanda som Internetanslutningen erbjuder.

Unifi-applikationen var som synes väldigt entusiastisk när det gällde hur snabb min Internetanslutning är, och jag vet inte hur Unifi mäter denna prestanda men när routern väl är installerad och klar och jag körde ett verkligt test mot Speedtest.net så visar sig verkligheten vara en aning annorlunda:

Dream Router

Visst - 500 till 600 Mbps skäms väl inte för sig, men helt klart är att Dream Router inte är någon dröm när det gäller genomströmning på WAN-gränssnittet åtminstone. Det ska noteras att jag gjorde testet med multipla strömmar vid upp och nedladdning. Jag testade även att köra endast en dataström åt varje håll och resultatet blev faktiskt sämre, 290Mbps vid nedladdning och 392Mbps vid uppladdning.

Funktioner

Att döpa en router till ‘Dream Router’ kan man ju tycka är att kanske gapa över lite väl mycket, men ska sanningen fram så är denna produkt så fullsmetad med funktioner så man undrar om Ubiquity kanske inte tog i lite väl mycket när de byggde den. Jag förstår varför det sitter en fläkt i produkten, och då blir den ändå aningens varm, vilket säger en hel del om hur mycket man kan pressa den.

Förutom att Dream Router ersätter min gamla Unifi-kontroller, min accesspunkt och min PoE-injector så tillför den också tonvis med saker. Har man säkerhetskameror av modell Unifi kan man spela in video från dessa på mikro-SD-kortet i Dream Router, men det får inte vara vilket mikro-SD-kort som helst.

Dream Router

128 gigabyte stort ska det vara. Minst. Dream Router har testats med mikro-SD-kort på upp till en terabyte enligt Unifi-supporten men inte nog med det, det ska helst vara rejäla grejer också - åtminstone om man ska tolka den pusnotifiering jag fick till telefon och klocka när jag petade i ett ynkligt 64GB mikro-SD-kort.

Dream Router

Kanske är det felmeddelandet inte tänkt att komma från en Dream Router och dessutom förvirrar det mer än det informerar…

Säkerhet är roligt. Och viktigt. En stor anledning till att jag köpte en Dream Router var, som jag tidigare nämnt, att på ett enkelt och bra sätt sätta upp ett separat wifi-nätverk för mina kinesiska prylar som ofta och gärna pratar sina kompisar i hemlandet om både det ena och det andra.

Dream Router

Det var väldigt enkelt att åstadkomma faktiskt, och efter att ha flyttat över mina prylar till det nya wifi-nätet så kan jag sova aningens bättre om natten. Den skarpögde noterar att en produkt saknas i den listan: min Mi Smart LED Desk Lamp Pro. Men i det fallet får den sitta kvar på mitt interna wifi-nätverk då den kommunicerar via Homekit och det får anses vara säkert nog även för mig.

Dream Router Går min internetanslutning ned så får jag en liten pushnotifiering om att den är uppe igen. Inte nödvändigt men trevligt.

Att Geoblocka olika länder är på ett sätt trevligt och ett annat sätt aningen meningslöst. Trevligt för att man tänker att man ska slippa trafik från exempelvis Ryssland, men aningen meningslöst för de utländska aktörer som verkligen vill attackera en använder botnät i olika länder utanför sitt eget, eller använder sig av VPN-anslutningar till länder inne i Europa där de sedan kan härja hyfsat fritt.

Dream Router

Jag valde att börja med att blockera topp-tre-länderna på Säpos innelista: Ryssland, Kina och Iran. Belarus (före-detta Vitryssland) åkte med av bara farten, kan man väl säga. Det ska sägas att blockera olika länder baserade på utgångspunkten att de faktiskt använder de IP-nät som ICANN har tilldelat dem kan ha betydande effekt, men det tar inte bort alla angreppsförsök.

Dream Router

Det finns en inbyggd VPN-funktion också, vid namn Teleport. Den går via Ubiquitys servrar och det kan man ju tycka lite vad man vill om men den är smidig och fungerar, åtminstone om man använder iOS eller Android. Mac OS på x86 stöds ännu inte av detta, vilket är rätt synd. Däremot kan man installera applikationen som krävs för att VPN ska fungera, WIFIman, på M*-baserade Mac-datorer.

Dream Router har även en WireGuard-server inbyggd som jag inte hunnit mecka så mycket med ännu men det ska bli intressant att se hur den fungerar.

Summering

Dream Router erbjuder mycket för pengarna. Det enda jag egentligen kan klaga på är den aningens yxiga installationsprocessen och prestanda på WAN-porten. Det senare visste jag om när jag köpte den, så ingen skugga på produkten där. Som kuriosa körde jag ytterligare ett hastighetstest med Dream Routers egna funktion för ändamålet efter att den varit igång något dygn och nu presenterades lite mer realistiska siffror (544Mps ned, 939Mbps upp). Jag betalade under 3000 kronor för denna Dream Router, och jag är nöjd.

Om jag skulle tvingas hitta något annat att klaga på så är det detta: varför är ‘skärmen’ i Dream Router så oerhört löjligt liten? De hade kunnat göra den aningen större och därmed också mer användbar. Snygg är den, men svår att läsa. I övrigt: köpläge.

.