Skip to content
otsuarez edited this page Feb 3, 2012 · 4 revisions

Ficheros

nota: Puede consultar todo esto en un ejemplo practico: EjemploDnsFiles

voy a crear los directorios [a-z] primero desde ya... asi es mejor... no tiene sentido crearlos ondemand, no se justifica...

hay un fichero: makedirs.py que crea los directorios y en el makefile tambien: make dirs .. debiera funcionar ;)

En settings.py se definen estas variables:

ROOT_DNSFILES_CONF  =  '/opt/sites/chroot/etc/'
ROOT_DNSFILES_ZONES =  '/opt/sites/chroot/var/named/masters/'
ROOT_DNSFILES_INCLUDESDIR  =  '/opt/sites/chroot/etc/includes/'
# nuevo
# donde se generan los ficheros de configuracion
ROOT_DNSFILES_CONF  =  '/opt/sites/chroot/etc/'
APP_DIR  =  '/opt/sites/chroot/'
MASTERDNSFILES_ZONES =  '/var/named/masters/'
NAMEDFILES_DIR =  '/var/named/'
NAMEDCONF_DIR =  '/etc/'
CONFDNSFILES_INCLUDESDIR  =  '/etc/includes/'

algunas definen la ubicacion real en el filesystem de los ficheros. La ultima se va a utilizar en el fichero generado (que esta chrooted, recuerdan :)

Trabajo con servidores masters/slaves

Se asume que solo se va a tener un master y un slave para cada zona. De esta manera, el que no es master, seria el slave.

La interface web genera una estructura de directorios como se describe a continuacion.

/opt/sites/servers/<server.name>/etc/
/opt/sites/servers/<server.name>/var/

nota: ver DnsFilesNotes respecto a la creacion de estas carpetas.

donde

/opt/sites/servers/<server.name>/

almacena los ficheros que irian en el directorio donde el named esta chrooted, generalmente:

/var/named/chroot/

Utilizo <server.name> porque en un futuro se pudieran migrar de ip los servidores y asi se respeta la configuracion por servidor. Es complicado no obstante porque se utilizan las ip en los ficheros de configuracion. Pero a los efectos de trabajar con el directorio, resulta mas entendible con el nombre que con la ip.

Para el usuario osvaldo, sus ficheros de zonas quedarian de la siguiente manera:


/opt/sites/servers/<server.master.name>/etc/includes/o/osvaldo.conf
/opt/sites/servers/<server.slave.name>/etc/includes/o/osvaldo.conf

donde los ficheros se replicarian hacia el master y el (o los) slave(s) respectivamente.

Nueva Zona

Cuando un usuario crea una zona, digamos que el usuario pepe crea una zona almendares.com. Si no existe, se crean los siguientes ficheros: /var/devel/sites/chroot/etc/includes/p/pepe.conf


zone "almendares.com" {
        type master;
        filename "masters/p/pepe/almendares.com.db";
};

y /var/devel/sites/chroot/etc/includes/p/pepe.conf


zone "almendares.com" {
        type slave;
        filename "slaves/p/pepe/almendares.com.db";
        masters { 69.93.127.10; };
};

nota: asumiendo que 69.93.127.10 es la ip del servidor dns master para esa zona.

y se crea el fichero /var/devel/sites/chroot/var/named/masters/p/pepe/almendares.com.db

$TTL 86400 ; 2 Days
$ORIGIN almendares.com.
@       86400   IN      SOA     ns2.example.com.  hostmaster.ns2.example.com.       (
        2008050800                      ;serial
        28800   ; refresh 1 Day
        7200            ; retry 2 Hours
        604800          ; expire 1 Week /var/devel/sites/chroot/etc/includes/p/pepe.conf
        86400   ; minimum 2 Days

)

;registros ns
        86400   IN      NS      ns2.example.com.

nota tonta: no hace falta crear el fichero para el slave porque el named lo crea automaticamente.

Eliminar Zona

El usuario pepe borra la zona almendares.com

se borra el fichero

/var/devel/sites/chroot/var/named/masters/p/pepe/almendares.com.db

se borra la definicion de la zona del fichero

/var/devel/sites/chroot/etc/includes/p/pepe.conf

y si el usuario no tiene mas zonas, se borra ese fichero tambien.

Clone this wiki locally