Ylimääräiset Mac-VPN-reitit tarvitsevat omistajan, eivät kirjautumisskriptiä
Kirjautumisen yhteydessä kerran lisätty reitti ei ole uudelleenyhdistämiskäytäntö. Anna kaukoetuliitteille omistaja ja päätä, miten ne ilmestyvät, muuttuvat ja katoavat kyseisen yhteyden mukana.
Yksityiseen etuliitteeseen pääseminen VPN:n kautta on vaatimus, jolla on kesto: se pätee niin kauan kuin yhteys on käyttökelpoinen, ja päättyy kun yhteys päättyy. Kirjautumisskripti ei voi ilmaista sitä, koska kirjautuminen ja tunnelin nousu ovat eri hetkiä, eikä kirjautumishetkellä oleva tunneli välttämättä ole se, joka kuljettaa liikennettä minuuttia myöhemmin. Ensimmäinen päätös ei ole, mikä komento ajetaan. Se on, mikä komponentti omistaa etuliitteen.
Etuliite tarvitsee omistajan, ei hetkeä
Aloita kirjoittamalla vaatimus subjektillisena lauseena: saavuta 10.77.0.0/24 Office VPN:n kautta, kunnes yhteys on pystyssä. Se lause nimeää etuliitteen, yhteyden ja ehdon, ja sulkee heti pois kaksi suosittua korviketta: kirjautumiskoukun ja liitännäisnimen, kuten ppp0 tai utun2.
Liitännäisnimet annetaan ajonaikaisesti, eivätkä ne ole vakaita yhteyksien välillä. Koukku, joka vastaa viime viikolla nähtyä nimeä, joko ei laukea tai laukeaa jonkun toisen liitännäistä vastaan. Molemmat tulokset näyttävät reititysvirheeltä, eivät siltä vanhentuneelta oletukselta, joka ne ovat. Sama vastalause pätee mihin tahansa skriptiin, joka on sidottu nimeen, joka on olemassa vain tietyn tunnelin ollessa pystyssä.
Käytä tuettua reittiaikeen lähdettä
Yhdyskäytävä, hallittu profiili tai omistavan asiakasohjelman dokumentoitu reittimekanismi on oikea paikka, kun kyseinen mekanismi voi ilmaista vaatimuksen. Kumpi pätee, riippuu protokollasta ja palveluntarjoajasta, eivätkä avaimet siirry niiden välillä, joten arvo, joka määrittää profiilin OpenVPN ei kerro mitään natiivista L2TP- tai IKEv2-asiakkaasta.
| Mechanism | Can carry extra prefixes | Who owns the lifetime |
|---|---|---|
| Gateway-pushed routes | Often, if the gateway is configured for it | The connection |
| Managed profile settings | Depends on the client and profile format | The profile |
| Provider tunnel settings | Yes, as included and excluded routes | The provider process |
| Manual command | Yes, once | Nobody |
Pakettitunnelien kehittäjille Applen IPv4-tunnelin asetukset paljastavat sisällytetyt ja poissuljetut reitit eksplisiittisesti, ja IPv6:lla on vastineensa. Nämä ovat API:ja, joita palveluntarjoaja käyttää, eivät todiste siitä, että jokainen natiivi VPN-paneeli tarjoaa ylläpitäjälle mielivaltaisen reittilistan. Jos nykyinen yhdistelmä ei voi ilmaista tarvittavia etuliitteitä, seuraava askel on operaattorin tuettu konfigurointipolku, ei toinen sovellus, joka asennetaan toiveena, että se käyttäytyisi paremmin.
Elinkaari sisältää siivouksen
Joskus ulkoinen apuri on todella tarpeen, ja silloin «lisää reitti» on sen työn pienin osa. Sen on tiedettävä, mitä yhteyttä se palvelee ja mitä liitännäistä kyseinen yhteys käyttää, odotettava, että asiaankuuluva verkkotila vakiintuu, pysyttävä idempotenttina, kun se ajetaan kahdesti peräkkäin, eikä siivottava mitään, mitä se ei itse asentanut.
Viimeinen lauseke on se, joka sattuu. Apuri, joka poistaa jokaisen toimistetuliitettä vastaavan reitin, poistaa ennemmin tai myöhemmin reitin, jota se ei lisännyt. Syntyvä katko laitetaan VPN-asiakasohjelman syyksi, koska asiakasohjelma on se osa, jonka käyttäjä näkee. Sen päättäminen, mitä apuri omistaa, ennen kuin sen kirjoittaa, on halvempaa kuin selittää jälkikäteen, miksi paikallinen aliverkko lakkasi vastaamasta.
Uudelleenyhdistämisen kilpajuoksu
Ajattele nopeaa uudelleenyhdistämistä. Istunto A putoaa, istunto B nousee ja asentaa reittinsä, ja sitten A:n viivästynyt siivous lopulta ajetaan. Jos siivous poistaa reittejä etuliitteen perusteella, se vie B:n kelvollisen tilan mukanaan, ja yhteyttä, joka toimi sekunti sitten, reititetään nyt ei mihinkään.
Kyse on omistajuuden kilpajuoksusta, ja skriptiin lisätty nukkuminen muuttaa vain sitä, kumpi puoli sen voittaa. Ratkaisu on tehdä siivous ehdolliseksi identiteetille: vertaa liitännäistä ja istuntoa, jotka apuri asensi, vielä voimassa oleviin, ja poista vain täsmäävissä tapauksissa.
Mitä testata ja mitä reitti ei voi tehdä
Hyväksynnän on katettava neljä siirtymää: ensimmäinen yhteys, uudelleenyhdistäminen toiseen liitännäiseen, epäonnistuva yhteysyritys ja lopullinen katkaisu. Lue jokaisen jälkeen reitti, jonka järjestelmä todella valitsi kaukopään osoitteelle, ei sitä, jonka odotit sen valitsevan.
route -n get 10.77.0.5
netstat -rn -f inet
Ota samaan kiertoon myös hankalat tapaukset: IPv6 siellä missä sitä vaaditaan, paikallinen etuliite, joka menee päällekkäin kaukoetuliitteen kanssa, ja reitti itse julkiseen VPN-päätepisteeseen, jonka on toimittava tunnelin ollessa pystyssä. Kirjoita sitten muistiin, mikä reitti ei ole. Se valitsee paketteja; se ei anna lupaa kaukopäässä eikä luo paluupolkua, ja ne pysyvät erillisinä vaatimuksina erillisine omistajineen.
Tulos, jonka haluat, on etuliite, joka seuraa tuettua yhteysomistajaansa jokaisen siirtymän läpi, eikä komento, joka sattumalta onnistui kerran koneella, jolle se kirjoitettiin.