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字節。
