Reitittimien ostosivut esittävät VPN-reitityksen yhtenä valintaruutuna, ja lause kätkee kolme eri kysymystä. Sopiiko sääntö laitteeseen, joka lähettää liikennettä, palvelimeen, joka vastaanottaa sen, vai molempiin? Mitä tapahtuu liikenteelle, joka ei sovi kumpaankaan? Ja kun kaksi sääntöä menee päällekkäin, kumpi voittaa? Kun vastauksen kirjoittaa lähteen ja kohteen parina, epämääräinen ominaisuusluettelo muuttuu testattavaksi suunnitteluksi.

Ominaisuuden nimi kätkee kaksi päätä

Mediasoitin, jonka pitäisi käyttää tunnelia, on lähdeosuma. Yksityinen toimistoprefiksi, jonka pitäisi olla tavoitettavissa tunnelin kautta, on kohdeosuma. Työasema, jonka pitäisi käyttää tunnelia vain yhteen palveluun, on molemmat, ja juuri tämä leikkaus on tapaus, jota useimmat kuluttajalaiteohjelmistot käsittelevät huonosti.

Kirjoita vaatimus parina ennen tuotteiden vertailua. Juuri tätä paria testaat myöhemmin.

Tuote, joka tarjoaa laiteluettelon tai globaalin kohdeluettelon, ei ehkä pysty ilmaisemaan «vain tämä laite, vain nämä kohteet». Ero ei ole kosmeettinen: globaali kohdesääntö lähettää jokaisen laitteen liikenteen kyseiseen sivustoon tunnelin kautta, ja laitesääntö lähettää kaiken kyseisen laitteen liikenteen. Kumpikaan ei ole vaatimus. Testaa tätä tapausta kahdella laitteella ennen kuin luotat näyttöön.

Rakenna sääntö leikkauksena

Taulukko pitää suunnittelun rehellisenä. Laita skenaario vasemmalle ja nimeä sitten lähettäjäosuma ja kohdeosuma erikseen:

ScenarioSender matchTarget matchRule shape
Media player uses the tunnelPlayer addressAny internet destination except the LANSource only
Office prefix reachableAuthorized LAN devices10.40.0.0/16Target only
One app on one laptopLaptop addressThe service address setSource and target
Guest network never tunnelsGuest subnetAnyDeny, evaluated first

Kolmas rivi on kiinnostava, koska se tarvitsee molemmat puolet kerralla. Jos laiteohjelmisto pystyy ilmaisemaan vain yhden akselin, vaatimus on jaettava kahdeksi säännöksi tai siirrettävä laitteeseen, joka pystyy siihen.

Pidä lähteen identiteetti vakaana. DHCP-varaus, oma segmentti tai laitteen identiteettimekanismi toimivat, mutta osoite, joka muuttuu vuokrauksen päätyttyä, ei toimi. Sisällytä IPv6, koska yksi IPv4-osoite ei tunnista laitteen kaikkea liikennettä.

Prioriteetti ratkaisee päällekkäisyyden

Sääntöjen päällekkäisyys on normaalia. Laaja laitesääntö ja kapea kohdesääntö voivat molemmat kuvata samaa virtaa, ja dokumentoitu prioriteettijärjestys ratkaisee, kumpi voittaa. Houkutteleva asetusnäyttö ei kerro sinulle sitä järjestystä.

Lue käsikirjasta järjestys ja tapaus, jossa osumaa ei ole, ja testaa sitten molemmat liikenteellä, jota voit havainnoida:

ip rule show
ip route get 203.0.113.10

Jos dokumentaatio ei ilmoita järjestystä, oleta, että kapeampi sääntö ei välttämättä voita, ja suunnittele sen mukaisesti. Kahta sääntöä, jotka eivät voi olla ristiriidassa, on helpompi tukea kuin yhtä älykästä sääntöä, jonka ensisijaisuus on dokumentoimaton.

Nimet tarvitsevat päivityskäytännön

Verkkotunnukseksi kirjoitettu kohde lisää ylläpitoprobleeman. Reitittimen on ratkaistava se, päivitettävä kartoitus, käsiteltävä useita osoitteita ja aliverkkotunnuksia ja selvittävä sovellusten DNS:stä, joka ohittaa odotetun ratkaisijan.

Yhden hakutyön tuloksen kopioiminen IP-sääntöön on tilannekuva, ei verkkotunnuskäytäntö.

Päätä, kuinka vanha vastaus saa olla ennen kuin sääntö on väärä, ja mitä reititin tekee, kun ratkaisu epäonnistuu. Sääntö, joka säilyttää viimeisimmän tunnetun osoitteen, voi kestää palvelun siirron; sääntö, joka pudottaa merkinnän, voi hiljaa lopettaa tunnelioinnin. Kumpikin käyttäytyminen on hyväksyttävää, jos se on kirjattu säännön viereen.

Määritä ei-käytettävissä oleva tila

Reittimieltymys ei pakota vain VPN:n kautta kulkevaa liikennettä. Kun tunneli on alas, reititin voi estää virran, lähettää sen suoraan tai käyttää toista tunnelia, ja jokaisella valinnalla on erilainen vikakuvio.

Päätä, mitä vaatimus tarvitsee, ja varmista se sitten pysäyttämällä tunneli ja seuraamalla virtaa:

curl -sS -o /dev/null -w "%{http_code}" --max-time 5 https://service.example/
ping -c 2 203.0.113.10

Reitittimestä itsestään lähtevä liikenne on erillinen alue. DNS-edelleenlähetys, päivitystarkistukset ja valvonta voivat aloittaa uusia virtoja reitittimestä itsestään sen sijaan, että ne perisivät laitteen lähdeosuman. Ota nämä virrat eksplisiittisesti huomioon, muuten ne näkyvät lokissa selittämättöminä vuotoina.

Aiheeseen liittyvät artikkelit