Docker, DNS, Email y Streaming: Fundamentos y Tecnologías Clave

Docker: Contenedores y Orquestación

Docker: Es una plataforma que te permite crear, probar y lanzar aplicaciones en contenedores. Los contenedores son como mini-entornos aislados, pero mucho más ligeros que una máquina virtual (MV). A diferencia de las VMs, que necesitan un sistema operativo completo y un hipervisor para funcionar, los contenedores comparten el kernel del sistema operativo del host, lo que los hace más rápidos y eficientes. Las VMs son más aislantes y permiten correr diferentes SO en una máquina, mientras que los contenedores se enfocan más en microservicios. Una imagen es la plantilla de un contenedor, que es su instancia en ejecución. Un Dockerfile define la imagen, los volúmenes almacenan datos y las redes permiten la comunicación. Docker Compose gestiona varios contenedores, el Docker Engine los ejecuta en un Docker Host y la orquestación maneja múltiples contenedores con Docker Swarm o Kubernetes.

Comandos básicos de Docker:

  • docker run <imagen>: Permite ejecutar un contenedor.
  • docker ps: Lista los contenedores que están en ejecución.
  • docker stop <id/nombre>: Detiene un contenedor.
  • docker rm <id/nombre>: Elimina un contenedor.
  • docker images: Muestra las imágenes disponibles.
  • docker pull <imagen>: Descarga una imagen sin ejecutarla.
  • docker logs <id/nombre>: Muestra los registros de un contenedor.

Redes y Volúmenes en Docker

Docker ofrece varias opciones de red para conectar contenedores:

  • Bridge: Es la red predeterminada y permite la comunicación entre contenedores.
  • Host: Comparte la red del sistema anfitrión, mejorando el rendimiento.
  • None: El contenedor no tiene acceso a redes externas.
  • Overlay: Conecta contenedores en distintos hosts dentro de un clúster.
  • Macvlan: Asigna direcciones IP únicas a los contenedores en la red física.

Los volúmenes permiten almacenar datos de manera persistente, incluso después de que el contenedor se detenga o elimine. Los bind mounts conectan directorios del sistema anfitrión con los contenedores, lo que permite compartir archivos entre ambos.

Orquestación de Contenedores: Docker Swarm y Kubernetes

Docker Swarm es una herramienta integrada en Docker que facilita la administración de clústeres de contenedores. Kubernetes es un sistema más avanzado para la gestión de contenedores en producción, ofreciendo mayor flexibilidad y control.

DNS: El Sistema de Nombres de Dominio

El DNS es una base de datos distribuida y jerárquica que almacena información sobre los nombres de dominio. Su función principal es asignar nombres de dominio a direcciones IP y localizar los servidores de correo electrónico correspondientes a cada dominio. Gracias al DNS, los usuarios pueden acceder a servicios en Internet de forma fácil, sin tener que recordar largas cadenas de números, como las direcciones IP.

Jerarquía del DNS

El DNS se organiza en una jerarquía de niveles:

  • Los servidores raíz gestionan la parte superior del sistema.
  • Los dominios de nivel superior (TLDs) están debajo (ej: .com, .org, .es).
  • Seguidos por los dominios de segundo nivel y los subdominios.

Cada dominio es administrado por servidores autoritativos, que almacenan la información específica sobre ese dominio. Cuando un usuario ingresa un dominio, el navegador consulta primero el servidor DNS local. Si no tiene la respuesta, sigue una cadena de consultas: al servidor raíz, al servidor TLD y al servidor autoritativo del dominio, que proporciona la IP. Con ella, el navegador se conecta al servidor web.

Existen consultas recursivas (el servidor busca la respuesta completa) e iterativas (el servidor devuelve referencias para que el cliente siga buscando).

Componentes del DNS

  • Servidores raíz: El primer nivel de resolución y dirigen a los servidores TLD.
  • Servidores TLD: Gestionan dominios de primer nivel como .com, .org o .es.
  • Servidores autoritativos: Contienen la información definitiva de un dominio.
  • Servidores recursivos: Resuelven consultas para los clientes y almacenan las respuestas en caché.

Registros DNS Comunes

  • Registro A: Asigna una dirección IPv4 a un dominio.
  • Registro AAAA: Asigna una dirección IPv6.
  • Registro CNAME: Crea un alias de otro dominio.
  • Registro MX: Indica el servidor de correo del dominio.
  • Registro TXT: Almacena información adicional, como configuraciones de SPF para la autenticación de correo.
  • Registro NS: Define los servidores de nombres que gestionan el dominio.

Herramientas útiles: DIG o NSLOOKUP.

Seguridad del DNS

El DNS es vulnerable a varios ataques, como:

  • Envenenamiento de caché: Se inyecta información falsa en la caché del DNS.
  • Ataques de phishing: Redirigen a los usuarios a sitios maliciosos.
  • Ataques DDoS: Utilizan el DNS para amplificar el tráfico malicioso.

Para mitigar estos riesgos, se implementa DNSSEC (DNS Security Extensions), que proporciona autenticación mediante firmas digitales, asegurando la integridad y autenticidad de las respuestas DNS.

Servidor DNS Caché

El servidor DNS caché almacena temporalmente respuestas DNS para acelerar futuras consultas y reducir el tráfico externo.

Beneficios:

  • Reducción del tiempo de respuesta.
  • Ahorro de ancho de banda.
  • Menor carga en servidores DNS autoritativos.
  • Mayor disponibilidad, ya que puede seguir funcionando si un servidor autoritativo falla.

Funcionamiento:

Al realizar una consulta, primero busca en la caché; si no encuentra la respuesta, consulta a los servidores autoritativos y guarda la respuesta con un TTL (tiempo de vida). Las consultas posteriores se responden desde la caché, siempre que el TTL esté activo.

Diferencias entre DNS Caché y DNS Autoritativo:

La diferencia principal entre un DNS caché y un DNS autoritativo es que el caché almacena respuestas temporales, mientras que el autoritativo gestiona registros oficiales de dominios y proporciona respuestas basadas en esos registros.

Archivos Clave de BIND

  • /etc/bind/named.conf: Archivo principal de configuración.
  • /etc/bind/named.conf.options: Opciones globales.
  • /etc/bind/named.conf.local: Zonas DNS personalizadas.
  • /var/cache/bind: Caché DNS.
  • /etc/bind/rndc.key: Clave para la administración remota mediante rndc.

Configuración de DNS Maestro

Se configura a través del archivo /etc/bind/named.conf.local, donde se definen las zonas de los dominios. Los archivos de zona como db.local y db.127 contienen los registros específicos para esos dominios. Los comandos named-checkconf y named-checkzone ayudan a verificar la sintaxis y detectar errores en las configuraciones.

Correo Electrónico: Fundamentos y Protocolos

El correo electrónico permite enviar y recibir mensajes a través de un sistema distribuido. Ha evolucionado desde texto ASCII hasta incluir multimedia. Utiliza POP3 para descargar correos en un solo dispositivo, IMAP para gestionarlos en el servidor desde varios dispositivos, y SMTP para enviar los correos.

Agentes de Correo Electrónico

  • MUA (Mail User Agent): Programas como Gmail para leer y redactar correos.
  • MTA (Mail Transfer Agent): Servidores que transportan mensajes con SMTP.
  • MTA cliente: Envía correos.
  • MTA servidor: Recibe y almacena mensajes.
  • MDA (Mail Delivery Agent): Entrega los correos en la bandeja de entrada.

Protocolos de Correo

  • POP3: Descarga correos y los elimina del servidor (opcionalmente), utilizando comandos como USER, PASS, RETR y DELE.
  • IMAP: Permite organizar correos en carpetas en el servidor y acceder a ellos desde varios dispositivos simultáneamente, usando el puerto 143.

Seguridad del Correo Electrónico

El correo electrónico puede ser interceptado, pero se asegura mediante cifrado con OpenPGP y S/MIME, y protocolos seguros como SMTPS, POPS e IMAPS, que protegen el envío, recepción y acceso a los correos usando TLS/SSL.

Streaming: Transmisión Multimedia en Tiempo Real

El streaming permite la reproducción de contenido multimedia en tiempo real sin necesidad de descargar el archivo completo, popularizándose en los años 2000 gracias al aumento del ancho de banda. Inicialmente, se usaban protocolos como FTP y HTTP, pero con el tiempo se desarrollaron protocolos más eficientes, siendo el RTSP (Real Time Streaming Protocol) el más común para transmitir video en tiempo real, permitiendo controlar la reproducción, pausa y otras funciones de los streams.

Aplicaciones del Streaming

  • Videoconferencias: Populares desde la pandemia de COVID-19, permiten la comunicación remota en tiempo real con audio y video, siendo plataformas como Zoom, Microsoft Teams, Google Meet y Skype las más comunes.
  • Podcasts: Archivos de audio distribuidos digitalmente en formatos como MP3 o AAC, que se pueden escuchar en cualquier momento, ya sea descargándolos o transmitiéndolos en streaming.

Conceptos Básicos de Audio Digital

  • Frecuencia: Medida en Hertz (Hz), refleja los ciclos por segundo de una señal, con un rango de audición humana entre 20 Hz y 20.000 Hz.
  • Tasa de muestreo: Indica cuántas veces se digitaliza el sonido por segundo, como 44,1 kHz para calidad CD.
  • Resolución: Se refiere a los bits usados para almacenar cada muestra, con valores como 16 bits para calidad CD y 24 bits para calidad profesional.
  • Bitrate: Mide los datos por segundo en un archivo de audio, y puede ser CBR (constante) o VBR (variable, más eficiente).
  • Códec: Es el algoritmo que comprime y descomprime archivos, como MP3 o FLAC.
  • Decibelios (dB): Miden la intensidad sonora, con un rango desde el silencio hasta niveles que pueden causar dolor.

Conceptos Básicos de Vídeo Digital

  • Resolución: Medida en píxeles, donde mayor resolución implica mayor calidad.
  • Códec: Comprime y descomprime el vídeo (como H.264 y H.265).
  • Bitrate: Indica la cantidad de datos por segundo, variando según la calidad (ej. 1-2 Mbps para SD, 20 Mbps para 4K).
  • Fotogramas por segundo (FPS): Determinan la fluidez del vídeo, con 24 FPS en cine y 60 FPS en videojuegos.
  • Fotogramas clave: Utilizados para la compresión.
  • Sistemas de televisión: NTSC, PAL, SECAM (con distintas resoluciones y FPS).
  • Proporción de aspecto: Describe la relación entre el ancho y alto del vídeo (ej. 16:9 para HD).
  • Contenedores: MP4, AVI.
  • Códecs: H.264, MP3.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.