Nikita
Если ipip/gre то собирается на втором конце туннеля
То есть зависит от типа туннеля, да? если PPPoE, скажем?
Cumberbatch
Danil
значит надеемся, что косяк именно с тем ноутом
скорее всего так. на нем еще и линк вместо 2 х 2 подключается 1 х 2 и в результате аплоад быстрее даунлоада почти в 2 раза
Nikita
Возьмем такой пример: Host A-> ethernet 1500 -> MikroTik -> PPPoE 1492 -> Any PPPoE router -> Ethernet -> Host B
Nikita
Возьмем такой пример: Host A-> ethernet 1500 -> MikroTik -> PPPoE 1492 -> Any PPPoE router -> Ethernet -> Host B
TCP MSS = 1460. В этом случае пакет разбился на фрагменты на микротике и где будет конечная сборка в итоге ?
Danil
скачай драйвера новые под карту
там убунта - дрова уже в ядре из коробки
Otto
TCP MSS = 1460. В этом случае пакет разбился на фрагменты на микротике и где будет конечная сборка в итоге ?
а чо это он на микротике разбился то? согласование мту же должно было пройти
Sanov
там убунта - дрова уже в ядре из коробки
может это и есть проблема 😂
Nikita
Нигде
Т.е. пакет не разобьется?
Otto
Ок, допустим вместо PPPoE -> IPSec ESP
а какая разница то? pmtu же
Nikita
ок, тогда я не совсем понимаю юзкейс mangle action=change-mss
Cumberbatch
Т.е. пакет не разобьется?
Пакет будет строится с учетом mtu 1460 на этапе формирования
Cumberbatch
ок, тогда я не совсем понимаю юзкейс mangle action=change-mss
Нужно для согласования размера сегмента
Otto
ну и если стоит галка change mss, то на всех пакетах, идущих транзитом чероз пппое в син пакете будет меняться соответствующий флаг на значении мсс
Nikita
Нужно для согласования размера сегмента
Размера TCP сегмента L4? Или фрейма L2?
Otto
ну мсс же
Nikita
ну и если стоит галка change mss, то на всех пакетах, идущих транзитом чероз пппое в син пакете будет меняться соответствующий флаг на значении мсс
Это я понимаю как микротик умеет вмешиваться в процесс согласования MSS. Допустим. Браузер посылает первоначальный syn пакет с MSS 1460. Как он его вычисляет? По MTU сетевой карты?
Dmitry
Размера TCP сегмента L4? Или фрейма L2?
Mss - определяет размер сегмента (l4), так чтобы оригинальный пакет, частью которого он является, помещался ip mtu (l3) без фрагментации.
Nikita
Свой по мту аут интерфейса. Ответная часть присылает свой. Выбирается меньший
Воот, ответка присылает свой, браузер начинает обмен на меньшей из двух. Допустим: браузер отправляет 1460, сервер 1420 - рабочий MSS для TCP сессии будет 1420. Но если по пути где-то встречается IPSec транзит с MTU 1400, какой будет результирующий MSS
Nikita
1420. И Сборка по идее будет на dst устройстве
То есть фрагментация IP пакетов случится на входе в IPSec транзит и мелкая дробь полетит уже на ответку, верно?
Nikita
и если эта дробь попадется на еще один IPSec транзит, где ей снова предстоит фрагиментация, то крупные куски снова попадут на измельчение
Cumberbatch
То есть фрагментация IP пакетов случится на входе в IPSec транзит и мелкая дробь полетит уже на ответку, верно?
IPSec будет инкапсулировать пакет. При выходе из инкапсуляции пакет должен собраться в исходный
Nikita
и тут задача сетевого инженера на транзитных туннелях оказывать содействие TCP сессиям на недопущение MSS выше MTU-40 на входе в транзит
Nikita
я просто слайды пилю для MUM и надо придумать как это нарисовать для “самых маленьких“ 🙂
Nikita
IPSec будет инкапсулировать пакет. При выходе из инкапсуляции пакет должен собраться в исходный
то есть сам микротик займется сборкой разбитых на фрагменты IPSec пакетов
Cumberbatch
то есть сам микротик займется сборкой разбитых на фрагменты IPSec пакетов
Да. Потому что dst address при попадании IPSec транзита будет выходной микрот.
Nikita
С IPSec понятно, а если PPPoE / PPTP / L2TP
Cumberbatch
С IPSec понятно, а если PPPoE / PPTP / L2TP
То инкапсуляции не будет. А фрагментация будет. И Сборка уже на адресе назаначения будет
Nikita
Как вычисляется MSS?
Nikita
То инкапсуляции не будет. А фрагментация будет. И Сборка уже на адресе назаначения будет
Тогда поясни плиз про Path MTU discovery - не совсем понимаю его работу
Nikita
Браузер знает MTU рабочего интерфейса 1500, посылает MSS 1460
Cumberbatch
Тогда поясни плиз про Path MTU discovery - не совсем понимаю его работу
Пинг до dst с df и до src с df. Минимальный фрагмент высчитывается и меняется в синк пакете mss
Nikita
Это понятно
Nikita
1) пинги буквально отдельными пакетами летят перед установлением TCP сессии? 2) Пинги разных размеров до поиска максимально подходящего?
Cumberbatch
Брутфорсит? 🙂
@insoln призываем
Nikita
На этот вопрос Михаил Москалев на MTCUME так и не смог ответить внятно, потому остался пробел )
Nikita
@moneron
Nikita
в мангле есть action=change-mss new-mss=“clamp to pmtu” - кто может рассказать как это работает?
Cumberbatch
в мангле есть action=change-mss new-mss=“clamp to pmtu” - кто может рассказать как это работает?
Это значит будет изменять мсс так: path_MTU - 40 для IPv4; -60 для IPv6
Nikita
Это значит будет изменять мсс так: path_MTU - 40 для IPv4; -60 для IPv6
Как микротик вычисляет этот pmtu между собеседниками?
Innokentiy
Innokentiy
Cumberbatch
Как микротик вычисляет этот pmtu между собеседниками?
При мангле используется значение мту на ptp интерфейсе. А его в свою очередь вычисляет от мту интерфейса через который строитс ptp вычитая заголовки протокола
Cumberbatch
уже лечу
Отлично. Ждём
Nikita
При мангле используется значение мту на ptp интерфейсе. А его в свою очередь вычисляет от мту интерфейса через который строитс ptp вычитая заголовки протокола
по сути микротик отвечает только за свой участок, верно? Снижает MSS до наименьшего из участвующих в обмене интерфейсов. Это точно имеет отношение к PMTU ?
Cumberbatch
по сути микротик отвечает только за свой участок, верно? Снижает MSS до наименьшего из участвующих в обмене интерфейсов. Это точно имеет отношение к PMTU ?
Была практика когда строил gre с флагом pathmtu. Так вот. На разных сторонах были разные по мту интерфейсы. Микрот вычислил mtu gre на каждой стороне свой. Между собой не согласовал.
Nikita
@insoln призываем
Cumberbatch Wikipedia For IPv4 packets, Path MTU Discovery works by setting the Don't Fragment (DF) flag bit in the IP headers of outgoing packets. Then, any device along the path whose MTU is smaller than the packet will drop it, and send back an Internet Control Message Protocol (ICMP) Fragmentation Needed (Type 3, Code 4) message containing its MTU, allowing the source host to reduce its Path MTU appropriately. The process is repeated until the MTU is small enough to traverse the entire path without fragmentation.
Nikita
то есть первый пакет если пролетает маршрут - значит все хорошо если нет, то не пропускает, но отвечает ICMP ответом сколько можно на его участке. И так снижае по кругу, пока все все помехи не будут пройдены до конечника. Этот PMTU работает судя по всему автоматически и только при условии, что нигде не режутся ICMP пакеты
Innokentiy
correct
Innokentiy
еще может быть доп.поведение - периодически пробовать приподнять мту
Nikita
но на этот самый PMTU в ip4 расчитывать не стоит и лучше помогать TCP сессиям работать на заранее посчитанном MSS
Innokentiy
correct
Nikita
а какая разница то? pmtu же
читай ответ выше )
Innokentiy
пмту в современных системах, кстати, работает в отрыве от tcp
Innokentiy
то есть изначально это зародилось как фича tcp, а потом и н все остальное натянули в стеке
Nikita
correct
есть ли смысл принудительно снижать MSS для IPSec ike2 roadwarrior до 1360?
Innokentiy
если мту 1400 (по бестпрактисам), то 1360 выглядит разумно
Innokentiy
посмотреть правила файрвола?
Nikita
если мту 1400 (по бестпрактисам), то 1360 выглядит разумно
МакОС точно выставляет MTU 1400 на ipsec0 “интерфейсе”
Innokentiy
я с гейбуками на вы
Nikita
посмотреть правила файрвола?
эти icmp ответы они попадают в established & related правила?
Innokentiy
ну и ике не моя сильная тема
Nikita
я с гейбуками на вы
в винбуках тоже 1400?