Три поставки на Linux клиент сите звучат како „направи ги пакетите помали“ и работат на различни слоеви. MTU на интерфејсот ограничува секој пакет што уредот го испраќа. MTU на рута ограничува пакети што ја користат таа рута, а тоа често е она што навистина го сакате за една VPN дестинација. Ограничувањето TCP MSS го менува тоа за што се договараат двата краја и не прави ништо за UDP.

Три контроли што изгледаат како исто копче

Ставете ги една до друга пред да изберете, бидејќи изборот на погрешниот ред го објаснува најголемиот дел од советите што не работат:

ControlScopeWhat it cannot fix
Interface MTUEvery packet the device sendsNothing, but it over-constrains unrelated traffic
Route MTUPackets using that routeA send that the lookup never routes there
MSS clampTCP handshake on that pathUDP payload sizes and ICMP

Намалувањето на Ethernet MTU за целата машина е грубата верзија на оваа поправка. Работи, но исто така казнува секоја друга апликација на домаќинот, вклучително и оние чии патеки беа во ред. Вредност по рута го изразува истото намери без споредниот трошок.

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

Прикачете го буџетот на рутата што победува во пребарувањето

Илустративен запис за рута IPv4 изгледа вака:

ip -4 route get 10.60.0.20
ip -4 route add 10.60.0.0/16 dev tun-office src 10.90.0.2 mtu 1380

Читајте го записот како опис на намера, а не како вредност за лепење. Префиксот, уредот и претпочитаниот извор мора да одговараат на вистинската конфигурација, и бројот мора да дојде од докази за инкапсулираната патека, а не од блог објава. MTU на рутата го ограничува внатрешниот IP пакет, што не е исто како TCP товар од 1380 бајти или шифриран надворешен пакет од 1380 бајти.

Погледнете каде пребарувањето навистина се решава пред да додадете нешто. Домаќин со правила за политика може да насочи дадена дестинација низ друга табела освен main, а метриката што постои само во main е невидлива за тоа барање. Споредете ip -4 route show table all со одговорот од ip route get, вклучувајќи го контекстот на ознаката или именскиот простор кога правилата ги користат. Ако двете не се совпаѓаат, табелата што одговори е таа на која ѝ треба метриката, а не онаа што изгледа поуредна.

mtu не е mtu lock

Стандардно јадрото сѐ уште може да го ажурира MTU на патеката од ICMP повратна информација, за што служи откривањето на MTU на патеката. Додавањето на lock тоа го запира. Тоа е друга одлука, не посилен начин да се зачува истиот број, и за IPv4 ја менува документираната постапка со битот „не фрагментирај“.

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

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

Софтверот за тунели додава свои контроли за големина

OpenVPN- mssfix го прилагодува размерот на TCP сегментот за документираниот случај на UDP тунел. Дејствува на TCP разговорот, затоа не е друг правопис на MTU на рутата на оперативниот систем и не може да помогне на UDP услуга што го игнорира договарањето.

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

Направете го вратливо, потоа докажете го

Вистинскиот сопственик на рутата одлучува дали промената преживува повторно поврзување. VPN клиент што рутата ја поставува динамички обично ќе ја изгради повторно без вашата метрика, а рачната ip route add тогаш изгледа како поправка што пропаднала еден ден подоцна. Ставете ја вредноста во конфигурацијата на менаџерот и ако ви треба времен експеримент, прво запишете ја оригиналната рута.

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

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

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