Клијент се аутентификује, дневник каже повезано, и ниједан пакет не прелази тунел. Сервер завршава покушај са write to TUN/TAP: Invalid argument (code=22), што изгледа као квар управљачког програма и обично није. На рутерима и малим Linux серверима та линија најчешће значи да се две стране не слажу око тога како се уоквиравају пакети података, па језгро одбија дешифровани бафер који му је предат. Рутирање у том тренутку још није тестирано.

Исправна табела рутирања и покварен споразум о уоквиравању изгледају исто са стране клијента: повезано, и ништа не ради.

Тунел се подиже и ништа га не прелази

Грешке писања на уређају тунела настају након дешифровања и пре рутирања. Демон дешифрује пакет, предаје га интерфејсу, а интерфејс га одбија јер бафер не одговара ономе што тај уређај очекује. Код 22 је општи одговор за неважећи аргумент, па је корисна информација слој: ово је путања података, а не руковање. Ако је саобраћај јуче радио, а данас стао без промене конфигурације, посумњајте на ажурирање пакета или фирмвера које је померило подразумевану вредност пре него што посумњате на мрежу.

Читајте дневник око подешавања канала података уместо прве грешке. Договорени режим компресије, тип dev и гурнуте опције појављују се при већем детаљу, и говоре вам које од три неусклађености имате.

Компресија је уоквиравање, не пропусни опсег

Када је компресија омогућена, сваки пакет података носи заглавље које описује како је кодиран, и оба краја морају да се сложе око тог заглавља. Сервер који још носи comp-lzo из старије примерне конфигурације, упарен са клијентом без линије компресије, производи тачно ову грешку: сервер очекује заглавље које клијент никада није написао. Мешање comp-lzo са compress lz4-v2 не успева на исти начин, јер се алгоритми разликују иако се оба називају компресија. Опција је уговор о уоквиравању, а не функција пропусног опсега на модерним везама.

Понашање верзија додаје замку. Серија 2.5 почела је да издаје упозорења о застарелости за опције компресије, а 2.6 повлачи границу између одбијања компресованих пакета и пуког остављања података некомпресованим. Због тога ажурирање фирмвера рутера може променити стварни споразум без икаквог уређивања тунела.

Ускладите оба краја или то уклоните са оба

Набројте сваку директиву компресије: серверску датотеку, све гурнуте опције, датотеке специфичне за клијента и профил клијента. comp-lzo на серверу захтева исту реч на клијенту, а adaptive је наслеђена подразумевана вредност коју гола опција обично значи у старијим израдама. GUI прекидач рутера означен LZO или компресија пише исту опцију, па га подесите да се подудара уместо да мешате алгоритме. Не претпостављајте да је сличан назив компатибилан.

Ако компресија није жељена, уклоните је намерно са оба краја. allow-compression no на серверу одбија компресоване пакете, али тек након што клијенти престану да их нуде; његова примена док клијент још шаље компресију поново ствара неусклађеност у супротном смеру.

Проверите гурање и тип уређаја

Сервер може да гурне директиву компресије из своје главне датотеке или из датотеке специфичне за клијента, а клијент може да одбаци гурнуте опције помоћу pull-filter. Повежите један клијент при детаљу 4, прочитајте шта је сервер објавио наспрам онога што је клијент прихватио, затим потврдите да ниједан филтер то није уклонио. Ако се обе стране сада слажу, а грешка остаје, погледајте тип уређаја: dev tap на једном крају и dev tun на другом не могу да размењују оквире, и језгро одбија писање на исти начин.

Постављање TAP-а са мостом захтева прави мост на серверу, не само другачије име уређаја. Преименовање интерфејса у tap0 без додавања у мост ствара уређај који прихвата писање и не иде никуда.

Затим проверите са једним клијентом и једним одредиштем: пингујте адресу тунела сервера, затим хоста у његовој LAN мрежи. Прво доказује канал података, а друго прослеђивање.

Повезани чланци