Redes de Comunicaciones II
Grado en Ingeniería Informática
Módulo 1 // Nivel de aplicación
M1.4 - Protocolo DNS
Oscar Delgado
[email protected]
M1.4 // Resolución de
nombres (DNS)
DNS: Domain Name System
Cualquier elemento conectado Domain Name System (DNS):
a Internet dispone de: ▪ Base de datos distribuida
• Dirección IP, usada por las implementada como una jerarquía
máquinas
de servidores de nombres
• Nombre, usado por los
humanos ▪ Protocolo de nivel de aplicación:
las aplicaciones lo utilizan
(normalmente, a petición de un
Q: ¿cómo traducir un nombre usario) para resolver un nombre
en una dirección IP, y
viceversa? ▪ Utiliza el puerto 53 UDP para la
comunicación cliente - servidor, y
53 TCP para servidor - servidor
3
DNS // Servicios y estructura
Servicios DNS básicos: Q: ¿Por qué no un esquema
▪ Tradución nombre <-> dirección IP centralizado?
▪ Punto único de fallo: es un servicio
▪ Host aliasing crítico para Internet
• Múltiples nombres para un mismo host ▪ Volumen de tráfico inmanejable
• P. ej: permite alojar varios sitios Web en
un único servidor
A: ¡No escala!
▪ Solo los servidores públicos de
▪ Distribución de carga
Google sirvan más de 1 trillón de
• Servidores Web replicados: varias peticiones al día
direcciones IP corresponden al mismo
nombre
4
PROFUNDIZA Ceremonia de cambio de
claves
Es problablemente uno de los protocolos más seguros del mundo.
Referencias
● The DNSSEC Root Signing Ceremony
DNS // Base de datos distribuida y jerárquica
Servidores DNS
raíz Raíz
… …
TLDs .com TLDs .org TLDs .es Dominios de alto nivel
(Top Level Domains, TLD)
DNS primario DNS primario DNS DNS DNS primario Primarios
google.com amazon.com primario primario forocoches.es
wikipedia.org uam.es
Servidores TLDs
Servidores primarios
Servidores raíz
Almacenan las IPs de los (authoritative servers)
Almacenan las IPs de servidores primarios de
Almacenan las IPs de los
los servidores TLDs todos los subdominios de
hosts de su dominio
su zona (.com, .es, etc.)
6
DNS // Servidores raíz
13 servidores “lógicos” a nivel mundial,
▪ Último recurso para servidores replicados físicamente muchas veces
DNS, que no conocen a otros (~200 servidores solo en EEUU)
servidores que necesitan
▪ Función increíblemente
importante para Internet
• No funcionaría sin ellos
▪ Gestionados por la ICANN
(Internet Corporation for Assigned
Names and Numbers)
7
ACTIVIDAD digging DNS
dig es una herramienta que permite hacer todo tipo de consultas DNS
1. Resolución simple:
# dig uam.es
2. Resolución completa, hasta los servidores raíz:
# dig +trace elpais.com
3. Se puede forzar a utilizar un servidor DNS concreto:
#dig @8.8.8.8 +trace elpais.com | more
4. Encontrar el servidor de correo de un dominio:
# dig MX uam.es
# dig MX ii.uam.es (no existe, no hay respuesta)
# dig MX elpais.com
Dominios
-es
moodle.pre.uam.es Dominio de alto
nivel (TLD)
Resuelto (si es
necesario) por un
moodle- servidor raíz
Nombre final de
la máquina
Resuelto por el DNS
primario (UAM) -uam-
-pre-
Dominio primario
Subdominio Resuelto por el TLD .es
Resuelto por el DNS
primario (UAM)
9
DNS // Proceso de resolución
Servidor DNS raíz
Máquina en asterix.uam.es necesita Consulta
la dirección IP de www.rediris.es recursiva
2
3
¿www.rediris.es? TLD DNS server
0. Navegador solicita al resolver 1 4
(proceso local) la resolución.
1. El resolver se comunica con el
8 5
DNS local (normalmente, asterix.uam.es
configurado a mano). Éste Servidor DNS
comprueba si la petición está en local
ns1.uam.es gaia.cs.umass.edu
su caché. Como es una petición 7 6
recursiva, él se encarga del resto
del proceso.
2. Si no conoce la IP del TLD authoritative DNS server
correspondiente (.es), pregunta a dns.cs.umass.edu
Consultas
un servidor raíz aleatorio. Si la iterativas
(2, 4 y 6)
conoce, pregunta al TLD
directamente (paso 4) 10
DNS // Proceso de resolución
Servidor DNS raíz
Máquina en asterix.uam.es necesita Consulta
la dirección IP de www.rediris.es recursiva
2
3
¿www.rediris.es? TLD DNS server
3. El servidor raíz devuelve una lista 1 4
con TLDs para el dominio .es
4. El servidor DNS elige una entrada
8 5
de la lista y le consulta. asterix.uam.es
5. El servidor TLD correspondiente Servidor DNS
responde con la dirección IP del local
ns1.uam.es gaia.cs.umass.edu
servidor primario del dominio 7 6
.rediris.es
6. El servidor DNS pregunta
finalmente al servidor primario por authoritative DNS server
el host ‘www’ dns.cs.umass.edu
Consultas
7. Se devuelve la respuesta correcta, iterativas
(2, 4 y 6)
que se pasa al solictante en el
paso 8 11
ACTIVIDAD Resolver
Proceso local que se encarga de recibir las peticiones de resolución DNS
de todas las aplicaciones:
1. Cada ISP tiene su servidor DNS local. Para encontrar el tuyo:
a. MacOS: % scutil --dns
b. Windows: >ipconfig /all
c. Linux: # nmcli device show <<interfaz>>
Registros DNS
Tipo A (Address) Tipo CNAME (Canonical NAME)
Se utilizan para una resolución simple Sirven para crear “alias” (punteros) diferentes para un
dominio > dirección IP mismo dominio
Tipo NS (Name Server) Tipo MX (eMailer eXchange)
Sirven para obtener el servidor primario Permiten obtener el servidor de correo asociado a un
correspondinete a un dominio dominio
13
Caché DNS
▪ La infraestructura DNS cachea a varios niveles las
traducciones para reducir los tiempos de respuesta:
Cuanto más cercano esté la caché al navegador, más rápida será la resolución. En
Máquina
Navegador Chrome, puede verse el estado de la caché escribiendo en la URL
chrome://net-internals/#dns.
El resolver recursivo también tiene funcionalidades adicionales dependiendo de los tipos
de registros que tenga en su caché:
Resolver (SO)
● Si el resolver no tiene los registros A, pero tiene los registros NS para los
servidores de nombres primarios (autoritativos), les consultará directamente.
● Si el resolver no tiene los registros NS, enviará una consulta a los servidores TLD
DNS local (.com en nuestro caso), saltándose el servidor raíz.
● En el improbable caso de que el resolver no tenga registros apuntando a los
servidores TLD, entonces consultará a los servidores raíz. Esto suele ocurrir solo
después de que se haya purgado la caché DNS.
Otros DNS
14
Caché DNS
▪ Las entradas cacheadas DEBEN caducar (tienen un TTL):
• Si no, si una máquina cambia su IP, los DNS devolverían siempre
respuestas incorrectas.
• Un TTL típico para servidores DNS es de 48 horas.
15
DNS // Formato de los mensajes
Tanto las consultas como respuestas DNS tienen el mismo formato
2 bytes 2 bytes
ID flags
Cabecera
▪ ID: identificador de 16 bits, # preguntas # respuestas
para que el cliente pueda # registros primarios # registros adicionales
mapear la respuesta Preguntas
▪ flags: (número variable)
• Petición o respuesta Respuestas
• Solicitud de recursión (número variable)
• recursion available Registros primarios
• reply is authoritative (respuestas autoritarivas)
Información adicional
16
¿Cómo se generan nuevos dominios?
Escenario: queremos crear una web para una nueva empresa llamada “UAM
Utopia”
▪ Registrar el nombre de dominio (‘uamutopia.com’) en un registrador
DNS:
• Datos personales del responsable del dominio
• Crear los registros A y NS el TLD .com (se encarga el registrador):
(dns1.uamutopia.com, NS)
(uamutopia.com, 212.212.212.1, A)
(dns1.uamutopia.com, 212.212.212.1, A)
▪ Instalar y configurar un servidor DNS en la máquina con IP 212.212.212.1
• Registro A para www.uamutopia.com, para el servidor Web
• Registro MX para uamutopia.com, para poder recibir y enviar correo
17
DNS // Seguridad
DDoS attacks Spoofing attacks
▪ bombard root servers with ▪ intercept DNS queries,
traffic returning bogus replies
• not successful to date ▪ DNS cache poisoning
▪ RFC 4033: DNSSEC
• traffic filtering authentication services
• local DNS servers cache IPs of TLD
servers, allowing root server
bypass
▪ bombard TLD servers
• potentially more dangerous
18
DNS // Seguridad
Ataques DDoS (Distributed Ataques de suplantación
Denial of Service) (spoofing)
▪ Inundar servidores raíz con ▪ Interceptan las peticiones
tráfico DNS (que no están
• Sin éxito hasta la fecha protegidas
• Contramedida: servidores criptográficamente), y
locales cachean las IPs de los devuelven respuestas
TLDs, evitando consultas a los incorrectas, para redirigiar
servidores raíz el tráfico a un servidor del
atacante
▪ Contramedida: RFC 4033
(Servicios de autenticación
DNSSEC)
19
DNS // DNS spoofing
● El atacante debe:
○ Ser más rápido en su
respuestea que el servidor
real
○ Adivinar el ID de
transacción original
○ La petición no debe estar
ya cacheada por el DNS
local
● Más info: How Hackers
Spoof DNS Requests With
DNS Cache Poisoning
Fuente: SAD DNS — New Flaws Re-Enable DNS Cache Poisoning Attacks
20
Arquitectura Peer-to-Peer (P2P)
▪ Cada cliente es también un Red móvil
ISP global
servidor (nodos)
▪ Los nodos son todos iguales y se
comunican directamente entre sí
ISP local
▪ Los nodos se conectan de forma Internet
intermitente, cambiando de IP Red doméstica
• Gestión compleja
Datacenter
▪ Ejemplos: intercambio de ficheros
Red proveedor
(BitTorrent), criptomonedas (Bitcoin), servicios
VoIP (Skype) (Netflix)
Red
empresarial
21
Distribución de ficheros // C-S vs P2P
Q: ¿Cuánto tarda la distribución de un fichero de tamaño F de un
servidor a N nodos?
• peer upload/download capacity is limited resource
us: ancho de banda de
subida del servidor
di: ancho de banda de
Fichero,
u1 d1 bajada del nodo i
tamaño F us u2 d2
Servidor
di
uN Red
ui
dN
ui: ancho de banda de
subida del nodo i
Distribución de ficheros // C-S
▪ Servidor: suponemos que el servidor
envia N copias del fichero de forma
secuencial: F
• Tiempo para mandar una copia: F/us us
• Tiempo para mandar N copias: NF/us di
Red
ui
▪ Cliente: cada cliente i tarda en
descargar el fichero F/di
• min(di ) tiempo de descarga del cliente
más lento
Distribución de ficheros // P2P
▪ Servidor: debe subir al menos una copia
antes de que la distribución P2P se
puedo poner en marcha: F/us F
us
▪ Clientes: cada cliente debe descargar di
una copia: F/min(di) Red
ui
▪ Red: la red, como un todo, debe descargar un total de NF
a una tasa máxima us + Σui, considerando que todos los
nodos transmiten a la vez