En l'entrada anterior del blog vaig explicar com fer les proves. Ara he automatitzat el sistema, incloent unes linees de codi a les funcions CNML de guifi.net per poder obtenir un llistat de les IPs públiques de guifi, junt amb el nom curt del trasto i id.
Ens caldrà un script que automàticament llegeixi el CNML i crei els fitxers de zona de resolució inversa (RRZ). N'he fet un amb PHP a mode d'exemple, és el que tinc provat i funcionant. Aquest script està posat al crontab del servidor DNS master del Penedès. Cada dia a les 4 del matí llegeix el CNML amb les IPs de guifi.net, el processa i crea els fitxers de zona. La resta de servidors del Penedès sòn esclaus, i quan s'actualitza el master amb els nous fitxers de zona, ells també ho fan.
L'script esta adjunt en aquest document. Per a posar-lo en marxa en el vostre servidor DNS, suposant que sigui una Debian/Ubuntu amb el dimoni bind9, el que heu de fer és editar el fitxer /etc/bind/named.conf.local i afegir al final:
zone "10.in-addr.arpa" IN {
type master;
file "/etc/bind/10.ip.guifi.net.rrz";
};
zone "172.in-addr.arpa" IN {
type master;
file "/etc/bind/172.ip.guifi.net.rrz";
};
Si no el teniu, instaleu l'interpret en línea del PHP:
apt-get install php5-cli
Copieu l'script que llegeix el CNML i crea els fitxers de zona:
cd /root
mkdir scripts
cd scripts
wget http://guifi.net/files/get_guifi_ips.php_0.txt
mv get_guifi_ips.php_0.txt get_guifi_ips.php
Creeu manualment per primera vegada els fitxers de zona:
cd /etc/bind && php /root/scripts/get_guifi_ips.php && /etc/init.d/bind9 reload
Ja els teniu funcionant, proveu de fer un traceroute. Per posar-ho al crontab perque s'actualitzai cada dia a les 4 del mati:
crontab -u root -e
Hi afegiu a la ultima linea:
0 4 * * * cd /etc/bind && php /root/scripts/get_guifi_ips.php && /etc/init.d/bind9 reload
Sortiu de l'editor, i llestos.
| Adjunt | Mida |
|---|---|
| get_guifi_ips.php.txt | 2.91 KB |