# Zeroconf

Zeroconf o Zero Configuration Networking è un protocollo standard dell'IETF per la configurazione dinamica dei nodi di una rete utilizzante il protocollo IP. Lo standard non è ancora definitivo, infatti non esiste ancora nessun documento RFC sul protocollo Zeroconf sebbene esistano già diverse implementazioni del protocollo che vengono utilizzate quotidianamente da moltissimi utenti essendo incluse nei sistemi operativi.
L'idea base dello Zeroconf è che dovrebbe essere possibile collegare due computer tramite cavo Ethernet e senza bisogno di interventi da parte dell'utente i computer dovrebbero essere in grado di comunicare tra loro. Attualmente bisogna selezionare dei parametri manualmente per consentire a due computer di comunicare.
L'obiettivo è quello di ottenere una rete IP funzionante senza dover dipendere da infrastrutture (server DHCP, server DNS o simili) o da conoscenze specifiche (per esempio indirizzamenti RFC 1918). Zeroconf è stato inizialmente sviluppato da Apple Inc. come un componente del sistema operativo per facilitare il passaggio dalle reti AppleTalk alle reti IP. Zeroconf è stato utilizzato da molti produttori che cercavano uno strumento in grado di semplificare l'integrazione dei loro prodotti nelle reti locali. Un buon esempio sono le stampanti di rete. I produttori delle stampanti che vengono collegate direttamente alla rete non possono fornire i loro prodotti di schermi o tastiere da utilizzare per inserire i parametri di rete come indirizzo IP o subnet masks. Si cercava anche uno strumento utilizzabile dall'utente comune e la tecnologia Zeroconf era la soluzione ideale. Attualmente tutte le stampanti di rete in commercio implementano Zeroconf.
Il sistema Zeroconf si basa sull'assegnazione automatica degli indirizzi IP da parte dei dispositivi che lo utilizzano, senza utilizzare un server DHCP. Gli indirizzi IP utilizzati da Zeroconf appartengono alla sottorete 169.254.0.0/16 (IPv4 link local). Poiché i primi e gli ultimi 256 indirizzi sono riservati ad usi futuri, quelli utilizzabili sono compresi tra 169.254.1.0 e 169.254.254.255. Solitamente i sistemi Zeroconf si occupano di verificare periodicamente l'esistenza di un server DHCP e in questo caso di utilizzare gli indirizzi forniti dal server stesso.

## Componenti di Zeroconf

Zeroconf viene sviluppato utilizzando molte tecnologie indipendenti:
* Allocazione automatica degli indirizzi locali IPv4 nel dominio 169.254.0.0/16 per evitare la configurazione manuale degli indirizzi IP.
* Multicast DNS distribuito, ogni nodo è responsabile dei suoi nomi, questo rende superfluo un DNS centrale.
* Memorizzazione dei DNS SRV, disaccoppia i nomi dei servizi dai nomi delle macchine e dalle porte utilizzate. Il servizio di scoperta DNS aggiunge un altro livello di divisione tra i servizi e le macchine, gli utenti possono passare in rassegna i servizi presenti senza conoscerne nemmeno il nome.

## Implementazioni di Zeroconf

Avahi è un'implementazione presente nelle moderne distribuzioni GNU/Linux e di tipo BSD.
La Apple ha definito la sua implementazione Zeroconf col nome di Rendezvous, in seguito rinominata in Apple Bonjour per problemi legali.
Microsoft, invece, ha identificato la sua implementazione Zeroconf con il nome di APIPA (Automatic Private Internet Protocol Addressing).