-
Notifications
You must be signed in to change notification settings - Fork 0
Home
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 :)
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.
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.
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.