Еден лаптоп застанува при качување низ тунелот, додека секој друг уред на истиот сервер продолжува да работи. Оваа шема укажува на една патека, а не на конфигурацијата на серверот, и тоа е вообичаениот влез во прашањето за mssfix. Опцијата може да помогне, но само за TCP врските што таа навистина ги препишува. Познавањето на нејзиниот опфат ве спречува да менувате работен сервер за да спасите еден клиент.

Што ја препишува опцијата

mssfix ја уредува максималната големина на сегментот објавена во TCP ракувањата што минуваат низ тунелот, за да избере испраќачката страна сегменти што се вклопуваат во инкапсулираниот буџет. Дејствува на ракувањето, што значи дека врска отворена пред промената ја задржува договорената вредност.

Не ги намалува UDP датаграмите и не го поставува MTU на тунелот. Два различни проблема даваат ист симптом: TCP испраќач што го игнорира ограничувањето на патеката и патека што тивко ги отфрла големите пакети по било која големина. mssfix се справува со првиот и не прави ништо за вториот.

Оваа разлика ги објаснува разочарувачките експерименти. Поставувањето помала вредност на патека со црна дупка ја менува големината на сегментот, но не и отфрлањето што следи, па преносот пропаѓа на друго место.

Опфатот е TCP внатре во тунелот

Се препишува само TCP сообраќајот. QUIC сесија, игра или апликација што испраќа големи UDP датаграми ќе ги задржи сопствените големини на пакети, и ако токму тие преноси застануваат, поправката и припаѓа на MTU на тунелот или патеката. Прочитајте кој протокол го користи неуспешниот пренос пред да посегнете по TCP опција, бидејќи погрешниот слој има своја поправка.

Правецот исто така е важен. Поставката на клиентот влијае на сообраќајот што тој клиент го испраќа во тунелот, додека серверот ги покрива тековите што ги препраќа кон клиентите. Ако застануваат само дојдовните преземања, вредноста на страната на клиентот не е целата приказна.

Бројот и клучниот збор не се преносливи

Заедницата на OpenVPN 2.6 прифаќа незадолжителен клучен збор по вредноста. Со mtu бројот ја опишува големината на надворешниот пакет вклучително IP и UDP заглавјата; без него аргументот следи друга сметководна конвенција. Затоа линијата копирана меѓу верзии не го опишува истиот буџет на пакети. Проверете ја страницата од прирачникот што доаѓа со изградбата што ја извршувате, наместо учебник за друго издание.

Синтаксата изгледа вака:

mssfix 1400 mtu

Третирајте 1400 како месторезервирано, а не како препорака за вашата патека. Изведете ја вредноста од измерената патека и инкапсулацијата што навистина се користи, и запомнете дека клиентите на постари верзии или други имплементации можат да го одбијат или поинаку да го протолкуваат клучниот збор.

Прво потврдете на еден клиент

Измерете ја патеката од дефектната машина пред да промените нешто. Корисниот товар што патеката може да го пренесе без фрагментација е бројот што го барате:

ping -M do -s 1472 10.8.0.1
ping -M do -s 1400 10.8.0.1

Првата проба се вклопува во пакет од 1500 бајти откако ќе се додадат 28 бајти заглавја. Ако таа пропадне со грешка за фрагментација, а помалата успее, употребливата големина е некаде меѓу нив, а трошокот на тунелот се одбива одозгора.

Потоа повторете го запрениот пренос на нова врска и споредете. Ако единствениот клиент се подобри, а другите останат недопрени, го најдовте опфатот на проблемот. Ако застанат сите клиенти, вредноста на страната на серверот е таа што треба да се прегледа. Ниту еден од двата резултата не оправдува промена на хардвер што никогаш не бил на дефектната патека.

Поврзани статии