1

we have some machines in the cluster

linux machines as Linux_a , linux_b are configured with MTU 1500

while linux machines - linux_1 and linux_2 are configured with MTU 9000

so

linux machines - linux_a and linux_b send heavy data to linux_1 and linux_2

is it a problem?

note - as I understand only scenario as: send data from linux that configured with MTU 9000 to machine with MTU 1500 - is a problem

1
  • Did any answer help you? If so, you should accept the answer so that the question doesn't keep popping up forever, looking for an answer. Alternatively, you can post and accept your own answer.
    – Ron Maupin
    Commented Dec 17, 2020 at 14:42

2 Answers 2

3

Generally, this should be avoided, but under some limited circumstances it may appear to work. The problem stems from there being no layer-2 mechanism to signal the mismatch, or negotiate a frame size.

However, so long as the larger MTU never sends anything larger than the smaller MTU, everything will appear to work. This will usually only happen if the smaller MTU is the only side to ever initiate a TCP connection; MSS will limit the size of frames from the larger side.

Note: I've done this in a few cases with iSCSI. As the server never opens connections, and only responds to client requests (that will never be larger than the client MTU), it will usually work. However, when two mismatched clients try to communicate -- eg. distributed filesystems, things can fall apart.

2
  • since we are talking here about kafka machines ( Apache kafka ) , any way to know if kafka send back to the smaller MTU?
    – yael
    Commented Dec 30, 2019 at 3:48
  • Like I said, it may appear to work. One cannot mismatch an ethernet MTU. (and strictly speaking, anything other than 1500 is out-of-spec.)
    – Ricky
    Commented Dec 30, 2019 at 15:39
2

Generally, configuring jumbo frames effects sending and receiving frames. Received frames larger than the configured maximum are dropped. Sending frames may be sized up to the maximum.

Note that almost all network communication is two-way (unless you're only using datagram-based L4 protocols like UDP). Likely, the MTU-1500 frames are received fine while the possibly larger replies are dropped.

All devices in a LAN (L2 segment) must use the same maximum frame size since there's no way to negotiate. In a mixed scenario you need to use different VLANs.

Ethernet frames with a payload larger than 1500 bytes are generally non-standard, so they can only be used in a very controlled scenario where you need to make sure that all connected hosts can handle all possible frame sizes. Mixing them within a segment will sooner or later cause trouble.

Additionally, IPv4 routers connecting those jumbo-frame segments to elsewhere may experience considerable stress due to the required fragmenting when forwarding oversized packets. If you really do need jumbo frames you should only use them between hosts using the same frame/packet size - including routed connections.

The best solution is to either not use jumbo frames at all, or use dedicated VLANs and not route from jumbo segments to the Internet. Some NICs may not support different frame sizes on different VLANs, so you'd need to either swap them or use dedicated NICs.

13
  • so do you think its wrong to send data from machines with MTU=1500 to machines with MTU=9000? , what I want to undertsand if we must in this case to change also the machines with MTU=1500 to MTU-9000
    – yael
    Commented Dec 29, 2019 at 23:03
  • I must to say that all example in my question are about hadoop cluster , we set all machines in hadoop cluster with MTU-9000 , but some machines that send data to kafka machines rae set with MTU=1500
    – yael
    Commented Dec 29, 2019 at 23:05
  • @yael If you are 100% that communication is one-way it should work. Don't expect for it to work when you're trying to do more than that though. Generally, a setup like that is asking for trouble.
    – Zac67
    Commented Dec 29, 2019 at 23:06
  • do you familiar with kafka machines ?
    – yael
    Commented Dec 29, 2019 at 23:07
  • 1
    @yael, as was pointed out to you, most communication is bidirectional, and you may have acknowledgements or requests that exceed the MTU of the host receiving them, meaning that they would be dropped. In any case, host/server configurations, applications, and protocols above OSI layer-4 are off-topic here, and you can ask about those on Server Fault for a business network. Also, understand that the ethernet MTU, per the ethernet standard, is 1500 octets, and jumbo frames are non-standard, so you can have problems.
    – Ron Maupin
    Commented Dec 29, 2019 at 23:16

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.