MTU注意事項
通過IPsec隧道發送的網絡數據包經過加密,然后封裝在外部數據包中,以便進行路由。因為封裝的內部數據包本身必須適合外部數據包的MTU,所以其MTU必須更小。
網關MTU
您必須配置本地VPN網關,將其使用的MTU限制在1360字節之內,建議MTU設置為1360字節。
對於TCP流量,在TCP協議收發雙方通信數據時,會協商每一個報文段所能承載的最大數據長度(MSS)。我們建議您將本地VPN網關的TCP MSS設置為1359字節,便於TCP數據包的封裝和傳輸。
配置好網絡,使用XShell遠程連接都沒有問題。但是在后續工作中發現,使用vim、vi、cat等命令,或者在執行shell腳本時,都會莫名的卡住,使用Ctrl+C也沒有任何反應。在使用git拉取倉庫也無法連接到git倉庫地址。只能強制斷開后重新連接。
首先,我們檢查了服務器配置,但是新服務器並沒有做過多的配置,關閉selinux和firewalld后也沒有任何效果。
其次,我們懷疑是否是網絡中的交換機或者防火牆的問題,但是檢查后也不是這些問題。
最后,通過網絡抓包,發現該服務器丟包非常嚴重,並且我們發現在執行shell腳本的時,雖然使用的XShell軟件卡主沒有反應,但是該shell腳本在本地是執行完成的。這時讓我想到了MTU值,默認網卡MTU為1500,使用帶包ping功能發現當包小於1314時可以正常ping通。
總結,mtu默認1500,導致ipsec丟包了。把路由器上的mtu設為1360以內,即可。
您必須配置本地VPN網關,將其使用的MTU限制在1360字節之內,建議MTU設置為1360字節。