Kabliuko skriptas suveikia, perskaito ppp0 ir pritaiko maršrutus sąsajai, kuri tuo metu turi tą pavadinimą. Kartais tai tunelis, kurį turėjote omenyje; kartais tai sesija, prisijungusi minute anksčiau. Kitas prisijungimas perstumia numerį, ir tas pats skriptas tyliai sukonfigūruoja netinkamą jungtį. Sprendimas – paimti sąsają iš ką tik įvykusio iškvietimo ir nešti numatytą profilį šalia jos.

Sekite vieną sesiją nuo parinkčių iki kabliuko

Pradėkite ten, kur sukuriama sesija. xl2tpd paleidžia pppd su parinkčių failu, kurį nurodo to tunelio pppoptfile, todėl įskiepis, įrenginio numeris ir bet koks profilio žymeklis nustatomi ten, o ne globaliame faile. Ryšio tvarkyklė gali generuoti savo parinktis, o tai reiškia, kad /etc/ppp/options redagavimas nėra įrodymas, jog jums svarbus tunelis pasikeitė. Kai jungtis pakyla, pppd paleidžia pranešimų skriptus iš distribucijos siuntėjo. Tie skriptai gauna sąsajos pavadinimą kaip pirmą argumentą, o profilio žymeklį – kaip šeštą.

Aplinka neša tuos pačius faktus tokiais pavadinimais kaip IFNAME ir PPP_IPPARAM, bet jų prieinamumas priklauso nuo įdiegto siuntėjo. Perskaitykite siuntėją prieš pasikliaudami kintamuoju: kai kurios distribucijos išlaiko upstream argumentų tvarką, kitos filtruoja aplinką prieš kviesdamos jūsų skriptą. Skriptas, kuris naudoja tik $1 ir šeštą argumentą, veikia abiem atvejais.

Skaitykite sąsają iš iškvietimo

Tradicinis kabliukas sąsają gauna pirmą. Ta pozicinė reikšmė yra sąsajos identifikatorius, apibūdinantis sesiją, kuri suaktyvino skriptą. Išsaugokite ją kintamajame viršuje, tada naudokite tą kintamąjį maršrutams, ugniasienės taisyklėms ir išardymui.

ipparam office-vpn

Priskirkite profilio žymeklį ten, kur apibrėžiamos parinktys, o ne skripte. Su ta eilute tunelio parinkčių faile kiekviena iš to failo sukurta sesija neša office-vpn kaip šeštą argumentą. Skriptas gali šakotis pagal žymeklį ir vis tiek veikti tikrojoje sąsajoje. Laikykite abu atskirai kode, nes žymeklis yra stabilus, o sąsaja skiriama kiekvienai sesijai.

Prašykite pavadinimo tik tada, kai atmetimas yra teisingas

Fiksuotas pavadinimas atrodo paprasčiau nei skaityti argumentus, bet jis keičia gedimo elgseną. Parinktis unit prašo numerio išeinančiam ryšiui, o pppd pereina prie dinaminio paskirstymo, kai ta sąsaja jau užimta. Niekas tame rezultate nerezervuoja ppp0 jūsų profiliui.

ifname ppp-office

Parinktis ifname elgiasi kitaip: jei prašomas pavadinimas jau naudojamas arba jo negalima priskirti, pppd išeina, o ne pasirenka kitą. Tai politikos pasirinkimas, o ne kosmetinis pervadinimas. Naudokite jį, kai reikia atmesti antrą lygiagrečią to paties profilio kopiją, ir patvirtinkite, kad įdiegtas pppd ir jūsų ryšio tvarkyklė perduoda šią parinktį.

Bet kuriuo atveju pavadinimas, kurį mato skriptas, yra tas, pagal kurį reikia veikti. Sukonfigūruotas pavadinimas nepanaikina poreikio skaityti iškvietimą, nes paleista iš naujo sesija vis dar gali pateikti kitą pavadinimą nei ankstesnė.

Suderinkite išardymą su sesija, kurią sukonfigūravote

Maršrutai ir ugniasienės taisyklės išgyvena skriptą, kuris juos sukūrė, todėl išardymas turi pašalinti būtent tuos objektus, kuriuos valdo sesija. Pažymėkite taisykles profilio žymekliu ir sąsaja, o ištrinkite pagal tą žymą. Jei du tuneliai gali būti aktyvūs, visko, kas mini ppp, trynimas yra būdas, kuriuo vienas atsijungimas sugadina kitą ryšį.

Išbandykite atvejį, kuris atskleidžia klaidą: pakelkite antrą PPP sesiją, kol pirmoji dar prijungta, tada iš naujo prijunkite pirmąją ir stebėkite, kurią sąsają praneša kabliukas. Sėkmingas paleidimas su viena sesija nieko neįrodo apie pavadinimų paskirstymą. Pakartokite sustabdę VPN, kad patvirtintumėte, jog išardymas nepalieka pasenusio maršruto.

Laikykite žymeklį, sąsają ir kabliuko kelią diegimo pastabose. Kai po perkrovimo numeris pasikeičia, tos trys reikšmės paaiškina, kodėl skriptas elgėsi kitaip be jokių konfigūracijos pakeitimų.

Susiję straipsniai