Yksi laite voi katsoa kahteen suuntaan samaan aikaan: liikkuvat käyttäjät yhdistävät sisään, ja sama laatikko yhdistää ulos ulostulopalveluntarjoajalle, jotta valittu liikenne lähtee toisen verkon kautta. Molempien palvelujen käyttöönotto kestää minuutteja; niiden rinnakkaiselo vaatii suunnitelman, koska toinen rooli kirjoittaa uudelleen reititystaulun, josta ensimmäinen riippuu. Kolme ehtoa ratkaisee, toimiiko järjestely, nimittäin säilyttääkö saapuva palvelu oman paluureittinsä, tavoittaako lähtevä tunneli yhä vastapuolensa ja valitaanko liikenne, jonka halusit välittää, ulostulolle. Erehdy yhdessä ja saat kaksi tunnelia, jotka molemmat ilmoittavat yhteydestä, kun niiden välillä ei kulje mitään hyödyllistä. Alla olevat tarkistukset vahvistavat kunkin ehdon siinä järjestyksessä, jossa viat yleensä ilmenevät.

Nimeä kaksi roolia ennen kuin kosket asetusta

Kirjoita neljä tosiseikkaa jokaisesta instanssista: sen etävastapuoli, todennusmateriaali, jakamasi osoitepooli ja sen takana olevat verkot. Kaksi instanssia ovat laitteella erillisiä objekteja ja niiden pitäisi pysyä erillisinä myös muistiinpanoissasi. Lähes jokainen myöhempi hämmentävä oire tulee niiden arvojen sekoittamisesta, ja kaksi instanssia, jotka jakavat yhden muistiinpanosarjan, on se tapa, jolla väärä pooli päätyy väärään kenttään.

Saapuva palvelu tarvitsee tunneliverkon, joka ei mene päällekkäin lähtevän tunnelin osoitteiden tai minkään laitteen reitittämän yksityisverkon kanssa. Päällekkäisyys on ainoa virhe, joka tuottaa oireita molemmissa rooleissa yhtä aikaa, ja paperilla sen kiinni saaminen on paljon halvempaa. Vertaa molempia pooleja ja jokaista reititettyä yksityisverkkoa yhdessä paikassa ennen kuin määrität kumpaakaan palvelua.

Jaettu laitteisto ei tarkoita jaettuja tunnuksia, eikä etäkäyttöpoolin asiakasvarmennetta pitäisi voida käyttää ulostulopalveluntarjoajaa vastaan. Erillinen materiaali tekee myös peruuttamisesta paikallisen päätöksen koko laivastoa koskevan tapahtuman sijaan.

Pidä palvelimen vastaukset WAN-polulla

Vastaukset, jotka laite itse tuottaa, ovat huolimattoman oletusreitin ensimmäinen uhri. Kun liikkuvan käyttäjän kapseloitu paketti saapuu, vastaus on paikallisesti syntynyttä liikennettä, ja sen on poistuttava sen liitännän kautta, jota pitkin käyttäjä tuli. Jos lähtevä asiakas on asentanut oletusreitin, joka nappaa sen, vastaus menee väärään tunneliin ja istunto pysähtyy palvelun näyttäessä yhä terveeltä.

Yksikään valintaruutu ei ratkaise tätä, koska päätös koskee sitä, mitä liikennettä lähtevä asiakas saa napata. Joko älä vedä yhtään reittiä ja ohjaa vain valitsemasi, tai vedä reitit ja lisää poikkeukset, jotka pitävät laitteen omat palvelut käynnissä. Kirjoita valinta instanssin viereen, tai seuraava henkilö olettaa toisen.

netstat -rn | head -20
pfctl -sr | grep -i vpn
ifconfig | grep -A3 ovpn

Lue reititystaulua pisimmän osuman mukaan, älä sen järjestyksen mukaan, jossa konfiguroit jotain. Kysymys on, mikä merkintä voittaa ulostulon vastapuolen osoitteelle ja mikä merkintä voittaa saapuvan palvelun vastaukselle, ja nämä kaksi vastausta voivat erota.

Älä anna lähtevän tunnelin syödä omaa päätepistettään

Lähtevän asiakkaan on tavoitettava vastapuolensa julkinen osoite, jotta tunneli ylipäätään muodostuu. Jos tämä osoite on itse reititetty tunneliin, asiakas jahtaa omaa häntäänsä: siirto ei nouse koskaan, tai se nousee ja putoaa heti, kun reitti asennetaan. Loki näyttää todennuksen aikakatkaisulta eikä reititysvialta, minkä vuoksi reitti ansaitsee ensimmäisen tarkistuksen.

Tarkista reitti ennen tunnuksia ja uudelleen, kun tunneli on ylhäällä, koska merkintä voi olla käynnistyksessä oikein ja minuuttia myöhemmin väärin. Vastapuolen osoitteen on osoitettava tavalliselle WAN-polulle, ei koskaan tunnelilaitteelle. Kun siirto on vakaa, kiinnostava kysymys siirtyy välitettyyn liikenteeseen, joka on seuraava päätös.

netstat -rn | grep -F '198.51.100.10'
traceroute -n 198.51.100.10

Valitse, ketkä käyttäjät saavat ulostulon

Lähdepolitiikka kuuluu sisääntuloon, jossa liikenne tulee laitteeseen, joten valitse etäkäyttöpooli tai sitä kapeammat identiteetit. Säilytä yksityiset kohteet ja hallintapoikkeukset, joita ei koskaan saa lähettää ulostuloon, ja aseta nämä säännöt laajan säännön eteen. Ulostulopolku tarvitsee sitten oman käännöksensä tai reititetyn paluujärjestelyn, mikä useimmissa suunnitelmissa tarkoittaa lähtevää NATia ulostuloliitännässä poolin kattaen. Käännös ei valitse ulostuloa; se vain kirjoittaa uudelleen sen, mikä on jo lähtenyt, joten NAT-sääntö asiaankuulumattomalla WANilla ei muuta valinnassa mitään.

Vahvista, että etäpää sallii tästä suunnitelmasta välitetyn liikenteen, koska jotkut palveluntarjoajat sallivat ja jotkut eivät. Ero näkyy tunnelina, joka yhdistää eikä kanna mitään, ja se on helppo lukea paikalliseksi viaksi. Testaa kolme virtaa erikseen, koska ne epäonnistuvat toisistaan riippumatta ja kaksi kolmesta on puoliksi rakennettu suunnitelma.

openvpn --config user07.ovpn
curl -sS https://ifconfig.me
curl --interface 10.10.10.1 -sS https://intranet.corp.example/health

Ensimmäinen komento on liikkuvan käyttäjän ulompi yhteys, ja se toimii, kun asiakas ilmoittaa alustusjakson valmistuneen. Toinen, tuosta yhdistetystä kannettavasta ajettuna, ilmoittaa ulostulopalveluntarjoajan osoitteen eikä sinun WAN-osoitettasi. Kolmas ajetaan laitteella poolin osoitteeseen sidottuna, ja se testaa lähdepolitiikkaa välitetylle liikenteelle osallistamatta lainkaan etäkäyttäjää. Jos se vastaa sen sijaan WANista, politiikka ei osunut, eikä mikään NATin muokkaus korjaa valintaongelmaa.

Päätä, mitä tapahtuu, kun ulostulo pettää

Kirjoita vikatilannekäyttäytyminen muistiin ennen kuin se tapahtuu: kun lähtevä tunneli putoaa, palaavatko käyttäjät tavalliselle WANille vai estetäänkö heidät, kunnes ulostulo palaa? Molemmat vastaukset ovat perusteltavissa, eikä laite valitse puolestasi. Poistettu reitti tai kuolleeseen yhdyskäytävään osoittava politiikka ei automaattisesti tuota täydellisen eston tulosta. Jos haluat eston, politiikan on sanottava se selvästi, ja se on testattava ottamalla ulostulo pois sen sijaan, että siitä puhutaan. Jos haluat paluun, kerro siitä käyttäjille, koska liikenne, joka hiljaa ottaa tavallisen polun, on juuri se liikenne, jonka joku luuli olevan katettu.

Poista asiakasinstanssi käytöstä, katso mitä yhteydessä oleva käyttäjä yhä tavoittaa, ja käynnistä se sitten uudelleen. Pyyntö, joka aikakatkaistaan, on pyytämäsi täydellisen eston tulos; se, joka vastaa WAN-osoitteella, on paluu, jota et dokumentoinut. Toista tarkistus IPv6:lle ja DNS:lle, koska IPv4:lle kirjoitettu politiikka ei sano mitään AAAA-liikenteestä ja minkä tahansa tunnelin työntämä resolveri vastaa sieltä, mistä kysely todella lähtee.

pfSsh.php playback svc stop openvpn client 2
curl --max-time 6 -sS https://ifconfig.me
pfSsh.php playback svc start openvpn client 2

Netgaten reititetyn OpenVPN:n resepti näyttää, miten lähdepolitiikka, liitännän osoitus ja lähtevä käännös sopivat yhteen, ja sen sivustoittainen laajuus on se osa, jota ei pidä kopioida kokonaan. Se, mitä se ei kerro, on se, minkä kolmesta yllä olevasta ehdosta oma suunnitelmasi on jo rikkonut.

Aiheeseen liittyvät artikkelit