# Resumen DHCP y DNS
<style>
.img_container {
display: flex;
justify-content: center;
width: 100%;
}
</style>
## Netplan
A partir de la versión de Ubuntu 17 con al aparición de Netplan se cambió la forma en la que se configura el adaptador de red, así como se hicieron desaparecer determinados paquetes de networking del paquete **net-tools**.
Hoy en día existen dos servicios (renderizadores) para configurar la red en Ubuntu:
- **Network-Manager:** Es una utilidad de software para simplificar el uso de redes de ordenadores en Linux. Además tiene una aplicación gráfica de escritorio que permite al usuario manipular las conexiones de red.
- **Systemd-networkd:** Es realmente sobre el que se apoya finalmente Network-Manager y por tanto es más estable e ideal, por lo tanto es el que debes configurar en un Servidor.
NetworkManager la utilizaremos para entornos de escritorio gráficos de equipos clientes, y Systemd-networkd para entornos servidor por comandos.
### El procesador de abstracción de configuración de red
Netplan es una utilidad para configurar fácilmente las redes en un sistema Linux. Se basa en crear
un fichero de texto con el formato YAML dentro de la carpeta /etc/netplan, con la descripción y
configuración de las interfaces de red requeridos. A partir de esta descripción, Netplan generará toda la configuración necesaria para la herramienta de renderización elegida, Network-Manager o Systemdnetworkd.
### Estructura General
El nodo de nivel superior en un archivo de configuración de netplan es una red (network:) : mapeo que contiene version:2, y luego las definiciones de dispositivos agrupadas por su tipo, como ethernets:, wifis:, o bridges: .
Cada uno de estos tipos contiene las definiciones de cada dispositivo diferenciados por su nombre clave (llamado "ID de configuración"). Cada ID debe ser único en todo el conjunto de archivos de configuración.

### Direccionamiento dinámico
- **enp0s3**: Es el nombre del único interfaz de red de linux del que dispone nuestro equipo. En este caso, es una interfaz cableada.
En la carpeta /etc/netplan están el/los archivo(s) de configuración .yaml.
Esta configuración por defecto hará que NetworkManager administre todos los dispositivos (y de forma predeterminada, cualquier dispositivo Ethernet presentará DHCP una vez que se detecte el
operador).
Todas las configuraciones siempre empiezan con las etiquetas network y la version: 2.
En renderer: hay que indicar que procesador de renderización queremos utilizar. Recuerda que
Netplan es compatible con dos:
- NetworkManager
- networkd (Systemd-networkd)
El uso de networkd como procesador no permite que los dispositivos aparezcan automáticamente
usando DHCP; cada interfaz debe especificarse en un archivo en /etc/netplan para que su configuración se escriba y se use en networkd.
## DHCP
**Dynamic Host Configuration Protocol** «protocolo de configuración dinámica de host» es el protocolo de red que permite a los clientes de una red obtener sus parámetros de configuración automáticamente, da una ip dinámica a cada equipo que se conecte a la red.
### Conceptos básicos
Es básico conocer los siguientes conceptos de redes: ip, máscara de red, dirección ip de la puerta de enlace, direcciones ip de los servidores DNS.
### Otros conceptos
- NTP (Networ Transfer Protocol): Protocolo Tiempo de Red
- SMPT (Simple Mail Transfer Protocol ): Correo electrónico
### Protocolo DHCP
Este protocolo hace uso del **puerto 67/UDP para servidor** y **68/UDP para los clientes**.
Se intercambian **4 paquetes entre el cliente** (equipo que desea obtener la configuración) y **servidor** (equipo en donde se encuentra funcionando un servicio DHCP).
Si el cliente no recibe respuesta tras enviar un DISCOVERY, volverá a realizar intentos consecutivos
<div class="img_container">
<img src="https://i.imgur.com/rBiec3m.png" >
</div>
- **DISCOVERY**: DHCP Discovery es una solicitud DHCP realizada por un cliente de este protocolo para que el servidor DHCP de dicha red de computadoras le asigne una dirección IP y otros Parámetros DHCP como la máscara de red o el nombre DNS. El cliente envía un paquete de broadcast solicitando una configuración.
- **offer**: El sevidor DHCP al recibir un paquete Discovery envía una respuesta en donde ya residen los parámetros de configuración.
- **Request** El cliente envía este paquete aceptando los parámetros de configuración.
- **Acknowledge**: El servidor confirma que queda reservada la configuración asignada al cliente.
Tras un cierto tiempo el cliente debe solicitar al servidor la renovación de la ip asignada, tras pasar un cierto tiempo, si el servidor no recibe la solicitud de renovación, considera que el equipo ha dejado de estar conectado en la red y puede reasignar la dirección ip a otros equipos.
El **servidor debe tener ip estática** en las conexiones de red por las que va a servir DHCP.
### Seguridad
Un servidor DHCP puede recibir un ataque de denegación de servicio **DDOS( Distributed Denial of Service)**, recibiendo multitud de peticiones ficticias que le hará quedarse sin direcciones disponibles.
- **¿Qué ocurre si obtenemos un DNS falso?**
Si obtenemos un DNS falso nos pueden redirigir a una página corrupta, en la que seremos vulnerables a cualquier ataque informático.
## DNS
DNS (Domain Name System), asocia cada uno de los nombres de equipos dentro de una red con sus correspondientes direcciones IP de tal forma que a partir del nombre de un equipo se pueda obtener la dirección IP que tiene ese equipo en la red.
DNS es un sistema descentralizado, escalable y jerárquico en forma de árbol.
- Las direcciones están formadas por nombres separados por punto.
- La jerarquía se representa de derecha a izquierda.
- Cada nombre representa un dominio. Excepto el último nombre que suele representar un servidor.
## Estructura jerárquica
- . → dominio raíz
- org → dominio de primer nivel
- iesanaluisabenitez → dominio de segundo nivel (Subdominio)
- www → dominio de tercer nivel (Identifica al equipo del que sale la página, el servidor)
---
- **TLD (Top Level Domain)**: Dominios asociados con países y territorios (Por ejemplo es, uk, en, jp)
- **FQDN** (Fully Qualified Domain Name) es un nombre de dominio completo que incluye el nombre de la computadora y el nombre de dominio asociado a ese equipo
### Evolución del DNS
Uno de los **primeras sistemas de resolución de nombres** de INTERNET es el del fichero **/etc/hosts**, de forma que cada equipo tiene un fichero /etc/hosts con la **correspondencia entre nombres de host y su dirección IP**.
Al aumentar el número de ordenadores conectados a Internet este sistema se volvío complicado y se creo el sistema DNS.
### Componentes del DNS
#### Espacio de dominios de nombres
Estructura jerárquica de árbol donde cada nodo contiene cero o más registros con información del dominio.
#### Zonas
Una zona es una porción del espacio de dominio de nombres cuya administración es delegada a un servidor DNS que ejerce como “autoridad” de esa porción o dominio. A este servidor se le conoce como servidor autoritativo de la zona.
<div class="img_container">
<img src="https://i.imgur.com/9lTSLCj.png" >
</div>
#### Nomenclatura DNS
- Dependiendo de su posición en la jerarquía, cada nombre de dominio del espacio de nombres está compuesto por una o más etiquetas separadas por un punto “.” cada una con un máximo de 63 caracteres.
- Las etiquetas se construyen de derecha a izquierda, donde la etiqueta más a la derecha representa el Top Level Domain (TLD) del dominio.
- A continuación del TLD, cada etiqueta a la izquierda representa una subdivisión o subdominio.
- Por último, la parte más a la izquierda del dominio FQDN suele expresar un nombre de máquina o recurso final, genéricamente conocido como host.
- En los nombres de dominios no se diferencia entre mayúsculas y minúsculas: por ejemplo, los nombres de dominio www.misitio.com y www.MiSitio.com serán considerados idénticos.
#### Espacio de dominio de direcciones IN-ADDR.ARPA
En DNS se utiliza el dominio in-addr.arpa para definir el espacio de direcciones IP. Mediante este domino se garantiza la resolución inversa de una dirección IP a su correspondiente nombre y así facilitar su búsqueda en Internet.
Por ejemplo la información de la dirección IP 213.4.108.69 se localizaría en el dominio 69.108.4.213.in-addr.arpa.
<div class="img_container">
<img src="https://i.imgur.com/rEX37HQ.png" >
</div>
### Root Server
El sistema de root servers consiste de 937 instancias gestionadas por 13 organizaciones.
Los trece servidores raíz DNS se denominan por las primeras trece letras del alfabeto latino, **de la A hasta la M** (A.ROOT-SERVERS.NET., B.ROOT-SERVERS.NET., …, M.ROOT-SERVERS.NET.), y están en manos de 9 organismos y corporaciones diferentes e independientes, principalmente universidades, empresas privadas y organismos relacionados con el ejercito de EE.UU.
### Ventajas del DNS
1. **Desaparece la carga excesiva en la red y en los hosts**: ahora la información esta distribuida por toda la red, al tratarse de una base de datos distribuida.
2. **No hay duplicidad de nombres**: el problema se elimina debido a la existencia de dominios controlados por un único administrador. Puede haber nombres iguales pero en dominios diferentes.
3. **Consistencia de la información**: ahora la información que está distribuida es actualizada automáticamente sin intervención de ningún administrador
### DNS Dinámico
Es un sistema que permite la actualización en tiempo real de la información sobre nombres de dominio situados en un servidor de nombres, siendo usado, mayoritariamente, para asignar un nombre de dominio de Internet a un ordenador con dirección IP variable (dinámica).
El DNS dinámico, así, puede ofrecer servicios en Internet en hosts que posean conexión con dirección IP dinámica, la típica configuración que los ISP ofrecen para conectarse a Internet.
### Tipos de Resolución
DNS convierte las URLs en direcciones IP y viceversa, dada una IP devuelve su URL
- **Directa:** dada una url se obtiene la ip.
- **Inversa:** dada una ip se obtiene el url.
### ¿Cómo funciona?
- La búsqueda se realiza de derecha a izquierda.
- Por ejemplo, si buscamos www.iesanaluisabenitez.org.
- Primero se interrogará a los servidores raíz, dominio “.”, por los DNS que mantienen el dominio “org”.
- El servidor DNS del dominio “org” nos dará la dirección de “iesanaluisabenitez” dentro de su dominio.
- El servidor DNS de “iesanaluisabenitez” nos dará la dirección ip del servidor “www”.
### Modos de resolución
La resolución de DNS puede funcionar de dos formas:
- **Recursiva:** el cliente realiza la consulta al servidor DNS y si este no dispone de la información, contacta con otros servidores DNS para obtener la información.
- **Iterativa:** el cliente realiza la consulta, si el servidor DNS no dispone de la misma, le indica al cliente la dirección del siguiente DNS a consultar.
### Problemas de seguridad: recursividad
- Si nuestro DNS tiene habilitado la recursividad puede sufrir un ataque de denegación de servicio o ser empleado en uno de estos ataques hacia otros servidores.
- El ataque consiste en realizar miles de peticiones al servidor DNS, que al tener que interrogar a otros servidores DNS llegaría a bloquearse.
- SOLUCIÓN: Restringir la recursividad sólo a los clientes de nuestra red.
### Puertos DNS
DNS usa el puerto 53 para responder a las peticiones de los clientes.
### Servidores de Nombres
Servidores encargados de mantener y proporcionar información del espacio de nombres o dominios.
#### Servidores Autoritativos
Un servidor de nombres autoritativo es aquel que mantiene zonas almacenadas localmente y proporciona respuestas a solicitudes de las mismas.
Los servidores autoritativos sólo proporcionan respuestas de los dominios para los que han sido configurados por el administrador.
Los servidores autoritativos pueden ser maestros o esclavos.
- **En los maestros**, o primarios, se guardan y administran las versiones definitivas de los registros que son transferidas a servidores **autoritativos esclavos**, que guardan una copia que es actualizada cada vez que se produce un cambio. Esta actualización se conoce como transferencia de zona.
Generalmente, los servidores primarios son servidores autoritativos maestros y los secundarios, servidores autoritativos esclavos.
#### Servidores Caché (Resolvers)
Los servidores DNS cachés almacenan información de consultas DNS por un determinado tiempo denominado TTL (Time To Live) de cada registro DNS. Optimizan el uso de red reduciendo el tráfico DNS en Internet puesto que almacenan los registros consultados, pudiendo ofrecerlos directamente sin tener que repetir la consulta recursiva. Igualmente, reducen la carga sobre los servidores autoritativos, especialmente los de la zona raíz o root servers.
#### DNS forwarder
Reenvía las peticiones a otros servidores. No realiza búsquedas recursivas.
El DNS Forwarder actuará de proxy para las peticiones que se deban resolver en DNS externos a nuestra empresa.
Redirigimos los servidores DNS al DNS forwarder y a este último, los redirigimos a algunos servidores DNS externos.
- **Ventajas**:
- Actúa de caché de las peticiones realizadas, reduciremos el tráfico de salida.
- Aumenta la seguridad al no necesitar los DNS internos conexión al exterior.
### Tipos de registro DNS
| Registro | Descripción |
| -------- | -------- |
| A | Descripción: Address (Dirección). Este registro se usa para traducir nombres de hosts a IPv4.|
| AAAA | Descripción: Address (Dirección). Este registro se usa para traducir nombres de hosts a IPv6.|
| CNAME | Descripción: Canonical Name (Nombre Canónico). Se usa para crear nombres de hosts adicionales, o alias. Hay que tener en cuenta que el nombre de host al que el alias referencia debe haber sido definido previamente como registro tipo "A".|
| NS | Descripción: Name Server (Servidor de Nombres). Indica qué servidores de nombres tienen total autoridad sobre un dominio concreto. Cada dominio se puede asociar a una cantidad cualquiera de servidores de nombres.|
| MX | Descripción: Mail eXchange (Registro de Intercambio de Correo).|
| PTR | Descripción: Pointer (Indicador). Traduce direcciones IP en nombres de dominio. También conocido como 'registro inverso', ya que funciona a la inversa del registro "A".|
| SOA | Descripción: Start Of Authority (Autoridad de la zona). Proporciona información sobre el servidor DNS primario de la zona.|
| TXT | Descripción: TeXT (Información textual). Permite a los dominios identificarse de modos arbitrarios. |
| SPF | Descripción: Sender Policy Framework. Es un registro de tipo TXT que va creado en una zona directa del DNS, en la cual se pone las informaciones del propio servidor de correo con la sintaxis SPF. Se utiliza para evitar el envío de correos suplantando identidades. Por lo tanto, ayuda a combatir el SPAM.|
| ANY | Descripción: (Todos) solicita todos los registros disponibles |
### Comandos DHCP
- **netplan generate**: Generar una nueva configuración de red
- **netplan apply**: Aplica los cambios de la configuración de red
- **ip ad**: Vemos datos sobre nuestra ip
- **systemctl restart systemd-networkd**: Resetea el servicio de red
- **systemctl status systemd-networkd**: Comprobamos el estado del servicio de red
- **service isc-dhcp-server restart**: Reseteamos el DHCP
- **service isc-dhcp-server status**: Comprobamos el estado del DHCP
- **journalctl | grep -m1 DHCPACK**: Comprobamos la conexión entre servidor DHCP y cliente.
- **dhcpdump -i enp0s3**: Comprobamos la conexión entre servidor DHCP y cliente
### Comandos DNS
- **named-checkconf named.conf.local**: Comprobamos si la configuración local es correcta.
- **named-checkzone daw202.inf db.daw202.inf**: Comprobamos si la zona esta configurada correctamente.
- **service bind9 reload**: Recargamos el DNS
- **service bind9 status**: Comprobamos el estado del DNS
- **systemctl disable disable systemd-resolved**: Desabilitamos el gestor dns de nuestro sistema
- **systemctl stop disable systemd-resolved**: Paramos el gestor dns de nuestro sistema
- **systemctl start disable systemd-resolved**: Reseteamos el gestor dns de nuestro sistema.
- **resolvectl status**: Comprobamos que DNS nos resuelve.
- **nslookup**: Permite realizar resoluciones inversas y directas
- **dig**: Permite realizar resoluciones inversas y directas, para la inversa le pasamos el flag -x
- **host**: Permite realizar resoluciones inversas y directas
- **/usr/sbin/rndc flush**: Resetea la cache del DNS
## Preguntas test
1. El registro de recursos _____ proporciona información sobre el DNS primario de la zona.
- [ ] a. CNAME
- [ ] b. TXT
- [ ] c. AAAA
- [x] d. SOA
2. Asocia los siguientes registros de recursos con su posible uso:
- SOA: Proporciona información sobre el servidor DNS primario de la zona
- MX: Asociar un nombre de dominio a un servidor de correo electrónico.
- NS: Definir el servidor de nombres con autoridad sobre un dominio DNS concreto.
- PTR: Traducir direcciones IP en nombres de dominio.
3. En las consultas recursivas, el cliente: (Seleccione una o más de una)
- [ ] a. Está interesado en la mejor respuesta por parte del servidor DNS consultado.
- [x] b. Quiere que el servidor DNS le resuelva totalmente la consulta.
- [x] c. La caché del servidor se puede ver beneficiada de mucha información.
- [ ] d. Siempre solicita anteriormente una consulta iterativa.
4. El árbol de dominio in-addr.arpa. es empleado:
- [ ] a. Para consultas inversas IP versión 6.
- [x] b. Para consultas inversas IP versión 4.
- [x] c. En un servidor DNS BIND como una necesidad para la resolución de una IP a un nombre de dominio.
- [x] d. Utiliza el registro de recursos (RR) PTR.
5. El comando dig:
- [ ] a. No permite realizar resoluciones inversas y directas.
- [ ] b. Solamente permite realizar resoluciones inversas.
- [ ] c. Solamente permite realizar resoluciones directas, esto es, de nombres de dominio DNS a IP.
- [x] d. Permite realizar resoluciones inversas y directas.
6. El comando host:
- [ ] a. No permite realizar resoluciones inversas y directas.
- [ ] b. Solamente permite realizar resoluciones inversas.
- [ ] c. Solamente permite realizar resoluciones directas, esto es, de nombres de dominio DNS a IP.
- [x] d. Permite realizar resoluciones inversas y directas.
7. En las consultas iterativas, el cliente:
- [x] a. Está interesado en la mejor respuesta por parte del servidor DNS consultado.
- [ ] b. Quiere que el servidor DNS le resuelva totalmente la consulta.
- [ ] c. Quiere que el servidor DNS no use recursividad y sí iteración con otros servidores DNS.
- [x] d. Puede haber solicitado recursividad en el servidor DNS y ésta estar deshabilitada.
8. El comando nslookup:
- [ ] a. No permite realizar resoluciones inversas y directas.
- [ ] b. Solamente permite realizar resoluciones inversas.
- [ ] c. Solamente permite realizar resoluciones directas, esto es, de nombres de dominio DNS a IP.
- [x] d. Permite realizar resoluciones inversas y directas.
9. El servidor DNS permite traducir una IP a su nombre de dominio correspondiente únicamente cuando es una IP versión 4
- [ ] a. Sí, puesto que la IP versión 6 no lo permite.
- [x] b. No.
- [ ] c. Sí, mediante resolución directa.
- [ ] d. Sí, mediante resolución inversa.
### Respuestas
1. El registro de recursos _____ proporciona información sobre el DNS primario de la zona.
Seleccione una:
- [ ] a. CNAME
- [ ] b. TXT
- [ ] c. AAAA
- [x] d. SOA
2. Asocia los siguientes registros de recursos con su posible uso:
- SOA: Proporciona información sobre el servidor DNS primario de la zona
- MX: Asociar un nombre de dominio a un servidor de correo electrónico.
- NS: Definir el servidor de nombres con autoridad sobre un dominio DNS concreto.
- PTR: Traducir direcciones IP en nombres de dominio.
3. En las consultas recursivas, el cliente: (Seleccione una o más de una)
- [ ] a. Está interesado en la mejor respuesta por parte del servidor DNS consultado.
- [x] b. Quiere que el servidor DNS le resuelva totalmente la consulta.
- [x] c. La caché del servidor se puede ver beneficiada de mucha información.
- [ ] d. Siempre solicita anteriormente una consulta iterativa.
4. El árbol de dominio in-addr.arpa. es empleado:
- [ ] a. Para consultas inversas IP versión 6.
- [x] b. Para consultas inversas IP versión 4.
- [x] c. En un servidor DNS BIND como una necesidad para la resolución de una IP a un nombre de dominio.
- [x] d. Utiliza el registro de recursos (RR) PTR.
5. El comando dig:
- [ ] a. No permite realizar resoluciones inversas y directas.
- [ ] b. Solamente permite realizar resoluciones inversas.
- [ ] c. Solamente permite realizar resoluciones directas, esto es, de nombres de dominio DNS a IP.
- [x] d. Permite realizar resoluciones inversas y directas.
6. El comando host:
- [ ] a. No permite realizar resoluciones inversas y directas.
- [ ] b. Solamente permite realizar resoluciones inversas.
- [ ] c. Solamente permite realizar resoluciones directas, esto es, de nombres de dominio DNS a IP.
- [x] d. Permite realizar resoluciones inversas y directas.
7. En las consultas iterativas, el cliente:
- [x] a. Está interesado en la mejor respuesta por parte del servidor DNS consultado.
- [ ] b. Quiere que el servidor DNS le resuelva totalmente la consulta.
- [ ] c. Quiere que el servidor DNS no use recursividad y sí iteración con otros servidores DNS.
- [x] d. Puede haber solicitado recursividad en el servidor DNS y ésta estar deshabilitada.
8. El comando nslookup:
- [ ] a. No permite realizar resoluciones inversas y directas.
- [ ] b. Solamente permite realizar resoluciones inversas.
- [ ] c. Solamente permite realizar resoluciones directas, esto es, de nombres de dominio DNS a IP.
- [x] d. Permite realizar resoluciones inversas y directas.
9. El servidor DNS permite traducir una IP a su nombre de dominio correspondiente únicamente cuando es una IP versión 4
- [ ] a. Sí, puesto que la IP versión 6 no lo permite.
- [x] b. No.
- [ ] c. Sí, mediante resolución directa.
- [ ] d. Sí, mediante resolución inversa.