OpenVPN mssfix: чоң өткөрүүлөрдө эмне үчүн бир кардар токтоп калат
mssfix туннелдин ичинде жарыяланган TCP сегментинин өлчөмүн кайра жазат. Ал UDP өлчөмүн өзгөртпөйт, жана мааниси сиздин версияңыз айтканды гана билдирет.
Бир ноутбук туннел аркылуу жүктөө учурунда токтоп калат, ал эми ошол эле сервердеги бардык башка түзмөктөр ишин улантат. Бул үлгү сервердин конфигурациясын эмес, бир жолду көрсөтөт, жана бул 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
Биринчи сынак 28 байт аталыш кошулганда 1500 байттык пакетке батат. Эгер ал фрагментация катасы менен ишке ашпай, кичинеси ийгиликтүү болсо, пайдалуу өлчөм алардын ортосунда бир жерде, ал эми туннелдин кошумча чыгымы жогорудан кемитилет.
Андан кийин токтогон өткөрүүнү жаңы байланышта кайталап, салыштырыңыз. Эгер жалгыз кардар жакшырса, ал эми калгандары тийбеген бойдон калса, көйгөйдүн камтылышын таптыңыз. Эгер бардык кардарлар токтоп калса, сервер тараптагы маани каралышы керек. Эки жыйынтыктын эч бири эч качан иштебей калган жолдо болбогон жабдууну өзгөртүүгө негиз бербейт.