VPN网关只支持传输已经分片的数据包,不支持对数据包分片及数据包分片重组。在您使用IPsec VPN时,IPsec协议会对数据包进行加密,加密过程会扩大数据包长度,扩大后的数据包长度可能会超过网络中设置的最大数据传输单元MTU,影响数据包的正常传输。
MTU配置原则
本文以图中场景为例说明MTU配置原则。本地数据中心已与天翼云VPC建立了IPsec VPN连接。在客户端访问VPC资源时,数据包将被本地网关设备加密并被传输至互联网,经过互联网中的网络设备(如图中路由器2和路由器3)传输至天翼云VPN网关。
数据包从客户端传输至VPN网关的过程中,数据包的大小将会受到以下三种MTU的限制:
- 用户MTU
用户MTU即客户端和本地网关设备之间所有网络设备接口MTU的最小值。该MTU会限制客户端发送的数据包的大小。
如图中用户MTU取标记为1的接口中MTU的最小值。
- 公网接口MTU
公网接口MTU即本地网关设备连接VPN网关的公网接口上的MTU。该MTU会限制被加密后的数据包的大小。
如图中公网接口MTU取标记为2的接口的MTU。
- 路径MTU
路径MTU即互联网中所有网络设备接口MTU的最小值。该MTU会限制被加密后的数据包的大小。
您可以向互联网厂商咨询路径MTU。通常以太网的路径MTU默认为1500字节。
如图中路径MTU取标记为3的接口中MTU的最小值。
为确保数据包被正常传输,您需要在本地数据中心配置用户MTU和公网接口MTU,使上述三种MTU满足以下关系:
用户MTU的最大值=min{公网接口MTU,路径MTU}-101 # 101是IPsec协议为数据包加密后占用的最大字节数。
MTU配置示例
假设路径MTU为1500字节,您设置的本地网关设备公网接口的MTU也为1500字节,则:
用户MTU的最大值=min{1500,1500}-101=1500-101=1399字节
即客户端发送数据包时,数据包的大小建议不超过1399字节,否则可能会导致数据包无法正常传输。
MSS配置建议
在通过IPsec VPN连接传输TCP流量的场景下,如果需要确保数据包不被分段传输,则最大分段大小MSS和用户MTU需保证以下关系:
MSS=用户MTU-IP数据包头部占用字节数(20字节)-TCP数据包头部占用字节数(20字节)
例如,在公网接口MTU和路径MTU均为1500字节的情况下,用户MTU最大为1399字节,为确保数据包不被分段传输,MSS的最大值为1359字节。