DHCP (Protocolo de Configuración Dinámica de Host)
DHCP (Protocolo de Configuración Dinámica de Host) es un protocolo de red que permite a los clientes de una red IP obtener sus parámetros de configuración automáticamente.
Puertos:
- 67/UDP: Servidor
- 68/UDP: Cliente
Historia
DHCP se definió como una extensión del protocolo Bootstrap (BOOTP). La motivación para extender BOOTP fue que BOOTP requería intervención manual para completar la información de configuración en cada cliente. El protocolo BOOTP, a su vez, fue definido como un reemplazo para el protocolo RARP (Resolución de Direcciones Inversa).
Esto dificultaba su aplicación en muchas plataformas de servidores y requería un servidor presente en cada enlace de red individual. BOOTP introdujo la innovación de un agente de retransmisión, lo que permitió el envío de paquetes BOOTP fuera de la red local utilizando enrutamiento IP estándar. De esta forma, un servidor central de BOOTP podía servir a hosts en muchas subredes IP.
Cómo funciona ARP:
Para conocer la dirección de otro equipo, se envía un mensaje de broadcast a la red (conocido como ARP-Request), que es recibido por todos los equipos de la red local. Si uno de los equipos en la red reconoce su propia IP en la solicitud, envía un mensaje de respuesta (conocido como ARP-Reply).
Algunos comandos de ARP:
arp -d
(para borrar la tabla donde aparecen las MAC de otros equipos).arp -a
(para conocer la MAC de otro equipo).
RARP (Protocolo de Resolución de Direcciones Inversa)
Este protocolo presentaba el problema de que solo proporcionaba la IP y ningún otro parámetro, como la máscara de red o la puerta de enlace.
BOOTP (Bootstrap Protocol)
Este protocolo permite a los ordenadores sin disco obtener una dirección IP antes de cargar un sistema operativo avanzado.
BOOTP es más parecido a DHCP; proporcionaba IP, puerta de enlace, máscara de red, servidor WINS, etc.
Cómo funciona BOOTP:
El proceso BOOTP involucra los siguientes pasos:
- El cliente determina su propia dirección de hardware, que normalmente se encuentra en una ROM en el hardware.
- Un cliente BOOTP envía su dirección de hardware en un datagrama UDP al servidor. Si el cliente conoce su dirección IP y/o la dirección del servidor, debería usarlas, pero en general los clientes BOOTP no tienen datos de configuración IP. Si el cliente no sabe su propia dirección IP, usa 0.0.0.0. Si el cliente no sabe la dirección IP del servidor, usa la dirección de broadcast limitada (255.255.255.255). El número de puerto UDP es el 67.
- El servidor recibe el datagrama y busca la dirección de hardware del cliente en su archivo de configuración, que contiene la dirección IP del cliente. El servidor rellena los campos restantes en el datagrama UDP y lo devuelve al cliente usando el puerto UDP 68.
- Al recibir la respuesta, el cliente BOOTP guarda su propia dirección IP (permitiéndole responder a las peticiones ARP) y comienza el proceso de bootstrapping.
DHCP
DHCP mejora a BOOTP porque permite tener más de un servidor, el campo de configuraciones es más grande y posee DHCP Relay, que permite recibir peticiones DHCP y reenviarlas al servidor DHCP.
Cómo funciona DHCP:
Cuando un cliente se conecta a una red, envía un mensaje solicitando una dirección IP. Si en esa red hay algún servidor DHCP, se establece el siguiente proceso:
- DHCP Discovery: Solicitud DHCP realizada por un cliente para que el servidor DHCP de dicha red le asigne una dirección IP y otros parámetros DHCP, como la máscara de red o el nombre DNS.
- DHCP Offer: Paquete de respuesta del servidor DHCP a un cliente DHCP (escucha en el puerto 68/UDP) ante su petición de asignación de parámetros DHCP. Para ello, involucra su dirección MAC (Media Access Control). El cliente toma la primera oferta que llega en caso de existir varios servidores DHCP.
- DHCP Request: El cliente selecciona la configuración de los paquetes recibidos de DHCP Offer. El cliente solicita una dirección IP específica que indicó el servidor, y que los demás servidores se enteren de que ya tiene IP.
- DHCP ACK: Cuando el servidor DHCP recibe el mensaje DHCP Request del cliente, se inicia la fase final del proceso de configuración. Esta fase implica el envío de un paquete DHCP ACK al cliente. Este paquete incluye el tiempo de concesión y cualquier otra información de configuración que el cliente pueda haber solicitado. En este punto, el proceso de configuración TCP/IP se ha completado. El servidor reconoce la solicitud y envía un acuse de recibo al cliente.
Además de los parámetros de dirección IP, máscara, etc., se asigna el tiempo de concesión de la IP.
En equipos Microsoft, cuando no se ha asignado una IP manualmente y no existe un servidor DHCP, el sistema operativo asigna automáticamente una IP dentro del rango de clase B, conocida como APIPA.
Renovar una concesión
El cliente DHCP intenta renovar su concesión cuando ha transcurrido el 50% del tiempo de concesión original (T1). Envía un mensaje DHCP Request de unidifusión al servidor DHCP que otorgó la concesión. Si el servidor está disponible y la concesión aún está disponible, el servidor responde con un mensaje DHCP ACK de unidifusión y se renueva la concesión.
Si el servidor DHCP original está disponible, pero la concesión ya no está disponible, el servidor DHCP responde con un mensaje DHCP NACK y el cliente inicia el proceso para obtener una nueva concesión. Si no hay respuesta del servidor DHCP, el cliente espera hasta que haya transcurrido el 87,5% del tiempo de concesión (T2). En T2, el cliente entra en estado de retransmisión y difunde un mensaje DHCP Request para intentar renovar la concesión desde cualquier servidor DHCP disponible. Si no hay servidores DHCP disponibles al caducar la concesión, el cliente se desenlaza de la concesión existente e inicia el proceso para obtener una nueva, comenzando con un mensaje DHCP Discover.
Otro parámetro configurable en el servidor DHCP es setclassid
, que permite establecer diferentes configuraciones para equipos dentro de la misma red, como asignar una puerta de enlace a algunos clientes y a otros no.
Para configurar DHCP en Ubuntu, se debe editar el archivo /etc/dhcp/dhcpd.conf
.
DNS (Sistema de Nombres de Dominio)
DNS (Sistema de Nombres de Dominio) es un servicio que proporciona la IP de un equipo en el mundo. Su estructura es jerárquica.
Puerto:
- 53/UDP: Servidor (protocolo de capa 7)
Historia
Inicialmente, el DNS surgió de la necesidad de recordar fácilmente los nombres de los servidores conectados a Internet. Al principio, SRI alojaba un archivo llamado HOSTS que contenía todos los nombres de dominio conocidos. El crecimiento de la red hizo que este sistema centralizado no fuera práctico.
El archivo hosts de un ordenador es usado por el sistema operativo para guardar la correspondencia entre dominios de internet y direcciones IP. Este método se dejó de utilizar cuando Internet comenzó a crecer, pasando a usar servidores de resolución DNS.
El DNS es una base de datos distribuida a nivel mundial, coordinada por una inteligencia global.
El FQDN (Nombre de Dominio Completamente Cualificado) es el nombre absoluto del dominio; por ejemplo: alu.webmail.uclm.es.
(host.subdominio.uclm.es.). Al final siempre se debe colocar el punto, que representa el dominio raíz.
Los subdominios tienen un límite de 63 caracteres y un dominio puede tener hasta 127 subniveles.
Zonas de Autoridad
Son porciones del espacio de nombres de dominio que almacenan datos y son controladas por DNS. Cada zona abarca al menos un dominio y posiblemente sus subdominios, si no están delegados a otras zonas. La autoridad de la zona raíz está formada por 13 ordenadores.
Comandos interesantes:
nslookup
(para verificar si el DNS resuelve correctamente nombres e IPs)
Tipos de Servidores de Nombres
- Primarios (Maestros): Guardan los datos de un espacio de nombres en sus archivos.
- Secundarios (Esclavos): Obtienen los datos de los servidores primarios a través de una transferencia de zona.
- Locales (Caché): Funcionan con el mismo software, pero no contienen la base de datos completa. Consultan a servidores DNS remotos y almacenan las respuestas en caché para agilizar futuras peticiones. La caché, al ser volátil, puede cambiar.
El dominio IN-ADDR.ARPA
Proporciona un nombre a partir de una IP. Es la zona inversa del DNS.
Tipos de Resolución de Nombres de Dominio
Existen dos tipos de consultas: iterativa y recursiva.
Resolución Iterativa
El servidor de nombres proporciona la respuesta más completa posible consultando sus datos locales, incluyendo la caché.
Resolución Recursiva
Si el servidor no tiene la información localmente, contacta con un servidor DNS raíz y repite el proceso si es necesario. BIND utiliza el menor RTT para seleccionar el servidor cuando hay varios servidores autoritarios para una zona.
RTT (Round Trip Time)
Es el tiempo que tarda un paquete en ir del emisor al receptor y volver al emisor.
Registros DNS
- A (Address): Traduce nombres de host a direcciones IPv4.
- CNAME (Canonical Name): Crea alias para los servidores de un dominio.
- NS (Name Server): Resuelve servidores de nombres.
- MX (Mail Exchange): Asocia un dominio a servidores de correo, con balanceo de carga y prioridad.
- PTR (Pointer): Traduce IPs a nombres de dominio (registro inverso). Se usa en la configuración del DNS inverso.
- SOA (Start of Authority): Proporciona información sobre el servidor DNS primario de la zona.
Transferencia de Zona
Es el proceso de copiar la información de un servidor DNS primario a uno secundario. Normalmente, el servidor primario solo permite transferencias entre máquinas autorizadas.
- Número de serie: Versión de la zona. Los secundarios la usan para saber cuándo actualizar.
- Actualización: Frecuencia con la que un secundario comprueba si hay cambios.
- Reintentos: Tiempo de espera antes de reintentar una transferencia.
- Caducidad: Tiempo que un secundario responde consultas antes de descartar su copia.
- TTL mínimo: Tiempo de validez de las respuestas negativas (registro no existe).