Cambios masivos en Bind
Creo esta entrada como autonota para recordar los comandos que utilizo para hacer cambios masivos en los archivos de Bind9, ya que cada vez que hago cambios de servidores necesito hacer cambios en todos los dominios que tengo y cada vez son más.
Sólo para recordar la estructura de archivo bind os lo pongo aquí, los puntos importantes son el serial, ya que en cada cambio debe cambiar y luego las IPs a la que los registro A deben apuntar.
$ORIGIN example.com. $TTL 86400 @ IN SOA dns1.example.com. hostmaster.example.com. ( 2001062501 ; serial 21600 ; refresh after 6 hours 3600 ; retry after 1 hour 604800 ; expire after 1 week 86400 ) ; minimum TTL of 1 day ; @ IN NS dns1.example.com. @ IN NS dns2.example.com. @ IN MX 10 mail.example.com. @ IN MX 20 mail2.example.com. ; @ IN A 10.0.1.2 server1 IN A 10.0.1.2 server2 IN A 10.0.1.2 dns1 IN A 10.0.1.2 dns2 IN A 10.0.1.3 ; ftp IN CNAME server1 mail IN CNAME server1 mail2 IN CNAME server2 www IN CNAME server2
Para hacer un cambio en todos los archivos de zona, por ejmplo cambiar la ip del servidor de nombre dns1 10.0.1.2 por 130.89.56.76 debemos ejecutar este comando:
root@improvisa:~# find /var/cache/bind/ -type f -exec sed -i ‘s/10.0.1.2/130.89.56.76/g’ {} \;
Este comando entrara en el directorio donde tengamos los archivos de zona, en este caso /var/cache/bind/, y sustituirá todas las ocurrencias de la ip 10.0.1.2 por 130.89.56.76.
Ahora nos queda eliminar la linea donde esté el serial y sustituirla por el nuevo serial, no nos vale encontrar el serial ya que en los archivos este será distinto, sino que tendremos que buscar la linea donde aparezca el texto «serial2» y sustituir toda la linea por la nueva, para ello utilizaremos el siguiente comando:
root@improvisa:~# find /var/cache/bind/ -type f -exec sed -i ‘s/\(.*; serial\)/ 2013031901 ; serial/’ {} \;
Lo que hace este comando es entrar en el directorio /var/cache/bind/ donde tenemos los archivos de zona y buscar la cadena «; serial» con cualquier cosa delante, es lo que indica la expresión regular .*, es decir nos da igual el número que tenga, y sustituiremos esa ocurrencia por » 2013031901 ; serial»
Espero que os sirva de ayuda.
Un saludo.