Fundamentos de redes
Telnet, IPs, Puertos, Concurrencia y DNS en la WWW
Prerrequisitos de la Actividad
Software para establecer conexiones TELNET y SSH.
¿Qué es Telnet?
- Protocolo utilizado para conexiones remotas en redes TCP/IP.
- Permite acceder a dispositivos como servidores o routers mediante una sesión interactiva.
Comandos Básicos
telnet <IP> <puerto>
Ejemplo: telnet 192.168.1.1 23
Limitaciones
- Vulnerabilidad a intercepciones.
- Fue reemplazado por protocolos más seguros como SSH.
¿Qué son las direcciones IP?
- Identifican dispositivos en una red.
- Están compuestas por números separados por puntos (IPv4) o por dos puntos (IPv6).
IPv4
- Formato: Cuatro octetos separados por puntos (e.g., 192.168.1.1).
- Cada octeto tiene un valor entre 0 y 255 (8 bits: 28 = 256 valores posibles).
IPv6
- Formato: Direcciones más largas, separadas por dos puntos (e.g., 2001:0db8:85a3:0000:0000:8a2e:0370:7334).
- Diseñadas para soportar un número mucho mayor de dispositivos conectados.
Puertos
- Un puerto es un identificador numérico asociado a un servicio o aplicación en un dispositivo.
- Rango de valores: 0 a 65535 (16 bits).
Categorías de Puertos
- 0-1023: Puertos bien conocidos (e.g., 80 para HTTP, 23 para Telnet).
- 1024-49151: Puertos registrados para aplicaciones.
- 49152-65535: Puertos dinámicos o privados.
¿Qué es una conexión concurrente?
- Múltiples clientes conectados a un servidor simultáneamente.
- Los mensajes enviados por un cliente son visibles para todos.
Manejo de Conexiones
- Los servidores utilizan sockets para aceptar y gestionar varias conexiones.
Protocolo HTTP y Servidores HTTP Simples
¿Cómo funciona un servidor HTTP?
- Un servidor HTTP escucha solicitudes en un puerto (comúnmente el puerto 80 para HTTP o 443 para HTTPS).
- Cuando recibe una solicitud, analiza los datos proporcionados (método, ruta, headers).
- Genera una respuesta basada en el recurso solicitado y la envía de vuelta al cliente.
Métodos HTTP
- GET: Solicita un recurso del servidor, como una página web o archivo.
- POST: Envía datos al servidor, generalmente para guardar información o procesar formularios.
Servidor HTTP
Comando para iniciar un servidor HTTP simple con Python:
python3 -m http.server
¿Qué es el Archivo de Hosts?
- Archivo local que asigna nombres a direcciones IP sin usar un servidor DNS.
- Ubicación común:
/etc/hosts
en sistemas UNIX/Linux.
- En sistemas Windows, se encuentra en
C:\Windows\System32\drivers\etc\hosts
.
Función del Archivo de Hosts
- Actúa como intermediario antes de que una solicitud de dominio llegue a un servidor DNS.
- Si un dominio está definido en este archivo, el sistema resuelve la dirección IP localmente.
- Permite redirigir dominios específicos a direcciones IP diferentes, como para pruebas locales.
Ejemplo de Configuración
192.168.1.1 example.local
127.0.0.1 localhost
Sistema de Nombres de Dominio (DNS)
¿Qué es DNS?
- El DNS (Domain Name System) es un sistema que traduce nombres de dominio legibles por humanos (e.g., example.com) en direcciones IP que las computadoras utilizan para comunicarse (e.g., 192.168.1.1).
- Es esencial para que los usuarios puedan acceder a recursos en Internet sin necesidad de recordar direcciones IP.
¿Para qué sirve DNS?
- Facilita la navegación al permitir el uso de nombres amigables en lugar de direcciones IP.
- Es una parte crucial de la infraestructura de Internet, utilizada para servicios como correo electrónico, navegación web, y aplicaciones en línea.
- Permite gestionar dominios y subdominios.
¿Qué son las tablas de zonas?
- Son archivos o bases de datos que contienen mapeos entre nombres de dominio y direcciones IP.
- Definen los registros DNS que indican cómo se debe resolver un dominio específico.
Tipos de Registros en Tablas de Zonas
- A: Dirección IPv4 de un dominio.
- AAAA: Dirección IPv6 de un dominio.
- CNAME: Alias para otro dominio.
- MX: Servidores de correo electrónico.
- TXT: Información adicional, como verificación de dominios.
Ejemplo de una Tabla de Zonas
example.local. IN A 192.168.1.1
mail.example.local. IN MX 10 mailserver.local.
example.local. IN CNAME www.example.local.