Привет, сетевой друг!
Сегодня покажу, как применять ip tcp adjust-mss, когда VPN ломается, сайты не открываются или curl зависает без ответа.🟣Сценарий: У вас настроен IPsec/GRE-туннель. Вроде всё работает, но HTTPS-сайты не открываются, SSH рвётся, а curl зависает. Проблема в MTU. Где-то по пути “узкое горлышко”, а ICMP с флагом Fragmentation Needed блокируется. И в итоге PMTUD не работает, и пакеты просто теряются 🤷♂️
🟣И какое решение: Укажем MSS вручную, чтобы TCP-соединения учитывали реальные ограничения:
interface Tunnel0
ip tcp adjust-mss 1360
Значение 1360 - типичное безопасное для туннелей с MTU 1500. Учитываем 40 байт заголовков IP и TCP. Если используете IPsec с NAT-T, оставь 1360–1380. Для GRE иногда нужно и 1350.
🟣Как рассчитать MSS вручную:
MSS = MTU - IP header (20) - TCP header (20)
= 1500 - 40 = 1460
Но если у вас поверх туннеля, например, IPsec + UDP (NAT-T):
MSS = 1500 - 40 (IP+TCP) - 28 (ESP over UDP) = 1432
🟣Проверяем:
curl -v https://example.com
Если раньше висело, теперь всё должно работать. Также можно чекнуть через ping -s 1472 -M do.
🟣И еще: Устанавливайте adjust-mss на интерфейсе, через который трафик входит в туннель. Иногда требуется и на обратном направлении.
Серверная Админа | #Cisco