MyDNS Setup · 3 min read · Jan 09, 2026
Esecuzione di un server DNS basato su MySQL: MyDNS - Pagina 3
3 Installa dnscache
Una cosa molto importante da sapere su MyDNS è che non supporta le ricerche DNS esterne (ricorsive), cioè MyDNS fornirà risposte solo per i domini di cui è autorevole! Se desideri risolvere altri domini come, ad esempio, www.google.com, dovrai installare un risolutore DNS come dnscache sul tuo sistema, e deve essere installato su un indirizzo IP separato. Per scoprire perché il server DNS (MyDNS) e il risolutore DNS (dnscache) sono separati in questo modo, dai un’occhiata qui: http://cr.yp.to/djbdns/separation.html
Normalmente, il tuo ISP ti fornisce indirizzi IP dei server dei nomi che utilizzi per la tua connessione internet a casa o in ufficio in modo che la tua workstation possa risolvere nomi come www.google.com. Gli indirizzi IP dei server dei nomi sono in realtà indirizzi IP di risolutori DNS come dnscache. Ora, se desideri fornire ai tuoi clienti i tuoi indirizzi IP dei server dei nomi, devi configurare un risolutore DNS e fornire ai tuoi clienti l’indirizzo IP di quel risolutore DNS.
Ora, se hai solo un indirizzo IP sul tuo server, potresti dire: “Ok, associo MyDNS a 127.0.0.1 e dnscache al mio indirizzo IP pubblico per aggirare questo collo di bottiglia.”. Ti prego di leggere qui per scoprire perché questa è una cattiva idea: http://www.fefe.de/djbdns/#sameip
Se non desideri installare un risolutore DNS sul tuo sistema, puoi saltare questa sezione.
Ora diciamo che hai due indirizzi IP pubblici, 1.2.3.4 e 1.2.3.5, e desideri che MyDNS ascolti su 1.2.3.4 e dnscache ascolti su 1.2.3.5.
Esegui i seguenti passaggi per installare dnscache:
groupadd dns
useradd -M -g dns -s /sbin/nologin -c DNS-Cache-User dnscache
useradd -M -g dns -s /sbin/nologin -c TinyDNS-User tinydns
useradd -M -g dns -s /sbin/nologin -c DNSlog-User dnslog
Crea lo script di avvio di dnscache:
cd /usr/local/sbin
wget http://www.servershak.com/dns/dnsctl
chmod 700 dnsctl
ln -s /usr/local/sbin/dnsctl /etc/init.d/dnsctl
Crea i collegamenti di avvio del sistema:
Su Debian:
update-rc.d dnsctl defaults
Su Fedora e RedHat:
chkconfig –levels 235 dnsctl on
Poi compiliamo e installiamo dnscache:
cd /usr/local/src
wget http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz
tar -zxvf ucspi-tcp-0.88.tar.gz
cd ucspi-tcp-0.88
make
make setup check
mkdir -p /var/package
chmod 1755 /var/package
cd /var/package
wget http://cr.yp.to/daemontools/daemontools-0.76.tar.gz
gunzip daemontools-0.76.tar
tar -xpf daemontools-0.76.tar
rm daemontools-0.76.tar
cd /var/package/admin/daemontools-0.76
package/install
cd /usr/local/src
wget http://cr.yp.to/djbdns/djbdns-1.05.tar.gz
tar -xvzf djbdns-1.05.tar.gz
cd djbdns-1.05
make
make setup check
dnscache-conf dnscache dnslog /etc/dnscache 1.2.3.5
ln -s /etc/dnscache /service
touch /etc/dnscache/root/ip/1.2.3
Ora dnscache sta ascoltando su 1.2.3.5. Ora dobbiamo dire a MyDNS che dovrebbe ascoltare solo su 1.2.3.4. Pertanto, dobbiamo modificare la direttiva listen in /etc/mydns.conf:
| listen = 1.2.3.4 |
e riavviare MyDNS:
/etc/init.d/mydns restart
Ora, se provi a risolvere nomi di dominio su 1.2.3.5, dovresti ricevere una risposta. Ad esempio, per risolvere www.google.com, puoi eseguire
dig @1.2.3.5 www.google.com
Allo stesso modo, dovresti essere in grado di risolvere i domini gestiti da MyDNS (ad es. www.somedomain.com), ma questa volta digiti 1.2.3.4:
dig @1.2.3.4 www.somedomain.com
4 Ottenere le zone e i record dal server DNS primario a quello secondario
Se sia il server DNS primario che quello secondario utilizzano MyDNS, hai tre possibilità per trasferire i dati dal server primario a quello secondario:
- Il modo tradizionale: puoi utilizzare i trasferimenti di zona. Pertanto, devi cambiare allow-axfr = no in allow-axfr = yes in /etc/mydns.conf e riavviare MyDNS sul server DNS primario. Inoltre, devi specificare l’indirizzo IP del server DNS secondario nella colonna xfer nella tabella soa per le zone che devono essere trasferite. Inoltre, assicurati che il firewall sul DNS primario non blocchi la porta 53 (TCP e UDP).
- Sia il DNS primario che quello secondario utilizzano lo stesso database MySQL. C’è un inconveniente con questa soluzione: se il server MySQL fallisce, allora sia il DNS primario che quello secondario falliranno contemporaneamente…
- La soluzione preferita: utilizzare la replica del database MySQL per trasferire i dati dal DNS primario a quello secondario. Assicurati che il firewall sul DNS primario non blocchi la porta MySQL (normalmente 3306).
Ti consiglio di utilizzare la replica MySQL. Ho scritto una guida molto precisa su come configurarla qui: https://www.howtoforge.com/mysql_database_replication quindi non devo coprire di nuovo questo argomento qui.
Link
- MyDNS: http://mydns.bboy.net
- dnscache: http://cr.yp.to/djbdns/dnscache.html
- phpMyAdmin: http://www.phpmyadmin.net
- MyDNSConfig: http://www.mydnsconfig.org
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.