Jokainen asiakasprofiili nimeää yhden palvelimen, joten käyttäjän näkökulmasta on yksi tunneli ja yksi paikka, jossa suojaus päättyy. Se, mitä tuon ensimmäisen yhdyskäytävän jälkeen tapahtuu, on suunnittelupäätös, jota asiakas ei koskaan näe, ja kaksi yleistä mallia käyttäytyvät tarkastelussa hyvin eri tavoin. Sarjaketjussa ensimmäinen yhdyskäytävä purkaa salauksen ja salaa uudelleen. Sisäkkäisessä ketjussa se poistaa ulomman kerroksen ja välittää sisätunnelin, jota se ei voi avata. Hyppyjen määrä on molemmissa sama, siksi ero on piirrettävä eikä laskettava.

Aloita asiakkaasta ja nimeä molemmat päät

Aloita siitä, mistä käyttäjä aloittaa, yhteysprofiilista. Se sisältää yhden etäosoitteen, yhden todennusmenetelmän ja, kun malli tukee sitä, reittiluettelon. Merkitse tuo ulompi tunneli asiakkaasta yhdyskäytävään A ja anna sille esimerkkiosoitteet: asiakkaan tunneliosoite 10.77.0.2, A:n osoite 10.77.0.1 ja A:n julkinen päätepiste 198.51.100.10, otettu TEST-NET-2-dokumentaatioalueelta, jotta mikään esimerkissä ei voi törmätä oikeaan isäntään.

Mikään siinä profiilissa ei mainitse yhdyskäytävää B, eikä se ole vika. Toinen hyppy kuuluu A:lle, ja asiakkaan ainoa velvoite on toimittaa liikenne A:lle ja hyväksyä se, mikä tulee takaisin. Päättääkö A tunnelin, välittääkö se sen vai avaako uuden, on kysymys, johon tämän läpikäynnin loppu vastaa, ja se ratkaisee, mitä A voi lukea.

Sarjassa: A purkaa salauksen ja salaa sitten uudelleen

Sarjamallissa A päättää liikenteen kahdesti. Se poistaa suojauksen asiakkaalta, saa sovelluksen IP-paketin ja lähettää sitten tuon paketin toisen tunnelin kautta, jonka A muodostaa kohti B:tä. Näiden kahden operaation välissä paketti on A:n välityspolulla tavallisena IP-pakettina, joka on osoitettu yksityiseen kohteeseen.

Tästä seuraa kaksi seurausta, jotka kannattaa sanoa suoraan. A voi soveltaa käytäntöä sisäiseen pakettiin reittien, suodatinsääntöjen sekä lähteen ja kohteen kirjaamisen muodossa, ja A:n on pidettävä kahta tunnistetietojoukkoa: yhtä palvelimena asiakkaalle ja toista B:n asiakkaana. Suojaus on olemassa joka hetki, mutta suojattava objekti vaihtaa identiteettiään A:ssa.

Tästä ei seuraa, että A lukee sovelluksen selkokielistä sisältöä. Kun asiakas ja palvelu käyttävät TLS:ää ja varmentavat toistensa varmenteet, A näkee TLS-tietuevirran eikä luettavaa pyyntöä. Sen vahvistaminen, mihin tuo suojaus päättyy, vaatii katseen palvelun varmenteketjuun, ei tunnelin kaavioon.

Sisäkkäin: A poistaa vain ulomman kerroksen

Sisäkkäisessä mallissa asiakas rakentaa ensin sisätunnelin B:hen ja kuljettaa sitten tuon tunnelin ulomman sisällä A:lle. A irrottaa ulomman otsikon, löytää sisätunnelin ja välittää sen pitämättä sen avaimia, joten sisäinen suojaus päättyy edelleen B:hen.

Silloin asiakkaan ylälinkki kuljettaa kahta kerrosta, kun taas A:n ja B:n välinen polku kuljettaa yhtä. A näkee sisätunnelin ulommat osoitteet, mikä riittää siihen, että tiedetään liikennettä olevan ja suunnilleen mihin se menee, eikä riitä hyötykuorman lukemiseen. Siinä on koko ero sarjatapaukseen, eikä mikään hyppylaskuri näytä sitä. Mitä A voi vielä tehdä, on kieltäytyä välittämästä sitä, mitä se ei voi lukea, ja se on aina tuon yhdyskäytävän operaattorin käytettävissä.

Sisäkkäisyys veloittaa tuosta ominaisuudesta. Jokainen kerros lisää otsikkoylikuormaa, joten MTU- ja MSS-suunnittelusta tulee pakollista eikä vain siistiä, ja polku, joka toimii yhdellä kerroksella, voi pudottaa suuria paketteja hiljaa kahdella. Jokainen kerros tarvitsee myös oman uudelleenyhteys- ja keepalive-käyttäytymisensä, ja yhden kerroksen vika näyttää toisen kautta osittaiselta katkokselta.

Piirrä havainnoijat, älä vain tunneleita

Tunnelit ovat piirroksen helppo osa. Havainnoijat ovat se, mistä mallissa on kyse, joten kirjoita yksi rivi jokaista näkökulmaa kohden ja täytä, mitä kukin voi todella lukea.

Vantage pointSerial chainNested chain
Client's access networkOuter tunnel onlyOuter tunnel only
Operator of AInner IP packet between A and BOuter addresses of the inner tunnel, not its payload
Path between A and BSecond tunnelSecond tunnel
Operator of BInner packet re-originated by APayload after the inner layer is removed
Service edgeTraffic from the exit addressTraffic from the exit address

Kaksi riviä sekoitetaan jatkuvasti: A:n operaattori ja asiakkaan tunnelin tarjoaja. Ne voivat olla yksi taho, eivätkä erilliset yhdyskäytävien nimet tee niistä riippumattomia. Riippumaton omistus vaatii erillisen hallinnollisen valvonnan, erilliset tunnistetiedot ja erillisen kirjaamisen.

Metatiedot selviävät molemmista malleista. Ajoitus, pakettikoot ja yhteyksien määrät pysyvät havaittavina jokaisella hypyllä, joten kaksi hyppyä nostaa korrelaation hintaa sen sijaan, että se poistaisi signaalin. Malli, joka lupaa näkymättömyyttä, kannattaa tarkistaa tuota luetteloa vasten ennen kuin kukaan luottaa siihen.

Käy vikapolut läpi ennen kuin valitset

Riko asioita tarkoituksella asiakkaan päästä siinä järjestyksessä, jossa käyttäjä ne kohtaisi. Aloita rajapinnasta ja sen MTU:sta, koska sisäkkäisyys epäonnistuu pakettikoossa paljon ennen kuin se epäonnistuu todennuksessa.

ip -4 addr show dev tun0
ip link show dev tun0 | grep mtu
ping -M do -s 1380 -c 2 10.77.1.1

Vahvista sitten suojauksen päätepisteet sen sijaan että olettaisit ne. Pyydä palvelulta sen varmenne mistä tahansa avoinna olevasta tunnelista käsin ja vertaa ketjua, jonka asiakas näkee, ketjuun, jonka palvelu todella esittää. Yhdyskäytävä, joka allekirjoittaa uudelleen tai sieppaa, muuttaa tuota varmennetta, ja tarkastus tulee näkyväksi yhdellä komennolla.

openssl s_client -connect intranet.example.com:443 -brief < /dev/null

Lopeta uudelleenyhteysmatriisiin: asiakkaan tunneli putoaa, B:n tunneli putoaa, A:n ja B:n välinen polku muuttuu. Kirjaa, mikä palaa ja mikä ei, ja putoaako sisäinen yhteys koskaan reitille sen aiotun kantajan ulkopuolelle. Kirjaa osoitteet, joita kukin testi käytti, koska toistaminen toisessa liityntäverkossa vastaa toiseen kysymykseen. Toista myös MTU-koe jokaisen uudelleenyhteyden jälkeen, koska muuttunut polku voi laskea käyttökelpoista kokoa liikuttamatta yhtäkään asetusriviä.

Valitse sarja, kun A:n on sovellettava käytäntöä sisäiseen pakettiin tai kun asiakas ei voi ajaa kahta pinottua tunnelia. Valitse sisäkkäisyys, kun sisäisen hyötykuorman on pysyttävä lukukelvottomana A:ssa. Kirjoita valinta muistiin havainnoijineen ja MTU-lukuineen, niin seuraavan ei tarvitse piirtää koko kuvaa uudelleen vastatakseen yhteen kysymykseen.

Aiheeseen liittyvät artikkelit