Каталог Поиск 0 Сравнить 0 Закладки 0 Корзина Войти
Каталог
105082, Москва, ул. Фридриха Энгельса, 75с21, БЦ Бауманский ИТКОЛ
Пн - Пт: с 09-00 до 18-00 Сб: с 10-00 до 18-00 Вс: выходной
Страницы: 1
RSS
Настройка MTU с помощью Mss Clamping, UniFi Network
 
Хотелось бы узнать, на какое значение нужно установить MSS clamping, чтобы добиться MTU 1492? Сейчас у меня подключение PPPoE, и мой провайдер сказал, что MTU должен быть выставлен на 1492. Спасибо!
 
Спасибо, @waterside, за дополнительную информацию. Я уберу MSS clamping для IPv6. Можешь подробнее объяснить, почему именно PPP и PPPoE вызывают проблему? Это просто из-за уменьшения MTU или есть что-то большее? Насколько мне известно, мой PPPoE настроен так, чтобы позволять MTU оставаться равным 1500. Совсем недавно я начал экспериментировать с MSS clamping. Сначала заметил, что практически всё работает лучше без него, но потом увидел, что один конкретный сайт часто вообще стал недоступен без MSS clamping — и это сайт, работающий только по IPv4. Я не могу понять, что именно может отличать этот проблемный сайт. Но он очень большой и важный, так что, возможно, мой провайдер как-то иначе настраивает соединение с ним.
 
Правильно: В целом лучше не ограничивать MSS искусственно. К сожалению, есть случаи (особенно при использовании любых форм PPP, включая PPPoE), когда это необходимо. Сам TCP пытается определить минимальный MTU (с помощью обнаружения MTU по пути) между двумя узлами и на основе этого настраивает MSS. В IPv4 этот метод может иногда давать сбои, и в таких случаях применяется ограничение MSS. Поскольку IPv6 специально разрабатывался, чтобы решить проблемы IPv4 с обнаружением MTU по пути (а значит и с MSS), в IPv6 обычно нет необходимости использовать ограничение MSS, хотя оно все равно часто поддерживается, пусть и для очень редких случаев. Установка MSS (или MTU) меньше необходимого не должна вызывать проблем. В худшем случае это слегка скажется на производительности, но мы говорим о таких мелких различиях, что при современной связи это обычно не ощущается и не выявляется. Если найдено рабочее значение, нет никакого смысла пытаться его дополнительно настраивать, разве что для очень медленных соединений.
 
Как я теперь понимаю, всё должно работать лучше всего без какого-либо MSS-клаппинга.  
Отсутствие MSS-клаппинга — более правильный выбор, чем установка MSS-клаппинга на нормальное значение MSS для вашего MTU, то есть (MTU - 40) для IPv4 или (MTU - 60) для IPv6. Бывают случаи, когда максимально возможный MSS будет меньше этих значений!  
Если что-то где-то в маршруте между двумя концами соединения настроено неправильно, соединения могут падать (или иногда просто работать очень медленно), и одним из решений может быть использование MSS-клаппинга с гораздо более низкими значениями, чем нормальное, которое я указал выше.  
Я успешно использовал MSS-клаппинг, установленный на 40 байт меньше, чем то, что я называл нормальным значением, чтобы исправить несколько странных проблем с некоторыми соединениями к определённым сайтам. Вероятно, это значение ниже необходимого, но именно так я делал.
 
Низкая пропускная способность. Высокие колебания задержки. Автонастройка не всегда умна настолько, чтобы правильно выставить параметры.
 
Может кто-то объяснить, какие именно негативные симптомы возникают при использовании авто в неподходящих случаях?
 
Если не использовать DSLAM или DSL-соединение, то обычно MTU 1300 на VPN-интерфейсе подойдёт для большинства случаев без особой настройки. По сути, MTU clamping изменяет поле MSS в IP-пакетах, которые идут по сети. Если задать слишком большое значение для узла в верхней части сети, он не сможет его обработать и будет вынужден отбросить пакет (при условии, что "DF=1" — «Не фрагментировать пакет» установлено в TRUE). Это важно для VPN, так как изменение пакета нарушает криптографическую контрольную сумму и приводит к сбоям на более высоких уровнях.

Когда слишком большой пакет сбрасывается, устройство, которое его отбросило, отправляет обратно сообщение ICMP «Пакет слишком большой» к источнику. В свою очередь источник должен распознать это сообщение, обработать его и повторить отправку с меньшим размером полезной нагрузки. Здесь заложено много предположений, поэтому это часто ломается.

Итог: для VPN-туннелей лучше использовать MTU 1300, для IPv4-интерфейсов — 1400. IPv6 — совсем другая история, там всё иначе, поскольку это кадры второго уровня (Layer 2). В общем, стоит включить поддержку Jumbo Frame на всех устройствах второго уровня — особенно это важно для iSCSI и подобных приложений.

Два очень хороших источника по теме:
- http://proj.sunet.se/lanng/lanng2000/gigabit_jumbo_frames.html
^^ Этот материал от Dykstra (для тех, кто знаком с OSPF).
- Документ Cisco, который фактически содержит всё, что нужно знать: https://www.cisco.com/c/en/us/support/docs/ip/generic-routing-encapsulation-gre/25885-pmtud-ipfrag.html
 
Привет! Я использую Ubiquiti ER-X с кабельным модемом Arris от Multimedia Polska. После множества тестов я выяснил, что лучшая настройка для PPTP VPN, настроенного внутри ER-X, — это MSS-Clamp = 1356. Немного большее значение вызывает проблемы (хотя в некоторых тестах большие значения позволяли добиться более высокой скорости соединения).
 
Как насчёт IPv6? Если у меня MTU для IPv4 равен 1500, я предполагаю, что MTU для IPv6 такой же. Верно? MSS для IPv4 будет 1460. MSS для IPv6 — 1440, правильно? В этом случае (когда MTU полный, 1500) стоит ли включать MSS clamping на 1460 для IPv4? И тоже на 1440 для IPv6? Или лучше оставить один или оба без настройки? Буду благодарен за любые советы.
 
Если ваш канал к провайдеру требует MTU равный 1452, нужно вычесть 40 байт на суммарные заголовки IP и TCP, чтобы получить MSS равный 1412 (то есть ваше описание правильное). На любом уровне сети MTU — это максимальный размер полезной нагрузки отдельного блока данных следующего более высокого уровня. Чтобы избежать фрагментации на любом уровне, размер служебной информации и данных этого уровня должен поместиться в полезной нагрузке одного блока данных следующего более низкого уровня. Например, Ethernet-кадр имеет размер 1518 байт, если вычесть из него служебную информацию (18 байт), остается MTU равный 1500. Заголовок IP — 20 байт, что даёт «MTU» равный 1480. Заголовок TCP тоже 20 байт, и получается MSS (MTU) равный 1460. Обычно, когда говорят «MTU», имеют в виду уровень 2 (Ethernet или другой), но, как вы видите, у каждого уровня своя своя «MTU». Например, IPv4-датаграмма может достигать 64К байт с полезной нагрузкой на 20 байт меньше — граница накладывается именно на более низком уровне (например, Ethernet), если хотим избежать фрагментации. Алгоритм определения MTU пути (Path MTU Discovery) в большинстве современных сетевых стеков автоматически подберёт правильный MSS для TCP, но не всегда. Вот тогда и используется MSS clamping на роутере.
 
Просто пытаюсь понять... Допустим, у меня провайдер требует MTU равный 1452. Если я установлю MSS на 1412, не приведёт ли это к тому, что пакеты будут размером именно 1452 байта? Ведь при выходе из роутера к этим 1452 байтам добавляются 40 байт для TCP и IP. Я понимаю, что физически размер MTU не меняется, но разве это не ограничит коммуникацию размером в 1452 байта?
Страницы: 1
Читают тему (гостей: 1)