Resumo
- A transferência parecia sofrer limitação da operadora: ficava lenta em caminhos abaixo de 1.500 bytes e funcionava em outra VM. Liberar ICMP no firewall não mudou o sintoma; a diferença decisiva estava na placa virtual.
- O offload TCP da RTL8139 emulada continuava em 1.500 bytes, apesar de a rota ter encontrado MTU de 1.420. Uma rota mais específica, travada em 1.320, fez a transferência voltar a andar.
Análise
A operadora entrou na lista de suspeitos primeiro. A equipe liberou no firewall o ICMP “packet too big”; o download continuou rastejando. Só quando Fiebig comparou duas VMs apareceu a diferença que importava: uma tinha a RTL8139 emulada pelo QEMU; a outra, outro adaptador. O defeito estava no equipamento virtual que quase ficou fora da investigação.
Tobias Fiebig contou a história na plenária de encerramento de RIPE 93. Uma transferência grande se arrastava para clientes por caminhos com MTU menor que 1.500. De outra VM ali perto, o mesmo serviço funcionava. A diferença parecia estar na rede. A equipe permitiu no firewall do servidor a mensagem ICMP “packet too big”, que avisa quando o pacote não cabe no próximo enlace. A regra mudou; a velocidade não.
Fiebig consultou a rota no cliente afetado e encontrou MTU de caminho de 1.420 bytes. O sistema já sabia que o caminho era menor que sua interface local de 1.500. Mesmo assim, o TCP seguia retransmitindo. Uma rota mais específica, com MTU travado em 1.320, destravou o fluxo. A consulta da rota encontrou 1.420 bytes; fixar 1.320 foi o contorno que funcionou.
A primeira tentativa de reprodução também falhou. Fiebig montou uma VM com o mesmo software e enviou o mesmo pacote de teste. Nada. A diferença apareceu no hardware virtual: a VM afetada usava uma Realtek RTL8139 emulada; a de teste usava outro adaptador. Reproduzir o sistema sem reproduzir a interface era repetir quase tudo, menos a condição decisiva.
O código levou Fiebig a net/hw/8139.c, no QEMU, onde o offload TCP usava MTU fixo de 1.500 bytes. O registro oficial do projeto QEMU descreve o mesmo quadro: baixo desempenho para clientes atrás de enlaces abaixo de 1.500, PMTUD ignorado, retransmissões e mitigação ao reduzir o MTU do sistema convidado. Na palestra, Fiebig disse que a implementação remontava a 2006 e citou uma discussão e uma proposta de correção em 2016. Desativar o offload TCP também poderia resolver; no caso apresentado, trocar a placa antiga por VirtIO eliminou a falha.
Path MTU Discovery deveria fazer os extremos ajustarem o tamanho dos pacotes ao enlace mais estreito. A RFC 1191 descreve a descoberta para IPv4; a RFC 2923 registra problemas de TCP quando a sinalização ICMP some ou é mal tratada. O firewall era um suspeito coerente. Depois que a liberação não mudou o sintoma, era hora de olhar a fronteira entre o convidado e sua NIC virtual.
A ordem que economiza horas é simples: capturar os pacotes, conferir o MTU aprendido pela rota, identificar o modelo da placa e comparar o estado do offload. Falta no registro público a versão exata do QEMU e a configuração de offload da VM afetada; esses dados mostrariam até onde o caso se repete.
Fontes
Transcrição da plenária de encerramento de RIPE 93; issue 1312 do QEMU; RFC 1191; RFC 2923; perfil de Tobias Fiebig na TU Wien; página da sessão do RIPE 93.
Briefing para membros
Contexto aprofundado do perfil
Faça login com o nível de assinatura correto para desbloquear o briefing completo e as notas das fontes.
Exclusivo para o Círculo Estratégico
Strategic Circle
Aberto a todos os leitores. Desbloqueie Briefings de perfil após se inscrever e fazer login.
Junte-se ao Strategic CircleSomente para Leadership Alliance
Leadership Alliance
Para proprietários e gestores qualificados de ativos de PI; faça login para desbloquear os briefings da Leadership Alliance.
Junte-se ao Leadership Alliance





