IPsec-VPN連接只支持傳輸已經分片的數據包,不支持對數據包分片及數據包分片重組。在您使用IPsec-VPN時,IPsec協議會對數據包進行加密,加密過程會擴大數據包長度,擴大后的數據包長度可能會超過網絡中設置的最大數據傳輸單元MTU(Maximum Transmission Unit),影響數據包的正常傳輸。本文介紹如何設置MTU以確保數據包的正常傳輸。
MTU配置原則
本文以上圖場景為例說明MTU配置原則。本地數據中心已與專有網絡VPC(Virtual Private Cloud)建立了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協議為數據包加密后占用的最大字節數。
對于2021年04月01日之前創建的VPN網關,如果配置本地數據中心的用戶MTU大于1300字節(不包含1300字節),則可能存在IPsec-VPN連接不通的問題,建議您將VPN網關升級至最新版本以規避該問題。關于如何升級VPN網關,請參見升級VPN網關。
MTU配置示例
如上圖所示,假設路徑MTU為1500字節,您設置的本地網關設備公網接口的MTU也為1500字節,則:
用戶MTU的最大值=min{1500,1500}-101=1500-101=1399字節
即客戶端發送數據包時,數據包的大小建議不超過1399字節,否則可能會導致數據包無法正常傳輸。
MSS配置建議
在通過IPsec-VPN連接傳輸TCP流量的場景下,如果需要確保數據包不被分段傳輸,則最大分段大小MSS(Maximum Segment Size)和用戶MTU需保證以下關系:
MSS=用戶MTU-IP數據包頭部占用字節數(20字節)-TCP數據包頭部占用字節數(20字節)
例如,在公網接口MTU和路徑MTU均為1500字節的情況下,用戶MTU最大為1399字節,為確保數據包不被分段傳輸,MSS的最大值為1359字節。