GHL's Notes/

关于隧道中MTU的计算

最近在玩GRETAP隧道的过程中遇到了mtu问题,mtu没调对,导致速度一直起不来。

找了蛮多资料,得出以下经验。

关于隧道网卡MTU计算问题
GRETAP的组成:
GRETAP

可以看到作为Layer2的GRETAP拥有3个内部头,分别是GRE Header,Inner IP Header,Inner Ethernet Header,他们分别占4Bytes,20Bytes,14Bytes
GRETAP隧道MTU=默认网卡(1500)-IP包头(20)-Ethernet包头(14)-GRE包头(4)=1462

同理,其他隧道计算也是如此,把隧道含有的头全部减掉。

如果多层隧道怎么办呢。同理,先计算第一层隧道的MTU,再把第一层mtu减第二层header得第二层mtu,依此类推,总之MTU上限为你的eth0上限,一般是1500,大部分运营商都是最大支持1500。所以套娃也不是套的越多越好,会因为隧道header占空间而导致mtu的损耗。

附上常见单或双层隧道mtu值
MPLS中,一个label占4bytes

IPIP: 1480 
GRE: 1476 
GRETAP: 1462
Wireguard: 1440
Wireguard Over IPIP: 1420
Wireguard Over GRE: 1416
Wireguard Over GRETAP: 1402
MPLS(2 Labels):1500-2*4=1492
MPLS(2 Labels) Over GRE: 1468
MACsec Over GRETAP: 1430
GRE Over IPSec: 1412
IPIP Over IPSec: 1416
Geneve: 1450以下

留下一条评论

暂无评论