Diferencia entre revisiones de «DNS Master en paloma»

De CURE - Informática
Saltar a: navegación, buscar
(Página creada con ' == Instalación de un servisor DNS Master en paloma: == Instalación # sudo apt-get install bind9 bind9-doc dnsutils Configuración Los archivos de configuracion del Bind...')
 
m
 
(No se muestran 33 ediciones intermedias de 6 usuarios)
Línea 1: Línea 1:
 +
== Servicio de Resolución de Nombres (DNS) ==
  
== Instalación de un servisor DNS Master en paloma: ==
+
===Conceptos===
  
 +
El DNS es un servicio distribuido que tiene dos objetivos principales:
  
Instalación
+
*  Traducir una dirección canónica en una dirección IP, por ejemplo pedrera.taller.curerocha.edu.uy a su IP: 164.73.234.102
 +
*  Traducir una dirección IP en una o varias direcciones canónicas, lo que se conoce como traducción inversa, por ejemplo 164.73.234.102 en pedrera.taller.curerocha.edu.uy.
  
# sudo apt-get install bind9 bind9-doc dnsutils
+
El servidor "DNS Master" o "DNS primario" de una zona (por ejemplo taller.curerocha.edu.uy) es el servidor donde se almacena y actualiza la información de los dominios bajo esta zona (por ejemplo laboratorio.taller.curerocha.edu.uy), y que provee esta información a otros servidores en la red.
  
 +
Además de un servidor DNS primario es necesario crear un servidor DNS secundario (también llamado esclavo), que proporcionará robustez y fiabilidad.  Un servidor secundario es simplemente un servidor de nombres que replica los ficheros de una zona desde un servidor maestro de esa zona.
  
Configuración
+
Para que un servidor sea DNS primario de una zona, es necesario que el DNS primario de la zona de nivel superior le delegue la gestión de dominios (por ejemplo, curerocha.edu.uy es la zona superior de taller.curerocha.edu.uy).
  
Los archivos de configuracion del Bind estan en /etc/bind/
+
===Objetivos===
 +
'''ADVERTENCIA:''' los presentes objetivos son nuevos para la generación 2010 de la asignatura, los detalles de configuración en esta página pueden no corresponder a lo pedido y deben ser revisados. Esta advertencia deberá borrarse cuando se termine de ajustar esta documentación.
  
# sudo vi /etc/bind/named.conf.options
+
====Etapa 1: DNS para una zona====
 +
Instalar y configurar un servicio DNS para la zona taller.curerocha.edu.uy, que nos fue delegada por SeCIU, que maneja la zona superior curerocha.edu.uy.
 +
El servicio DNS debe proveer las siguientes facilidades:
 +
* resolución directa de nombres xxx.taller.curerocha.edu.uy.
 +
* resolución inversa de números IP de las máquinas definidas en este ejercicio de instalación.
  
root@paloma:~# cat /etc/bind/named.conf.options
+
====Etapa 2: Delegación de subdominios====
//acl redesNegadas define las redes a denegar consultas al servidor DNS
+
Instalar y configurar un servicio DNS para zonas delegadas (subzonas) del dominio taller.curerocha.edu.uy. Los subdominios serán los siguientes:
acl redesNegadas { 0.0.0.0/8; 1.0.0.0/8; 2.0.0.0/8; 192.0.2.0/24; 224.0.0.0/3; 172.16.0.0/12; 10.0.0.0/8; 192.168.0.0/24; 169.254.0.0/16; 192.168.1.0/24; 192.168.2.0/24; 192.168.3.0/24; };
+
* dompolonio, servidor primario polonio, secundario puntadeldiablo, red 10.101.0.0/8.
 +
* dompunta, servidor primario puntadeldiablo, secundario aguasdulces, red 10.102.0.0/8.
 +
* domaguas, servidor primario aguasdulces, secundario valizas, red 10.103.0.0/8.
 +
* domvalizas, servidor primario valizas, secundario polonio, red 10.0.0/8.
 +
Cada uno de estos dominios deberá definir:
 +
* direcciones de máquinas gato, perro, mono;
 +
* alias www a gato, mysql a perro.
 +
* servidor de correo: el servidor primario del dominio.
 +
Cada uno de estos dominios deberá resolver:
 +
* nombres (resolución directa).
 +
* direcciones IP (resolución inversa).
 +
* consultas para todas las máquinas del subdominio.
 +
 
 +
===Instalación===
 +
Necesitamos BIND y algunos utilitarios:
 +
 
 +
# sudo apt-get install bind9 bind9-doc dnsutils
 +
 
 +
===Configuración===
 +
 
 +
Los archivos de configuracion del Bind están en /etc/bind/
 +
 
 +
$ sudo vi /etc/bind/named.conf.options
 +
 
 +
<pre>
 +
// Archivo de configuracion del DNS master de
 +
// taller.curerocha.edu.uy y taller.csic.edu.uy
 +
 
 +
// acl redesNegadas: define las redes a denegar consultas al servidor DNS
 +
acl redesNegadas {
 +
0.0.0.0/8; 1.0.0.0/8;
 +
172.16.0.0/12;
 +
10.0.0.0/8;
 +
192.168.0.0/16;  
 +
169.254.0.0/16;  
 +
};
  
 
options {
 
options {
//desactivamos la cache
+
//desactivamos la cache
acache-enable no;
+
  acache-enable no;
directory "/var/cache/bind";
+
directory "/var/cache/bind";
  
//No es necesario forwardear
+
//No es necesario forwardear
//forwarders {
+
//forwarders {
// 164.73.128.5;
+
// 164.73.128.5;
// 164.73.128.70;
+
// 164.73.128.70;
// };
+
// };
  
//No permitimos las consultas salvo las de nuestra zona
+
//No permitimos las consultas salvo las de nuestro servidor
allow-query { none; };
+
allow-query { 127.0.0.1; };
 +
# allow-query { none; };
  
//No permitimos las recusion
+
//No permitimos las recusion
allow-recursion { none; };
+
  # allow-recursion { none; };
 +
  allow-recursion { 127.0.0.1; };
  
//Incluimos las redes de la acl redesNegadas a la lista negra
+
//Incluimos las redes de la acl redesNegadas a la lista negra
blackhole { redesNegadas; };
+
blackhole { redesNegadas; };
  
auth-nxdomain no; # conform to RFC1035
+
auth-nxdomain no;   # conform to RFC1035
listen-on-v6 { any; };
+
listen-on-v6 { any; };
+
  
// If there is a firewall between you and nameservers you want
+
// If there is a firewall between you and nameservers you want
// to talk to, you may need to fix the firewall to allow multiple
+
// to talk to, you may need to fix the firewall to allow multiple
// ports to talk. See http://www.kb.cert.org/vuls/id/800113
+
// ports to talk. See http://www.kb.cert.org/vuls/id/800113
  
// If your ISP provided one or more IP addresses for stable
+
// If your ISP provided one or more IP addresses for stable  
// nameservers, you probably want to use them as forwarders.
+
// nameservers, you probably want to use them as forwarders.
// Uncomment the following block, and insert the addresses replacing
+
// Uncomment the following block, and insert the addresses replacing  
// the all-0's placeholder.
+
// the all-0's placeholder.
  
 
};
 
};
  
 +
</pre>
  
# sudo vi/etc/bind/named.conf.local
+
$ sudo vi/etc/bind/named.conf.local
  
Editamos este archivo para definir las zonas directas e inversas de nuestro dominio,
+
Editamos este archivo para definir las zonas directas e inversas de nuestro dominio, y los archivos donde estarán las configuraciones de las mismas.
y los archivos donde estaran las configuraciones de las mismas.
 
  
root@paloma:~# cat /etc/bind/named.conf.local
+
<pre>
 
//
 
//
 
// Do any local configuration here
 
// Do any local configuration here
Línea 67: Línea 113:
 
//Nuestro dns solo va a contestar por esta zona
 
//Nuestro dns solo va a contestar por esta zona
 
zone "taller.csic.edu.uy"{
 
zone "taller.csic.edu.uy"{
type master;
+
        type master;
file "/etc/bind/db.taller.csic.edu.uy";
+
        file "/etc/bind/db.taller.csic.edu.uy";
allow-query { any;};
+
        allow-query { any;};
 +
        // permitimos transferencia desde nuestro servidor "DNS slave"
 +
        allow-transfer {
 +
                164.73.68.10;
 +
        };
 
};
 
};
 +
 +
zone "taller.curerocha.edu.uy"{
 +
        type master;
 +
        file "/etc/bind/db.taller.curerocha.edu.uy";
 +
        allow-query { any;};
 +
        // permitimos transferencia desde nuestro servidor "DNS slave"
 +
        allow-transfer {
 +
                164.73.68.10;
 +
        };
 +
};
 +
 
zone "234.73.164.in-addr.arpa"{
 
zone "234.73.164.in-addr.arpa"{
type master;
+
        type master;
file "/etc/bind/db.164.73.234";
+
        file "/etc/bind/db.164.73.234";
allow-query { any;};
+
        allow-query { any;};
 +
        // permitimos transferencia desde nuestro servidor "DNS slave"
 +
        allow-transfer {
 +
                164.73.68.10;
 +
        };
 
};
 
};
 +
 
//include "/etc/bind/zones.rfc1918";
 
//include "/etc/bind/zones.rfc1918";
 +
</pre>
 +
 +
=== Los archivos de zonas ===
 +
 +
Tipos de registros del DNS:
  
 +
<pre>
 +
    Tipo       Nombre                 Función
 +
Zona     SOA Start Of Authority     Define una zona representativa del DNS
 +
            NS         Name Server             Identifica los servidores de zona, delega subdominios
 +
Básicos    A         Dirección IPv4             Traducción de nombre a dirección
 +
            AAAA Dirección IPv6 original    Actualmente obsoleto
 +
            PTR Puntero             Traducción de dirección a nombre
  
 +
$TTL: Indica el tiempo de vida (Time To Live) de la información contenida en el fichero. Es decir, el tiempo máximo de validez, tras el cual deberá refrescarse o actualizarse.
  
 +
@ IN SOA, el registro SOA (Start Of Authority) es siempre el primer recurso en un fichero de zona. El símbolo "@" equivale a la directiva $ORIGIN Este sería el esqueleto de este registro:
  
Creamos db.taller.csic.edu.uy copiando /etc/bind/db.local como /etc/bind/db.taller.csic.edu.uy
+
        @ IN SOA <primary-name-server> <hostmaster-email> (
 +
          <serial-number>    ; Se incrementa cuando se modifica el fichero de la zona
 +
          <time-to-refresh>  ; Tiempo para los servidores secundarios (esclavos) actualicen los registros
 +
          <time-to-retry>    ; Tiempo para el servidor esclavo antes de solicitar una actualización, si el Master no responde
 +
          <time-to-expire>  ; Si el master no responde antes de que expire este tiempo, el servidor esclavo deja de actuar como servidor de zona
 +
          <minimum-TTL> )    ; Time to live negativo
 +
</pre>
  
 +
$ sudo vi/etc/bind/db.taller.csic.edu.uy
  
root@paloma:~# cat /etc/bind/db.taller.csic.edu.uy
+
<pre>
 +
;
 +
; Archivo BIND de definición de zona taller.csic.edu.uy
 
;
 
;
; BIND data file for local loopback interface
+
$TTL 86400 ; 1D
 +
@ IN SOA paloma.taller.csic.edu.uy. root.paloma.taller.csic.edu.uy. (
 +
2011060903 ; Serial
 +
6H ; Refresh
 +
1D ; Retry
 +
1W ; Expire
 +
10M ) ; Negative Cache TTL
 +
; 1D ) ; Negative Cache TTL
 
;
 
;
$TTL 604800
+
; Servidores de nombres y dirección IP de zona
@ IN SOA taller.csic.edu.uy. root.dns. (
 
2011060201 ; Serial
 
604800 ; Refresh
 
86400 ; Retry
 
2419200 ; Expire
 
604800 ) ; Negative Cache TTL
 
 
;
 
;
@ IN NS taller.csic.edu.uy.
+
@               IN NS paloma.taller.csic.edu.uy.
@ IN A 164.73.234.104
+
@               IN NS gould.csic.edu.uy.
paloma IN A 164.73.234.104
+
@ IN A 164.73.234.104
pedrera IN A 164.73.234.102
+
;
polonio IN A 164.73.234.103
+
; Nombres canónicos de servidores e interfaces
garzon IN A 164.73.234.126
+
;
base-de-datos IN CNAME paloma
+
paloma IN A 164.73.234.104
tikiwiki IN CNAME paloma
+
garzon IN A 164.73.234.126
 +
;
 +
; Alias a nombres canónicos, para los servicios
 +
;
 +
base-de-datos IN CNAME paloma
 +
bdd IN CNAME paloma
 +
mediawiki IN CNAME paloma
 +
wiki IN CNAME paloma
 +
tikiwiki IN CNAME paloma
 +
</pre>
  
 +
$ sudo vi/etc/bind/db.taller.curerocha.edu.uy
  
Creamos db.164.73.234 copiando db.127
+
<pre>
 +
;
 +
; Archivo BIND de definición de la zona taller.curerocha.edu.uy
 +
;
 +
$ORIGIN taller.curerocha.edu.uy.
 +
$TTL  86400 ; 1D
 +
@      IN      SOA    paloma.taller.csic.edu.uy. root.paloma.taller.csic.edu.uy. (
 +
                        2011060909 ; Serial
 +
                        6H        ; Refresh
 +
                        1D        ; Retry
 +
                        1W        ; Expire
 +
                        10M  )      ; Negative Cache TTL
 +
;                        1D  )      ; Negative Cache TTL
 +
;
 +
; Servidores de nombres y dirección IP de zona
 +
;
 +
@ IN NS paloma.taller.csic.edu.uy.
 +
@ IN NS gould.csic.edu.uy.
 +
@ IN A 164.73.234.104
 +
;
 +
; Nombres canónicos de servidores e interfaces
 +
;
 +
paloma IN A 164.73.234.104
 +
garzon IN A 164.73.234.126
 +
;
 +
; Alias a nombres canónicos, para los servicios
 +
;
 +
base-de-datos IN CNAME paloma
 +
bdd IN CNAME paloma
 +
tikiwiki IN CNAME paloma
 +
wiki IN CNAME paloma
 +
mediawiki IN CNAME paloma
 +
</pre>
  
 +
$ sudo vi/etc/bind/db.164.73.234
  
root@paloma:~# cat /etc/bind/db.164.73.234
+
<pre>
 
;
 
;
; BIND reverse data file for local loopback interface
+
; Archivo BIND de definición de zona inversa a taller.csic.edu.uy
 
;
 
;
$TTL 604800
+
$TTL 86400 ; 1D
@ IN SOA taller.csic.edu.uy. root.dns. (
+
@ IN SOA taller.csic.edu.uy. root.taller.csic.edu.uy. (
1 ; Serial
+
2011060901 ; Serial
604800 ; Refresh
+
6H ; Refresh
86400 ; Retry
+
1D ; Retry
2419200 ; Expire
+
1W ; Expire
604800 ) ; Negative Cache TTL
+
1D ) ; Negative Cache TTL
 
;
 
;
@ IN NS taller.csic.edu.uy.
+
@ IN NS taller.csic.edu.uy.
@ IN PTR taller.csic.edu.uy.
+
@ IN PTR taller.csic.edu.uy.
102 IN PTR pedrera.taller.csic.edu.uy.
+
104 IN PTR paloma.taller.csic.edu.uy.
103 IN PTR polonio.taller.csic.edu.uy.
+
126 IN PTR garzon.taller.csic.edu.uy.
104 IN PTR paloma.taller.csic.edu.uy.
+
</pre>
126 IN PTR garzon.taller.csic.edu.uy.
+
 
 +
Editamos el archivo /etc/reslov.conf
 +
 
 +
En este archivo se indica el dominio al que pertenece el ordenador (palabra clave search) y la dirección del servidor de nombres (palabra clave nameserver) al que se debe dirigir.
 +
Cuando se intente resolver un nombre que no esté totalmente cualificado se intentará generar un nombre válido añadiendo la entrada de search.
 +
 
 +
$ sudo vi /etc/resolv.conf
 +
 
 +
search taller.csic.edu.uy
 +
domain taller.csic.edu.uy
 +
nameserver 164.73.128.5
 +
nameserver 164.73.128.70
 +
 
 +
== Verificación ==
 +
 
 +
* Vaciar el cache y reiniciar el servicio
 +
 +
$ sudo rndc flush && /etc/init.d/bind9 restart
  
 +
Stopping domain name service... bind9                                [ OK ]
 +
Starting domain name service... bind9                                [ OK ]
 +
 +
* Ademas de decir ok hay que verificar que realmente este funcionando observando el syslog, donde se puede observar como se cargan correctamente todas las zonas
 +
 +
$ sudo tail /var/log/syslog
 +
 +
<pre>
 +
Jun 17 16:16:31 paloma named[4520]: zone 0.in-addr.arpa/IN: loaded serial 1
 +
Jun 17 16:16:31 paloma named[4520]: zone 127.in-addr.arpa/IN: loaded serial 1
 +
Jun 17 16:16:31 paloma named[4520]: zone 234.73.164.in-addr.arpa/IN: loaded serial 2011060901
 +
Jun 17 16:16:31 paloma named[4520]: zone 255.in-addr.arpa/IN: loaded serial 1
 +
Jun 17 16:16:31 paloma named[4520]: zone localhost/IN: loaded serial 2
 +
Jun 17 16:16:31 paloma named[4520]: zone taller.csic.edu.uy/IN: loaded serial 2011060903
 +
Jun 17 16:16:31 paloma named[4520]: zone taller.curerocha.edu.uy/IN: loaded serial 2011060909
 +
Jun 17 16:16:31 paloma named[4520]: running
 +
Jun 17 16:16:31 paloma named[4520]: zone taller.csic.edu.uy/IN: sending notifies (serial 2011060903)
 +
Jun 17 16:16:31 paloma named[4520]: zone taller.curerocha.edu.uy/IN: sending notifies (serial 2011060909)
 +
</pre>
 +
 +
* Comando host
 +
 +
$ host -a taller.csic.edu.uy
 +
 +
<pre>
 +
Trying "taller.csic.edu.uy"
 +
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 24858
 +
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 2, ADDITIONAL: 2
 +
 +
;; QUESTION SECTION:
 +
;taller.csic.edu.uy. IN ANY
 +
 +
;; ANSWER SECTION:
 +
taller.csic.edu.uy. 352 IN A 164.73.234.104
 +
taller.csic.edu.uy. 352 IN NS gould.csic.edu.uy.
 +
taller.csic.edu.uy. 352 IN NS paloma.taller.csic.edu.uy.
 +
 +
;; AUTHORITY SECTION:
 +
taller.csic.edu.uy. 352 IN NS gould.csic.edu.uy.
 +
taller.csic.edu.uy. 352 IN NS paloma.taller.csic.edu.uy.
 +
 +
;; ADDITIONAL SECTION:
 +
gould.csic.edu.uy. 576 IN A 164.73.68.10
 +
paloma.taller.csic.edu.uy. 352 IN A 164.73.234.104
 +
 +
Received 153 bytes from 164.73.128.70#53 in 49 ms
 +
</pre>
 +
 +
$ host taller.curerocha.edu.uy
 +
taller.curerocha.edu.uy has address 164.73.234.104
 +
 +
$ host  paloma.taller.curerocha.edu.uy
 +
paloma.taller.curerocha.edu.uy has address 164.73.234.104
 +
 +
$ host gould.csic.edu.uy
 +
gould.csic.edu.uy has address 164.73.68.10
 +
 +
$ host 164.73.234.104
 +
104.234.73.164.in-addr.arpa domain name pointer paloma.taller.csic.edu.uy.
 +
 +
 +
* Comando dig
 +
 +
  $ dig taller.csic.edu.uy
 +
 +
<pre>
 +
; <<>> DiG 9.7.0-P1 <<>> taller.csic.edu.uy
 +
;; global options: +cmd
 +
;; Got answer:
 +
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 38158
 +
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2
 +
 +
;; QUESTION SECTION:
 +
;taller.csic.edu.uy. IN A
 +
 +
;; ANSWER SECTION:
 +
taller.csic.edu.uy. 360 IN A 164.73.234.104
 +
 +
;; AUTHORITY SECTION:
 +
taller.csic.edu.uy. 360 IN NS gould.csic.edu.uy.
 +
taller.csic.edu.uy. 360 IN NS paloma.taller.csic.edu.uy.
 +
 +
;; ADDITIONAL SECTION:
 +
gould.csic.edu.uy. 3600 IN A 164.73.68.10
 +
paloma.taller.csic.edu.uy. 360 IN A 164.73.234.104
 +
 +
;; Query time: 146 msec
 +
;; SERVER: 10.5.2.2#53(10.5.2.2)
 +
;; WHEN: Fri Jun 17 16:29:30 2011
 +
;; MSG SIZE  rcvd: 125
 +
</pre>
 +
 +
* Comando dlint
 +
 +
$ dlint taller.csic.edu.uy
 +
 +
<pre>
 +
root@paloma:/etc/bind# dlint taller.csic.edu.uy
 +
;; dlint version 1.4.0, Copyright (C) 1998 Paul A. Balyoz <pab@domtools.com>
 +
;;    Dlint comes with ABSOLUTELY NO WARRANTY.
 +
;;    This is free software, and you are welcome to redistribute it
 +
;;    under certain conditions.  Type 'man dlint' for details.
 +
;; command line: /usr/bin/dlint taller.csic.edu.uy
 +
;; flags: normal-domain recursive.
 +
;; using dig version 9.7.0
 +
;; run starting: vie jun 17 16:31:47 UYT 2011
 +
;; ============================================================
 +
;; Now linting taller.csic.edu.uy
 +
;; Checking serial numbers per nameserver
 +
;;    2011060903 paloma.taller.csic.edu.uy.
 +
;;    2011060903 gould.csic.edu.uy.
 +
;; All nameservers agree on the serial number.
 +
;; Now caching whole zone (this could take a minute)
 +
;; trying nameserver gould.csic.edu.uy.
 +
;; 5 A records found.
 +
WARNING: the zone taller.csic.edu.uy. has an A record but no reverse PTR record.  This is probably OK.
 +
;; ============================================================
 +
;; Now linting taller.csic.edu.uy.
 +
;; Checking serial numbers per nameserver
 +
;;    2011060903 gould.csic.edu.uy.
 +
;;    2011060903 paloma.taller.csic.edu.uy.
 +
;; All nameservers agree on the serial number.
 +
;; Now caching whole zone (this could take a minute)
 +
;; trying nameserver gould.csic.edu.uy.
 +
;; 5 A records found.
 +
WARNING: the zone taller.csic.edu.uy. has an A record but no reverse PTR record.  This is probably OK.
 +
;; no subzones found below taller.csic.edu.uy., so no recursion will take place.
 +
;; ============================================================
 +
;; dlint of taller.csic.edu.uy. run ending with errors.
 +
;; run ending: vie jun 17 16:31:49 UYT 2011
 +
;; ============================================================
 +
;; dlint of taller.csic.edu.uy run ending with errors.
 +
;; run ending: vie jun 17 16:31:49 UYT 2011
 +
</pre>
 +
 +
== Referencias: ==
  
  
Referencias:
 
 
http://linuxsilo.net/articles/bind.html
 
http://linuxsilo.net/articles/bind.html
 +
 
http://www.javcasta.com/2011/05/09/ubuntu-servidor-dns-cache-para-una-red-local-lan-stub-con-bind9/
 
http://www.javcasta.com/2011/05/09/ubuntu-servidor-dns-cache-para-una-red-local-lan-stub-con-bind9/
 +
 +
http://web.mit.edu/rhel-doc/4/RH-DOCS/rhel-rg-es-4/s1-bind-zone.html
 +
 +
[[Category:Descontinuadas]]

Revisión actual del 13:41 14 ene 2022

Servicio de Resolución de Nombres (DNS)

Conceptos

El DNS es un servicio distribuido que tiene dos objetivos principales:

  • Traducir una dirección canónica en una dirección IP, por ejemplo pedrera.taller.curerocha.edu.uy a su IP: 164.73.234.102
  • Traducir una dirección IP en una o varias direcciones canónicas, lo que se conoce como traducción inversa, por ejemplo 164.73.234.102 en pedrera.taller.curerocha.edu.uy.

El servidor "DNS Master" o "DNS primario" de una zona (por ejemplo taller.curerocha.edu.uy) es el servidor donde se almacena y actualiza la información de los dominios bajo esta zona (por ejemplo laboratorio.taller.curerocha.edu.uy), y que provee esta información a otros servidores en la red.

Además de un servidor DNS primario es necesario crear un servidor DNS secundario (también llamado esclavo), que proporcionará robustez y fiabilidad. Un servidor secundario es simplemente un servidor de nombres que replica los ficheros de una zona desde un servidor maestro de esa zona.

Para que un servidor sea DNS primario de una zona, es necesario que el DNS primario de la zona de nivel superior le delegue la gestión de dominios (por ejemplo, curerocha.edu.uy es la zona superior de taller.curerocha.edu.uy).

Objetivos

ADVERTENCIA: los presentes objetivos son nuevos para la generación 2010 de la asignatura, los detalles de configuración en esta página pueden no corresponder a lo pedido y deben ser revisados. Esta advertencia deberá borrarse cuando se termine de ajustar esta documentación.

Etapa 1: DNS para una zona

Instalar y configurar un servicio DNS para la zona taller.curerocha.edu.uy, que nos fue delegada por SeCIU, que maneja la zona superior curerocha.edu.uy. El servicio DNS debe proveer las siguientes facilidades:

  • resolución directa de nombres xxx.taller.curerocha.edu.uy.
  • resolución inversa de números IP de las máquinas definidas en este ejercicio de instalación.

Etapa 2: Delegación de subdominios

Instalar y configurar un servicio DNS para zonas delegadas (subzonas) del dominio taller.curerocha.edu.uy. Los subdominios serán los siguientes:

  • dompolonio, servidor primario polonio, secundario puntadeldiablo, red 10.101.0.0/8.
  • dompunta, servidor primario puntadeldiablo, secundario aguasdulces, red 10.102.0.0/8.
  • domaguas, servidor primario aguasdulces, secundario valizas, red 10.103.0.0/8.
  • domvalizas, servidor primario valizas, secundario polonio, red 10.0.0/8.

Cada uno de estos dominios deberá definir:

  • direcciones de máquinas gato, perro, mono;
  • alias www a gato, mysql a perro.
  • servidor de correo: el servidor primario del dominio.

Cada uno de estos dominios deberá resolver:

  • nombres (resolución directa).
  • direcciones IP (resolución inversa).
  • consultas para todas las máquinas del subdominio.

Instalación

Necesitamos BIND y algunos utilitarios:

# sudo apt-get install bind9 bind9-doc dnsutils

Configuración

Los archivos de configuracion del Bind están en /etc/bind/

$ sudo vi /etc/bind/named.conf.options
// Archivo de configuracion del DNS master de
// taller.curerocha.edu.uy y taller.csic.edu.uy

// acl redesNegadas: define las redes a denegar consultas al servidor DNS
acl redesNegadas {
	0.0.0.0/8; 1.0.0.0/8;
	172.16.0.0/12;
	10.0.0.0/8;
	192.168.0.0/16; 
	169.254.0.0/16; 
};

options {
	//desactivamos la cache
   	acache-enable no;	
	directory "/var/cache/bind";

	//No es necesario forwardear
	//forwarders {
	 //	164.73.128.5;
	//	164.73.128.70;
	// };

	//No permitimos las consultas salvo las de nuestro servidor
 	allow-query { 127.0.0.1; };
 	# allow-query { none; };

	//No permitimos las recusion
   	# allow-recursion { none; };
   	allow-recursion { 127.0.0.1; };

	//Incluimos las redes de la acl redesNegadas a la lista negra
	blackhole { redesNegadas; };

	auth-nxdomain no;    # conform to RFC1035
	listen-on-v6 { any; };
	

	// If there is a firewall between you and nameservers you want
	// to talk to, you may need to fix the firewall to allow multiple
	// ports to talk.  See http://www.kb.cert.org/vuls/id/800113

	// If your ISP provided one or more IP addresses for stable 
	// nameservers, you probably want to use them as forwarders.  
	// Uncomment the following block, and insert the addresses replacing 
	// the all-0's placeholder.

};

$ sudo vi/etc/bind/named.conf.local

Editamos este archivo para definir las zonas directas e inversas de nuestro dominio, y los archivos donde estarán las configuraciones de las mismas.

//
// Do any local configuration here
//

//Definimos nuestra zona de dominio taller.csic.edu.uy
//Nuestro dns solo va a contestar por esta zona
zone "taller.csic.edu.uy"{
        type master;
        file "/etc/bind/db.taller.csic.edu.uy";
        allow-query { any;};
        // permitimos transferencia desde nuestro servidor "DNS slave"
        allow-transfer {
                164.73.68.10;
        };
};

zone "taller.curerocha.edu.uy"{
        type master;
        file "/etc/bind/db.taller.curerocha.edu.uy";
        allow-query { any;};
        // permitimos transferencia desde nuestro servidor "DNS slave"
        allow-transfer {
                164.73.68.10;
        };
};

zone "234.73.164.in-addr.arpa"{
        type master;
        file "/etc/bind/db.164.73.234";
        allow-query { any;};
        // permitimos transferencia desde nuestro servidor "DNS slave"
        allow-transfer {
                164.73.68.10;
        };
};

//include "/etc/bind/zones.rfc1918";

Los archivos de zonas

Tipos de registros del DNS:

	    Tipo 	      Nombre 	                Función
Zona 	    SOA 	Start Of Authority 	    Define una zona representativa del DNS
            NS 	        Name Server 	            Identifica los servidores de zona, delega subdominios
Básicos     A 	        Dirección IPv4 	            Traducción de nombre a dirección
            AAAA 	Dirección IPv6 original     Actualmente obsoleto
            PTR 	Puntero 	            Traducción de dirección a nombre

$TTL: Indica el tiempo de vida (Time To Live) de la información contenida en el fichero. Es decir, el tiempo máximo de validez, tras el cual deberá refrescarse o actualizarse.

@ IN SOA, el registro SOA (Start Of Authority) es siempre el primer recurso en un fichero de zona. El símbolo "@" equivale a la directiva $ORIGIN Este sería el esqueleto de este registro:

        @ IN SOA <primary-name-server> <hostmaster-email> (
          <serial-number>    ; Se incrementa cuando se modifica el fichero de la zona
          <time-to-refresh>  ; Tiempo para los servidores secundarios (esclavos) actualicen los registros
          <time-to-retry>    ; Tiempo para el servidor esclavo antes de solicitar una actualización, si el Master no responde
          <time-to-expire>   ; Si el master no responde antes de que expire este tiempo, el servidor esclavo deja de actuar como servidor de zona 
          <minimum-TTL> )    ; Time to live negativo
$ sudo vi/etc/bind/db.taller.csic.edu.uy
;
; Archivo BIND de definición de zona taller.csic.edu.uy
;
$TTL	86400 ; 1D
@	IN	SOA	paloma.taller.csic.edu.uy. root.paloma.taller.csic.edu.uy. (
			 2011060903		; Serial
			 6H		; Refresh
			 1D		; Retry
			 1W		; Expire
			 10M )	; Negative Cache TTL
;			 1D )	; Negative Cache TTL
;
; Servidores de nombres y dirección IP de zona
;
@               IN	NS	paloma.taller.csic.edu.uy.
@               IN	NS	gould.csic.edu.uy.
@		IN	A	164.73.234.104
;
; Nombres canónicos de servidores e interfaces
;
paloma		IN	A	164.73.234.104
garzon		IN	A	164.73.234.126
;
; Alias a nombres canónicos, para los servicios
;
base-de-datos	IN	CNAME	paloma
bdd		IN	CNAME	paloma
mediawiki	IN	CNAME	paloma
wiki 		IN	CNAME	paloma
tikiwiki	IN	CNAME	paloma	
$ sudo vi/etc/bind/db.taller.curerocha.edu.uy
;
; Archivo BIND de definición de la zona taller.curerocha.edu.uy
;
$ORIGIN taller.curerocha.edu.uy.
$TTL   86400 ; 1D
@       IN      SOA     paloma.taller.csic.edu.uy. root.paloma.taller.csic.edu.uy. (
                         2011060909 ; Serial
                         6H         ; Refresh
                         1D         ; Retry
                         1W         ; Expire
                         10M  )      ; Negative Cache TTL
;                         1D  )      ; Negative Cache TTL
;
; Servidores de nombres y dirección IP de zona
;
@		IN NS	 paloma.taller.csic.edu.uy.
@		IN NS	 gould.csic.edu.uy.
@		IN A	 164.73.234.104
;
; Nombres canónicos de servidores e interfaces
;
paloma		IN A	 164.73.234.104
garzon		IN A	 164.73.234.126
;
; Alias a nombres canónicos, para los servicios
;
base-de-datos	IN CNAME paloma
bdd		IN CNAME paloma
tikiwiki	IN CNAME paloma
wiki		IN CNAME paloma
mediawiki	IN CNAME paloma
$ sudo vi/etc/bind/db.164.73.234
;
; Archivo BIND de definición de zona inversa a taller.csic.edu.uy
;
$TTL	86400 ; 1D
@	IN	SOA	taller.csic.edu.uy. root.taller.csic.edu.uy. (
			 2011060901	; Serial
			 6H		; Refresh
			 1D		; Retry
			 1W		; Expire
			 1D )		; Negative Cache TTL
;
@	IN	NS	taller.csic.edu.uy.
@	IN	PTR	taller.csic.edu.uy.
104	IN	PTR	paloma.taller.csic.edu.uy.
126	IN	PTR	garzon.taller.csic.edu.uy.

Editamos el archivo /etc/reslov.conf

En este archivo se indica el dominio al que pertenece el ordenador (palabra clave search) y la dirección del servidor de nombres (palabra clave nameserver) al que se debe dirigir. Cuando se intente resolver un nombre que no esté totalmente cualificado se intentará generar un nombre válido añadiendo la entrada de search.

$ sudo vi /etc/resolv.conf
search taller.csic.edu.uy
domain taller.csic.edu.uy
nameserver 164.73.128.5
nameserver 164.73.128.70

Verificación

  • Vaciar el cache y reiniciar el servicio
$ sudo rndc flush && /etc/init.d/bind9 restart
Stopping domain name service... bind9                                 [ OK ] 
Starting domain name service... bind9                                 [ OK ] 
  • Ademas de decir ok hay que verificar que realmente este funcionando observando el syslog, donde se puede observar como se cargan correctamente todas las zonas
$ sudo tail /var/log/syslog
Jun 17 16:16:31 paloma named[4520]: zone 0.in-addr.arpa/IN: loaded serial 1
Jun 17 16:16:31 paloma named[4520]: zone 127.in-addr.arpa/IN: loaded serial 1
Jun 17 16:16:31 paloma named[4520]: zone 234.73.164.in-addr.arpa/IN: loaded serial 2011060901
Jun 17 16:16:31 paloma named[4520]: zone 255.in-addr.arpa/IN: loaded serial 1
Jun 17 16:16:31 paloma named[4520]: zone localhost/IN: loaded serial 2
Jun 17 16:16:31 paloma named[4520]: zone taller.csic.edu.uy/IN: loaded serial 2011060903
Jun 17 16:16:31 paloma named[4520]: zone taller.curerocha.edu.uy/IN: loaded serial 2011060909
Jun 17 16:16:31 paloma named[4520]: running
Jun 17 16:16:31 paloma named[4520]: zone taller.csic.edu.uy/IN: sending notifies (serial 2011060903)
Jun 17 16:16:31 paloma named[4520]: zone taller.curerocha.edu.uy/IN: sending notifies (serial 2011060909)
  • Comando host
$ host -a taller.csic.edu.uy
Trying "taller.csic.edu.uy"
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 24858
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 2, ADDITIONAL: 2

;; QUESTION SECTION:
;taller.csic.edu.uy.		IN	ANY

;; ANSWER SECTION:
taller.csic.edu.uy.	352	IN	A	164.73.234.104
taller.csic.edu.uy.	352	IN	NS	gould.csic.edu.uy.
taller.csic.edu.uy.	352	IN	NS	paloma.taller.csic.edu.uy.

;; AUTHORITY SECTION:
taller.csic.edu.uy.	352	IN	NS	gould.csic.edu.uy.
taller.csic.edu.uy.	352	IN	NS	paloma.taller.csic.edu.uy.

;; ADDITIONAL SECTION:
gould.csic.edu.uy.	576	IN	A	164.73.68.10
paloma.taller.csic.edu.uy. 352	IN	A	164.73.234.104

Received 153 bytes from 164.73.128.70#53 in 49 ms
$ host taller.curerocha.edu.uy
taller.curerocha.edu.uy has address 164.73.234.104
$ host  paloma.taller.curerocha.edu.uy
paloma.taller.curerocha.edu.uy has address 164.73.234.104
$ host gould.csic.edu.uy
gould.csic.edu.uy has address 164.73.68.10
$ host 164.73.234.104
104.234.73.164.in-addr.arpa domain name pointer paloma.taller.csic.edu.uy.


  • Comando dig
 $ dig taller.csic.edu.uy 
; <<>> DiG 9.7.0-P1 <<>> taller.csic.edu.uy
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 38158
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2

;; QUESTION SECTION:
;taller.csic.edu.uy.		IN	A

;; ANSWER SECTION:
taller.csic.edu.uy.	360	IN	A	164.73.234.104

;; AUTHORITY SECTION:
taller.csic.edu.uy.	360	IN	NS	gould.csic.edu.uy.
taller.csic.edu.uy.	360	IN	NS	paloma.taller.csic.edu.uy.

;; ADDITIONAL SECTION:
gould.csic.edu.uy.	3600	IN	A	164.73.68.10
paloma.taller.csic.edu.uy. 360	IN	A	164.73.234.104

;; Query time: 146 msec
;; SERVER: 10.5.2.2#53(10.5.2.2)
;; WHEN: Fri Jun 17 16:29:30 2011
;; MSG SIZE  rcvd: 125
  • Comando dlint
$ dlint taller.csic.edu.uy
root@paloma:/etc/bind# dlint taller.csic.edu.uy
;; dlint version 1.4.0, Copyright (C) 1998 Paul A. Balyoz <pab@domtools.com>
;;     Dlint comes with ABSOLUTELY NO WARRANTY.
;;     This is free software, and you are welcome to redistribute it
;;     under certain conditions.  Type 'man dlint' for details.
;; command line: /usr/bin/dlint taller.csic.edu.uy
;; flags: normal-domain recursive.
;; using dig version 9.7.0
;; run starting: vie jun 17 16:31:47 UYT 2011
;; ============================================================
;; Now linting taller.csic.edu.uy
;; Checking serial numbers per nameserver
;;     2011060903 paloma.taller.csic.edu.uy.
;;     2011060903 gould.csic.edu.uy.
;; All nameservers agree on the serial number.
;; Now caching whole zone (this could take a minute)
;; trying nameserver gould.csic.edu.uy.
;; 5 A records found.
WARNING: the zone taller.csic.edu.uy. has an A record but no reverse PTR record.  This is probably OK.
;; ============================================================
;; Now linting taller.csic.edu.uy.
;; Checking serial numbers per nameserver
;;     2011060903 gould.csic.edu.uy.
;;     2011060903 paloma.taller.csic.edu.uy.
;; All nameservers agree on the serial number.
;; Now caching whole zone (this could take a minute)
;; trying nameserver gould.csic.edu.uy.
;; 5 A records found.
WARNING: the zone taller.csic.edu.uy. has an A record but no reverse PTR record.  This is probably OK.
;; no subzones found below taller.csic.edu.uy., so no recursion will take place.
;; ============================================================
;; dlint of taller.csic.edu.uy. run ending with errors.
;; run ending: vie jun 17 16:31:49 UYT 2011
;; ============================================================
;; dlint of taller.csic.edu.uy run ending with errors.
;; run ending: vie jun 17 16:31:49 UYT 2011

Referencias:

http://linuxsilo.net/articles/bind.html

http://www.javcasta.com/2011/05/09/ubuntu-servidor-dns-cache-para-una-red-local-lan-stub-con-bind9/

http://web.mit.edu/rhel-doc/4/RH-DOCS/rhel-rg-es-4/s1-bind-zone.html