Usuario:ManuelRomero/modulo DNS

= DNS =

Introduccion

 * 1) Sistema distribuido básico de gestión de nombres en internet
 * 2) A partir del nombre, obtener la IP
 * 3) También resolución inversa (Apartir de la IP ==&gt; Nombre)

Formas de gestionar la resolución de nombres En Local
direccion ip - Nombre de máquina - aliases 172.16.139.1- rebecca-  AdminWeb 172.16.139.2- ulises-  AdminCorreo 172.16.139.3- raul -  AdminDNS 172.16.139.4- elena -  Admin 172.16.139.5- sergio-  AdminWeb2 172.16.139.6- miguel-  AdminCorreo2 172.16.139.7- mapi -  AdminDNS2 172.16.139.8- cristian -  Admin2 ....
 * Gestion local
 * El fichero /etc/hosts
 * En windows …/system32/drivers/etc/hosts

order hosts,bind multi on
 * Gestión global
 * Usando el protocolo DNS
 * Sistema distribuido
 * Modelo cliente servidor
 * En una máquina se pueden combinar ambos
 * En ficheros /etc/host.conf o /etcnsswitch.conf

Funcionamiento del dns

 * DNS Es un protocolo de nivel de aplicación de TCP/IP
 * DNS o 'sistema de nombres de dominio se basa en
 * un esquema jerárquizado (dominios y subdominios separados por .)
 * distribuido
 * su función es resolver nombres
 * dado un nombre de máquina dentro de un subdominio de otro/s subdominios de un determinado dominio encontrar su identificador único de IP
 * Se basa en el concepto de dominio, utilizando para su gestión una base de datos (BBDD) distribuida
 * El servidor raíz es el último punto (También conocido como dominio raíz, que no tiene ningún nombre asociado)
 * Después de él viene el TLD (Top Level Domain), o dominio de más alto nivel..es,.com,.org
 * Los dominios y subdominios que preceden en el nombre se van conociendo como dominios de segundo nivel, de tercer nivel,...
 * La administración de los dominios lo realizan las organizaciones responsables.
 * ICANN (Internet Corporation Assigned Names and Number) organización responsable
 * posee 13 servidores repartidos por todo el mundo,
 * ellos se les denomina servidores raiz o Top Name Servers (TNS).
 * Todos ellos tienen la misma información

Evitamos posibilidad de duplicidad de nombres
 * Se pueden ver en http://en.wikipedia.org/wiki/Root_nameserver,
 * Los clientes con sus librerías pueden obtener información de los servidores
 * Implementacion del paquete bind
 * Otras implementaciones NSD, unbound, djbdns

Funcionamiento del dns 2
La ip de www.cpilosenlaces.edu.es es 194.143.194.106 No lo se pregunta a es. La ip de www.cpilosenlaces.com no la se, pregunta a edu.es. La ip de www.cpilosenlaces.edu.es no la se, pregunta a cpilosenlaces.edu.es La ip de www.cpilosenlaces.edu.es es 194.143.194.106 Este servidor seguro que lo sabe, ya que él es el responsable del dominio cpilosenlaces.edu.es
 * Las aplicaciones que funcionan en red (Navegador, ping), ejecutan en el host cliente las librerías para poder obtener la ip de una máquina con la que queremos conectar.
 * DNS funciona por defecto en el puerto 53
 * usa UDP 'TCP para comunicarse los servidores primarios y secundarios
 * El host pregunta a su servidor DNS cual es la ip de una máquina ¿Ip de www.cpilossenlaces.edu.es?
 * Si el servidor lo sabe se lo da
 * Si este servidor no lo sabe, pues pregunta a otro que lo puede saber
 * En este caso es. nos dirá
 * El servidor del dominio edu.es. nos dirá
 * El servidor del dominio cpilosenlaces.edu.es. nos dirá

Componentes y configuración
www.daw2.informatica.cpilosenlaces.edu.es normalmente no se pone se sobreentiende Ejemplo cpilosenlaces.edu.es. daw2.informática daw2.informática.cpilosenlaces.edu.es. daw2.informática.cpilosenlaces.edu.es daw2.informática.cpilosenlaces.edu.es.cpilosenlaces.edu.es.
 * Sintaxis de los nombres
 * Nos referimos al nombre completo de una máquina dentro de un dominio
 * Cadena de hasta 255 caracteres
 * formado por etiquetas (recurso,dominio o subdominios), separados por puntos
 * Las etiquetas mantienen una relación de jerárquica, de nivel superior a inferior en orden de derecha a izquierda
 * No es sensible a mayúsculas y minúsculas
 * 'muy importante el punto final'
 * Para adiministrar
 * Un nombre de dominio absoluto termina en punto
 * Un nombre de dominio relativo  no termina en punto
 * Si es relativo quiere decir que le falta algo que hay que añadir
 * Si estoy administrando el dominio
 * y quiero añadir un subdominio por ejemplo daw2.informatica, añadiré
 * y en realidad estoy creando
 * pero si añado
 * en realidad estoy añadiendo



Componentes y configuración 2

 * Paquete 'bind' (Berkeley Internet Name Domain)
 * Demonio 'named'
 * Fichero de configuracion '/etc/bind/named.conf'
 * Responde a peticiones o nombres de máquinas

demonio named
 * Servidor de nombres

apt-get install bind9 dnsutils
 * Instalacion

Zona
un dominio es el nombre que identifica de forma única un ente (organización, empresa, ...) en internet Una zona es el conjunto de recursos (servicios, dispositivos y subdominios) de un dominio que un servidor gestiona de forma directa es la parte de un dominio que queda. La información de una zona se almacena en un fichero. Ese fichero contiene dos tipos de elementos
 * Se dice entonces que el servidor tiene autoridad sobre esa zona
 * 1) directivas
 * 2) registros de recursos RR

DIRECTIVAS
$TTL $TTL tiempo_por_defecto [unidades]. 1w 1 semanas 1d  1 días 1h  1 horas 1m  1 minutos 1  1 segundos Directiva obligatoria a partir de BIND v.9. Es el tiempo de vida (Time To Live), de la validez de la información que el fichero aporta. Una vez pasado este tiempo, l ainfomración deberá ser validada o refrescada. Si no se especifican unidades se entenderá segundos. Para cada RR se puede especificar de forma explícita su TTL. Si no se hace se tomará el especificado en esta directiva, o el especificado en el RR anterior en el campo minimun. $INCLUDE $INCLUDE nombre_fichero Que hace que named incluya el contenido del fichero nombre_fichero en el lugar donde se use la directiva $ORIGIN $ORIGIN nombre_DE_DOMINIO Establece el dominio por omisión; es decir indica el nombre de dominio que será añadido a los nombres de máquinas que acompañan a los registros de recurso que no acaban en punto. Por ejemplo $ORIGIN informatica.ieslosenlaces.com.

......

ftp	IN	A	192.168.10.54

Es lo mismo que escribir ftp.informatica.ieslosenlaces.com	IN	A	192.168.10.54

$GENERATE $GENERATE inicio-parada/[incremento] lhs type rhs [comment] En cada valor del intervalo se genera una línea Cada línea tendrá un valor que irá de forma creciente desde inicio hasta que se alcance el valor de parada, con un incremento en cada línea del valor especificado en incrementeo Lhs y Rhs son las líneas que se formarán y en lugar donde se quiere que se sustituya por los valores se especificarán con $

$GENERATE 1-32 puesto$.taller3.informatica.ieslosenlaces.com A 192.168.1.$

3.4.3.3. Registro de recursos A continuación pasaremos a realizar una breve explicación de estas opciones, para a continuación poner un ejemplo. [nombre][ttl][clase][tipo] 	Nombre Aquí va el nombre del dominio (o de host) que el RR describe. Es un campo opción, en caso de que no se incluya, se asume el mismo que se puso para el RR anterior. Es el nombre del dominio que se va a resolver. MRM Si se incluye @ Estamos detallando el actual nombre de dominio

	Ttl Con el fin de forzar al sistema DNS a descartar información después de cierto tiempo, cada RR lleva asociado un tiempo de vida o ttl6. El campo ttl especifica, el tiempo de validez de la información desde que se obtiene del servidor. Es un número decimal de hasta ocho dígitos. Si no se especifica ningún valor, tomará uno por defecto del campo minimum del registro SOA precedente. En el caso de la versión 9, se tomaría el de la directiva $TTL.

	Class Aquí se indica la clase de dirección 	IN para direcciones IP, 	HS para objetos de la clase Hesiod. 	CH Red de tipo Chaos Trabajando con redes TCP/IP debe usarse siempre la clase IN. Si no se especifica ningún valor, se toma el valor del RR anterior. 	Type  Describe el tipo de RR. A continuación se lista una tabla con la información de los tipos que puede haber 	Grupo de RR	Tipo	NOMBRE	FUNCION Zona: identifican dominios de zona y sus nombres de servidores SOA 	Stara Of Autority	Define una zona DNS con autoridad NS 	Name Server	Identifica zona de servidores y subdominio con delegaciones Basico Mapean nombres y direccions y retransmiten correos	A 	Dirección IPv4	Traduca un nombre a ip de 32 bits AAAA 	Dirección IPv6 original	Ahora no se usa A6 	Dirección IPv6	Traduca un nombre a ip de 128 bits PTR 	puntero	Traduce ip a nombre Dname 	Redirección MX 	Mail eXchanger	Controla el correo de retransmisión Seguridad Añade autentificación y firmas a los ficheros de zona	KEY 	Clave Publica	Clave pública para el nombre del DNS NXT 	Next	Usado con DNSSEC para respuesta negativas SIG 	Signature	Firma para autentificar la zona Opcional Aporta información extra acerca de hosts y dominios	CNAME 	Canonical name	Alias para un host LOC 	Localizacion	Localización geográfica RP 	Persona Responsable	Especifica información de contacto para un host SRV 	servicio	Da localizaciones para servicios conocidos MRM TXT 	Texto	Comentarios

	Rdata Contiene los datos asociados al RR. El formato depende del tipo, y se describirán más adelante. A continuación analizaremos los tipos de registros más utilizados SOA NS A PTR MX 3.4.3.3.1. SOA Describe una zona de autoridad (SOA significa «Start of Authority», es decir, «Comienzo de Autoridad»). Señala que los registros siguientes contienen información autorizada para el dominio. Cada fichero incluido en la opción primary MRMdebe tener un registro SOA para esta zona. Los datos asociados contienen los siguientes campos: Sintaxis: SOA servidor responsable (parámetros)

	Servidor Nombre de la máquina que hace de DNS Se suele usar ns (name server) seguido del nombre del dominio. Si se usa el mismo dominio que el definido en el fichero named.conf, se puede usar el comodín @. Si el nombre del dominio no termina en punto, BIND, lo completa con el nombre del dominio 	Responsable Cuenta de correo donde se referencia las incidencias 	Parámetros Se especificarán los siguientes valores 	Numero de serie Se puede especificar la fecha en la que se produjo la última actualización Se suele expresar como número de versión en el día actual, es decir, en el formato AAAAMMDDnn siendo AAAA el año, MM el mes, DD el día y nn el número de revisión de ese día (01 si no hay más de una). Por ejemplo, 2001072201 para el 22 de julio de 2001. El número de versión es utilizado por los servidores secundarios para saber cuándo la información de una zona ha cambiado. Para mantenerse actualizados, los servidores secundarios piden cada cierto tiempo el registro SOA del primario, y comparan el número de versión con el que tienen en la cache. Si ha cambiado, el servidor secundario pedirá de nuevo la información de zona al primario. 	Periodo de refresco Periodo a partir del cual un servidor secundario realizará una actualización de datos del servidor maestro No debe ser pequeño ya que un fallo temporal del servidor primario hará que el secundario cargue inútilmente la red. Buenas elecciones son una hora o como poco media hora 	Frecuencia de reintentos Tiempo en segundos que debe de esperar un servidor secundario antes de volver a solicitar datos de actualización a un servidor primario . 	Tiempo de expiración  Tiempo máximo que será mantenida la información sin actualizar. 	Normalmente se pondrá un valor grande, de por lo menos una semana (604800 segundos), aunque si se incrementa a un mes o más será incluso más razonable 	TTL minimun Tiempo en el que la información de este recurso es válida. Se pueden usar las mismas unidades que en el $TTL Un ejemplo de registro SOA podría ser @	IN	SOA	ns	root.localhost. {			2008310101 ;Número de serie 21600; Periodo de refresco en sg. (6h) 10800; Frecuencia de reintento en sg. (3h) 604800; tiempo de expiración en sg				21600; tiempo de vida de los registros en cache } 3.4.3.3.2. Registro NS Este registro sirve para indicar el nombre de los servidores de nombres de dominio que tienen autoridad. Apunta a un servidor de nombres maestro de una zona subordinada. El campo de datos contiene el nombre del servidor. Para traducir ese nombre debe proporcionarse un registro A adicional, que se conoce como glue, al proporcionar la dirección IP del servidor. Hay que incluir registros NS en dos casos: 	Cuando delegamos la autoridad a una zona subordinada. 	En la base de datos del servidor principal de cualquier zona. Los servidores NS especificados en el fichero de zona deben coincidir exactamente con los que especifica la zona padre que delega. El registro NS especifica el nombre del servidor de nombres primario y los secundarios para una zona. Estos nombres deben poderse resolver para poderse usar. A veces los servidores pertenecen al mismo dominio que sirven, lo que ocasiona un problema de el huevo o la gallina: no podemos obtener el servidor de nombres hasta que accedamos al dominio, pero para acceder el dominio hay que conocer la IP del servidor de nombres... Para resolver este problema se crean registros A direectamente en la zona padre, para resolver esas direcciones. Estos son los que ya comentamos antes, los registros glue (podríamos traducirlos como registros-pegamento), puesto que unen o pegan la zona hija a la zona padre. Sintaxis Propietario ttl IN NS NombreServidorNombreDominio Ejemplo iesenlaces.com		IN	NS	pc10.iesenlaces.com informatica.desenlaces.com	IN	NS	pc11.informatica.iesenlaces.com

3.4.3.3.3. Registro A Asocia direcciones IP con nombres, de modo que los clientes puedan solicitar la dirección IP de un nombre de host dado. El campo de datos contiene la dirección separando por puntos, como es habitual. Para cada máquina sólo puede haber un registro A, que se considera nombre oficial Cualquier otro nombre será un alias y debe ser incluido con registros CNAME. Ejemplo Pc10.desenlaces.com. IN	A	192.10.15.1 Pc11.informatica.iesenlaces.com. IN	A	192.10.10.10 3.4.3.3.4. Registro MX Es el registro de recurso de intercambio de correo (MX Mail eXchange), y especifica yn servidor de intercambio de correo para un nombre de dominio. Puesto que un mismo dominio puede contener diferentes servidores de correo, el registro MX puede indicar un valor numérico que permite especificar el orden en que los clientes deben intentar contactar con dichos servidores de correo. sintáxis [domain] [ttl] [class] MX preference host

Ejemplo Desenlaces.com. IN	MX	0	pc10.iesenlaces.com. En este caso estamos definiendo el pc10 como servidor de correo del dominio desenlaces.com. 3.4.3.3.5. Registro CNAME El registro de nombre canónico (Canonical NAME) crea un alias o sinónimo para el nombre de domino especificado. Por ejemplo si queremos asignar al pc10 el alias de ServidorDeCorreo ServidorDeCorreo.ieslosenlaces.com. IN	CNAME	pc10.ieslosenlaces.com.

3.4.3.3.6. PTR Este registro de recurso (PoinTeR) o puntero, realiza la acción contraira al registro de tipo A, es decir asigna un nombre de dominio a una dirección IP Es el registro utilizado en la denominada resolución inversa Ejemplo 192.10.15.1		IN	A	Pc10.desenlaces.com. 192.10.10.10		IN	A	Pc11.informatica.iesenlaces.com.



Ese

Tipos de servidores

 * Los servidores DNS pueden ser
 * 1) Primarios
 * 2) Secundarios
 * 3) Cache-only
 * La resolución (dado un nombre obtener una ip o viceversa) puede ser
 * 1) Directa IP ==> Nombre
 * 2) Inversa Nombre ==> IP

Servidor Zonal: primario, secundario
Existen dos tipos distintos de servidores zonales
 * Responder aquellas consultas que recibe sobre zonas que tiene configuradas localmente
 * 1) primarios
 * 2) secundarios
 * Funcionalmente son idénticos
 * Administrativamente sólo en el servidor primario se debe de realizar los cambios del contenido de una zona
 * El servidor secundario es la réplica que se actualizará automáticamente

Serividor Cache

 * Responde las consultas que recibe de sus clientes
 * Lo hace sin autoridad
 * Para obtener la respuesta
 * 1) consulta a los servidores zonales adecuados
 * 2) consulta en su propia caché (si tiene dicha información ya ha consultado anteriormente y dicha información aún no ha expirado).

Instalar y configurar DNS

 * Instalación
 * Paquetes básicos


 * 1) bind9;
 * 2) dnsutils.
 * Utilidades


 * 1) bind9-host;
 * 2) dns-browse;
 * 3) dnscvsutil;
 * 4) nslin
 * Docuemtación


 * 1) bind9-doc.
 * Paquetes de desarrollo


 * 1) libbind-dev;
 * 2) libnet-dns-perl.
 * Si configuramos DHCP


 * 1) dhcp-dns.
 * Configuración
 * Se realiza en el fichero  .named.conf Es el fichero de configuración de bind
 * En el realizamos una serie de declaraciones, cada una de las cuales va {}
 * Declaracion include
 * Permite incluir otros ficheros.
 * Sirve para organizar y separar conceptos
 * Tambien como elementos de seguruidad, puedo incluir ficheros con permisos restringidos

include "file"
 * Declaracion options
 * Opciones de configuración y declaraciones globales

options { opcion_1, opcion_n };
 * Ejemplo de opciones
 * allow_query lista de ip's o redes a los que se permite consultar a este servidor. Por defecto todos

acl red_instituto{ 192.168.0.0/18 }; option { allow_query{10.0.0.1;192.168.10.35;red_instituto;}; };
 * Indica los host o redes a los que se permite acceso
 * allow_recursion
 * backlone host que no tienen acceso al servidor de nombres
 * directorydirectorio por defecto de trabajo a partir del cual se buscaran ficheros especificados
 * forwadcomportamiento de reenvio de la directiva 'forwarders'
 * forwardesdirecciones ip donde el servidor puede enviar las consultas para ser resueltas
 * liste_on
 * notify
 * pid-file
 * root-delegation-only
 * stadistics-file


 * consulta en esta dirección para ver todas las opciones


 * Declaracion zone

zone   { ; [; ...] };
 * Define las caracteristicas de una zona concreta
 * zone-nombre Es el nombre de la zona
 * zona-options opciones para la zona
 * allow-query
 * allow-transfer
 * allow-update
 * Estas directivas pueden resultar peligrosas por seguridad de habilitar. Es mejor actuar sobre los ficheros de las zonas
 * file
 * master
 * notify (yes|no|explicict)
 * type (master|slave|hit|forward|delegation-only
 * zone-statistics


 * Declaracion acl


 * Sirve para crear una lista de eqipos a la que se da o niega el acceso al servidor de nombres

acl nombre_lista { 192.168.10.1/24 ==>ip 1 }
 * Existen una serie de lista de acceso que ya creadas que se pueden utilizar
 * any ==> todas las direcciones ip
 * localhost ==> ip que use el equipo local
 * localnet ==> ip que cuya red coincida con la red de la ip del sistema local
 * none ==>  no concuerda ninguna direccion ip
 * Una vez creada la lista de acceso hay que otorgarle o quitarle el acceso con la opcion option


 * Declaracion controls
 * Requerimientos de seguridad
 * Declaracion key
 * Declaracion de claves para llevar a cabo actuaciones que queremos que requiran de seguridad


 * Declaracion loggins


 * Declaracion servers

Configuración del cliente resolver
domain informatica.emiliojimeno.edu.es search informatica.emiliojimeno.edu.es emiliojimneo.edu.es doc.ic.ac.uk
 * Configuracion con el fichero /etc/resolv.conf
 * Instalando bind y poniendo el equipo como servidor dns en modo cache
 * Contenido:
 * Definición de los servidores de nombres a los que se les solicita información del DNS.
 * Siempre con dirección IP.
 * en orden de búsqueda,
 * Definición del dominio por defecto que se añade a los nombres de máquinas :

Configuración del servidor
El fichero named.conf ya visto anteriomente named.conf : options { Directory "/var/cache/bind" query-source address * port 53; Forwarders { 155.210.12.9                155.210.33.4           }      zone "." { // prime the server with knowledge of the root servers type hint; file "/etc/bind/db.root"; };     zone "localhost" { type master; file "/etc/bind/db.local"; };     zone "127.in-addr.arpa" { type master; file "/etc/bind/db.127"; };

Servidor solo cache
named.conf : options { Directory "/var/cache/bind" query-source address * port 53; Forwarders { 4.4.4.4 } zone "." {              // prime the server with knowledge of the root servers type hint; file "/etc/bind/db.root"; }; zone "localhost" { type master; file "/etc/bind/db.local"; }; //Para resolución inversa zone "127.in-addr.arpa" { type master; file "/etc/bind/db.127"; }; @      IN      SOA     localhost. Root.localhost. (                             1          ; Serial                         21600          ; Refresco de 6 horas                          1800          ; Reintento de 30 minutos                        1209600         ; Expira en 2 semanas                         3600 )        ; Cache TTL negativo de 1 hora @      IN      NS      localhost. @      IN      A       127.0.0.1 1.0.0      IN      PTR       localhost. Observar que va sde detalla la dirección en orden inverso (peso de bytes)
 * zone . (punto)
 * type hint
 * file Es el fichero que contiene las ip's del los serividores top level
 * Ejemplo
 * Mirar el contenido de los ficheros
 * db.local
 * db.127
 * todo lo contenido en db.local, salvo la ultima línea que se sustituye con una resolución inversa

Servidor primario

 * Se pone también como cache


 * type master
 * zone Creamos la zona en este caso emiliojimneo.es.
 * named.conf :

zone "emiliojimeno.es." in { type master; file "maestro/directo/db.emiliojimeno"; }; zone "172.139.16.in-addr.arpa" in { type master; file "maestro/inverso/db.172.136.16"; };

Servidor secundario
named.conf :
 * typeslave
 * Masters => poner la ip del maestro para que el secundario le pida información
 * cuidado con los permisos del fichero
 * se crea y actualiza por el sistema y lo hace el usuario de bind

// incluido la configuración del cache-only y añadiendo en options

forwarders {  155.210.154.131;  }; allow-transfer {  none;  }; ........ zone "emiliojimeno.es." in { type slave; file "esclavo/directo/db.losenlaces"; Masters { ip_equimo_master;  }; }; zone "172.16.139.in-addr.arpa" in { type slave; file "esclavo/inverso/db.172.16.139"; Masters { ip_equipo_master_resol_inversa;  }; };

Herramientas de DNS

 * 'dig'
 * 'nslookup