Āķa skripts iedarbojas, nolasa ppp0 un piemēro maršrutus tai saskarnei, kurai tajā brīdī pieder šis nosaukums. Dažreiz tas ir tunelis, ko domāji; dažreiz tā ir sesija, kas pieslēdzās minūti agrāk. Nākamā atkārtotā pieslēgšanās pārbīda numuru, un tas pats skripts klusi konfigurē nepareizo savienojumu. Risinājums ir paņemt saskarni no tikko notikušā izsaukuma un nest paredzēto profilu tai līdzās.

Izseko vienu sesiju no opcijām līdz āķim

Sāc tur, kur sesija tiek izveidota. xl2tpd palaiž pppd ar opciju failu, ko norāda šī tuneļa pppoptfile, tāpēc spraudnis, vienības numurs un jebkurš profila marķieris tiek noteikti tur, nevis globālā failā. Savienojuma pārvaldnieks var ģenerēt savas opcijas, kas nozīmē, ka /etc/ppp/options rediģēšana nav pierādījums, ka tev svarīgais tunelis ir mainījies. Kad saite paceļas, pppd izpilda paziņojumu skriptus no distribūcijas sūtītāja. Šie skripti saņem saskarnes nosaukumu kā pirmo argumentu un profila marķieri kā sesto.

Vide nes tos pašus faktus ar tādiem nosaukumiem kā IFNAME un PPP_IPPARAM, bet to pieejamība ir atkarīga no instalētā sūtītāja. Izlasi sūtītāju pirms paļaujies uz mainīgo: dažas distribūcijas saglabā upstream argumentu secību, citas filtrē vidi pirms tava skripta izsaukšanas. Skripts, kas izmanto tikai $1 un sesto argumentu, darbojas abos gadījumos.

Lasi saskarni no izsaukuma

Tradicionālais āķis saņem saskarni vispirms. Šī pozicionālā vērtība ir saskarnes identifikators, kas apraksta sesiju, kura aktivizēja skriptu. Saglabā to mainīgajā augšpusē, pēc tam izmanto šo mainīgo maršrutiem, ugunsmūra noteikumiem un nojaukšanai.

ipparam office-vpn

Pievieno profila marķieri tur, kur tiek definētas opcijas, nevis skriptā. Ar šo rindu tuneļa opciju failā katra no šī faila izveidotā sesija nes office-vpn kā savu sesto argumentu. Skripts var sazaroties pēc marķiera un joprojām darboties ar īsto saskarni. Turē abus atsevišķi kodā, jo marķieris ir stabils, bet saskarne tiek piešķirta katrai sesijai.

Prasīt nosaukumu tikai tad, ja atteikums ir pareizs

Fiksēts nosaukums šķiet vienkāršāks par argumentu lasīšanu, bet tas maina atteices uzvedību. Opcija unit pieprasa numuru izejošam savienojumam, un pppd pāriet uz dinamisku piešķiršanu, kad šī vienība jau ir aizņemta. Nekas šajā rezultātā nerezervē ppp0 tavam profilam.

ifname ppp-office

Opcija ifname uzvedas citādi: ja pieprasītais nosaukums jau tiek lietots vai to nevar piešķirt, pppd iziet, nevis izvēlas citu. Tas ir politikas lēmums, nevis kosmētiska pārdēvēšana. Izmanto to, kad jāatsaka otra vienlaicīga tā paša profila instance, un pārliecinies, ka instalētais pppd un tavs savienojuma pārvaldnieks nodod šo opciju.

Jebkurā gadījumā nosaukums, ko skripts redz, ir tas, pēc kā jārīkojas. Konfigurēts nosaukums neatceļ nepieciešamību lasīt izsaukumu, jo restartēta sesija joprojām var uzrādīt citu nosaukumu nekā iepriekšējā.

Saskaņo nojaukšanu ar sesiju, kuru konfigurēji

Maršruti un ugunsmūra noteikumi pārdzīvo skriptu, kas tos izveidoja, tāpēc nojaukšanai ir jānoņem tieši tie objekti, kas pieder sesijai. Atzīmē noteikumus ar profila marķieri un arī ar saskarni, un dzēs pēc šīs atzīmes. Ja divi tuneļi var būt aktīvi, visa, kas piemin ppp, dzēšana ir veids, kā viens atslēgums salauž otru savienojumu.

Pārbaudi gadījumu, kas atklāj kļūdu: pacel otru PPP sesiju, kamēr pirmā vēl ir pieslēgta, pēc tam atkārtoti pieslēdz pirmo un vēro, kuru saskarni āķis ziņo. Veiksmīga palaišana ar vienu sesiju neko nepierāda par nosaukumu piešķiršanu. Atkārto ar apturētu VPN, lai apstiprinātu, ka nojaukšana neatstāj novecojušu maršrutu.

Glabā marķieri, saskarni un āķa ceļu izvietošanas piezīmēs. Kad pēc pārstartēšanas numurs mainās, šīs trīs vērtības izskaidro, kāpēc skripts uzvedās citādi bez jebkādām konfigurācijas izmaiņām.

Saistītie raksti