MPLS MTU Calculations

Just im wondering how can i calculate MTU on different case and scenarious.

there two tags of MPLS, what a different? (on the picture)

Eth header 14, MPLS 4, VPLS ID 4, VPLS 4, IP header 20, data 1480 = 1526 bytes.
Whats a different between VPLS and VPLS ID?

How to check MTU size?
ping 10.88.88.2 size=1472 do-not-fragment

  • VPLS tunnel between 2 routers.
    The question is ping from the second VPLS tunnel or from the clients side, connected on that tunnel?

Thanks a lot :slight_smile:
mpls1.png

Check out this presentation for an in-depth discussion of MTU (and in particular in regards to MPLS/VPLS).

https://youtu.be/Q8AF-Srulmk

Thanks Tomas :slight_smile:

okey…one of tham is MPLS main tag, other one is QoS tag.

What about VPLS and VPLS ID, and how can i calculate? by difficult is 1500, so just because you have PPPoE add + 8 to be 1508
What is VPLS ID?



Thanks

VPLS ID is the VPLS tag (it contains the tunnel ID).

A VPLS tag is just another type of MPLS tags - so also just 4 per VPLS tag.

So when i’m making decision about MPLS MTU i have to collect all thoese values MPLS 4, MPLS 4, VPLS 4, VPLS ID 4.
That’s why you got 1550.

Thanks

You need to calculate how much you need at every layer.
(like on slide 19 of the presentation)

If you have 4 tags, then you need to calculate that into the MPLS layer MTU, and MTUs on all underlying layers.

Just one thing what will be if the MPLS MTU is overflowing.

Let sey in my case will be enough 1526, because i’m not using pppoe, vlans..etc. but for safety in playing with 1550 at all devices.

It will works like that as we are expecting?

It will work if MTU is sufficient, or higher.
I can be higher, that will not hurt.

But it MUST NOT be lower than required.

Does it means same as VPLS,no problem with higher L2MTU?

Yes, but do not forget to properly calculate all other MTUs so MTU is sufficient on every layer.

I have done like this with two SXT G-5HPacD but MTU is wrong.
C:\Users\Jean-Pierre>ping www.yahoo.com -f -l 1530

Pinging atsv2-fp-shed.wg1.b.yahoo.com [87.248.98.8] with 1530 bytes of data:
Packet needs to be fragmented but DF set.
Packet needs to be fragmented but DF set.
Packet needs to be fragmented but DF set.
Packet needs to be fragmented but DF set.


C:\Users\Jean-Pierre>ping www.yahoo.com -f -l 1534

Pinging atsv2-fp-shed.wg1.b.yahoo.com [87.248.98.8] with 1534 bytes of data:
Packet needs to be fragmented but DF set.
Packet needs to be fragmented but DF set.
Packet needs to be fragmented but DF set.
Packet needs to be fragmented but DF set.

Ping statistics for 87.248.98.8:
Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),


C:\Users\Jean-Pierre>ping www.yahoo.com -f -l 1522

Pinging atsv2-fp-shed.wg1.b.yahoo.com [87.248.98.8] with 1522 bytes of data:
Packet needs to be fragmented but DF set.
Packet needs to be fragmented but DF set.
Packet needs to be fragmented but DF set.
Packet needs to be fragmented but DF set.

Ping statistics for 87.248.98.8:
Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),

Who can explain that. How that works.
Thanks

in Windows ping -f -l 1472 = 1500MTU
1500 bytes (Ethernet mtu) - 20 byte (IP header) - 8 byte (ICMP header) = 1472 byte

Do I have to set 1472 mtu on the SXTs?
Thank you for your quick response

1472 is IP interface MTU.

Question about a picture of topic starter: why there is two mpls header + vpls header(???)

In wireshark first mpls header is label of LDP protocol and second of pseudowire of vpls interface, why third label called vpls? vpls traffic contains only two mpls header 4 bytes each.(without counting ethernet and vlan before pseudowire)

  • control word (if it is enabled)

It’s a part of mpls header, isn’t it?

Control word is additional 4 bytes
https://wiki.mikrotik.com/wiki/Manual:VPLS_Control_Word#VPLS_Packet_and_CW_Format

Oh, I see. I didn’t use it, that’s why I didn’t see it in dump. Thanks.

What is the correct MTU for this setup pleace?
How do I check in Wireshark that the packages are not fragmented ?
Thank you very much for this explanation

I think that mpls packet will be dropped simple because there is no fragmentation offset in it’s header. Just same as ppp.