Análisis del protocolo ARP basado en Wireshark y análisis de paquetes IP y paquetes ICMP|Captura de datos de red|Diseño de cursos|trazado de ruta|ping|

prefacio

那么这里博主先安利一些干货满满的专栏了!

首先是博主的高质量博客的汇总,这个专栏里面的博客,都是博主最最用心写的一部分,干货满满,希望对大家有帮助。

高质量博客汇总https://blog.csdn.net/yu_cblog/category_12379430.html?spm=1001.2014.3001.5482


Tabla de contenido

Prefacio del editor

Uso del software Wireshark y análisis del protocolo ARP

Uso básico de WireShark

Edite el análisis de la estructura del marco de Ethernet y el análisis de la dirección mac

Analice el paquete arp y describa el proceso de trabajo del protocolo arp

Pasos para capturar paquetes ARP en el mismo segmento de red que la máquina local

Análisis de paquetes ARP en el mismo segmento de red que la máquina local

Análisis de paquetes ARP en diferentes segmentos de red de la máquina local

Análisis de procesos de solicitud y respuesta y comparación de paquetes arp en el mismo segmento de red y entre segmentos de red

Análisis de IP e ICMP

Análisis de encabezado IP y comparación del marco de solicitud ICMP y el marco de respuesta

proceso de captura

Analizar un datagrama IP

Comparación del marco de solicitud y el marco de respuesta ICMP

Análisis de fragmentos de paquetes IP

Análisis de paquetes de errores ICMP

paso de captura

Análisis de paquetes de errores ICMP

Análisis del principio de funcionamiento de traceroute

Diagrama esquemático de la interacción de datos basada en mensajes ICMP


Uso del software Wireshark y análisis del protocolo ARP

El contenido experimental de esta sección incluye:

  • Uso básico de WireShark

  • Análisis de la estructura de tramas de Ethernet y análisis de direcciones mac

  • Análisis del protocolo ARP

  • Preguntas de reflexión y resumen.

Uso básico de WireShark

Use wireshark para comenzar a capturar paquetes

 Haga clic en el símbolo del logotipo del tiburón para comenzar a capturar paquetes y haga clic en el símbolo cuadrado rojo para detener la captura de paquetes.

Agregar condiciones de filtro para la captura de paquetes

Actualmente, filtraré todos los paquetes según el protocolo tcp y el número de puerto es 80, como se muestra en la figura a continuación.

Muestre los paquetes arp, como se muestra en la siguiente figura.

se pueden exportar grupos específicos

 Análisis de la estructura de tramas de Ethernet y análisis de direcciones mac

Preparación del experimento

También use el servidor HTTP basado en TCP escrito la última vez. Use el navegador local para enviar una solicitud al servidor HTTP del servidor remoto de Alibaba Cloud, establezca el número de puerto en 8080 y use wireshark para capturar los paquetes de datos de todo el proceso.

análisis de la estructura del marco

La siguiente es la información detallada de un paquete capturado, y la siguiente interfaz se puede abrir haciendo clic derecho continuamente.

Hora de captura del paquete de hora de llegada: 11 de mayo de 2023 23:36:36.794865000

Número de cuadro Número de cuadro: 250

Longitud de trama La longitud del paquete: 78 bytes

Longitud de captura longitud de captura: 78 bytes

Protocolos en trama Nivel de encapsulación de protocolo: etc:ethertype:ip: tcp

Delta de tiempo del fotograma capturado anterior El delta de tiempo capturado por el fotograma anterior: 0,067 s

Delta de tiempo desde el cuadro anterior mostrado El incremento de tiempo mostrado en el cuadro anterior: 0.0s

análisis de direcciones mac

En el encabezado de la trama de Ethernet, hay dos bits de bandera importantes, a saber, el bit LAC y el bit IG, donde el bit LAC corresponde al bit 13 y el bit IG corresponde al bit 14.

El bit LAC (también llamado bit LG) indica si la trama es una trama de multidifusión. Cuando el bit LAC se establece en "1", significa que la trama es una trama de multidifusión; cuando el bit LAC se establece en "0", significa que la trama es una trama Unicast o una trama de difusión.

El bit IG (también llamado bit IG) indica si el switch debe aprender la trama. Cuando el bit IG se establece en "1", significa que no es necesario aprender la trama, es decir, la dirección MAC del extremo de envío no necesita agregarse a la dirección MAC del conmutador. En la tabla de direcciones, cuando el bit IG se establece en "0", significa que la trama debe aprenderse, es decir, la dirección MAC del extremo de envío debe agregarse a la tabla de direcciones MAC del conmutador.

En Ethernet, si un paquete es una trama de transmisión o multidifusión, el conmutador lo transmite para que todos los dispositivos conectados puedan recibir el paquete. Y si es una trama unicast, el switch solo la enviará al puerto correspondiente a la dirección MAC de destino. Por lo tanto, la configuración del bit LAC y el bit IG es muy importante para el procesamiento de tramas de transmisión, multidifusión y unidifusión en Ethernet y el proceso de aprendizaje de los conmutadores.

En el marco mac de este experimento, todos los bits LG e IG son 0, lo que indica que es un marco de unidifusión que debe aprenderse.

Al hacer clic en el datagrama y seleccionar Ethernet IIla opción, puede ver la información detallada del marco.

Ahora analizaremos cada campo y el rango de bytes correspondiente.

 Un encabezado mac estándar contiene 14 bytes, incluida la dirección mac de origen (6 bytes), la dirección mac de destino (6 bytes) y el tipo de protocolo (2 bytes), la estructura se muestra en la siguiente figura.

 Se refleja en wireshark como se muestra en la siguiente figura.

 

La siguiente parte del byte es la carga útil que se entregará (capa de red), que es un mensaje IP completo. La carga útil del paquete IP es un paquete TCP completo.

Analice el paquete arp y describa el proceso de trabajo del protocolo arp

Pasos para capturar paquetes ARP en el mismo segmento de red que la máquina local
  • Use el comando para borrar el caché ARP en la computadora Mac sudo arp -d -a.

  • Seleccione la opción de captura en wireshark, configure la interfaz local de captura de la máquina

  •  Ingrese en la condición de filtro arp, capture un mensaje ARP

Análisis de paquetes ARP en el mismo segmento de red que la máquina local

 Excepto los primeros 14 bytes del mensaje, el resto pertenece al mensaje ARP, y el formato se muestra en la siguiente figura.

A través de la correspondencia uno a uno con los campos en Wireshark, se puede obtener la información del paquete, como se muestra a continuación.

Tipo de hardware: Ethernet (1) Tipo de protocolo: IPv4 (0x0800) Longitud de dirección de hardware: 6 Longitud de dirección de protocolo: 4 Operación: respuesta (2) Dirección MAC de origen: 22:37:a5:51:ae:64 (22:37: a5:51:ae:64) Dirección IP de origen: 172.20.10.1 Dirección MAC de destino: Apple_0c:35:22 (ac:c9:06:0c:35:22) Dirección IP de destino: 172.20 .10.3

Análisis de paquetes ARP en diferentes segmentos de red de la máquina local

El resultado de la captura se muestra a continuación.

 Entre los paquetes de datos filtrados, los paquetes de datos cuyo campo Destino es Difusión son los paquetes de datos ARP que se transmitirán a través de los segmentos de la red.

Esto se debe a que las solicitudes ARP generalmente se envían en forma de transmisión, por lo que el campo de dirección de destino de la capa Ethernet debe establecerse en F , lo que indica que el paquete de datos se enviará a todos los dispositivos de la red local. El campo de la dirección MAC de destino de la capa ARP se establece en ceros, porque el propósito de la solicitud ARP es encontrar la dirección MAC de una determinada dirección IP. En este momento, la dirección MAC correspondiente a la dirección IP no ha sido determinada. , por lo que el campo de la dirección MAC de destino de la capa ARP debe establecerse en ceros. Como se muestra abajo.

Análisis de procesos de solicitud y respuesta y comparación de paquetes arp en el mismo segmento de red y entre segmentos de red

La situación del mismo segmento de red.

  1. Cuando la máquina envía un mensaje ICMP a otro dispositivo en el mismo segmento de red, primero consultará la tabla de caché ARP local para encontrar la dirección MAC del dispositivo de destino. Si no hay una dirección MAC del dispositivo en la memoria caché, el dispositivo debe enviar un paquete de solicitud ARP para obtener la dirección MAC del dispositivo de destino.

  2. El paquete de solicitud ARP es un paquete de difusión que se propaga dentro de la red donde se encuentra la máquina. El paquete contiene la dirección MAC de origen y la dirección IP de origen (dirección IP de la máquina), la dirección IP de destino y la dirección MAC de destino.

  3. Cuando el dispositivo objetivo recibe un paquete de solicitud ARP, verificará la dirección IP objetivo en el paquete y, si la dirección IP objetivo coincide con su dirección IP, el dispositivo generará y enviará un paquete de respuesta ARP.

  4. El paquete de respuesta ARP es un paquete de unidifusión y solo se enviará a la dirección MAC del dispositivo desde el que se originó la solicitud. El paquete contiene la dirección MAC de origen y la dirección IP de origen, la dirección IP de destino y la dirección MAC de destino.

  5. Cuando el dispositivo de origen de la solicitud recibe el paquete de respuesta ARP, actualizará la tabla de caché ARP local y guardará la dirección MAC del dispositivo de destino. En comunicaciones posteriores, el dispositivo puede utilizar directamente la dirección MAC del dispositivo de destino.

De esta forma, se completa el proceso de solicitud/respuesta. Se establece una entrada ARP y la dirección MAC correspondiente entre la máquina local y el dispositivo de destino, de modo que la dirección MAC del dispositivo de destino se pueda encontrar más rápidamente durante la comunicación futura.

Situación de los diferentes segmentos de la red

La principal diferencia entre los paquetes ARP en el mismo segmento de red que la máquina local y los paquetes de datos ARP en un segmento de red diferente de la máquina local es la diferencia entre la dirección MAC de destino y la dirección IP de origen.

Cuando la máquina se comunica con dispositivos en diferentes segmentos de la red, la máquina primero usará ARP para consultar su puerta de enlace predeterminada y luego usará la dirección MAC de la puerta de enlace predeterminada para enrutar la comunicación a la red externa. En este caso, la dirección IP de destino en la solicitud ARP es la dirección IP de la puerta de enlace del enrutador (como se muestra en la figura a continuación), no la dirección IP del dispositivo de destino.

Análisis de IP e ICMP

Análisis de encabezado IP y comparación del marco de solicitud ICMP y el marco de respuesta

contenido experimental

Implemente el comando ping, registre el datagrama IP activado y el mensaje ICMP, y guárdelo como un archivo pcapng. Interprete el encabezado de cualquier datagrama IP y compare los marcos de solicitud y respuesta de ICMP Echo. Cambie el parámetro de longitud de ping para tener en cuenta la fragmentación de datagramas IP.

proceso de captura
  1. Introduzca la expresión de filtro para el comando ping en el cuadro Filtro: icmp && icmp.type==8. Esto solo mostrará los paquetes de solicitud de eco ICMP relacionados con el comando ping.

  2. Ejecute el comando ping en una ventana de terminal. Por ejemplo, ejecute el siguiente comando:ping 192.168.0.1

  3. Capture y analice paquetes generados por el comando ping en Wireshark.

  4. Después de dejar de capturar, elija "Archivo" -> "Guardar como", seleccione el formato pcapng y guarde el archivo.

El resultado de la captura se muestra en la siguiente figura.

Analizar un datagrama IP

La siguiente figura muestra la estructura de un datagrama IP.

 El siguiente es el resultado de la captura de Wireshark y el análisis de sus paquetes IP.

Resultados del análisis de campo: Versión Versión: 4 Longitud del encabezado: 20 bytes (5) Tipo de servicio Campo de servicios diferenciados: 0x00 (DSCP: CS0, ECN: No ECT) Longitud total: 84 Identificación del identificador: 0x503b (20539) Indicadores: 0x0 Desplazamiento de fragmento : 0 Tiempo de vida: 64 Protocolo de capa superior Protocolo: ICMP (1) Encabezado Suma de verificación: 0xa0bf [validación deshabilitada] Dirección IP de origen Dirección de origen: 172.28.28.233 Dirección IP de destino Dirección de destino: 192.168.0.1

Comparación del marco de solicitud y el marco de respuesta ICMP

Uso mi computadora para hacer ping a mi tableta, y los resultados de captura de Wireshark son los siguientes, y puedo obtener una serie de marcos de solicitud y marcos de respuesta.

ICMP es un protocolo que se ejecuta en la capa IP y se utiliza para transmitir mensajes de control en la red IP. Tanto la solicitud de eco ICMP como la respuesta de eco ICMP son tipos de paquetes ICMP e incluyen campos como tipo, código, suma de comprobación, identificador y número de secuencia. Como se muestra abajo.

Al comparar el marco de solicitud y el marco de respuesta, se puede analizar la diferencia entre los dos.

El campo Tipo de ICMP Echo Request es 8 y el campo Código es 0, mientras que el campo Tipo de ICMP Echo Reply es 0 y el campo Código también es 0. Otros campos de los dos mensajes también pueden ser diferentes. Por ejemplo, un paquete de solicitud de eco ICMP generalmente contiene un campo de identificador (Identifier) ​​y un campo de número de secuencia (número de secuencia), mientras que un paquete de respuesta de eco ICMP contiene los mismos campos de identificador y número de secuencia que el paquete de solicitud de eco enviado anteriormente.

Además, cuando el mensaje ICMP Echo Request expira o recibe una respuesta de error, generalmente devuelve un mensaje de error ICMP para finalizar el proceso, en el que el campo Tipo es 11, el campo Código es 0 (mensaje ICMP Time Exceeded) o el El campo de tipo es 3 y el campo de código es 0 (mensaje ICMP de destino inalcanzable). (El fenómeno de esta parte se reflejará en detalle en la parte de análisis de mensajes de error ICMP)

Análisis de fragmentos de paquetes IP

Al pingenviar una solicitud a mi tableta y aumentar la longitud del mensaje, puedo observar la fragmentación del mensaje IP.

ping 172.20.10.4 -s 3000(La longitud del mensaje es 3000 como ejemplo)

Por qué ocurre la fragmentación de paquetes IP

El motivo de la fragmentación de paquetes IP es que el problema de la limitación de MTU (Unidad máxima de transmisión, unidad máxima de transmisión) se puede encontrar durante el proceso de transmisión, es decir, el tamaño máximo de cada paquete de datos que puede transmitir el medio de transmisión de la red ( como Ethernet) limitada. Si el tamaño del paquete IP excede la MTU, debe dividirse en múltiples paquetes de datos más pequeños para la transmisión, que es la función de la fragmentación del paquete IP. La operación de fragmentación la realiza el extremo emisor, y el extremo receptor necesita volver a ensamblar los paquetes de datos fragmentados para restaurar los paquetes IP originales.

Resultados experimentales

Al ajustar constantemente el tamaño y la longitud del paquete de datos, se realiza el experimento final. Cuando se alcanza el tamaño del paquete de datos 1484, el paquete de datos IP comienza a fragmentarse .

La siguiente es una comparación de datagramas IP fragmentados y no fragmentados.

 

Mediante el análisis de los resultados experimentales, se puede saber que la principal diferencia entre el paquete de datos IP fragmentado y el paquete de datos IP no fragmentado radica en la configuración del tamaño y el campo de identificación.

  1. Tamaño: el tamaño de los datagramas de IP no fragmentados no supera el límite de MTU, mientras que los datagramas de IP fragmentados se pueden dividir en varios fragmentos de datos más pequeños para su transmisión de acuerdo con el límite de MTU.

  2. Identificación: el campo de identificación en el datagrama de IP no fragmentado es 0, y el campo de identificación en el datagrama de IP fragmentado es generalmente el mismo, de modo que el extremo receptor pueda identificarlos con precisión al recibir múltiples piezas de datos reunidas para recuperar la IP original. datagrama

Además, el paquete de datos IP fragmentado también incluye un campo de desplazamiento , que se utiliza para indicar la posición del fragmento de datos en el paquete de datos IP original. Este campo no existe en datagramas IP no fragmentados.

En el experimento, creo que es la mejor y más conveniente forma de juzgar si el datagrama ip está fragmentado o no al observar si contiene el campo de compensación (si el campo de compensación es 0).

Análisis de paquetes de errores ICMP

Requisitos: implementar el comando tracert, registrar el mensaje ICMP activado y guardarlo como un archivo pcapng; explicar la estructura de cualquier mensaje de error ICMP; describir el principio de funcionamiento de tracert y dibujar un diagrama esquemático de interacción de datos combinado con registros de mensajes ICMP .

paso de captura

Use tracerouteel comando , traceroute 172.20.10.4y el fenómeno de la terminal se muestra en la siguiente figura.

Use wireshark para capturar paquetes icmp.

De esta forma, hemos capturado una serie de mensajes de error de icmp.

Análisis de paquetes de errores ICMP

El siguiente es un mensaje de error.

Tipo de paquete Tipo: 11 (Tiempo de vida excedido) indica que el tiempo ha expirado Código Código: 0 (Tiempo de vida excedido en tránsito) Suma de verificación Suma de verificación: 0x9d17 [correcto] [Estado de la suma de verificación: Bueno] Sin usar: 00000000 Protocolo de Internet Versión 4, Src: 172.29.69.176, Dst: 172.20.10.4 Protocolo de datagramas de usuario, Puerto Src: 62171, Puerto Dst: 33435

Podemos comparar la información del mensaje ICMP en el marco de solicitud y el marco de respuesta anteriores, y podemos encontrar que el campo de tipo de mensajeType es diferente . Hasta donde sabemos, el marco de solicitud es 8, el marco de respuesta es 0 y el mensaje de tiempo de espera en este experimento es 11 .

Al consultar los datos, encontré la explicación del tipo de mensaje correspondiente al código Tipo, como se muestra en la tabla a continuación.

 Al distinguir estos paquetes, generalmente el campo de tipo y código en el encabezado del paquete ICMP se puede usar para determinar qué tipo de paquete es. Para el mensaje de error, también se puede usar información como el "campo de protocolo" en el encabezado IP y el TTL en el mensaje ICMP para juzgar la información del mensaje.

Análisis del principio de funcionamiento de traceroute

traceroute es una herramienta de línea de comandos para probar cuellos de botella y rutas de conexión de red. El principio básico es aumentar el campo TTL del datagrama cada vez que se envía un datagrama ICMP y disminuir el TTL del datagrama cada vez que pasa a través de un enrutador hasta que el TTL se reduce a 0. Cuando el TTL se reduce a 0, el enrutador descarta el datagrama y devuelve un mensaje de error "ICMP Time Exceeded" al remitente, que también contiene la dirección IP del enrutador.

Traceroute envía una serie de mensajes ICMP con valores TTL crecientes al host de destino, registra el tiempo consumido por cada transmisión y calcula el orden en que aumentan los valores TTL, es decir, la lista de rutas del datagrama, para obtener el host de origen al host de destino.La ruta de enrutamiento completa.

En términos simples, el flujo de trabajo de traceroute es el siguiente:

  1. Establezca el valor TTL en 1 y envíe un mensaje Ping al host de destino. Después de recibir el mensaje Ping, el primer enrutador disminuirá el TTL en 1, reenviará el mensaje al host de destino y devolverá un mensaje de error ICMP, indicando que el tiempo ha expirado.

  2. Establezca el valor de TTL en 2, envíe un mensaje de ping al host de destino, el segundo enrutador recibe el mensaje de ping, reduce el TTL en 1, reenvía el mensaje al host de destino y devuelve un mensaje de error ICMP, lo que indica que el tiempo ha pasado. venció.

  3. Aumente gradualmente el valor TTL hasta que el host de destino reciba el paquete de datos y devuelva un mensaje de respuesta ICMP, lo que indica que el host de destino ha recibido el mensaje.

  4. De acuerdo con el mensaje de error ICMP devuelto y el mensaje de respuesta ICMP y el tiempo de cada envío y recepción, calcule la dirección IP y el tiempo de retraso de cada enrutador, para obtener la ruta de enrutamiento completa desde el host de origen hasta el host de destino.

Diagrama esquemático de la interacción de datos basada en mensajes ICMP

El diagrama esquemático de la interacción de datos según el mensaje ICMP se muestra en la figura.

Supongo que te gusta

Origin blog.csdn.net/Yu_Cblog/article/details/132157298
Recomendado
Clasificación