Premetto che non so che cosa ho fatto di preciso, ma giuro a me stesso che approfondirò questo argomento, anche perchè pare funzionare alla grande!
Molto spesso ci capita di lamentarci della lentezza delle nostre connessioni a banda larga, ma non sempre tutto questo è dovuto al brand del fornitore di servizi internet, o meglio, solo in parte.
Occhio che sto per scrivere una frase riscrita milioni di volte negli anni: ad ogni indirizzo web corrisponde un indirizzo IP quindi scrivere nella barra indirizzi del browser http://www.google.com o http://74.125.43.103/ è esattamente la stessa cosa, ma col vantaggio che il caricamento del secondo indirizzo sarà più immediato del primo.
Se moltiplichiamo tutti i piccoli ritardi accumulati nel surfing giornaliero ci accorgiamo che clicka di qua e clicka di là, alla fine della giornata abbiamo passato 1/5 del nostro tempo aspettando il caricamento delle pagine (stima un tantino esagerata, comunque, dai, fate i bravi, un bloger deve esagerare, è risaputo! Lo fanno tutti i blog fighi).
In pratica se ci ricordassimo l’indirizzo IP di tutti i siti che frequentiamo saremmo a cavallo, ma dovremmo anche linkare i siti inserendone l’IP e poi….insomma, sarebbe un’incubo! E’ qui che ci vengono incontro i server DNS (Domain Name System), che memorizzano per noi tutte le coppie NomeDominio-IP presenti nel WEB. Ogni ISP consiglia i suoi server DNS, una massa incolore di nerd pseudo-geek spinge per l’adozione in massa dei famosi OpenDNS (che ogni tanto rallentano talmente tanto la navigazione da ricordare i “vecchi tempi”…..ma è solo un’esperienza personale, in giro c’è gente entusiasta).
Quello che qui mi accingo a descrivere è l’impostazione di un Servizio di Domain Name proprio sul nostro mac, in modo che le coppie nome-numero vengano memorizzate in locale, per un accesso praticamente istantaneo, senza interrogare DNS esterni, che devono poi interrogare altri DNS e così via.
Cominciamo allora, per me ha funzionato, poi magari cercherò pure di capire cosa ho fatto
Creiamo prima di tutto una chiave rndc col seguente comando in terminale
$ sudo rndc-confgen -a
ci verrà richiesta la password da amministratore e la inseriremo. Fatto il primo passo, ora, visto che abbiamo il terminale aperto e la maggior parte del lavoro va fatto qui, usiamo anche l’editor di testo nano così poco preso in considerazione, in modo da far tutto nel terminale.
Prima trasformiamoci nell’onnipotente root
$ sudo su -
Inseriamo la nostra password
$ cd /System/Library/StartupItems
$ mkdir BIND
$ cd BIND
$ nano -w BIND
Ora siamo in nano e stiamo creando il file BIND che riempiremo con le seguenti righe:
#!/bin/sh
. /etc/rc.common
if [ "${DNSSERVER}" = "-YES-" ]; then
ConsoleMessage “Starting BIND DNS Server”
/usr/sbin/named
fi
Chiudiamo con ctrl-X e salviamo il file con Y e poi INVIO. Ora ci serve un’altro file, che prontamente andremo a creare:
$ nano -w StartupParameters.plist
aggiungendo queste righe:
{
Description = “Local DNS”;
Provides = (”DNS Server”);
OrderPreference = “None”;
Messages =
{
start = “Starting DNS Server”;
stop = “Stopping DNS Server”;
};
}
Rendiamo il file eseguibile:
$ chmod +x BIND
E assicuriamoci che si avvii ad ogni reboot del mac:
$ nano -w /etc/hostconfig
E aggiungiamo questa riga alla fine, se non esiste già:
DNSSERVER=-YES-
Se esiste già nel file avrà valore -NO-, quindi cambiamo -NO- con -YES- ed abbandoniamo la condizione di root:
$ exit
Ora lanciamo il nostro script:
$ sudo /System/Library/StartupItems/BIND/BIND
Adesso possiamo uscire dal terminale, abbiamo attivato il servizio locale di DomainName BIND, ma non è ancora finita, perchè dobbiamo utilizzarlo:
andiamo in Preferenze > Network
Cancelliamo i DNS presenti e inseriamo 127.0.0.1.
FATTO!
Per verificare che il DNS in uso sia effettivamente quello locale ricorriamo nuovamente al terminale:
$ nslookup www.apple.com
Server: 127.0.0.1
Address: 127.0.0.1#53Non-authoritative answer:
www.apple.com canonical name = www.apple.com.akadns.net.
Name: www.apple.com.akadns.net
Address: 17.149.160.10
Sinceramente ho notato un miglioramento che definirei bestiale, davvero non me l’aspettavo!