Kerio Linux: duoti kvnet tą MAC, kurio tikisi serveris
kvnet sukuriamas iš naujo kiekvieno prisijungimo metu, todėl vienkartinis adreso pakeitimas prarandamas. Perskaitykite kliento įrašytą reikšmę ir pritaikykite ją iš kablio po prisijungimo.
Trys dalykai turi sutapti, kol Kerio tunelis praleis srautą: adresas kvnet sąsajoje, kliento įrašyta reikšmė ir tai, ko tikisi serverio politika arba DHCP. Kai jie nesutampa, tunelis vis tiek autentifikuojasi ir vis tiek pakyla, ir būtent tai daro gedimą painų. Sąsaja sukuriama kiekvienam prisijungimui, todėl ranka nustatytas adresas priklauso tai sesijai ir niekam kitam. Tokia yra problemos forma, o sprendimas yra kablys, o ne konfigūracijos failas. Likusi dalis – kur skaityti reikšmę ir kur ją pritaikyti.
Kodėl adresas nuolat grįžta
kvnet yra virtualus adapteris, kurį klientas sukuria prasidėjus prisijungimui ir pašalina jam pasibaigus. Todėl rankinis ip link set išlieka lygiai tiek, kiek trunka sesija, kuriai jis buvo pritaikytas, o kitas prisijungimas prasideda nuo to, ką skiria klientas. Kompiuteryje, kuriame klientas nepritaiko laukiamo adreso, kiekvienas prisijungimas iš naujo įneša tą patį neatitikimą, ir nuomos arba prieigos taisyklė vėl atmeta įrenginį.
Šis modelis yra diagnostinis pats savaime. Tunelis, kuris veikia vieną sesiją ir nepavyksta kitoje, nėra prisijungimo duomenų problema, nes duomenys tarp prisijungimų nesikeičia.
Skaitykite reikšmę iš kliento, o ne iš sąsajos
Linux klientas derybų detales rašo į savo derinimo žurnalą, o adresas, kurį ketina naudoti, ten pasirodo kaip paskutinis adreso formos žetonas prisijungimo sekoje. Palyginkite jį su tuo, ką branduolys iš tikrųjų laiko, o tai yra per vieną readlink: cat /sys/class/net/kvnet/address.
Jei abu skiriasi, klientas žinojo teisingą reikšmę ir nesugebėjo jos pritaikyti, o kablys, kuris ją pritaiko po to, kai sąsaja atsiranda, uždaro šį tarpą. Jei žurnale apskritai nėra adreso, problema yra ankstesnė ir priklauso kliento versijai arba serverio profiliui, o ne scenarijui.
Pritaikykite jį po to, kai sąsaja atsiranda
NetworkManager naudotojai gali įdėti scenarijų į jo dispečerio katalogą ir veikti tik tada, kai VPN sąsaja pakyla. systemd valdomam klientui reikia daugiau atidumo: drop-in, paleidžiamas prasidėjus tarnybai, paprastai suveikia anksčiau, nei adapteris atsiranda, todėl kablys turi laukti sąsajos, o ne ją numatyti. Tada nustatykite adresą, o jei branduolys atsisako, kol ryšys pakeltas, nuleiskite jį, nustatykite adresą ir vėl pakelkite. Perskaitykite išgautą žetoną atgal per MAC šabloną prieš perduodami jį ip link, kad netikėta žurnalo eilutė netaptų argumentu.
Viskas, kas veikia kaip root iš kliento žurnalo, nusipelno siauros nuosavybės: root priklausančio failo, kurio kiti negali rašyti, ir jokios shell interpolacijos už patikrinto adreso ribų. Laikykite šablono patikrą scenarijaus viduje. Neleiskite žurnalo turiniui nuspręsti, kuri komanda vykdoma.
Tikrinkite nuomą, o ne ryšį
ip -4 -o addr show dev kvnet turėtų rodyti adresą laukiamame diapazone, ip neigh show dev kvnet turėtų rodyti šliuzą, o viena paslauga už VPN turėtų atsakyti. Tada vieną kartą atsijunkite ir prisijunkite iš naujo; jei adresas grįžta, kablys suveikia ne tam įvykiui arba visai nesuveikia.
Sąsaja, kuri pasirodo su teisingu adresu ir niekada negauna nuomos, rodo serverio pusę. Tai kita patikra ir paprastai kita komanda. Prieš vėl redaguodami kablį patvirtinkite, kad paskyra leidžiama ir kad telkinys dar turi adresą.
Peržiūrėkite apėjimo sprendimą po atnaujinimo
Kliento versija, kuri teisingai nustato adresą, palieka jūsų kablį taikyti pasenusią reikšmę, o tai yra naujas defektas, kurį įvedė pataisymas. Taip pat niekada nekopijuokite MAC iš kito kompiuterio ar forumo įrašo; naudokite reikšmę, kurią šis klientas įrašo šiai paskyrai, ir užsirašykite datą, kada ją patikrinote.
Laikykite scenarijų pakankamai trumpą, kad būtų galima perskaityti per vieną prisėdimą. Apėjimo sprendimai, kurie analizuoja žurnalus, iš prigimties yra laikini. Išlieka tie, kuriuos būsimas skaitytojas supranta be pirminės gijos.