Por que posso receber quadros Ethernet maiores que meu tamanho atual de MTU?

4

Eu configurei o tamanho da MTU para 1000 com ip link set eth0 mtu 1000 no link eth0. Desativei o descarregamento de recebimento genérico (gro) com ethtool -K gro off (pois isso pode levar a um comprimento de quadro "falso" no tcpdump ( veja aqui )) Mas se eu capturar agora com o tcpdump ainda recebo pacotes maiores que 1000, por exemplo 1500 bytes.

O que estou fazendo de errado?

No lado de recebimento com MTU definido como 1000:

eth0: mtu 1000

14:27:38.361168 IP XXXXXX > YYYYYY: ICMP echo > request, id 3273, seq 1, length 1480 14:27:38.361495 IP YYYYYY > XXXXXX: ICMP echo reply, id 3273, seq 1, length 976

    
por der_wolle 14.01.2016 / 15:33

1 resposta

3

O MTU é o tamanho máximo de pacote que pode ser enviado por meio de uma interface. O MTU não limita o tamanho máximo do pacote que pode ser recebido.

RFC 1191 diz:

... When one IP host has a large amount of data to send to another host, the data is transmitted as a series of IP datagrams. It is usually preferable that these datagrams be of the largest size that does not require fragmentation anywhere along the path from the source to the destination. (For the case against fragmentation, see [5].) This datagram size is referred to as the Path MTU (PMTU), and it is equal to the minimum of the MTUs of each hop in the path. A shortcoming of the current Internet protocol suite is the lack of a standard mechanism for a host to discover the PMTU of an arbitrary path.

      Note: The Path MTU is what in [1] is called the "Effective MTU
      for sending" (EMTU_S).  A PMTU is associated with a path,
      which is a particular combination of IP source and destination
      address and perhaps a Type-of-service (TOS)...
    
por 14.01.2016 / 17:06

Tags