3

I have a server that I am transferring data off of. We were having some problems that were traced back to the fact that the server is sending out jumbo size frames despite the fact that ifconfig is reporting that the MTU is 1500. How is this possible? The box is running CentOs 5, this is occuring over ipv4.

How can I tell the server to stop sending out packets with sizes greater then 1500?

4
  • 5
    Stop filtering ICMP on your firewalls, so MTU discovery works like it should?
    – Zoredache
    Dec 20, 2012 at 22:37
  • 1
    This question is missing details. This ifconfig, are you running it on the server or elsewhere? What problems were traced? Where are you seeing the jumbo frames exactly? (On the wire between the server and something? If so, what is that something?) Dec 20, 2012 at 22:44
  • 1
    Are you sure these aren't just IP or UDP datagrams larger than 1,500 bytes encapsulated in multiple smaller packets? And are you sure they were over 1500 on the link that had a 1500 byte MTU? Dec 21, 2012 at 3:03
  • Some tcpdump output would be useful. Can you add that to your question? Dec 21, 2012 at 7:44

3 Answers 3

7

Disabling Large Send Offload may fix that. Ive seen 15k and even 30k packets, regardless of MTU.

1
  • 1
    This was it, ethtool was reporting that tcp segmentation offload was on. Once I turned this off, the packet sizes immediately dropped to 1500 (The set MTU) I guess the kernel was passing packet sizes of 1500 to the NIC and it would lump them together into bigger packets.
    – Gus E
    Dec 21, 2012 at 15:34
2

The server will fragment the packets so that they are in 1500 byte chunks, It might be that somewhere else within the network something has an MTU less than 1500 which could be the cause of the issue. Are you able to ping the other end with an size of 1500?

ping -s 1500 <ip>

You should also be able to send packets of higher sizes. If you, the remote end or anything in between is filtering ICMP packets then it is likely it is blocking MTU discovery packets.
You will need to allow the ICMP Fragmentation Needed (Type 3, Code 4) packets via the firewall

2

If you are capturing packets on the server then you might see TCP sending out larger segments than the MTU. The packets on the wire , however, will be MTU size only. You can verify this by capturing on a network device (switch) etc. Alternatively capturing packets on the remote (client) machine will reveal that each packet is <= MTU .

This behaviour is due to the fact that with TSO/GSO enabled, the TCP segment is split into MTU sized packets by NIC hardware. Since tcpdump captures at software layer, it sees segments larger than the MTU being sent to the NIC card for further transfer.

If you disable tso/gso for the NIC, then you will see all outgoing packets to be <= MTU size (more likely pMTU size).

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .