Чтобы систематизировать свое представление о работе различных реализаций VPN-ов и расставить для себя все точки над "i", выполнил расчет значений MTU и MSS для payload (полезного передаваемого трафика) в разных типах VPN, используемых совместно с Ethernet. Прошу проверить мои расчеты и указать мне на ошибки, если таковые имеются.
Итак.
1. PPTP
PPTP это полезный_TCP -> IP -> PPP -> GRE -> IP -> Ethernet
Для Ethernet MTU=1500; заголовки IP -20 байт, заголовок GRE -4 байта, заголовок PPP -2 байта.
Итого, MTU=1500-20-4-2=1474; MSS=MTU-40=1434
2. Не зашифрованный L2TP поверх IP
L2TP это полезный_TCP -> IP -> PPP -> L2TP -> UDP -> IP -> Ethernet
Для Ethernet MTU=1500; заголовки IP -20 байт, заголовки UDP -8 байт, заголовки L2TP -16 байт, заголовок PPP -2 байта.
Итого, MTU=1500-20-8-16-2=1454; MSS=MTU-40=1414
3. L2TP поверх IPSEC
L2TP поверх IPSEC это полезный_TCP -> IP -> PPP -> L2TP -> UDP -> ESP -> IP -> Ethernet
Получается то же самое, что и пункт 2, за вычетом размера заголовков ESP -20 байт.
Итого, MTU=1454-20=1434; MSS=MTU-40=1394
4. L2TP поверх IPSEC с NAT-Traversal
Это полезный_TCP -> IP -> PPP -> L2TP -> UDP -> ESP -> IP -> UDP -> IP -> Ethernet
Получается то же самое, что и пункт 3, за вычетом размера заголовков UDP -8 байт и IP -20 байт.
Итого, MTU=1434-28=1406; MSS=MTU-40=1366.