Change tcp mss mikrotik что это
Перейти к содержимому

Change tcp mss mikrotik что это

  • автор:

Провайдеры и MTU/MSS/PMTU

Значит нужен мне второй канал связи, да этак мегабит 300 в секунду. В моём городе немного провайдеров, поэтому выбрать не дали и пришлось подключаться к WiFire (он же NetByNet, MegaFon и так далее). Подключился, потестил, 300 мегабит, балдеж. Решил я значит почитать что нового на своем любимом Хабре и опа: он не открывается, но охотно пингуется.

Диагностика

Ну думаю: что-то тут не так. Сетевое у меня Mikrotik, возможностей уйма, пойду искать причину на своей стороне. Лезу в логи и вижу как посыпался DoH (РКН, приветик) и крайне удивляюсь этому. решил временно отрубить DoH и дать 1.1.1.1. Ситуация не изменилась. Начал резолвить адреса хотя бы чего-нибудь, все через раз. Решил прокинуть трейс до Хабра и смотрю на «потяряшки». Думаю дай звякну в поддержку, вдруг умное чего скажут. Те репу почесали, сказали что не видят мою сеть за роутером (nat >> forward >> change ttl >>+1 😀) и изобразили что-то вроде «Мы ХЗ».

Начал копать дальше. Вспомнил всю балду, которую знаю о пакетах и тут осенило.

Что такое MTU и MSS?

MTU (англ. maximum transmission unit) означает максимальный размер полезного блока данных одного пакета (англ. payload), который может быть передан протоколом без фрагментации.

MSS (англ. Maximum segment size) является параметром протокола TCP и определяет максимальный размер полезного блока данных в байтах для TCP-пакета (сегмента). Таким образом этот параметр не учитывает длину заголовков TCP и IP.

PMTU (Path MTU) — данный параметр обозначает наименьший MTU среди MTU каналов данных, находящихся между источником и приемником.

Википедии, конечно, спасибо, но если по-русски, то грубо говоря каждый пакет в сети — это бандероль со своими габаритами и вот как раз эти габариты надо менять, подгоняя под оператора связи (ISP). Не долго думая я начал пинговать Хабр с разным размером юнита (MTU) и уткнулся в 1450. Проставил все порты под новый MTU — мало, все равно не открывается. Решил не мучаться и воткнуть динамический MTU. Тут на помощь приходит PMTU. Вообще вот статейка в которой все хорошо объяснено на счет PMTU.

Решение проблемы

Поскольку причина была уже ясна, а время пять утра — решение было достаточно быстрым.

Топаем в консоль и пишем:

/ip firewall mangle add chain=forward action=change-mss new-mss=clamp-to-pmtu passthrough=no tcp-flags=syn protocol=tcp out-interface=*название WAN интерфеса* tcp-mss=1300-65535 log=no

/ip firewall mangle add chain=forward action=change-mss new-mss=clamp-to-pmtu passthrough=no tcp-flags=syn protocol=tcp in-interface=*название WAN интерфеса* tcp-mss=1300-65535 log=no

Разбираем что написали:

/ip firewall mangle — переходим по разделам и выберем что нужно.

add — команда добавления правила

chain=forward — указываем тип цепочки

action=change-mss — указываем что нужно менять MSS

new-mss=clamp-to-pmtu — указываем параметры, что используем PMTU и базируемся на нем

passthrough=no — не преходить к след. правилу пока не выполним это

tcp-flags=syn — выставляем флаг пакета для нумерации, что бы не терялся

protocol=tcp — указываем протокол с которым будем работать

in-interface\out-interface — интерфейсы вход\выход

tcp-mss=1300-65535 — разрешенный диапазон размера пакета

log=no — не логировать

и бинго, наконец-то открывается Хабр и все что мне нужно.

В сетевой части я не «Ас», поэтому сумбурно вышло, да и на Хабре статьи не нашел похожей, может будет кому полезно.

Путь к дзен

По долгу службы постоянно приходится налаживать связь в самых отдаленных уголках РФ. Чаще всего на севере страны. И почти постоянно сталкиваюсь с полной безграмотностью местных интернет провайдеров в отношении услуг, что они предоставляют.

Чаще всего доступ дают через VPN, но не редки случаи, когда доступ предоставляется тупо через серую подсеть. То есть вам по DHCP выдают некий серый адрес, и далее вас NATят.
Про предоставление объединений я вообще молчу. Для некоторых L3VPN, VRF, или на худой конец VLAN — это что-то инопланетное.
Но в прочем статья не об этом. Не так давно столкнулся с интересной ситуацией. У меня на каждом объекте стоит микротик, который поднимает туннель до головного офиса и проблем, как правило не возникает. Не так давно с одного из объектов начали жаловаться. Мол беда беда, интернет есть, сервисы организации не работают. Начинаю смотреть, пинги бегают внутри туннеля без потерь, задержки вполне себе хорошие, порядка 80 мс. Но при попытке открыть корпоративный портал или иной сервис действительно вижу затык. Подсказал мне браузер, при открытии страницы нашего сервиса, он мгновенно прогрузил заголовки, я увидел <title> страницы. А вот содержимого нет. И тут меня озарило, конечно же MTU. Дабы не ломать туннель путем изменения MTU, я решил пойти другим путем — а именно поправить MSS налету. В современных прошивках MSS сразу выставляется под MTU интерфейса. Но мы то не пролезаем, в связи с чем я добавил новые правила:

/ip firewall mangle add chain=forward protocol=tcp tcp-flags=syn tcp-mss=1361-65535 action=change-mss new-mss=1360 disabled=no out-interface=my-tunnel-ppp


Таким образом я зажимаю все данные (кроме заголовков) TCP пакетов в 1360 байт. Почему именно это значение? Опытным путем, понижал с 1390 до данного значения, пока не стабилизировалась работа. И это решило проблему. Убедившись, что странички наших сервисов и приложения стали работать корректно, я понизил MTU на туннельном интерфейсе, он переподнялся, и правила MSS отключил. Все работает. Все счастливы.

Change tcp mss mikrotik что это

VK

  • Телефония
  • Установка Wi-Fi
  • Кримперовка RJ45
  • Обжим розеток
  • Монтаж СКС
  • Перенос шкафа
  • Видеонаблюдение
  • Монтаж IP камер
  • Электрика
  • Кабель-менеджмент
  • Windows
  • RouterOS
  • macOS
  • FTP
  • RDP
  • VPN
  • Реклама в интернет
  • Продвижение сайтов
  • Хостинговые услуги
  • Доработка сайтов
  • CMS Joomla
  • CMS WordPress
  • Установка драйверов
  • Замена БП
  • Устранение сбоя
  • Чистка от пыли
  • Восстановление ОС
  • Мастер в офис
  • Настройка UEFI
  • Замена кулера
  • Замена термопасты
  • Диагностика
  • Диски
  • Память
  • Блок питания
  • CPU
  • RAM
  • SSD
  • HDD
  • MacOS
  • Windows
  • Ubuntu
  • Mint
  • Debian
  • CentOS
  • MikroTik
  • Apple
  • Форвардинг
  • Ubiquiti
  • TP-Link
  • D-Link
  • Asus
  • Keenetic
  • Xiaomi
  • Настройка Wi-Fi
  • Интернет
  • NAS
  • IP камеры
  • Видеорегистраторы
  • Усиление Wi-Fi
  • Оборудование
  • Установка 802.11ac
  • Дагностика ноутбуков
  • Чистка ноутбука
  • Замена диска
  • Замена ОЗУ
  • Восстановление ОС
  • Удаление вирусов
  • Восстановление ПО
  • macOS
  • Windows
  • macOS
  • Windows
  • eDeclaration
  • Клиент-банкинги
  • ФСЗН
  • Белгосстрах
  • ЭСЧФ
  • Промсвязь
  • Huawei
  • ZTE
  • Абонентское обслуживание
  • Разработка сайтов
  • Настройка MikroTik
  • Обслуживание Apple
  • Настройка сети
  • Монтаж локальной сети
  • Windows
  • macOS
  • Linux
  • Linux
  • Windows
  • Промсвязь
  • Huawei
  • TP-Link
  • ZTE
  • MikroTik
  • Keenetic
  • BIOS
  • UEFI
  • Грушевка
  • Институт культуры
  • Шарики
  • Народная
  • Серебрянка
  • Рокоссовского
  • Новости проекта
  • Отзывы

Перевод WiKi руководства MikroTik по Mangle

Перевод WiKi руководства MikroTik по Mangle

Mangle — это своего рода «маркер», который помечает пакеты для дальнейшей обработки специальными метками. Многие другие средства в RouterOS используют эти метки, например деревья очередей, NAT, маршрутизация. Они идентифицируют пакет по его метке и обрабатывают его соответствующим образом. Метки есть только внутри маршрутизатора, они не передаются по сети.

Кроме того, функция mangle используется для изменения некоторых полей в заголовке IP, таких как поля TOS (DSCP) и TTL.

Свойства

action

по умолчанию: accept)

  • accept — принять пакет. Пакет не передается следующему правилу межсетевого экрана.
  • add-dst-to-address-list — добавить адрес назначения в список адресов, заданный address-listпараметром
  • add-src-to-address-list — добавить адрес источника в список адресов, заданный address-listпараметром
  • change-dscp — изменить значение поля точки кода дифференцированных услуг (DSCP), заданное параметром new-dscp
  • change-mss — изменить значение поля Maximum Segment Size пакета на значение, указанное в параметре new-mss
  • change-ttl — изменить значение поля Time to Live пакета на значение, указанное параметром new-ttl
  • clear-df — очистить флаг «Не фрагментировать»
  • fasttrack-connection — показывает счетчики fasttrack, полезные для статистики
  • jump — перейти к пользовательской цепочке, заданной значением jump-targetпараметра
  • log — добавить в системный журнал сообщение, содержащее следующие данные: in-interface, out-interface, src-mac, protocol, src-ip: port-> dst-ip: port и длину пакета. После совпадения пакета он передается следующему правилу в списке, как иpassthrough
  • mark-connection — поставить отметку, указанную параметром new-connection-mark, на все соединение, которое соответствует правилу
  • mark-packet — поставить отметку, указанную параметром new-packet-mark, на пакете, который соответствует правилу
  • mark-routing — поставить на пакет отметку, указанную параметром new-routing-mark. Этот вид меток используется только для целей маршрутизации политик.
  • passthrough — если пакет соответствует правилу, увеличьте счетчик и перейдите к следующему правилу (полезно для статистики).
  • return — передать управление обратно в цепочку, откуда произошел прыжок
  • route — принудительно отправляет пакеты на определенный IP-адрес шлюза, игнорируя обычное решение о маршрутизации (только для цепочки предварительной маршрутизации)
  • set-priority — установить приоритет, указанный параметром new-priority для пакетов, отправленных по каналу, способному передавать приоритет (VLAN или беспроводной интерфейс с поддержкой WMM).
  • sniff-pc — отправить пакет на удаленный сервер RouterOS CALEA.
  • sniff-tzsp — отправить пакет в удаленную систему, совместимую с TZSP (например, Wireshark). Установка дистанционного мишень с sniff-targetи sniff-target-portпараметры (Wireshark рекомендует порт 37008)
  • strip-ipv4-options — удаляет поля параметров IPv4 из заголовка IP, действие фактически не удаляет параметры IPv4, а заменяет все октеты параметров на NOP, дальнейшее сопоставление с ipv4-options = any все равно будет соответствовать пакету.

address-list

( строка ; По умолчанию:)

address-list-timeout

  • Значение non-dynamic ( 00:00:00) оставит адрес в списке адресов до перезагрузки
  • Значение none-static навсегда оставит адрес в списке адресов навсегда и будет включено в экспорт при резервном копировании конфигурации.

( имя ; По умолчанию:)

( строка ; По умолчанию:)

connection-bytes

( целое-целое ; по умолчанию:)

connection-limit

( целое число, сетевая маска ;

connection-mark

( без метки | строка ;

connection-nat-state

connection-rate

( целое число 0..4294967295 ;

connection-state

  • estabilished — пакет, принадлежащий существующему соединению
  • invalid — пакет, состояние которого не определено при отслеживании соединения (обычно — отдельные неупорядоченные пакеты, пакеты с неправильной последовательностью / номером подтверждения или в случае чрезмерного использования ресурсов на маршрутизаторе), по этой причине недопустимый пакет не будет участвовать в NAT (как это делают только пакеты connection-state = new) и по-прежнему будет содержать исходный IP-адрес источника при маршрутизации. Мы настоятельно рекомендуем отбросить все пакеты connection-state = invalid в цепях пересылки и ввода брандмауэра.
  • new — пакет начал новое соединение или иным образом связан с соединением, которое не видел пакетов в обоих направлениях
  • related — пакет, который относится к существующему соединению, но не является его частью, например, ошибки ICMP или пакет, который начинает соединение для передачи данных FTP
  • untracked — пакет, который был настроен на обход отслеживания соединений в таблицах RAW межсетевого экрана.

connection-type

pptp | quake3 | sip |

tftp ; по умолчанию 🙂

content

( целое число: 0..63 ;

dst-address-list

( имя ; По умолчанию:)

dst-address-type

  • unicast — IP-адрес, используемый для передачи точка-точка
  • local — если одному из интерфейсов роутера назначен dst-адрес
  • broadcast — пакет отправляется на все устройства в подсети
  • multicast — пакет пересылается определенной группе устройств

dst-limit

  • count — максимальная средняя скорость пакетов, измеренная в пакетах за timeинтервал
  • time — указывает временной интервал, в котором измеряется скорость передачи пакетов (необязательно)
  • burst — количество пакетов, которые не учитываются по скорости передачи пакетов
  • mode — классификатор ограничения скорости пакетов
  • expire — указывает интервал, по истечении которого записанный IP-адрес / порт будет удален (необязательно)

dst-port

( целое [-integer]: 0..65535 ;

( да | нет ; по умолчанию:)

  • auth — соответствует аутентифицированным клиентским пакетам HotSpot
  • from-client — соответствует пакетам, приходящим от клиента HotSpot
  • http — соответствует HTTP-запросам, отправленным на сервер HotSpot
  • local-dst — соответствует пакетам, предназначенным для сервера HotSpot
  • to-client — соответствует пакетам, которые отправляются клиенту HotSpot

icmp-options

in-bridge-port

( имя ; По умолчанию:)

in-interface

( имя ; По умолчанию:)

ingress-priority

(входящий приоритет)

( целое число: 0..63 ;

ipsec-policy

( in | out, ipsec | none;

  • in — действует в цепочках PREROUTING, INPUT и FORWARD
  • out — действует в цепочках POSTROUTING, OUTPUT и FORWARD
  • ipsec — соответствует, если пакет подлежит обработке IpSec;
  • none — соответствует пакету, который не подлежит обработке IpSec (например, транспортный пакет IpSec).

Например, если маршрутизатор получает пакет Gre, инкапсулированный в Ipsec, то правило ipsec-policy=in,ipsecбудет соответствовать пакету Gre, но правило ipsec-policy=in,noneбудет соответствовать пакету ESP.

[РЕШЕНО] mikrotik проблема с MTU

Проблема — перестали загружаться полностью сайты, а именно флеш, части скриптов и картинки. Я бы даже сказал что загружается но не отображается. На загрузку например youtube (до полного отображения страницы) необходимо около 5 минут.

Из ярких примеров: сайт мегафона и госуслуги

Actual MTU ожидается 1500 и если у вас меньше, то могут начинаться проблемы.

/ip firewall mangle
add chain=forward action=change-mss new-mss=clamp-to-pmtu passthrough=yes tcp-flags=syn protocol=tcp

—clamp-mss-to-pmtu
Автоматическая установка значения MSS в (path_MTU — 40 для IPv4; -60 для IPv6).
Для данной ситуации лучше всего подойдет опция –clamp-mss-to-pmtu, которая автоматически установит минимальный MSS на все транзитные пакеты.

Тестирование MTU
Используя это можно протестировать
прохождение пакетов заданного размера (MTU) (по умолчанию 1500)
без фрагментации до целевого адреса.
●Linux:
ping -M do <addr> -s <MTU>
●RouterOS:
:ping <addr> do-not-fragment size=<MTU>
●Windows:
ping <addr> -f -l <MTU-28>

Проблемы MTU и MSS. Оптимизация работы VPN

Дополню про тунель l2tp по умолчанию mtu 1450, но для BCP нужен чтобы он был не меньше 1500, для этого можно использовать Multilink PPP

«Multilink PPP (MP) is supported in order to provide MRRU (the ability to transmit full-sized 1500 and larger packets) and bridging over PPP links (using Bridge Control Protocol (BCP) that allows to send raw Ethernet frames over PPP links). This way it is possible to setup bridging without EoIP. The bridge should either have an administratively set MAC address or an Ethernet-like interface in it, as PPP links do not have MAC addresses.»

С стороны сервера в настройках L2TP ставим MRRU 1500 и аналогично делаем с стороны клиента. Когда необходимо больше 1500 добиться уменьшаем MTU и MRU до 1400, а MRRU 1600
Если клиент WINDOWS то также можно включить MULTILINK через настройки соединения options -> ppp Settings.. и там multilin for single link , enable software compression.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *