У нас возникла проблема с подключением офиса к AWS через IPSEC-туннель: всё, что ориентировано на сессии (http, ssh), работает некорректно. Однако мы обнаружили, что если снизить MTU на Ethernet-интерфейсе одного из компьютеров в офисе до 1400, проблема исчезает, и SSH и HTTP работают нормально. Я предполагаю, что установка 1400 снижает MTU до минимального значения на пути, и сообщения корректно передаются на веб-серверы (SYN?) в AWS, заставляя это работать… но при 1500 что-то не так, и веб-серверы просто не “слышат”, что 1500 байт — это слишком много.
Судя по всему, PMTU не работает, и устройства в AWS некорректно уменьшают размер пакетов. В настройках всё довольно просто: офис подключён к интернету через PPPoE DSL (RB4011), CHR в AWS подключается напрямую к интернету AWS и создаёт IPsec-туннель обратно в офис (ESP).
Я проверял пингом с установленным битом DF и выяснил, что наибольший пинг между офисом и AWS VPC — 1378. Если добавить 28 байт на IP и ICMP, MTU будет 1406. Этот трафик идёт через IPsec VPN. Пинг с того же компьютера в офисе на 8.8.8.8 показывает 1452 + 28 = 1480 MTU, что совпадает с настройкой MTU на офисном роутере (RB4011), подключенном через ADSL-модемы к нашему провайдеру (Plusnet в Великобритании). Интернет работает без проблем. Аналогичный максимальный пинг наблюдается и в обратном направлении (из AWS VPC в офис).
Я не понимаю, что именно нужно настроить, чтобы это исправить… несмотря на множество изученных материалов по MTU, MSS, clamping, SYN и прочему (а также массу постов о проблемах с VPN). Понижение MTU на Ethernet-интерфейсе, идущем к модему, или на CHR не кажется правильным, так как всё работает нормально для всего остального веб-трафика — а у нас довольно стандартная конфигурация.
Похоже, стоит сосредоточиться на IPsec-туннеле и убедиться, что обе стороны знают правильные MTU/MSS, но я не могу найти такую настройку в самой конфигурации туннеля. Остаётся только использовать mangle? Но как? Я всё время натыкаюсь на что-то вроде…
/ip firewall mangle
add action=change-mss chain=forward new-mss=clamp-to-pmtu passthrough=yes \
protocol=tcp tcp-flags=syn
Но к какому значению PMTU оно будет прижимать? Не станет ли это снижать MSS у трафика, который и так нормально работает в интернете, а не только через туннель? Часть трафика идёт в AWS, большая часть — напрямую в интернет.
Извиняюсь за вопросы новичка… честно, я пытался разобраться сам.
Судя по всему, PMTU не работает, и устройства в AWS некорректно уменьшают размер пакетов. В настройках всё довольно просто: офис подключён к интернету через PPPoE DSL (RB4011), CHR в AWS подключается напрямую к интернету AWS и создаёт IPsec-туннель обратно в офис (ESP).
Я проверял пингом с установленным битом DF и выяснил, что наибольший пинг между офисом и AWS VPC — 1378. Если добавить 28 байт на IP и ICMP, MTU будет 1406. Этот трафик идёт через IPsec VPN. Пинг с того же компьютера в офисе на 8.8.8.8 показывает 1452 + 28 = 1480 MTU, что совпадает с настройкой MTU на офисном роутере (RB4011), подключенном через ADSL-модемы к нашему провайдеру (Plusnet в Великобритании). Интернет работает без проблем. Аналогичный максимальный пинг наблюдается и в обратном направлении (из AWS VPC в офис).
Я не понимаю, что именно нужно настроить, чтобы это исправить… несмотря на множество изученных материалов по MTU, MSS, clamping, SYN и прочему (а также массу постов о проблемах с VPN). Понижение MTU на Ethernet-интерфейсе, идущем к модему, или на CHR не кажется правильным, так как всё работает нормально для всего остального веб-трафика — а у нас довольно стандартная конфигурация.
Похоже, стоит сосредоточиться на IPsec-туннеле и убедиться, что обе стороны знают правильные MTU/MSS, но я не могу найти такую настройку в самой конфигурации туннеля. Остаётся только использовать mangle? Но как? Я всё время натыкаюсь на что-то вроде…
/ip firewall mangle
add action=change-mss chain=forward new-mss=clamp-to-pmtu passthrough=yes \
protocol=tcp tcp-flags=syn
Но к какому значению PMTU оно будет прижимать? Не станет ли это снижать MSS у трафика, который и так нормально работает в интернете, а не только через туннель? Часть трафика идёт в AWS, большая часть — напрямую в интернет.
Извиняюсь за вопросы новичка… честно, я пытался разобраться сам.

