Cómo fluye el tráfico de Red: Primeros pasos
Gideon T. Rasmussen-CISSP, CFSO, CFSA, SCSA
Para solucionar un problema, debe saber cómo fluye el tráfico de red en circunstancias normales. Este artículo detalla lo que sucede cuando se utiliza un navegador web para acceder a un sitio web.
Una vez que el nombre del sitio web se introduce en un navegador Web, se producen una serie de comunicaciones a través de varios protocolos. La siguiente tabla representa cómo fluye el tráfico de red:
Línea:
|
Protocolo:
|
Fuente:
|
Destino:
|
Datos:
|
1
|
ARP
|
10.0.1.13
|
Difusión
|
Que ha 10.0.1.1? Dígale a 10.0.1.13
|
2
|
ARP
|
10.0.1.1
|
10.0.1.13
|
10.0.1.1 es a las 00:80:c8:57:d3:aa
|
3
|
DNS
|
10.0.1.13
|
10.0.1.1
|
consulta Estándar de Un www.cyberguard.com
|
4
|
DNS
|
10.0.1.1
|
10.0.1.13
|
Estándar de respuesta de las consultas CNAME cyberguard.com Un 64.94.50.88
|
5
|
TCP
|
10.0.1.13
|
64.94.50.88
|
1939 > http
|
6
|
TCP
|
64.94.50.88
|
10.0.1.13
|
http > 1939
|
7
|
TCP
|
10.0.1.13
|
64.94.50.88
|
1939 > http
|
8
|
HTTP
|
10.0.1.13
|
64.94.50.88
|
GET / HTTP/1.1
|
9
|
HTTP
|
64.94.50.88
|
10.0.1.13
|
HTTP/1.1 200 OK
|
10
|
HTTP
|
64.94.50.88
|
10.0.1.13
|
HTTP Continuation
|
11
|
TCP
|
10.0.1.13
|
64.94.50.88
|
2577 > http Seq=388864 Ack=37076821 Win=8241 Len=0
|
12
|
TCP
|
10.0.1.13
|
64.94.50.88
|
2577 > http Seq = 388864 Ack = 37077089 Win = 0 Len=0
|
El Protocolo ARP
Antes de que los sistemas puedan comunicarse, necesitan conocer las direcciones de hardware de los demás. Para ello se utiliza el Protocolo de Resolución de Direcciones (ARP). Desde su configuración, la estación de trabajo conoce la dirección IP del servidor DNS.
Línea # 1
Protocolo: | Fuente: | Destino: | Datos: |
ARP | 10.0.1.13 | Emisión | Que ha 10.0.1.1? Tell 10.0.1.13 |
La estación de trabajo transmite una solicitud a los dispositivos de su red preguntando «quién tiene» la dirección IP con la que necesita comunicarse.
Línea # 2
Protocolo: | Fuente: | Destino: | Datos: |
ARP | 10.0.1.1 | 10.0.1.13 | 10.0.1.1 es a las 00:80:c8:57:d3:aa |
El sistema remoto responde proporcionando su dirección de hardware. Ahora que la estación de trabajo conoce la dirección de hardware del sistema remoto, puede comunicarse con ella.
El Protocolo DNS
El protocolo del Sistema de Nombres de Dominio (DNS) se utiliza para resolver nombres de sistema en direcciones IP. Cuando se introduce un nombre de sitio web en un navegador, la estación de trabajo necesita conocer la dirección IP correspondiente para llegar al servidor Web que aloja el sitio.
Línea # 3
Protocolo: | Fuente: | Destino: | Datos: |
DNS | 10.0.1.13 | 10.0.1.1 | consulta Estándar www.cyberguard.com |
La estación de trabajo solicita al servidor DNS que proporcione la dirección IP del alojamiento del servidor web www.cyberguard.com.
Línea # 4
Protocolo: | Fuente: | Destino: | Datos: |
DNS | 10.0.1.1 | 10.0.1.13 | Respuesta de consulta estándar CNAME cyberguard.com A 64.94.50.88 |
El servidor DNS responde con la dirección IP correspondiente a www.cyberguard.com.
El Protocolo TCP
El protocolo de Control de Transmisión (TCP) se utiliza para transferir datos. Estas tres líneas siguientes comprenden el enlace de tres vías TCP:
Línea # 5
Protocolo: | Fuente: | Destino: | Datos: |
TCP | 10.0.1.13 | 64.94.50.88 | 1939 > http |
La estación de trabajo inicia la conexión al servidor Web (SYN). SYN es una abreviatura de «sincronizar». Línea »
# 6
Protocolo: | Fuente: | Destino: | Datos: |
TCP | 64.94.50.88 | 10.0.1.13 | http > 1939 |
El servidor Web responde indicando que está listo para la transmisión (SYN ACK). SYN ACK es una abreviatura de » sincronizar acuse de recibo.»
Línea # 7
Protocolo: | Fuente: | Destino: | Datos: |
DNS | 10.0.1.13 | 64.94.50.88 | 1939 > http |
La estación de trabajo se envía al servidor Web indicando que está empezando a enviar tráfico (ACK). Este reconocimiento indica que la conexión TCP está establecida y que el tráfico puede comenzar a fluir.
El Protocolo HTTP
El Protocolo de Transferencia de hipertexto (HTTP) se utiliza para servir páginas Web. Puede ver evidencia de esto en la dirección del sitio Web en su navegador (es decir, http://www.cyberguard.com).
Línea # 8
Protocolo: | Fuente: | Destino: | Datos: |
HTTP | 10.0.1.13 | 64.94.50.88 | GET / HTTP/1.1 |
El navegador abre una conexión con el servidor Web.
Línea # 9
Protocolo: | Fuente: | Destino: | Datos: |
HTTP | 64.94.50.88 | 10.0.1.13 | HTTP/1.1 200 OK |
La Web de servidor acepta la conexión.
Línea # 10
Protocolo: | Fuente: | Destino: | Datos: |
HTTP | 64.94.50.88 | 10.0.1.13 | Continuación HTTP |
Las líneas de continuación HTTP representan dónde se envían los contenidos de la página html. Incluye texto, enlaces, etc.
Volver al Protocolo TCP
Línea # 11
Protocolo: | Fuente: | Destino: | Datos: |
TCP | 10.0.1.13 | 64.94.50.88 | 2577 > http Seq = 388864 Ack = 37076821 Win = 8241 Len=0 |
Esta línea se repite cuatro veces. La estación de trabajo está reconociendo el último paquete.
Línea # 12 (RST)
Protocolo: | Fuente: | Destino: | Datos: |
TCP | 10.0.1.13 | 64.94.50.88 | 2577 > http Seq = 388864 Ack = 37077089 Win = 0 Len=0 |
La estación de trabajo envía un reinicio, derribando efectivamente la conexión TCP.
Tcpdump y Ethereal
Es importante tener en cuenta que el tcpdump proporcionará diferentes detalles dependiendo de dónde se ejecute en su red. En este ejemplo, tcpdump se ejecutó en la interfaz interna del firewall con una estación de trabajo conectada directamente. Si se usaba tcpdump para monitorear el mismo flujo de tráfico en la interfaz externa, la dirección IP de origen aparecería como la interfaz externa del firewall, siempre que la Traducción Dinámica de Direcciones de Red (DNAT) estuviera en su lugar. Para observar cómo fluye el tráfico de proxy, tiene sentido ejecutar tcpdump en las interfaces internas y externas, ya que el proxy actúa como intermediario entre el origen y el destino.
La fuente de la tabla era un archivo tcpdump visto a través de Ethereal. La sintaxis exacta utilizada fue: «tcpdump-vvpni dec1-s1514-w / archive2 / dec1.dmp host 10.0.1.13». El comando tcpdump tiene amplias opciones para registrar flujos de tráfico muy específicos (es decir, origen/destino, puertos y expresiones booleanas). Para obtener más información, escriba «man tcpdump» en la línea de comandos. La versión de Windows es Windump (http://windump.polito.it).
Ethereal es una buena herramienta para ver archivos tcpdump. Está disponible gratuitamente desde http://www.ethereal.com.
Algunos de los puertos presentes en un tcpdump pueden ser desconocidos para usted. La lista más actual de números de puerto se puede encontrar en http://www.iana.org/assignments/port-numbers (según RFC 3232).