IPsec-VPN串連只支援傳輸已經分區的資料包,不支援對資料包分區及資料包分區重組。在您使用IPsec-VPN時,IPsec協議會對資料包進行加密,加密過程會擴巨量資料包長度,擴大後的資料包長度可能會超過網路中設定的最巨量資料傳輸單元MTU(Maximum Transmission Unit),影響資料包的正常傳輸。本文介紹如何設定MTU以確保資料包的正常傳輸。
MTU配置原則
本文以上圖情境為例說明MTU配置原則。本機資料中心已與Virtual Private Cloud(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位元組。