== Netsukuku - Documenti di analisi == La suite di software per un nodo nella rete Netsukuku si compone di: * Un demone (ntkd) che svolge le seguenti mansioni: * Rileva i vicini. * Comunicando con i vicini implementa il protocollo distribuito di routing. * Assegna gli indirizzi al nodo e mantiene le tabelle di routing del kernel. * Svolge il ruolo di server ANDNA, accedendo al database distribuito dei nomi. . '''Nota''': le mansioni del demone ntkd sono meglio illustrate all'inizio del documento [[Netsukuku/ita/docs/DemoneNTKD/AnalisiFunzionale|analisi funzionale]]. * Un resolver di nomi (libnss_andna.so) che interroga il server ANDNA su richiesta delle applicazioni che girano nel nodo, le quali lo richiamano in modo del tutto trasparente tramite l'uso del [[https://en.wikipedia.org/wiki/Name_Service_Switch|Name Service Switch]]. * Un server (dns-to-andna) che traduce le richieste DNS in richieste ANDNA e interroga il server ANDNA. Questo è utile per le applicazioni che vogliono interrogare direttamente il DNS senza passare attraverso il NSS. Permette inoltre di dare supporto ai Sistemi Operativi che non hanno un NSS o per i quali la suite Netsukuku non fornisce ancora un'applicazione nativa. * Un tool di risoluzione nomi (ntk-resolv) che interroga direttamente il server ANDNA. Può essere utile durante un troubleshooting in una rete. * Alcune librerie di supporto. Oltre al software suddetto, per il corretto funzionamento di un nodo nella rete Netsukuku il sistema operativo deve soddisfare alcuni requisiti. Nel documento [[Netsukuku/ita/docs/Sistema/Requisiti|Requisiti]] prendiamo in esame questi requisiti annotando per ogni sistema operativo quali sono le impostazioni da configurare per soddisfarli. == ntkd == Per una descrizione formale del ruolo del demone ntkd in una rete Netsukuku si legga la relativa [[Netsukuku/ita/docs/DemoneNTKD/AnalisiFunzionale|analisi funzionale]]. La logica delle operazioni svolte dal demone ntkd è stata suddivisa in moduli, ognuno dei quali si occupa di un determinato aspetto. Essi sono isolati, indipendenti gli uni dagli altri. Questo rende più facile verificarne il corretto funzionamento e apportare modifiche o correzioni. Poi ci sono alcune librerie che offrono funzionalità che vengono usate da quasi tutti i moduli. Su queste librerie tutti i moduli hanno una dipendenza. * '''tasklet-system'''. Con una dipendenza su questa libreria, un modulo può usare un generico sistema di tasklet (thread cooperativi) senza dover conoscere la specifica implementazione che il programma adotterà. [[Netsukuku/ita/docs/Librerie/TaskletSystem|TaskletSystem]] * '''ZCD'''. Questa libreria formalizza e realizza il passaggio di messaggi tra nodi della rete, anche quando ancora i nodi non hanno configurato le loro interfacce di rete con indirizzi e parametri concordati. [[Netsukuku/ita/docs/Librerie/ZCD|ZCD]] * '''ntkd-common'''. Questa libreria contiene alcune classi e funzioni che sono note a più di un modulo. [[Netsukuku/ita/docs/Librerie/Common|Common]] Il software si compone dei moduli seguenti: ||Neighborhood ||[[Netsukuku/ita/docs/ModuloNeighborhood/AnalisiFunzionale|Analisi funzionale]] || ||[[Netsukuku/ita/docs/ModuloNeighborhood/DettagliTecnici|Dettagli Tecnici]] || ||[[Netsukuku/ita/docs/ModuloNeighborhood/Requisiti|Requisiti]] || ||Identities ||[[Netsukuku/ita/docs/ModuloIdentities/AnalisiFunzionale|Analisi funzionale]] || ||[[Netsukuku/ita/docs/ModuloIdentities/DettagliTecnici|Dettagli Tecnici]] || ||QSPN ||[[Netsukuku/ita/docs/ModuloQSPN/AnalisiFunzionale|Analisi funzionale]] || ||[[Netsukuku/ita/docs/ModuloQSPN/EsplorazioneRete|Esplorazione rete]] || ||[[Netsukuku/ita/docs/ModuloQSPN/PercorsiDisgiunti|Percorsi disgiunti]] || ||[[Netsukuku/ita/docs/ModuloQSPN/DettagliTecnici|Dettagli Tecnici]] || ||!PeerServices ||[[Netsukuku/ita/docs/ModuloPeers/AnalisiFunzionale|Analisi funzionale]] || ||[[Netsukuku/ita/docs/ModuloPeers/DettagliTecnici|Dettagli Tecnici]] || ||Coordinator ||[[Netsukuku/ita/docs/ModuloCoordinator/AnalisiFunzionale|Analisi funzionale]] || ||[[Netsukuku/ita/docs/ModuloCoordinator/DettagliTecnici|Dettagli Tecnici]] || == libnss_andna == == dns-to-andna == Per i software che non supportano NSS o per offrire connettività a sistemi operativi al momento non supportati dalla suite software Netsukuku.