Kerio на Linux: да му дадеме на kvnet MAC-от што го очекува серверот
kvnet се создава одново при секое поврзување, па еднократната промена на адресата се губи. Прочитајте ја вредноста што клиентот ја запишал и примените ја од кука по поврзувањето.
Три работи мора да се согласат пред тунелот 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, што другите не можат да ја пишуваат, и без никаква интерполација на школка надвор од валидираната адреса. Држете ја проверката на шемата внатре во скриптата. Не дозволувајте содржината на дневникот да одлучува која команда се извршува.
Проверете го закупот, а не врската
ip -4 -o addr show dev kvnet треба да покаже адреса во очекуваниот опсег, ip neigh show dev kvnet треба да го покаже порталот, и една услуга зад VPN треба да одговори. Потоа еднаш исклучете се и повторно поврзете се; ако адресата се врати, куката се активира на погрешен настан или воопшто не се активира.
Интерфејс што се појавува со точната адреса и никогаш не добива закуп укажува на серверската страна. Тоа е друга проверка и обично друг тим. Потврдете дека сметката е дозволена и дека базенот сѐ уште има адреса пред повторно да ја уредувате куката.
Преиспитајте го заобиколното решение по надградба
Издание на клиентот што правилно ја поставува адресата ја остава вашата кука да применува застарена вредност, што е нов дефект воведен од поправка. Исто така никогаш не копирајте MAC од друга машина или форумска објава; користете ја вредноста што овој клиент ја запишува за оваа сметка, и запишете го датумот кога сте ја провериле.
Држете ја скриптата доволно кратка за читање во едно седење. Заобиколните решенија што анализираат дневници се по природа привремени. Преживуваат оние што иден читател ги разбира без оригиналната тема.