Análise de protocolo ARP baseado em Wireshark e análise de pacotes IP e pacotes ICMP|Captura de dados de rede|Desenho de curso|traceroute|ping|

prefácio

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

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

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


Índice

Prefácio do Editor

Uso do software Wireshark e análise do protocolo ARP

Uso básico do WireShark

Edite a análise da estrutura do quadro Ethernet e a análise do endereço MAC

Analise o pacote arp e descreva o processo de trabalho do protocolo arp

Etapas para capturar pacotes ARP no mesmo segmento de rede da máquina local

Análise de pacotes ARP no mesmo segmento de rede da máquina local

Análise de pacotes ARP em diferentes segmentos de rede da máquina local

Análise do processo de solicitação e resposta e comparação de pacotes arp no mesmo segmento de rede e entre segmentos de rede

Análise IP e ICMP

Análise do cabeçalho IP e comparação do quadro de solicitação ICMP e quadro de resposta

processo de captura

Analisar um datagrama IP

Comparação do quadro de solicitação ICMP e quadro de resposta

Análise de fragmento de pacote IP

Análise de pacote de erro ICMP

etapa de captura

Análise de pacote de erro ICMP

Análise do princípio de funcionamento do traceroute

Diagrama esquemático de interação de dados com base em mensagens ICMP


Uso do software Wireshark e análise do protocolo ARP

O conteúdo experimental desta seção inclui:

  • Uso básico do WireShark

  • Análise da estrutura do quadro Ethernet e análise do endereço MAC

  • Análise do protocolo ARP

  • Questões de pensamento e resumo

Uso básico do WireShark

Use o wireshark para começar a capturar pacotes

 Clique no símbolo do logotipo do tubarão para iniciar a captura de pacotes e clique no símbolo do quadrado vermelho para interromper a captura de pacotes.

Adicionar condições de filtro para captura de pacotes

Atualmente, vou filtrar todos os pacotes com base no protocolo tcp e o número da porta é 80, conforme a figura abaixo.

Exibir pacotes arp, conforme mostrado na figura abaixo.

grupos específicos podem ser exportados

 Análise da estrutura do quadro Ethernet e análise do endereço MAC

Preparação do experimento

Use também o servidor HTTP baseado em TCP escrito da última vez. Use o navegador local para enviar uma solicitação ao servidor HTTP do servidor Alibaba Cloud remoto, defina o número da porta para 8080 e use o wireshark para capturar os pacotes de dados de todo o processo.

análise da estrutura do quadro

A seguir estão as informações detalhadas de um pacote capturado, e a interface a seguir pode ser aberta clicando com o botão direito do mouse continuamente.

Hora de captura do pacote Arrival Time: 11 de maio de 2023 23:36:36.794865000

Número do quadro Número do quadro: 250

Comprimento do quadro O comprimento do pacote: 78 bytes

Comprimento da captura Comprimento da captura: 78 bytes

Protocolos no quadro Nível de encapsulamento do protocolo: etc:ethertype:ip: tcp

Delta de tempo do quadro capturado anterior O delta de tempo capturado pelo quadro anterior: 0,067s

Delta de tempo do quadro exibido anterior O incremento de tempo exibido no quadro anterior: 0,0s

análise de endereço MAC

No cabeçalho do quadro Ethernet, existem dois bits sinalizadores importantes, ou seja, o bit LAC e o bit IG, em que o bit LAC corresponde ao 13º bit e o bit IG corresponde ao 14º bit.

O bit LAC (também chamado de bit LG) indica se o quadro é um quadro multicast. Quando o bit LAC é definido como "1", significa que o quadro é um quadro multicast; quando o bit LAC é definido como "0", isso significa que o quadro é um quadro Unicast ou um quadro de transmissão.

O bit IG (também chamado de bit IG) indica se o quadro precisa ser aprendido pelo switch. Quando o bit IG é definido como "1", significa que o quadro não precisa ser aprendido, ou seja, o endereço MAC do final emissor não precisa ser adicionado ao endereço MAC do switch. Na tabela de endereços, quando o bit IG é definido como "0", significa que o quadro precisa ser aprendido, ou seja, o endereço MAC da extremidade de envio precisa ser adicionado à tabela de endereços MAC do switch.

Na Ethernet, se um pacote for um quadro de broadcast ou multicast, o switch o transmite para que todos os dispositivos conectados possam receber o pacote. E se for um quadro unicast, o switch enviará apenas para a porta correspondente ao endereço MAC de destino. Portanto, a configuração do bit LAC e do bit IG é muito importante para o processamento de quadros broadcast, multicast e unicast na Ethernet e no processo de aprendizado dos switches.

No mac frame deste experimento, todos os bits LG e IG são 0, indicando que é um frame unicast que precisa ser aprendido.

Ao clicar no datagrama e selecionar Ethernet IIa opção, é possível visualizar as informações detalhadas do quadro.

Agora vamos analisar cada campo e o intervalo de bytes correspondente.

 Um cabeçalho mac padrão contém 14 bytes, incluindo endereço mac de origem (6 bytes), endereço mac de destino (6 bytes) e tipo de protocolo (2 bytes), a estrutura é mostrada na figura abaixo.

 É refletido no wireshark como mostrado na figura abaixo.

 

A parte seguinte do byte é a carga útil a ser entregue (camada de rede), que é uma mensagem IP completa. A carga útil do pacote IP é um pacote TCP completo.

Analise o pacote arp e descreva o processo de trabalho do protocolo arp

Etapas para capturar pacotes ARP no mesmo segmento de rede da máquina local
  • Use o comando para limpar o cache ARP no computador mac sudo arp -d -a.

  • Selecione a opção de captura no wireshark, defina a interface local de captura da máquina

  •  Entre na condição de filtro arp, capture uma mensagem ARP

Análise de pacotes ARP no mesmo segmento de rede da máquina local

 Com exceção dos primeiros 14 bytes da mensagem, os demais pertencem à mensagem ARP, cujo formato é mostrado na figura abaixo.

Através da correspondência um-para-um com os campos do Wireshark, pode-se obter as informações do pacote, conforme figura abaixo.

Tipo de hardware: Ethernet (1) Tipo de protocolo: IPv4 (0x0800) Comprimento do endereço de hardware: 6 Comprimento do endereço de protocolo: 4 Operação: resposta (2) Endereço MAC de origem: 22:37:a5:51:ae:64 (22:37: a5:51:ae:64) Endereço IP de origem: 172.20.10.1 Endereço MAC de destino: Apple_0c:35:22 (ac:c9:06:0c:35:22) Endereço IP de destino: 172.20 .10.3

Análise de pacotes ARP em diferentes segmentos de rede da máquina local

O resultado da captura é mostrado abaixo.

 Entre os pacotes de dados filtrados, os pacotes de dados cujo campo de destino é Broadcast são os pacotes de dados ARP a serem transmitidos pelos segmentos de rede.

Isso porque as requisições ARP geralmente são enviadas na forma de broadcast, então o campo de endereço de destino da camada Ethernet deve ser configurado para todos F , indicando que o pacote de dados será enviado para todos os dispositivos da rede local. O campo de endereço MAC de destino da camada ARP é definido como 0, porque o objetivo da solicitação ARP é encontrar o endereço MAC de um determinado endereço IP. No momento, o endereço MAC correspondente ao endereço IP não foi determinado , portanto, o campo de endereço MAC de destino da camada ARP deve ser definido para todos os 0s. Como mostrado abaixo.

Análise do processo de solicitação e resposta e comparação de pacotes arp no mesmo segmento de rede e entre segmentos de rede

A situação do mesmo segmento de rede

  1. Quando a máquina envia uma mensagem ICMP para outro dispositivo no mesmo segmento de rede, ela primeiro consulta a tabela de cache ARP local para encontrar o endereço MAC do dispositivo de destino. Se não houver endereço MAC do dispositivo no cache, o dispositivo precisa enviar um pacote de solicitação ARP para obter o endereço MAC do dispositivo de destino.

  2. O pacote de solicitação ARP é um pacote de broadcast que se propaga dentro da rede onde a máquina está localizada. O pacote contém endereço MAC de origem e endereço IP de origem (endereço IP da máquina), endereço IP de destino e endereço MAC de destino.

  3. Quando o dispositivo de destino recebe um pacote de solicitação ARP, ele verifica o endereço IP de destino no pacote e, se o endereço IP de destino corresponder ao seu endereço IP, o dispositivo gera e envia um pacote de resposta ARP.

  4. O pacote de resposta ARP é um pacote unicast e será enviado apenas para o endereço MAC do dispositivo de origem da solicitação. O pacote contém endereço MAC de origem e endereço IP de origem, endereço IP de destino e endereço MAC de destino.

  5. Quando o dispositivo de origem da solicitação recebe o pacote de resposta ARP, ele atualiza a tabela de cache ARP local e salva o endereço MAC do dispositivo de destino. Nas comunicações subsequentes, o dispositivo pode usar diretamente o endereço MAC do dispositivo de destino.

Desta forma, o processo de solicitação/resposta é concluído. Uma entrada ARP e o endereço MAC correspondente são estabelecidos entre a máquina local e o dispositivo de destino, para que o endereço MAC do dispositivo de destino possa ser encontrado mais rapidamente durante a comunicação futura.

Situação de diferentes segmentos de rede

A principal diferença entre os pacotes ARP no mesmo segmento de rede da máquina local e os pacotes de dados ARP em um segmento de rede diferente da máquina local é a diferença entre o endereço MAC de destino e o endereço IP de origem.

Quando a máquina se comunica com dispositivos em diferentes segmentos de rede, a máquina usará primeiro o ARP para consultar seu gateway padrão e, em seguida, usará o endereço MAC do gateway padrão para rotear a comunicação para a rede externa. Nesse caso, o endereço IP de destino na solicitação ARP é o endereço IP do gateway do roteador (conforme mostrado na figura abaixo), não o endereço IP do dispositivo de destino.

Análise IP e ICMP

Análise do cabeçalho IP e comparação do quadro de solicitação ICMP e quadro de resposta

conteúdo experimental

Implemente o comando ping, registre o datagrama IP disparado e a mensagem ICMP e salve-os como um arquivo pcapng. Interprete o cabeçalho de qualquer datagrama IP e compare os quadros de solicitação e resposta de eco ICMP. Altere o parâmetro de comprimento do ping para considerar a fragmentação do datagrama IP.

processo de captura
  1. Insira a expressão de filtro para o comando ping na caixa Filtro: icmp && icmp.type==8. Isso exibirá apenas os pacotes de solicitação de eco ICMP relacionados ao comando ping.

  2. Execute o comando ping em uma janela de terminal. Por exemplo, execute o seguinte comando:ping 192.168.0.1

  3. Capture e analise pacotes gerados pelo comando ping no Wireshark.

  4. Depois de parar a captura, escolha "Arquivo" -> "Salvar como", selecione o formato pcapng e salve o arquivo.

O resultado da captura é mostrado na figura abaixo

Analisar um datagrama IP

A figura abaixo mostra a estrutura de um datagrama IP.

 A seguir está o resultado da captura do Wireshark e a análise de seus pacotes IP.

Resultados da análise de campo: Versão Versão: 4 Comprimento do Cabeçalho: 20 bytes (5) Tipo de Serviço Campo de Serviços Diferenciados: 0x00 (DSCP: CS0, ECN: Não-ECT) Comprimento Total: 84 Identificação do Identificador: 0x503b (20539 ) Flags: 0x0 Fragment Offset : 0 Tempo de vida: 64 Protocolo da camada superior Protocolo: ICMP (1) Soma de verificação do cabeçalho: 0xa0bf [validação desativada] Endereço IP de origem Endereço de origem: 172.28.28.233 Endereço IP de destino Endereço de destino: 192.168.0.1

Comparação do quadro de solicitação ICMP e quadro de resposta

Eu uso meu computador para fazer ping em meu tablet, e os resultados da captura do Wireshark são os seguintes, e posso obter uma série de quadros de solicitação e quadros de resposta.

ICMP é um protocolo que roda na camada IP e é usado para transmitir mensagens de controle na rede IP. Tanto a solicitação de eco ICMP quanto a resposta de eco ICMP são tipos de pacotes ICMP e incluem campos como tipo, código, soma de verificação, identificador e número de sequência. Como mostrado abaixo.

Ao comparar o quadro de solicitação e o quadro de resposta, a diferença entre os dois pode ser analisada.

O campo Type de ICMP Echo Request é 8 e o campo Code é 0, enquanto o campo Type de ICMP Echo Reply é 0 e o campo Code também é 0. Outros campos das duas mensagens também podem ser diferentes. Por exemplo, um pacote ICMP Echo Request geralmente contém um campo Identifier (identificador) e um campo Sequence Number (número de sequência), enquanto um pacote ICMP Echo Reply contém os mesmos campos Identifier e Sequence Number do pacote Echo Request enviado anteriormente.

Além disso, quando a mensagem ICMP Echo Request expira ou recebe uma resposta de erro, geralmente retorna uma mensagem de erro ICMP para encerrar o processo, na qual o campo Type é 11, o campo Code é 0 (mensagem ICMP Time Exceeded) ou o campo Campo Type É 3, e o campo Code é 0 (mensagem ICMP Destination Unreachable). (O fenômeno desta parte será refletido em detalhes na parte de análise da mensagem de erro ICMP)

Análise de fragmento de pacote IP

Ao pingenviar uma solicitação para meu tablet e aumentar o tamanho da mensagem, posso observar a fragmentação da mensagem IP.

ping 172.20.10.4 -s 3000(O comprimento da mensagem é 3000 como exemplo)

Por que ocorre a fragmentação de pacotes IP

O motivo da fragmentação do pacote IP é que o problema de limitação do MTU (Maximum Transmission Unit, unidade máxima de transmissão) pode ser encontrado durante o processo de transmissão, ou seja, o tamanho máximo de cada pacote de dados que pode ser transmitido pelo meio de transmissão da rede ( como Ethernet) limitada. Se o tamanho do pacote IP exceder o MTU, ele precisará ser dividido em vários pacotes de dados menores para transmissão, que é a função da fragmentação do pacote IP. A operação de fragmentação é executada pelo remetente e o destinatário precisa remontar os pacotes de dados fragmentados para restaurar os pacotes IP originais.

Resultados experimentais

Ao ajustar constantemente o tamanho e o comprimento do pacote de dados, o experimento final é feito. Quando o tamanho do pacote de dados é atingido 1484, o pacote de dados IP começa a ser fragmentado .

A seguir está uma comparação de datagramas IP fragmentados e não fragmentados.

 

Através da análise dos resultados experimentais, pode-se saber que a principal diferença entre o pacote de dados IP fragmentado e o pacote de dados IP não fragmentado está na configuração do tamanho e no campo de identificação.

  1. Tamanho: O tamanho dos datagramas IP não fragmentados não excede o limite MTU, enquanto os datagramas IP fragmentados podem ser cortados em vários pedaços de dados menores para transmissão de acordo com o limite MTU.

  2. Identificação: O campo de identificação no datagrama IP não fragmentado é 0, e o campo de identificação no datagrama IP fragmentado é geralmente o mesmo, de modo que a extremidade receptora possa identificá-los com precisão ao receber vários pedaços de dados reunidos para recuperar o IP original datagrama.

Além disso, o pacote de dados IP fragmentado também inclui um campo de deslocamento , que é usado para indicar a posição do fragmento de dados no pacote de dados IP original. Este campo não existe em datagramas IP não fragmentados.

No experimento, acho que é a melhor e mais conveniente maneira de julgar se o datagrama ip está fragmentado ou não, observando se ele contém o campo offset (se o campo offset é 0).

Análise de pacote de erro ICMP

Requisitos: implemente o comando tracert, registre a mensagem ICMP acionada e salve-a como um arquivo pcapng; explique a estrutura de qualquer mensagem de erro ICMP; descreva o princípio de funcionamento do tracert e desenhe um diagrama esquemático de interação de dados combinado com registros de mensagens ICMP .

etapa de captura

Use tracerouteo comando , traceroute 172.20.10.4, e o fenômeno do terminal é mostrado na figura abaixo.

Use wireshark para capturar pacotes icmp.

Desta forma, capturamos uma série de mensagens de erro icmp.

Análise de pacote de erro ICMP

A seguir está uma mensagem de erro.

Tipo de pacote: 11 (Tempo de vida excedido) indica que o tempo expirou Código de código: 0 (Tempo de vida excedido em trânsito) Checksum Checksum: 0x9d17 [correto] [Checksum Status: Bom] Não utilizado: 00000000 ​ Internet Protocol Versão 4, Src: 172.29.69.176, Dst: 172.20.10.4 ​ User Datagram Protocol, Src Port: 62171, Dst Port: 33435

Podemos comparar as informações da mensagem ICMP no quadro de solicitação anterior e no quadro de resposta e podemos descobrir que o campo do tipo de mensagemType é diferente . Até onde sabemos, o quadro de solicitação é 8, o quadro de resposta é 0 e a mensagem de tempo limite neste experimento é 11 .

Consultando os dados, encontrei a explicação do tipo de mensagem correspondente ao código Tipo, conforme tabela abaixo.

 Ao distinguir esses pacotes, geralmente o campo de tipo e código no cabeçalho do pacote ICMP pode ser usado para determinar qual é o tipo de pacote. Para a mensagem de erro, informações como o "campo de protocolo" no cabeçalho IP e o TTL na mensagem ICMP também podem ser usadas para julgar as informações da mensagem.

Análise do princípio de funcionamento do traceroute

traceroute é uma ferramenta de linha de comando para testar caminhos de conexão de rede e gargalos. O princípio básico é aumentar o campo TTL do datagrama toda vez que um datagrama ICMP é enviado e diminuir o TTL do datagrama toda vez que ele passa por um roteador até que o TTL seja reduzido a 0. Quando o TTL é reduzido a 0, o roteador descarta o datagrama e retorna uma mensagem de erro "ICMP Time Exceeded" ao remetente, que também contém o endereço IP do roteador.

Traceroute envia uma série de mensagens ICMP com valores de TTL crescentes para o host de destino, e registra o tempo consumido por cada transmissão, e calcula a ordem em que os valores de TTL aumentam, ou seja, a lista de rotas do datagrama, para obter o host de origem para o host de destino. O caminho de roteamento completo.

Em termos simples, o fluxo de trabalho do traceroute é o seguinte:

  1. Defina o valor TTL como 1 e envie uma mensagem de ping para o host de destino. Depois de receber a mensagem de ping, o primeiro roteador diminuirá o TTL em 1, encaminhará a mensagem para o host de destino e retornará uma mensagem de erro ICMP, indicando que o tempo expirou.

  2. Defina o valor TTL como 2, envie uma mensagem Ping para o host de destino, o segundo roteador recebe a mensagem Ping, diminui o TTL em 1, encaminha a mensagem para o host de destino e retorna uma mensagem de erro ICMP, indicando que o tempo acabou expirado.

  3. Aumente gradualmente o valor TTL até que o host de destino receba o pacote de dados e retorne uma mensagem de resposta ICMP, indicando que o host de destino recebeu a mensagem.

  4. De acordo com a mensagem de erro ICMP retornada e a mensagem de resposta ICMP e o tempo de cada envio e recebimento, calcule o endereço IP e o tempo de atraso de cada roteador, de modo a obter o caminho de roteamento completo do host de origem para o host de destino.

Diagrama esquemático de interação de dados com base em mensagens ICMP

O diagrama esquemático da interação de dados de acordo com a mensagem ICMP é mostrado na figura.

Acho que você gosta

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