Testando se os jumbo-frames estão realmente funcionando

28

Existe um comando para testar se os jumbo-frames estão realmente funcionando? isto é, algum tipo de "ping" que informa se o pacote foi ou não quebrado ao longo do caminho.

Eu tenho um host ESXi com uma VM do Ubuntu que monta um Dell MD3000i via iSCSI. Suspeito que os jumbo-frames não estejam ativados no comutador e não consiga obter facilmente acesso de administrador a ele. Eu tenho a opção de conectar a matriz de disco diretamente ao host ESXi, mas gostaria de confirmar que os jumbo-frames são um problema primeiro.

baiacu
fonte

Respostas:

42

Ativar Jumbo Frames significa permitir uma Unidade Máxima de Transmissão (MTU) maior, geralmente configurando a MTU para 9000.

Para verificar se isso funcionou, você pode usar o ping nas janelas com o sinalizador -l para definir o tamanho do pacote e o sinalizador -f para definir o sinalizador Não Fragmentar no pacote.

ping my.test.host -f -l 8972

Se o pacote ficar fragmentado, você verá

Packet needs to be fragmented by DF set

no lugar do que você normalmente veria.

Para Linux, o comando ping usa sinalizadores diferentes. -sdefine o tamanho do pacote e -M dodefine Não fragmentar. Portanto, o comando acima seria:

ping my.test.host -M do -s 8972

Ajustando o tamanho do pacote, você pode descobrir qual é o mtu para o link. Isso representará o menor mtu permitido por qualquer dispositivo no caminho, que pode ser seu comutador, seu computador, alvo ou qualquer outra coisa entre eles.

Isso por si só não indica onde está o MTU mais baixo - você pode resolver isso executando o teste em diferentes dispositivos no caminho, mas sempre pode haver roteadores transparentes que limitam o MTU, mas não aparecem para traceroute.

Observe que há uma sobrecarga de 28 bytes para os cabeçalhos ICMP; portanto, a MTU é 28 bytes maior que a figura que você estabelece através do método acima. Portanto, para verificar o MTU de 9000, você realmente precisa definir o tamanho do pacote de ping para 9000-28 = 8972.

Atualização Encontrei alguns recursos que descobrirão especificamente o MTU no caminho entre o host e o destino:

  • Para Windows mturoute
  • Para * nix tracepath ou traceroute --mtu

E mais algumas discussões sobre como encontrar o MTU de um caminho .

dunxd
fonte
+1. Boa resposta. Pensei nisso também, mas não tinha certeza se isso permitiria detectar qual era o tamanho do quadro suportado pelo switch. Eu não pensei nisso como testar o caminho MTU.
11111 joeqwerty
1
Bom .. no Windows. Pequena alteração para fazê-lo funcionar no linux. [ping 10.1.1.101 -s 1472] em que 1472 é o tamanho da MTU. Por favor edite sua pergunta para incluir isso e eu vou aceitar
baiacu
Aqui é um utilitário que usa o método descrito por dunxd: elifulkerson.com/projects/mturoute.php
Chris
2
Ok - a página de manual o ajudaria imediatamente, mas eu atualizei com os detalhes específicos do Linux. O sinalizador Não fragmentar é necessário para que o teste funcione corretamente, e isso não é tão claro no ping do Linux quanto no Windows.
22611 dunxd
1
Se você ativar o SSH pela primeira vez no host ESXi e efetuar login, poderá usar vmkping -d -s 8972 10.1.1.101, onde -s define o tamanho do pacote e -d define o sinalizador Não fragmentar.
Eric3
1

Não sei se isso funcionaria, mas você pode tentar:

No computador que possui o cliente MDSM, verifique se os Jumbo Frames são suportados e ativados, vá para a guia suporte no cliente MDSM e selecione o link "Reunir informações de suporte", selecione um local no cliente MDSM para o qual baixar o arquivo, inicie uma captura de pacote no cliente MDSM e clique no botão Iniciar para começar a coletar e baixar as informações de suporte (arquivo zip). Quando a coleta / download estiver concluída, observe a captura e veja o tamanho dos quadros Ethernet do MD3000i para o cliente MDSM. Se o switch, o MD300i e o cliente MDSM estiverem todos configurados para Jumbo Frames, você deverá ver isso no tamanho do quadro Ethernet na captura.

joeqwerty
fonte
1

No ESXi, você precisa especificar qual interface você usaria, caso contrário, o ping será roteado pela interface mgmt, além de -d para definir DF (não fragmentar):

vmkping -I vmkX -s 8972 -d xxxx

http://kb.vmware.com/kb/1003728

Jay Ge
fonte
-1

Você também pode verificá-lo no console ESXi via SSH: ative Security-> Firewall-> Remote Tech.support (SSH) e, após o login ssh, faça "vmkping -s 8000" ou algo parecido (não se lembre exatamente de suas opções)

Dyr
fonte
4
Procure as opções e alguém poderá votar em você.
dunxd