+10kIndustry standard MTU is 1500. When you want something else, you will have to configure it.
What problems, I wander?)+10kIndustry standard MTU is 1500. When you want something else, you will have to configure it.
(Without considering that, if you don't configure the internal network correctly, you will create nothing but outgoing problems...)
You asking about "not used as a default setup" – not what may be best in your environment.Why setting maximum supported MTU is not used as a default setup?
[...]
Lets consider using MTU=2000 as a default setup
Ah, no? and what is "the question"?All your answers are not concerning the question.
Read reply on post #2, is the perfect answer.Why setting maximum supported MTU is not used as a default setup?
If it is a question,I'm talking only about my own network, not regarding connection to any other networks, to avoid MTU problem that occurs in case of using vlan\Vxlan\EoIP\VPN?
Read reply on post #2, is the perfect answer.Considering, that all devises of a subject-network support enlarged MTU?
Read reply on post #2, is the perfect answer.Lets consider using MTU=2000 as a default setup
MTU is a primary school level computer networking concept. It is “basics” in every sense of the word. One needs to have grown up illiterate without formal education to think otherwise.You're in the "Beginner Basics" forum. And no "beginner" should be messing with MTU. Defaults are fine.
Yeah I assumed a toddler, in @DarkNate tautology.MTU is a primary school level computer networking concept.You're in the "Beginner Basics" forum. And no "beginner" should be messing with MTU. Defaults are fine.
You are sooooo funny trying to look important and advancedYou're in the "Beginner Basics" forum. And no "beginner" should be messing with MTU. Defaults are fine.
I think you should learn to write your questions more clearly – you'd get better answers. No need to be rude.
The point is - Why calculating and even think of it at all, if there is a simple way? Why this approach isn't used as a default way of handling MTU?Can you please explain again what your question is and what answer you are expecting?
Because even after re-reading it, that is not at all clear to me.
Default MTU is 1500. That is not going to change. But when you want 2000, you can set that.
Why is that not OK for you?
At this point is completely useless have 2000 (or 9000) as L2 MTU on WAN interface.Max L3 MTU should default to 1500 to minimise idiots from sending jumbo frames to the public internet.
So if you're sure that none of the "internal network" with a higher L3MTU will traverse the internet, then sure set a higher L3MTU on internal, non-internet hosts. As @pe1chl notes jumbo frames have a use, but typically:Max L3 MTU should default to 1500 to minimise idiots from sending jumbo frames to the public internet.
only practical to use on a very limited local network like SAN or NAS network between fixed hosts and storage, usually in a data center scenario.
I'm not so sure about that. When this setting was only cosmetical it probably would not be there.DarkNate isn't wrong, and gives decent advice – if you want to set L2MTU to max that's fine and leave headroom for whatever in future.
only practical to use on a very limited local network like SAN or NAS network between fixed hosts and storage, usually in a data center scenario.
This is clearly written by someone who's an expert.Code: Select allonly practical to use on a very limited local network like SAN or NAS network between fixed hosts and storage, usually in a data center scenario.
Jumbo frames benefits ISPs, Telecom, IXPs and carriers wherever possible, whoever supported. Enable 9000 L3 MTU and of course maxed L2 MTU.
MTU is a primary school level computer networking concept.You're in the "Beginner Basics" forum. And no "beginner" should be messing with MTU. Defaults are fine.
I'm not him and never heard of this. Either way, I certainly don't “hate”, hate is a strong word, and it requires energy to hate. You could say I have a strong dislike for stupidity – You can't blame me for faulting stupidity.One might say you strongly remind me of once upon a time a talented but (in)infamous Northern European network specialist who acctively took part to build the first commercial IP networks in Europe. At first he refused to accept dial-up internet but was later ditched due to customer demand.
He later disappeared to the Big network company and hated all other providers. Since you're hanging around here I conclude it can't be the same guy but unfortunately you have the same condescending attitude. However, his was due to ASD (autism spectrum disorder) and once you got to know him he was a pretty decent bloke.![]()
you deserved a week of vacation to calm down.It's not my job to cure mental illness aka stupidity/low IQ.
As I have said, All devices are in my own network so the PPPoE-Server isAs already written here:
viewtopic.php?p=993942#p993639
You can't go to 1500 inside pppoe, unless your ISP allows you to.
Regardless of the settings you can set on the device, if the provider doesn't allow you an MTU of 1500, you can't have it.
Sure, you can handwrite 1500, but still you'll have problems because you don't actually have a MTU of that value on the ISP side.
mkx, I'm talking about a mostly wireless network.
Will 1512 be enough to set PPPoE MTU to 1500, send it through EoIP and provided by another network vlan (they have max-L2MTU=9000) to PPPoE-Server?I still don't understand the use case for setting MTU to 2000.
1512, that I can understand. Or maybe 1600 as a "set and forget" case for all common encapsulations.
But I would not know any encapsulation protocol that has 500 bytes of overhead and requires MTU 2000 to transport the de-facto standard 1500 byte MTU.
Then there is MTU 9000 (jumbo frames), with the application I already described.
As others have written, you cannot have >1500 byte MTU on the internet traffic. That will not work.
normal IP packets, size including IP headers: 1500
PPPoE adds 8 bytes overhead: +8
EOIP adds 42 bytes of overhead: +42
--------------------------------------------------------------
total: 1550
The main reason as I see it now is to make an L3 routed network instead of L2 switched@DeDMorozzzz
Why you do not use VLAN instead of EoIP (not knowing why you use EoIP, this a legit question)
If you use VLAN, you do not have to do any on MTU, just set on VLAN the MTU of 1508 and can transparently support pppoe with 1500 MTU...
VLAN use 4 byte on L2 MTU + 8 extra for PPPoE, usually L2 MTU supported from various vendor is max 1518 and 1512 do not cause any problem.
but if the network is L3 (based on OSPF), than means the endpoint is just the AP\Bridge point isn't it?EoIP will not retransmit packets! A lost packet is simply not delivered, it is up to the endpoint to transmit it again.
And it is the final destination device that must re-request the lost packets,[…] the packet has to be re-transmitted from the source. […]
No mi opinion isYou seem to think that with L3 there will be re-transmission across a different path but that isn't any more the case than with L2.
L3 IP is a datagram? So were packets are?Ok, but that is not true.
In IP networks, the network layer (L3) is datagram. There is no re-transmission at L3.
There can only be re-transmission at L4, or in some link layers at L2.
Thank you I didn't know thatwlan try to retransmit "full frame" packet till 7 times, on default, but regardless it's L2 or L3+ content.
It's hardware retry (note: it's hardware, not L2 or L3+).
Datagram is a generic term ... and is more or less the same as packet.L3 IP is a datagram? So were packets are?
Datagram means that the delivery of the packets is best-effort. The packet will not be re-tried at L3 when the link layer drops it.L3 IP is a datagram? So were packets are?Ok, but that is not true.
In IP networks, the network layer (L3) is datagram. There is no re-transmission at L3.
There can only be re-transmission at L4, or in some link layers at L2.
The tunneling is for PPPoE but also it does network segmentation as a side-effectSo the general idea to "smooth" the "flaky" internal links by using some tunneling?
O-B-V-I-O-U-S-L-YDon't you think, that my goal of all that is a good way of improving network quality?
Is a very great choice.The point of changing the MTU inside the network is to make it equal to the MTU outside the network.
Thank you, I guess you are right.O-B-V-I-O-U-S-L-YDon't you think, that my goal of all that is a good way of improving network quality?
but on you parts VLANs can be used, and also you can use EoIP (or other tunnel type) just in the part where is not usable the VLAN.
Do you mean export-compact, or graphical scheme?put the full config here, maybe someone will modificate that
DarkNate is polite compared to some poster's I knew from comp.os.vms. Specifically Carl J Lydick. He was extremely knowledgeable and helpful, but extremely intolerant of posters that did not meet his standards.According to warning andyou deserved a week of vacation to calm down.It's not my job to cure mental illness aka stupidity/low IQ.
What is your problem? It is high enough for the normal use cases, and when you have a special use case (like MPLS or jumbo frames) you can increase it up to the Max L2 MTU.When responding to another thread, I noticed that my new RB5009 has defconf value for L2MTU set to 1514, which to me seems too low.
Screen shots here.
Am I misinterpreting something?
I don't consider vlans a special use case.What is your problem? It is high enough for the normal use cases, and when you have a special use case (like MPLS or jumbo frames) you can increase it up to the Max L2 MTU.
I am running v7.8 on both the hEX S and the RB5009.And default L2MTU in recent v7 does allow for full frame 1500 L3 MTU...as L2MTU is 1568 or higher for most ethernet things. At L2MTU = 1568, that's enough for VXLAN over VLAN-enabled ethernet without any changes from defaults. No arithmetic math required, which seems to be goal?
My RB5009 is the PoE version, maybe difference.I am running v7.8 on both the hEX S and the RB5009.And default L2MTU in recent v7 does allow for full frame 1500 L3 MTU...as L2MTU is 1568 or higher for most ethernet things. At L2MTU = 1568, that's enough for VXLAN over VLAN-enabled ethernet without any changes from defaults. No arithmetic math required, which seems to be goal?
That is why I did not mention them. VLANs are in many cases catered for automatically (i.e. you do not need to fiddle with any parameter).I don't consider vlans a special use case.What is your problem? It is high enough for the normal use cases, and when you have a special use case (like MPLS or jumbo frames) you can increase it up to the Max L2 MTU.
It is not clear what the L2-MTU parameter is necessary for, but I think the whole reason for having it is controlling the buffer allocation in the low level driver. And that may not be the same in all drivers, it may depend on the origin of the driver.It just seemed extremely odd to me that the RB5009 had such a low value compared to my hEX S (which only supports MAX-L2MTU of 2026, but its default L2MTU is set to 1596)
I'm certainly not the “rudest” person to have walked the earth, there are people far worse than me who do far worse things than just argue on a forum, I don't see mods or law enforcement doing squat in that area. But sure, mods may sleep better at night thinking kicking me out makes the world a better place.DarkNate is polite compared to some poster's I knew from comp.os.vms. Specifically Carl J Lydick. He was extremely knowledgeable and helpful, but extremely intolerant of posters that did not meet his standards.
I think we need a sample size greater than one to know much. @ammo has stated his PoE version did now show l2mtu of 1514, but it is also possible it had a differenet factory installed version.Does /interface export show command which is setting l2mtu to the low value? If it's shown, then the default is different in running ROS version. If it's not shown, then it's default value. Could be that this value was (erronous?) default in factory-installed ROS, but upgrades then don't override it with new defaults.
[demo@RB760iGS-1] > interface/ethernet/export verbose
# apr/09/2023 18:11:10 by RouterOS 7.8
# software id = ****-****
#
# model = RB760iGS
# serial number = ************
/interface ethernet
set [ find default-name=ether4 ] advertise=10M-half,10M-full,100M-half,100M-full,1000M-half,1000M-full arp=enabled \
arp-timeout=auto auto-negotiation=yes bandwidth=unlimited/unlimited disabled=no full-duplex=yes l2mtu=1596 \
loop-protect=default loop-protect-disable-time=5m loop-protect-send-interval=5s mac-address=DC:2C:6E:7B:10:F4 mtu=\
1500 name=eth4-BR-SW_U10_T241 orig-mac-address=DC:2C:6E:7B:10:F4 rx-flow-control=off speed=1Gbps tx-flow-control=\
off
set [ find default-name=ether1 ] advertise=10M-half,10M-full,100M-half,100M-full,1000M-half,1000M-full arp=enabled \
arp-timeout=auto auto-negotiation=yes bandwidth=unlimited/unlimited disabled=no full-duplex=yes l2mtu=1596 \
loop-protect=default loop-protect-disable-time=5m loop-protect-send-interval=5s mac-address=DC:2C:6E:7B:10:F1 mtu=\
1500 name=ether1-WAN orig-mac-address=DC:2C:6E:7B:10:F1 rx-flow-control=off speed=1Gbps tx-flow-control=off
set [ find default-name=ether2 ] advertise=10M-half,10M-full,100M-half,100M-full,1000M-half,1000M-full arp=enabled \
arp-timeout=auto auto-negotiation=yes bandwidth=unlimited/unlimited disabled=no full-duplex=yes l2mtu=1596 \
loop-protect=default loop-protect-disable-time=5m loop-protect-send-interval=5s mac-address=DC:2C:6E:7B:10:F2 mtu=\
1500 name=ether2-BR-SW-Base-U1 orig-mac-address=DC:2C:6E:7B:10:F2 rx-flow-control=off speed=1Gbps tx-flow-control=\
off
set [ find default-name=ether3 ] advertise=10M-half,10M-full,100M-half,100M-full,1000M-half,1000M-full arp=enabled \
arp-timeout=auto auto-negotiation=yes bandwidth=unlimited/unlimited disabled=no full-duplex=yes l2mtu=1596 \
loop-protect=default loop-protect-disable-time=5m loop-protect-send-interval=5s mac-address=DC:2C:6E:7B:10:F3 mtu=\
1500 name=ether3-BR-SW-U241 orig-mac-address=DC:2C:6E:7B:10:F3 rx-flow-control=off speed=1Gbps tx-flow-control=off
set [ find default-name=ether5 ] advertise=10M-half,10M-full arp=enabled arp-timeout=auto auto-negotiation=yes \
bandwidth=unlimited/unlimited disabled=no full-duplex=yes l2mtu=1596 loop-protect=default \
loop-protect-disable-time=5m loop-protect-send-interval=5s mac-address=DC:2C:6E:7B:10:F5 mtu=1500 name=\
ether5-off_bridge_wrk orig-mac-address=DC:2C:6E:7B:10:F5 poe-lldp-enabled=no poe-out=auto-on poe-priority=10 \
power-cycle-interval=none !power-cycle-ping-address power-cycle-ping-enabled=no !power-cycle-ping-timeout \
rx-flow-control=off speed=1Gbps tx-flow-control=off
set [ find default-name=sfp1 ] advertise=10M-half,10M-full,100M-half,100M-full,1000M-half,1000M-full arp=enabled \
arp-timeout=auto auto-negotiation=yes bandwidth=unlimited/unlimited disabled=no full-duplex=yes l2mtu=1596 \
loop-protect=default loop-protect-disable-time=5m loop-protect-send-interval=5s mac-address=DC:2C:6E:7B:10:F6 mtu=\
1500 name=sfp1 orig-mac-address=DC:2C:6E:7B:10:F6 rx-flow-control=off sfp-shutdown-temperature=95C speed=1Gbps \
tx-flow-control=off
/interface ethernet switch
set 0 !cpu-flow-control mirror-source=none mirror-target=none name=switch1
/interface ethernet switch port
set 0 !egress-rate !ingress-rate
set 1 !egress-rate !ingress-rate
set 2 !egress-rate !ingress-rate
set 3 !egress-rate !ingress-rate
set 4 !egress-rate !ingress-rate
set 5 !egress-rate !ingress-rate
[demo@RB760iGS-1] > interface/ethernet/export
# apr/09/2023 18:11:15 by RouterOS 7.8
# software id = ****-****
#
# model = RB760iGS
# serial number = ************
/interface ethernet
set [ find default-name=ether4 ] name=eth4-BR-SW_U10_T241
set [ find default-name=ether1 ] name=ether1-WAN
set [ find default-name=ether2 ] name=ether2-BR-SW-Base-U1
set [ find default-name=ether3 ] name=ether3-BR-SW-U241
set [ find default-name=ether5 ] advertise=10M-half,10M-full name=ether5-off_bridge_wrk
[demo@RB760iGS-1] >
[demo@RB5009-1-P2] > /interface/ethernet/export verbose
# apr/09/2023 18:07:01 by RouterOS 7.8
# software id = ****-****
#
# model = RB5009UG+S+
# serial number = ***********
/interface ethernet
set [ find default-name=ether1 ] advertise=10M-half,10M-full,100M-half,100M-full,1000M-half,1000M-full,2500M-full arp=\
enabled arp-timeout=auto auto-negotiation=yes bandwidth=unlimited/unlimited disabled=no full-duplex=yes l2mtu=1514 \
loop-protect=default loop-protect-disable-time=5m loop-protect-send-interval=5s mac-address=48:A9:8A:75:DC:15 mtu=\
1500 name=ether1 orig-mac-address=48:A9:8A:75:DC:15 rx-flow-control=off speed=2.5Gbps tx-flow-control=off
set [ find default-name=ether2 ] advertise=10M-half,10M-full,100M-half,100M-full,1000M-half,1000M-full arp=enabled \
arp-timeout=auto auto-negotiation=yes bandwidth=unlimited/unlimited disabled=no full-duplex=yes l2mtu=1514 \
loop-protect=default loop-protect-disable-time=5m loop-protect-send-interval=5s mac-address=48:A9:8A:75:DC:16 mtu=\
1500 name=ether2 orig-mac-address=48:A9:8A:75:DC:16 rx-flow-control=off speed=1Gbps tx-flow-control=off
set [ find default-name=ether3 ] advertise=10M-half,10M-full,100M-half,100M-full,1000M-half,1000M-full arp=enabled \
arp-timeout=auto auto-negotiation=yes bandwidth=unlimited/unlimited disabled=no full-duplex=yes l2mtu=1514 \
loop-protect=default loop-protect-disable-time=5m loop-protect-send-interval=5s mac-address=48:A9:8A:75:DC:17 mtu=\
1500 name=ether3 orig-mac-address=48:A9:8A:75:DC:17 rx-flow-control=off speed=1Gbps tx-flow-control=off
set [ find default-name=ether4 ] advertise=10M-half,10M-full,100M-half,100M-full,1000M-half,1000M-full arp=enabled \
arp-timeout=auto auto-negotiation=yes bandwidth=unlimited/unlimited disabled=no full-duplex=yes l2mtu=1514 \
loop-protect=default loop-protect-disable-time=5m loop-protect-send-interval=5s mac-address=48:A9:8A:75:DC:18 mtu=\
1500 name=ether4 orig-mac-address=48:A9:8A:75:DC:18 rx-flow-control=off speed=1Gbps tx-flow-control=off
set [ find default-name=ether5 ] advertise=10M-half,10M-full,100M-half,100M-full,1000M-half,1000M-full arp=enabled \
arp-timeout=auto auto-negotiation=yes bandwidth=unlimited/unlimited disabled=no full-duplex=yes l2mtu=1514 \
loop-protect=default loop-protect-disable-time=5m loop-protect-send-interval=5s mac-address=48:A9:8A:75:DC:19 mtu=\
1500 name=ether5 orig-mac-address=48:A9:8A:75:DC:19 rx-flow-control=off speed=1Gbps tx-flow-control=off
set [ find default-name=ether6 ] advertise=10M-half,10M-full,100M-half,100M-full,1000M-half,1000M-full arp=enabled \
arp-timeout=auto auto-negotiation=yes bandwidth=unlimited/unlimited disabled=no full-duplex=yes l2mtu=1514 \
loop-protect=default loop-protect-disable-time=5m loop-protect-send-interval=5s mac-address=48:A9:8A:75:DC:1A mtu=\
1500 name=ether6 orig-mac-address=48:A9:8A:75:DC:1A rx-flow-control=off speed=1Gbps tx-flow-control=off
set [ find default-name=ether7 ] advertise=10M-half,10M-full,100M-half,100M-full,1000M-half,1000M-full arp=enabled \
arp-timeout=auto auto-negotiation=yes bandwidth=unlimited/unlimited disabled=no full-duplex=yes l2mtu=1514 \
loop-protect=default loop-protect-disable-time=5m loop-protect-send-interval=5s mac-address=48:A9:8A:75:DC:1B mtu=\
1500 name=ether7 orig-mac-address=48:A9:8A:75:DC:1B rx-flow-control=off speed=1Gbps tx-flow-control=off
set [ find default-name=ether8 ] advertise=10M-half,10M-full,100M-half,100M-full,1000M-half,1000M-full arp=enabled \
arp-timeout=auto auto-negotiation=yes bandwidth=unlimited/unlimited disabled=no full-duplex=yes l2mtu=1514 \
loop-protect=default loop-protect-disable-time=5m loop-protect-send-interval=5s mac-address=48:A9:8A:75:DC:1C mtu=\
1500 name=ether8 orig-mac-address=48:A9:8A:75:DC:1C rx-flow-control=off speed=1Gbps tx-flow-control=off
set [ find default-name=sfp-sfpplus1 ] advertise="" arp=enabled arp-timeout=auto auto-negotiation=yes bandwidth=\
unlimited/unlimited disabled=no full-duplex=yes l2mtu=1514 loop-protect=default loop-protect-disable-time=5m \
loop-protect-send-interval=5s mac-address=48:A9:8A:75:DC:1D mtu=1500 name=sfp-sfpplus1 orig-mac-address=\
48:A9:8A:75:DC:1D rx-flow-control=off sfp-rate-select=high sfp-shutdown-temperature=95C speed=10Gbps \
tx-flow-control=off
/interface ethernet switch
set 0 cpu-flow-control=yes mirror-egress-target=none name=switch1
/interface ethernet switch port
set 0 !egress-rate !ingress-rate mirror-egress=no mirror-ingress=no mirror-ingress-target=none
set 1 !egress-rate !ingress-rate mirror-egress=no mirror-ingress=no mirror-ingress-target=none
set 2 !egress-rate !ingress-rate mirror-egress=no mirror-ingress=no mirror-ingress-target=none
set 3 !egress-rate !ingress-rate mirror-egress=no mirror-ingress=no mirror-ingress-target=none
set 4 !egress-rate !ingress-rate mirror-egress=no mirror-ingress=no mirror-ingress-target=none
set 5 !egress-rate !ingress-rate mirror-egress=no mirror-ingress=no mirror-ingress-target=none
set 6 !egress-rate !ingress-rate mirror-egress=no mirror-ingress=no mirror-ingress-target=none
set 7 !egress-rate !ingress-rate mirror-egress=no mirror-ingress=no mirror-ingress-target=none
set 8 !egress-rate !ingress-rate mirror-egress=no mirror-ingress=no mirror-ingress-target=none
set 9 !egress-rate !ingress-rate mirror-egress=no mirror-ingress=no mirror-ingress-target=none
[demo@RB5009-1-P2] > /interface/ethernet/export
# apr/09/2023 18:07:06 by RouterOS 7.8
# software id = ****-****
#
# model = RB5009UG+S+
# serial number = ***********
[demo@RB5009-1-P2] >
I was incorrectly interpreting l2mtu as if it was full frame mtu.What is your problem? It is high enough for the normal use cases, and when you have a special use case (like MPLS or jumbo frames) you can increase it up to the Max L2 MTU.When responding to another thread, I noticed that my new RB5009 has defconf value for L2MTU set to 1514, which to me seems too low.
Screen shots here.
Am I misinterpreting something?
It really should.this topic should be marked as solved.
DeDMorozzzz YOU should mark it as solved because you are the initiator ....It really should.
Should I mark in anyway, or it's a moderator's job?
Thank you, not all forums are the same or it just my experienceTo be more accurate, the initiator is the only one that can classify it solved. ( choose the most appropriate post and there is a green mark with a checkbox in the upper right hand corner and when you hover over states something like 'accept this answer'
This has me wondering, if I change my computers NIC to Jumbo MTU 9000, and visit https://www.speedguide.net/analyzer.php - results say my MTU is 9000.. however, since router's WAN port (RB4011 ether1) is set to default MTU 1500, why doesn't PMTUD negotiate an MTU of 1500 with the computer's NIC, for traffic that's headed out router's ether1 (set with MTU 1500)?PMTUD does its job and correctly sends packets/frames in correct size based on the path. We've never had any fragmentation in the networks I deployed large MTU on.
Secondary question - if using a CRS3xx, with hardware VLAN'ing enabled, does this still count towards L3 MTU, or L2 MTU since it doesn't have to go through CPU routing?
That site probably uses the MSS inside a TCP SYN to tell the MTU on your network.This thread has been an interesting read leading me to look into MTU...
This has me wondering, if I change my computers NIC to Jumbo MTU 9000, and visit https://www.speedguide.net/analyzer.php - results say my MTU is 9000.. however, since router's WAN port (RB4011 ether1) is set to default MTU 1500, why doesn't PMTUD negotiate an MTU of 1500 with the computer's NIC, for traffic that's headed out router's ether1 (set with MTU 1500)?PMTUD does its job and correctly sends packets/frames in correct size based on the path. We've never had any fragmentation in the networks I deployed large MTU on.
These MTU values are all for different PDU (protocol data units) depending on what layer is involved. It is similar to Russian Nesting Dolls, where when you open the outer layer there is a smaller container within. I.e. the "inner dimentions" of the outer containter must be large enough to contain the "outer dimentions" of any container within. Or another analogy, the shipping box must be bigger than any box it contains.This thread has been an interesting read leading me to look into MTU...
Well, things generally will just fragment if MTU is wrong...so not quite right. These oversized boxes and "fabergé packets" should get chopped off and glued back together... And depending on what's inside will determine how well that "glue" works.It is similar to Russian Nesting Dolls, where when you open the outer layer there is a smaller container within. I.e. the "inner dimentions" of the outer containter must be large enough to contain the "outer dimentions" of any container within. Or another analogy, the shipping box must be bigger than any box it contains.This thread has been an interesting read leading me to look into MTU...
Could be wrong here...Another trick that works better than PMTUD, but only for TCP, is "MSS clamping".
I assume you meant "increase you WAN latency"?Does MSS Clamping cause much overhead on the router - or rather, does it diminish your WAN latency in any way, and negate any potential advantages of using larger MTU within the LAN to begin with?
so once tcp connection has been established and MSS calculated/computed, is there still ongoing compute each time it "pre-fragments" the ongoing packets within the established tcp connection?MSS is computed per tcp connection, not per packet.
/ip firewall mangle
add action=change-mss chain=postrouting comment="adjust TCP MSS" new-mss=1372 \
out-interface=lte1 passthrough=yes protocol=tcp tcp-flags=syn tcp-mss=1373-65535
It depends. When you are using "fasttrack" it increases the overhead, because you will need to turn that OFF at least for TCP SYN packets, which means at least another rule before the fasttrack.Does MSS Clamping cause much overhead on the router - or rather, does it diminish your WAN latency in any way, and negate any potential advantages of using larger MTU within the LAN to begin with?
That is true, but the issue usually does not manifest itself with UDP packets.And TCP MSS rule does NOT help with UDP packets.
It depends. When you are using "fasttrack" it increases the overhead, because you will need to turn that OFF at least for TCP SYN packets, which means at least another rule before the fasttrack.Does MSS Clamping cause much overhead on the router - or rather, does it diminish your WAN latency in any way, and negate any potential advantages of using larger MTU within the LAN to begin with?
Are you related to @anav ???all my complaints on BGP and BFD![]()
That right IMO. Just add if your WAN/internet connection has a lower MTU than 1500... you may want to do special treatment of MTU.so long story short - don't fuck with larger MTU sizes within a network that at some point might access the internet.
The initial MSS value is created by a device on the network, not the router. Router will only change a MSS. So it's possible, perhaps unlikely uses a lower MSS initially. So without the filter for "big MSS values", you increasing may be increasing MSS beyond what the client requested.[...]
But going back to Ammoss comment. Where its stated that any mangle rule should include "tcp-mss="
[...]
For Wirguard when there are mTU issues this is recommended......
/ip firewall mangle
add action=change-mss chain=forward comment="Clamp MSS to PMTU for Outgoing packets" new-mss=clamp-to-pmtu out-interface=wireguard1 passthrough=yes protocol=tcp tcp-flags=syn
Just to confirm thats still good.......... as there is no tcp-mss= Entry ??
It used to work in V6. But I recall PPP profile's MSS adjustment also using "new-mss=clamp-to-mtu" as the action... So the clamp-to-mtu depend on if the [L3] MTU was set correctly. And if MTU wasn't adjusted on the interface explicitly lower, then PPP profile setting likely do nothing given an impression of not working.That is why MikroTik offers a more efficient but less flexible MSS clamping service as part of some interface configs and as part of "PPP profiles".
So when you are concerned about efficiency, you can use that instead. But it is often reported that it does not work. I don't know, I never use it.
I wrote that already in reply #20, but now in reply #104+ the discussion is still ongoing...so long story short - don't fuck with larger MTU sizes within a network that at some point might access the internet.
Something like a network between |Server| and |Shared Storage/MAS|, could easily have jumbo frames on, providing |Server| and |Shared Storage| use separate dedicated NICS with MTU1500 for management and internet access (EG: cloud base portal access, updates, etc..)...
Industry standard MTU is 1500. When you want something else, you will have to configure it.
(Without considering that, if you don't configure the internal network correctly, you will create nothing but outgoing problems...)
My router have pppoe connection to internet with mtu 1492.Do not mix MTU and MSS:
1420 is the default L3 MTU, ready for Wireguard connected by IPv6 (regardless what is transport internally) = MSS 1380.
If you do not use IPv6 for connect Wireguard tunnel, you can set it to 1440 and increase the MSS to 1400.
(and on both cases are supposed 1500 as L3 MTU on WAN side)
If the WAN connection is provided by PPPoE, if you do not have one L3 MTU of 1500 from your ISP,
must be subtracted 8 from all values,
so if you get the connection by PPPoE that have L3 MTU/MRU of 1492, and you use IPv4 only Wireguard link,
you have to set 1432 on Wireguard L3 MTU and 1392 on clamp tcp-mss
But count what is lower suported MTU/MSS between all peers.
Thank you from your answer.For a IPv4 path, WG MTU is 1432. If IPv6, WG MTU is 1412 — for PPPoE. If WAN is 1500, then WG MTU be 1420 for IPv6 and 1440 for IPv4.
Another way to look at is WG is 40 bytes, including UDP header. If the path between the peers is IPv4, that add 20 bytes, PPPoE adds another 8 bytes:
https://baturin.org/tools/encapcalc/?pr ... ,WireGuard
Most cases PMTUD works (e.g. unless some decides to block ping someplace), so TCP MSS mangle is many times superfluous. And the worse case without a MSS adjustment, is some fragmentation; but a MSS mangle rule always add some overhead and potential side-effects (or at least more stuff to consider)... I think you'd have to try it both ways to see its effects (e.g. with MSS adjustment mangle and without one).
Also you should consider the MTU of the remote peers that connect. The actual WG MTU over a path is lowest of the peers. Say you have only one remote peer that always connect via LTE, that have an even lower MTU than your PPPoE, and it might be better to match lower MTU of the path as that avoid the need for PMTUD to work.