最近在玩GRETAP隧道的过程中遇到了mtu问题,mtu没调对,导致速度一直起不来。
找了蛮多资料,得出以下经验。
关于隧道网卡MTU计算问题
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以下
暂无评论