arp packet recebeu maior que o pacote enviado, por quê?

2

Estou tentando depurar um problema de rede. Durante este processo, notei que quando tento fazer um arping, os pacotes arp recebidos são maiores do que os pacotes arp enviados, conforme a saída do tcpdump.

(Observe que ambas as extremidades têm uma ponte br100 para a interface eth1 ).

Comando:

# arping 10.40.0.5 -I br100 -c1
ARPING 10.40.0.5 from 10.40.0.1 br100
Sent 1 probes (1 broadcast(s))
Received 0 response(s)

tcpdump (remetente):

# tcpdump -nnvvXSs 1514 arp -i eth1
tcpdump: WARNING: eth1: no IPv4 address assigned
tcpdump: listening on eth1, link-type EN10MB (Ethernet), capture size 1514 bytes
21:32:29.529106 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 10.40.0.5 (ff:ff:ff:ff:ff:ff) tell 10.40.0.1, length 28
    0x0000:  0001 0800 0604 0001 5478 1a86 50c9 0a28  ........Tx..P..(
    0x0010:  0001 ffff ffff ffff 0a28 0005            .........(..

tcpdump (receptor):

# tcpdump -nnvvXSs 1514 arp -i eth1
tcpdump: WARNING: eth1: no IPv4 address assigned
tcpdump: listening on eth1, link-type EN10MB (Ethernet), capture size 1514 bytes
21:32:29.532966 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 10.40.0.5 (ff:ff:ff:ff:ff:ff) tell 10.40.0.1, length 46
    0x0000:  0001 0800 0604 0001 5478 1a86 50c9 0a28  ........Tx..P..(
    0x0010:  0001 ffff ffff ffff 0a28 0005 0000 0000  .........(......
    0x0020:  0000 0000 0000 0000 0000 dac7 07ed       ..............

O pacote de arp recebido é 18 bytes maior que o pacote de arp enviado. Estou tentando descobrir se isso é normal ou se é um problema. (Este pacote está vinculado a uma instância de máquina virtual que não está recebendo corretamente).

Quem está adicionando esses 18 bytes e por quê? É o remetente, o comutador ou o receptor? E o que eles querem dizer?

A minha suspeita é de que é o comutador (Cisco Nexus 3000) e está relacionado com o encapsulamento 802.1Q.

    
por Lorin Hochstein 05.04.2013 / 03:49

2 respostas

3

46 bytes é a quantidade mínima de dados do usuário permitidos em um pacote Ethernet.

Há um preâmbulo de 8 bytes, um MAC de destino de 6 bytes, um MAC de origem de 6 bytes, um tipo / comprimento de 2 bytes, dados do usuário e uma sequência de verificação de quadros de 4 bytes. Como o pacote mínimo é de 64 bytes , isso significa que os dados do usuário não podem ser inferiores a 46 bytes.

Cada protocolo em camadas na parte superior da Ethernet deve lidar com isso. ARP lida com isso, ignorando "lixo" após os dados.

    
por 05.04.2013 / 04:33
0

Apenas deseja adicionar informações extras (perspectiva de rede), por que o roteador não aceita pacotes em que condição

Se o tamanho dos pacotes for inferior a 64 bytes, o roteador assumirá os pacotes como RUNT e os rejeitará

(Pacotes < = 64 Rejeitar Pacotes RUNT)

Porque, em Packets, o tamanho do cabeçalho é igual a 64 header, portanto, parece que os Pacotes não incluem com Data algum motivo de Corrupção de Pacotes.

Se a MTU de Tamanho dos Pacotes Acima da Porta (Roteador) (Padrão 1500 para FastEthernet, 9000 para a Interface Gigabit), os Pacotes Contarão como Pacotes Gigantes e Rejeitarão esses Pacotes. Como o Port MTU é 1500, ele não aceita pacotes.

(Pacotes & Port MTU (1500) Rejeitar como GIGANTE)

Se o tamanho dos pacotes for 1519-1564, este pacote é chamado de pacotes-bebê Jambo e aceita somente onde o MTU da porta é 9000

Se All Condition for Pass, o Roteador fará a verificação de redundância cíclica (CRC)

    
por 05.04.2013 / 10:56