MTU can be a tricky item. First you need to determine your starting point. If you are traversing the Internet or just using default settings on an Ethernet network it is likely 1500.
Typically your L2 MTU will be 1514 or slightly larger. This is commonly a separate value from your layer 3 MTU. In Cisco land the ip mtu command sets the layer 3 MTU and adjusts the layer 2 MTU appropriately.
A quick list to get us started
Ethernet = 14 bytes
Plain GRE = 4 bytes (no key or sequence numbering, each item would add 4 bytes for 8 and 12 respectively)
IPv4 Header = 20 bytes
IPv6 Header = 40 bytes
IPSec gets a lot more tricky. Each option adjusts the size of the header. By and large my recommendation for an IPSec setup (tunnel or transport mode) using IPv4 outside and inside of it will be 1400 bytes. It's a catch all that should work for all configurations that have a base MTU of 1500 bytes.
https://cway.cisco.com/tools/ipsec-overhead-calc/ This is an excellent tool from Cisco for calculating MTU values, it in particular dives into MTU values for various kinds of IPSec settings. It's access is restricted. I'm not sure which level exactly but as a Cisco partner I have access.
http://baturin.org/tools/encapcalc/ A free MTU tool but it doesn't include IPSec information.
Ok, let's specifically dive into tunneling and how these headers stack up.
MikroTik GRE MTU
MikroTik-Forums_MTU-Lets-Play_GRE_1.png
Looking at the above packet we see the anatomy of how it was built. We see the Ethernet header outside of all of our layer 3+ headers. We see the outside IPv4 header (20 bytes), a GRE header without any keys or sequencing (4 bytes), another IPv4 header (20 bytes) representing the inside IPv4 information and lastly the data which in this case is an ICMP packet. So in total we add 4 + 20 which equals 24.
The largest we can set MTU for this connection if we have a base layer 3 MTU of 1500 is 1474. We don't count the outermost IPv4 header.
MikroTik EoIP MTU
MikroTik-Forums_MTU-Lets-Play_EoIP_1.png
You'll see that this packet looks very similar. The exception is that an Ethernet header is squashed in between the GRE and inside IPv4 header adding an additional 14 bytes of overhead. This time the calculation is 4 + 14 + 20 which equals 38.
The largest we can set MTU for this connection if we have a base layer 3 MTU of 1500 is 1462.
You do not have the required permissions to view the files attached to this post.