ppp0 eller ppp1? Korleis namngje ein PPP VPN-økt for skript
pppd gjev kvar økt eit grensesnittnamn og ein profilmarkør. Les båe frå hooken, ikkje frå ppp0. Reserver eit fast namn berre når avvising er meininga.
Hook-skriptet blir utløyst, les ppp0 og brukar ruter på det grensesnittet som eig namnet i det augneblinken. Nokre gonger er det tunnelen du meinte; andre gonger er det ei økt som kopla til eitt minutt tidlegare. Neste attkopling flyttar nummeret, og det same skriptet konfigurerer stille feil samband. Løysinga er å ta grensesnittet frå kallet som nettopp køyrde, og bera den tiltenkte profilen saman med det.
Følg éi økt frå alternativa til hooken
Byrja der økta blir oppretta. xl2tpd startar pppd med alternativfila som pppoptfile for den tunnelen namngjev, så plugin-modulen, einingsnummeret og ein kvar profilmarkør blir avgjorde der og ikkje i ei global fil. Ein tilkoplinghandsamar kan generera sine eigne alternativ, noko som tyder at redigering av /etc/ppp/options ikkje er prov på at tunnelen du bryr deg om er endra. Når sambandet kjem opp, køyrer pppd varselskripta frå utsendararen til distribusjonen. Desse skripta får grensesnittnamnet som første argument og profilmarkøren som det sjette.
Miljøet ber dei same fakta under namn som IFNAME og PPP_IPPARAM, men tilgjengelegheita deira er avhengig av utsendararen som er installert. Les utsendararen før du stolar på ein variabel: nokre distribusjonar held på upstream-argumentrekkjefølgja, andre filtrerer miljøet før dei kallar skriptet ditt. Eit skript som berre brukar $1 og det sjette argumentet, verkar under båe ordningane.
Les grensesnittet frå kallet
Den tradisjonelle hooken får grensesnittet først. Den posisjonsverdien er grensesnittidentifikatoren som skildrar økta som utløyste skriptet. Lagre han i ein variabel øvst, og bruk deretter variabelen til ruter, brannmurreglar og nedriving.
ipparam office-vpn
Fest ein profilmarkør der alternativa blir definerte, ikkje i skriptet. Med den lina i alternativfila til tunnelen ber kvar økt som blir oppretta frå fila, office-vpn som sitt sjette argument. Skriptet kan forgreina seg på markøren medan det framleis handlar på det verkelege grensesnittet. Hald dei to fråskilde i koden, fordi markøren er stabil og grensesnittet blir tildelt per økt.
Be om eit namn berre når avvising er rett
Eit fast namn ser enklare ut enn å lesa argument, men det endrar feilåtferda. Alternativet unit ber om eit nummer for ei utgåande tilkopling, og pppd fell tilbake til dynamisk tildeling når den eininga alt er oppteken. Ingenting i det resultatet reserverer ppp0 for profilen din.
ifname ppp-office
Alternativet ifname oppfører seg annleis: viss det førespurde namnet alt er i bruk eller ikkje kan tildelast, avsluttar pppd i staden for å velja eit anna. Det er eit policyval, ikkje ei kosmetisk omdøypt. Bruk det når ein andre samstundes førekomst av same profil skal avvisast, og stadfest at den installerte pppd og tilkoplinghandsamaren din sender alternativet vidare.
Uansett er namnet skriptet ser, det som må handterast. Eit konfigurert namn fjernar ikkje trongen til å lesa kallet, fordi ei omstarta økt framleis kan presentera eit anna namn enn den førre.
Få nedrivinga til å passa med økta du konfigurerte
Ruter og brannmurreglar overlever skriptet som oppretta dei, så nedrivinga må fjerna nøyaktig dei objekta som økta eig. Merk reglar med profilmarkøren så vel som grensesnittet, og slett etter den merkinga. Viss to tunnelar kan vera oppe, er sletting av alt som nemner ppp måten éi fråkopling øydelegg den andre tilkoplinga på.
Test tilfellet som avdekkjer feilen: ta opp den andre PPP-økta medan den første framleis er tilkopla, kople deretter den første til på nytt og sjå kva grensesnitt hooken rapporterer. Ein vellukka køyring med éi økt provar ingenting om namnetildeling. Gjenta med VPN stoppa for å stadfesta at nedrivinga ikkje etterlèt ei utdatert rute.
Hald markøren, grensesnittet og hook-stien i distribusjonsnotata. Når nummeret endrar seg etter ein omstart, forklarer dei tre verdiane kvifor skriptet oppførte seg annleis utan noka konfigurasjonsendring.