Tunneli nousee, yksityinen aliverkko vastaa, ja tavallinen selailu katoaa silti VPN:ään, vaikka joku poisti yhdyskäytävä-rivin profiilista. Yhdistelmä on väärän direktiivin muokkaamisen sormenjälki. Poistettu antoi asiakkaalle seuraavan hypyn reiteille, jotka se asentaa; se, mikä jatkoi liikenteen kaappaamista, tuli muualta ja palvelin työnsi sen. Kattavuus ja seuraava hyppy ovat erillisiä töitä, ja vain toinen niistä päättää, käyttävätkö julkiset kohteet tunnelia.

Poistamasi rivi oli seuraava hyppy, ei käytäntökytkin

Jokainen asiakkaan asentama reitti tarvitsee yhdyskäytäväosoitteen, johon osoittaa, ja yhdyskäytävä-direktiivi on sen osoitteen lähde, kun reitti ei itse nimeä sellaista. Poista se, niin noilla reiteillä ei ole mihin kiinnittyä, joten ne joko epäonnistuvat asennuksessa tai päätyvät polulle, joka ei johda mihinkään. Yksityinen aliverkko on juuri se, mitä tällainen reitti kuljetti.

Samalla henkiin jääneellä käytöksellä on toinen tekijä: uudelleenohjausasetus työnnetyssä lohkossa, joka siirtää tavallisen lähtevän liikenteen tunneliin lippujensa mukaisesti. Yhdyskäytävän poistaminen ei poista sitä käytöstä eikä heikennä sitä. Tuloksena on molempien tilojen huonoin: julkinen liikenne kaapataan edelleen ja tunnelin oikeuttanut yksityinen kohde on nyt saavuttamaton. Siksi myös toinen muokkaus, samassa hengessä tehtynä, ei muuta mitään.

Neljä vipua, neljä eri työtä

Tässä keskustelussa neljää direktiiviä siteerataan ristiin, ja vain yksi niistä hallitsee kattavuutta eli sitä, mitkä kohteet ylipäätään reititetään tunnelin kautta. Toinen asettaa seuraavan hypyn, jota reitit käyttävät, kolmas asentaa yhden etuliitteen ja neljäs heittää pois kaiken, mitä palvelin työnsi, mukaan lukien käyttöönoton tarvitsemat yksityiset reitit. Taulukko lajittelee ne sen mukaan, mitä ylläpitäjä yrittää muuttaa, ei nimen mukaan, koska nimet aiheuttavat sekaannuksen. Käsittele niitä neljänä erillisenä päätöksenä ja valitse se, jonka todella haluat kumota.

Käytännössä kaikki neljä saapuvat usein yhdessä työnnetyssä lohkossa rivi riviltä, mikä saa ne näyttämään yhden asetuksen osilta. Ne eivät ole, ja OpenVPN-viite dokumentoi ne erillisinä mekanismeina juuri siksi. Sen selvittäminen, mitä päätöstä olet kumoamassa, on työ; muokkaus on yksi rivi.

What you are trying to changeDirective that decides itWhat it leaves alone
Which destinations use the tunnelredirect-gatewayPer-prefix routes and resolver choice
The next hop a pushed route points atroute-gatewayCoverage of public destinations
One reachable prefixrouteEvery other destination, default path included
All pushed routing and DNS at onceroute-nopullNothing, which is the problem

Suodata työnnetty rivi, pidä seuraava hyppy

Jos kattavuus, josta valitat, saapuu työnnettynä asetuksena, kapea vastaus on jättää se asetus nimeltä huomiotta ja pitää muu työnnetty lohko koskemattomana. Suodattimeksi kirjoitettuna se näyttää alla olevalta riviltä, ja se kuuluu kyseisen asiakkaan profiiliin, ei palvelimen kokoonpanoon.

pull-filter ignore "redirect-gateway"

Kapeus on koko pointti. Koska suodatin vertaa tekstietuliitettä, lyhyempi kuvio osuu myös seuraavan hypyn direktiiviin, mikä kuorii juuri sen tiedon, josta yksityiset reitit riippuvat, ja toistaa alkuperäisen virheen uudessa asussa. Suodatin vaikuttaa myös vain työnnettyihin asetuksiin, joten se ei koskaan kosketa paikallisesti kirjoitettua tai verkonhallinnan asettamaa vastaavaa riviä. Yhdistä sen jälkeen uudelleen, koska elävä istunto ei arvioi uudelleen sitä, mitä palvelin työnsi.

Lue haku, älä taulukkoa

Kun olet ladannut profiilin uudelleen, kysy ytimeltä, mihin kaksi kohdetta todella menisivät: toinen yksityisen etuliitteen sisään ja toinen julkiseen internetiin. Päätaulukon täysi tuloste on vaikeampi lukea ja helpompi lukea väärin, koska reitti voi olla olemassa ja silti hävitä tarkemmalle osumalle. Käytäntöpohjaisessa reitityksessä myös sääntö, taulukko ja lähdeosoite kuuluvat tarkistukseen.

ip route get 10.40.7.25
ip route get 203.0.113.77
ip rule show

def1-muunnelma ansaitsee tuntemuksen, koska se jättää vanhan oletusmerkinnän näkyviin, kun taas pari puoli-oletusta voittaa haun. Siksi 0.0.0.0/0-rivi tulosteessa ei todista mitään itsessään. Haku vastaa kysymykseen, johon luettelo vain näyttää vastaavan.

DNS, IPv6 ja yksityinen reitti on vielä saatava toimimaan

Yhden IPv4-uudelleenohjauksen hylkääminen ei kerro mitään resolverista, joten työnnetty DNS-asetus voi jatkaa kyselyjen lähettämistä tunneliin, kun reitit näyttävät oikeilta. IPv6-oletus voi tehdä saman osoiteperheelle, johon IPv4-tarkistus ei koskaan koskenut. Molemmat tarvitsevat nimenomaisen päätöksen oletuksen sijaan. Vahvista sitten, että yksityinen palvelu vastaa edelleen, koska yksityisen reittinsä menettänyt jaettu tunneli ei ole jaettu tunneli, vaan rikkinäinen.

Yksi laajempi työkalu ansaitsee varoituksen: route-nopull heittää pois jokaisen työnnetyn reitin ja jokaisen työnnetyn DNS-asetuksen, mikä varmasti pysäyttää täystunnelin ja yhtä varmasti rikkoo yksityiset reitit, joista käyttöönotto riippuu, joten se on paljon suurempi vasara kuin yhteen asetukseen kohdistuva nimisuodatin. Tarkista yksityinen kohde, julkinen kohde ja resolveri jokaisen muutoksen jälkeen, ja pidä valmiiksi saatua kättelyä todisteena mistään muusta kuin kättelystä.

Aiheeseen liittyvät artikkelit