Ho sostituito la motherboard storica del mio micro-server (una vecchia Bobcat), con una Topton N5105
.
I vantaggi del passare da tecnologia del 2011 ad una moderna sono ovvi: minore consumo energetico per perfomance, 10Gbps aggregati
(reali) al posto del precedente gigabit (teorico e mai raggiunto), presenza di 6 connettori sata
già predisposti (dove posso spostare il mio raid).
La build è sorprendentemente performante per il mio utilizzo: le ricostruzioni del raid sono abbastanza veloci (sia utilizzando OpenZFS
che con Btrfs
), WireGuard
raggiunge e supera il Gigabit/sec, le transcodifiche con ffmpeg
sono accelerate senza dover ricorrere a driver proprietari.
Ho sperimentato una installazione con Ansible
, il setup è parzialmente pubblico: pure.
dnsd
è pensato per essere un caching proxy DNS che intercetta. Sto volontariamente evitando di implementare il supporto alla maggior parte dei tipi di record.
Il forwarder per i record A e AAAA è vagamente ispirato a “Introducing DNS Resolver for Tor” e “DoHoT: better security, privacy, and integrity via load-balanced DNS over HTTPS over Tor”.
La cache è in-memory e non effettua mai l’eviction dei record, lo scopo è quello di minimizzare la latenza introdotta dal DoHoT e ridurre l’ammontare delle informazioni deducibili dai log in caso di analisi pattern of life.
snid
è un proxy per la TLS che non termina. Rifiuta il traffico non-TLS e le connessioni indirizzate direttamente agli IP. Controlla la posizione geografica degli endpoint remoti. Logga lo Server Name Indication.
shshd
è un proxy HTTP creato appositamente per supportare il “protocollo signed hash”. Inoltra anche il traffico verso alcuni host OCSP, e reindirizza tutte le altre richieste verso HTTPS.
sntpd
è un server sntp v4 che inoltra ai client l’orario del sistema su cui sta girando.
Il resto del progetto è solo basilare ansible.
Dopo 2/3 settimane di minimo utilizzo, ho iniziato a sperimentare dei segfaults
in maniera apparentemente randomica.
Gli errori di segmentazione sono solitamente legati ad errori software, ma se si riscontrano di continuo su più binari differenti è possibile che vi siano dei difetti hardware.
In particolare i difetti hardware che portano ai segfaults possono essere dovuti a RAM difettose
che corrompono i dati ivi contenuti, difetti nel memory mapping
che implicano dei page faults
, difetti della CPU
che implicano mancanza di cache coherency
, o difetti sul bus o sullo storage.
In questo caso effettuare un test è stato molto semplice, le RAM hanno passato tutti i test, e con tutte le periferiche scollegate il firmware EFI ha continuato a crashare per i segfaults (tutti dovuti a difetti sul terzo core).
Le politiche di sostituzione o reso di Topton sono … praticamente inestistenti e criminali. Ho quindi deciso di comprare una motherboard molto simile, la Kingnovy J6413.
La scheda di Kingnovy mi ha permesso di riutilizzare la totalità dei componenti. Ha un processore leggermente più potente, ma con una gestione dei C-States
notevolmente migliore. Il consumo energetico a riposo e la temperatura dei core sono molto migliori.
L’unica altra differenza è la presenza della porta COM
e di “sole” tre porte ethernet, e di uno slot nvme aggiuntivo.
Lo store di Kingnovy è su Amazon
, compagnia che a differenza di AliExpress
garantisce una certa consumer protection.