背景
割接旧专线流量到带有GRE隧道的新专线的时候,发现部分用户电脑浏览网站异常,网站页面会出现偶尔无法正常浏览的现象。因为新专线唯一区别是带有GRE隧道,所以重点分析GRE问题。
GRE
GRE(General Routing Encapsulation,通用路由封装),可以对某些网络层协议的数据报文进行封装,使这些被封装的数据报文能够在另一个网络层协议中传输。
GRE提供了将一种协议的报文封装在另一种协议报文中的机制,是一种三层隧道封装技术,使报文可以通过GRE隧道透明的传输,解决异种网络的传输问题。
GRE是三层技术,是对原始IP报文进行了封装,那么是不是因为新专线传输的数据包比旧专线的大,引起了异常?
影响数据包大小的有几个地方:MTU和MSS。
MTU
MTU( Maximum Transmission Unit),最大传输单元。用来限制一个数据包的大小,相当于一个最高阀值,不能超过它。我们使用的以太网的网络层MTU是1500字节。
网络是个复杂的环境,MTU不一定都是1500字节,例如以太网标准是1500字节,如果在以太网上使用了隧道技术,则相应MTU会减少,例如GRE隧道,因为原始IP数据包增加了一个GRE头和新的IP头,那么MTU就要减少到1476。
GRE隧道接口为啥要减少mtu?因为以太网标准是1500,数据包过GRE隧道,加上GRE隧道报文头,要保持不超过1500,否则在标准以太网内无法传输,自然要压缩过GRE隧道前的数据报长度。GRE隧道接口直接说自己mtu就支持1476,你们原始数据包自己看着办吧。
分片与重组
如果发送的数据很大,以太网MTU