AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / unix / Perguntas / 783243
Accepted
MMAX
MMAX
Asked: 2024-09-09 22:36:09 +0800 CST2024-09-09 22:36:09 +0800 CST 2024-09-09 22:36:09 +0800 CST

traceroute (UDP) pacotes perdidos

  • 772

Estou enfrentando o seguinte problema ao executar tracerouteentre dois nós na mesma sub-rede. Isso é feito como um teste para saber se a conexão de rede entre esses dois nós é confiável ou não. Fomos informados para usar essa abordagem pela Equipe de Suporte de um fornecedor de DB conhecido.

Ao executar o comando: traceroute -s 10.1.3.205 -r 10.1.3.210 há pacotes aleatoriamente não recebidos e nenhum RTT é relatado:

traceroute to 10.1.3.210 (10.1.3.210), 30 hops max, 60 byte packets
 1  10.1.3.210 (10.1.3.210)  0.152 ms  0.064 ms *

Por outro lado, executar o traceroute com a opção ICMP: traceroute -I -s 10.1.3.205 -r 10.1.3.210é confiável e não há pacotes perdidos.

O mesmo problema foi descoberto em vários sistemas Linux em nosso ambiente com diferentes níveis de patch, diferentes versões do traceroute e não importa se o sistema é uma VM ou físico.

Para simplificar e facilitar a leitura do tcpdump, tentei com o seguinte comando:

for i in {1..10}; do traceroute -s 10.1.3.205 -r 10.1.3.210 -n 1 -m 1 -q 1; done

A saída é a seguinte:

for i in {1..10}; do traceroute -s 10.1.3.205 -r 10.1.3.210 -n 1 -m 1 -q 1; done
traceroute to 10.1.3.210 (10.1.3.210), 1 hops max, 28 byte packets
 1  10.1.3.210  0.203 ms
traceroute to 10.1.3.210 (10.1.3.210), 1 hops max, 28 byte packets
 1  10.1.3.210  0.067 ms
traceroute to 10.1.3.210 (10.1.3.210), 1 hops max, 28 byte packets
 1  10.1.3.210  0.067 ms
traceroute to 10.1.3.210 (10.1.3.210), 1 hops max, 28 byte packets
 1  10.1.3.210  0.071 ms
traceroute to 10.1.3.210 (10.1.3.210), 1 hops max, 28 byte packets
 1  10.1.3.210  0.067 ms
traceroute to 10.1.3.210 (10.1.3.210), 1 hops max, 28 byte packets
 1  10.1.3.210  0.075 ms
traceroute to 10.1.3.210 (10.1.3.210), 1 hops max, 28 byte packets
 1  *
traceroute to 10.1.3.210 (10.1.3.210), 1 hops max, 28 byte packets
 1  10.1.3.210  0.142 ms
traceroute to 10.1.3.210 (10.1.3.210), 1 hops max, 28 byte packets
 1  10.1.3.210  0.067 ms
traceroute to 10.1.3.210 (10.1.3.210), 1 hops max, 28 byte packets
 1  10.1.3.210  0.054 ms

Cada 7º pacote não obtém resposta e isso é reproduzível. Agora, a equipe de suporte finaliza como se tivéssemos um problema em nossa configuração de rede com essa perda de pacote.

Executando o mesmo loop com um atraso de 1 segundo, todos os 10 pacotes são enviados e recebidos:

for i in {1..10}; do traceroute -s 10.1.3.205 -r 10.1.3.210 -n 1 -m 1 -q 1; sleep 1; done

Estou com algumas dúvidas se essa maneira de testar a confiabilidade da rede está correta ou não, já que normalmente o traceroute é usado para monitorar o caminho da rede em conexões roteadas.

Tentei um teste de conexão de rede por várias horas com nipinga SAP, onde nenhuma conexão perdida foi descoberta.

Então, há algo óbvio que eu tenha esquecido e usar tracerouteesse método é uma maneira viável de testar a confiabilidade da rede?

tcpdump
  • 2 2 respostas
  • 387 Views

2 respostas

  • Voted
  1. Marcus Müller
    2024-09-10T02:01:07+08:002024-09-10T02:01:07+08:00

    Como Steffen disse , tracerouteé a ferramenta errada para o trabalho, porque sua detecção e relatório de erros simplesmente não são suficientes para o trabalho. Então, diga "oi" para a equipe do fornecedor de DB da nossa parte, e diga a eles que outros administradores disseram que, embora o traceroute seja uma boa ferramenta para detectar se existem rotas da origem para o destino, ele não é útil para diagnosticar problemas de confiabilidade de UDP em uma única sub-rede.

    Isso é duas vezes mais verdadeiro, pois a carga de rede causada por tracerouteé realmente mínima. Se você quiser descobrir se sua rede descarta pacotes UDP sob alta carga de banco de dados, ela nem está tentando carregar a rede.

    Diagnosticar pacotes perdidos é provavelmente algo que você desejará fazer com as pessoas que administram sua rede, mas para um primeiro teste de carga, você pode usar iperf, como este na máquina cliente:

    RATE_BITS_PER_SEC=10m
    SERVER=10.1.3.210
    CLIENT=10.1.3.205
    iperf -c ${SERVER} -B ${CLIENT} -i 1 -u -b ${RATE_BYTES_PER_SEC}
    

    e assim por diante na máquina servidora:

    iperf -s -i 1 -w 4M -u
    

    Se 10 Mb/s funcionar, você pode então aumentar a RATE_BITS_PER_SECvariável, até que seu servidor comece a imprimir números que indiquem que você perdeu pacotes. Isso tem que acontecer em algum momento, ou seja, quando você excede a velocidade do fio, a questão é o quão perto você chega disso.

    • 5
  2. Best Answer
    Steffen Ullrich
    2024-09-09T23:23:10+08:002024-09-09T23:23:10+08:00

    O traceroute baseado em UDP espera mensagens ICMP TTL excedido para descobrir se um pacote com um TTL específico foi descartado por um roteador. Geralmente, há um limite de taxa para envio de ICMP TTL excedido e, às vezes, eles simplesmente não são enviados ou ICMP bloqueado/taxa limitada por sistemas intermediários.

    Portanto, o traceroute não é uma ferramenta útil para testar a confiabilidade de uma rede em relação à perda de pacotes. A ferramenta nunca foi planejada para isso. Usado com conhecimento apropriado, o traceroute pode ser usado para encontrar coisas estranhas na rede que também podem afetar a confiabilidade, mas não é uma ferramenta de teste de confiabilidade de propósito geral.

    • 4

relate perguntas

  • Monitore as conexões do Nextcloud com o netstat

  • Capturando o tráfego lvsadm UDP na interface de loopback [fechado]

  • O tcpdump pode filtrar por timestamp?

  • Usando tcpdump para registrar todas as atividades de rede passando por um servidor roteador

  • tcpdump --- captura pacotes para um arquivo não rotativo

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Possível firmware ausente /lib/firmware/i915/* para o módulo i915

    • 3 respostas
  • Marko Smith

    Falha ao buscar o repositório de backports jessie

    • 4 respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    user12345 Falha ao buscar o repositório de backports jessie 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl Por que a maioria dos exemplos do systemd contém WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve