Три ствари морају да се сложе пре него што Kerio тунел пренесе саобраћај: адреса на интерфејсу kvnet, вредност коју је клијент забележио и оно што очекује серверска политика или DHCP. Када се не слажу, тунел се ипак аутентификује и ипак подиже, и управо то чини квар збуњујућим. Интерфејс се ствара за свако повезивање, па адреса постављена ручно припада тој сесији и ничему другом. То је облик проблема, а решење је кука, а не конфигурациона датотека. Остатак је где прочитати вредност и где је применити.

Зашто се адреса стално враћа

kvnet је виртуелни адаптер који клијент ствара када веза почне и уклања када се заврши. Ручни ip link set зато преживи тачно онолико колико траје сесија на коју је примењен, а следеће повезивање почиње од онога што клијент додели. На машини на којој клијент не успева да примени очекивану адресу, свако поновно повезивање поново уноси исто несагласје, и правило закупа или приступа поново одбија уређај.

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

Прочитајте вредност из клијента, а не из интерфејса

Linux клијент уписује детаље преговарања у свој дневник за отклањање грешака, а адреса коју намерава да користи појављује се тамо као последњи токен у облику адресе у низу повезивања. Упоредите то са оним што језгро заиста држи, а то је један readlink далеко: cat /sys/class/net/kvnet/address.

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

Примените је након што интерфејс постоји

Корисници NetworkManager-а могу да ставе скрипту у његов директоријум диспечера и да делују само када се VPN интерфејс подигне. Клијент којим управља systemd захтева више пажње: drop-in који се извршава при покретању услуге обично се активира пре него што адаптер постоји, па кука мора да чека интерфејс уместо да га претпоставља. Поставите адресу тада, и ако језгро одбије док је веза подигнута, спустите је, поставите адресу и поново је подигните. Прочитајте извучени токен назад кроз MAC образац пре него што га предате ip link-у, како неочекивана линија дневника не би могла да постане аргумент.

Све што се извршава као root из дневника клијента заслужује уско власништво: датотеку у власништву root-а, коју други не могу да пишу, и без икакве shell интерполације изнад проверене адресе. Држите проверу образца унутар скрипте. Не дозволите да садржај дневника одлучује која се команда извршава.

Проверите закуп, а не везу

ip -4 -o addr show dev kvnet треба да покаже адресу у очекиваном опсегу, ip neigh show dev kvnet треба да покаже мрежни пролаз, и једна услуга иза VPN-а треба да одговори. Затим се једном искључите и поново повежите; ако се адреса врати, кука се активира на погрешан догађај или се уопште не активира.

Интерфејс који се појави са тачном адресом и никада не добије закуп указује на серверску страну. То је друга провера и обично други тим. Потврдите да је налог дозвољен и да скуп још има адресу пре него што поново уредите куку.

Преиспитајте заобилазно решење после надоградње

Издање клијента које исправно поставља адресу оставља вашу куку да примењује застарелу вредност, што је нови квар који је увела исправка. Такође никада не копирајте MAC са другог рачунара или форумске објаве; користите вредност коју овај клијент бележи за овај налог, и запишите датум када сте је проверили.

Држите скрипту довољно кратку за читање у једном седењу. Заобилазна решења која анализирају дневнике су по природи привремена. Преживљавају она која будући читалац разуме без изворне теме.

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