Toinen asiakkaasi yhdistää, ensimmäisen resurssit lakkaavat ratkeamasta ja tiketti sanoo, että työ-VPN rikkoi henkilökohtaisen. Mikään ei ole rikki vian mielessä: molemmat asiakkaat tekivät sen, mihin ne suunniteltiin, ja koneessa on vain yksi reititystaulukko. Törmäys koskee neljää resurssia, jotka kukin asiakas olettaa omistavansa. Käy ne läpi järjestyksessä, ja korjauksesta tulee yleensä suunnittelupäätös eikä korjaus.

Vaihe 1: selvitä, mikä asiakas omistaa lähdön

Lue nykyinen lähtöpäätös ennen kuin muutat mitään. Julkisen osoitteen reittihaku kertoo, mitä liitäntää ja seuraavaa hyppyä paketti käyttäisi juuri nyt, ja se on vastaus siihen, kuka voitti. Vertaa sitä asiakkaiden luomien liitäntöjen nimiin, jotka yleensä kantavat tuotteen tai protokollan nimeä. Jos haku osoittaa tunneliin, jota et odottanut, olet jo löytänyt törmäyksen.

ip route get 1.1.1.1
ip route show default
route print

Jotkut asiakkaat eivät korvaa oletusreittiä lainkaan; ne lisäävät kaksi puolikasta, yhden osoiteavaruuden alapuoliskolle ja yhden yläpuoliskolle, jotka yhdessä kattavat kaiken. Tämä jättää alkuperäisen oletusreitin näkyväksi ja saa manuaalisen korjauksen näyttämään oikealta, vaikka liikenne lähtee edelleen tunnelin kautta. Lue metriikka ja etuliitteen pituus, älä vain oletusmerkinnän olemassaoloa.

Pysähdy, jos molemmat asiakkaat vaativat saman etuliitteen samalla metriikalla. Ydin valitsee yhden, ja toinen näyttää yhdistetyltä kuljettaen mitään.

Vaihe 2: tarkista resolver ja päällekkäiset etuliitteet

DNS on toinen törmäys, ja se tuottaa tunnusomaisen oireen: nimet epäonnistuvat, kun osoitteet toimivat. Jokainen asiakas työntää oman resolverinsa läpi, ja viimeinen kirjoittaja voittaa seuraavat kyselyt. Kysy resolver-palvelulta, mitä se käyttää linkkiä kohden, sen sijaan että lukisit asiakkaan asetussivun.

resolvectl status
Get-DnsClientServerAddress
dig +short intranet.corp.example

Vertaa sitten yksityisiä etuliitteitä, joita kaksi verkkoa käyttävät. Jos molemmat osapuolet jakavat samasta alueesta, mikään asiakaspuolen järjestely ei korjaa sitä, koska kone ei voi kertoa, mikä 10.0.0.0/8-kohde kuuluu millekin tunnelille. Toinen puoli on numeroitava uudelleen tai käännettävä, ja se on keskustelu verkon omistajien kanssa, ei kokoonpanon muutos. Päällekkäisyys on ainoa törmäys, jossa rehellinen vastaus on, että suunnittelua on muutettava.

Pysähdy tähän, jos etuliitteet menevät päällekkäin. Kaikki myöhempi tässä listassa olettaa, etteivät ne mene.

Vaihe 3: valitse erottelukuvio, joka kestää

Luotettavat kuviot välttävät kahden asiakkaan ajamisen samaa reititystaulukkoa vastaan. Yksi asiakas, jolla on split-tunnel-käytäntö, joka tavoittaa molemmat yksityisverkot, on yksinkertaisin, edellyttäen etteivät kohteet mene päällekkäin ja käytännön omistaja on samaa mieltä. Virtuaalikone tai verkon nimiavaruus on seuraava askel, koska kumpikin saa oman taulukkonsa ja oman resolverinsa.

sudo ip netns add vpn2
sudo ip netns exec vpn2 ip link show
sudo ip netns exec vpn2 curl -sI https://intranet.corp.example/

Nimiavaruus antaa saman erottelun kuin virtuaalikone ilman toista käyttöjärjestelmää, mutta siinä on karkeat reunat: tunnelilaite on siirrettävä siihen ja sovellus on käynnistettävä sen sisällä. Erillinen fyysinen laite on usein vähiten yllättävä vaihtoehto henkilökohtaiselle VPN:lle hallitun työasiakkaan rinnalla. Yhden tunnelin pinoaminen toisen sisään ei ole erottelukuvio; sisemmän päätepisteen on pysyttävä tavoitettavissa ulomman tunnelin kautta, ja järjestely lisää päälle MTU- ja viiveongelmat.

Valitse yksi kuvio ja kirjoita, miksi. Yhden sovelluksen nimiavaruuden sekoittaminen split-tunneliin muille luo alkuperäisen törmäyksen vaikeammin debugattavassa muodossa.

Vaihe 4: vahvista molemmat verkot samasta istunnosta

Testaa yhtä resurssia kussakin yksityisverkossa ympäristöstä, jossa sovellus todella toimii, ei omasta kuorestasi, jos sovellus toimii nimiavaruuden sisällä. Tarkista lähtöliitäntä, ratkaistu osoite ja vastauskoodi yhdessä, koska onnistuminen yhdessä kolmesta voi peittää epäonnistumisen muissa. Toista uudelleenkäynnistyksen jälkeen, koska järjestys, jossa asiakkaat käynnistyvät, ratkaisee kuka voittaa. Juuri sen järjestyksen ihmiset unohtavat kirjata.

curl -sI https://intranet.corp.example/
curl -sI https://files.personal.example/
ip route get 10.20.30.40

Kirjaa asiakasversiot, liitännät, resolverin tila ja kunkin verkon etuliitteet. Kun asiakas päivittyy ja muuttaa reittikäyttäytymistään, tuo kirjaus on ero viiden minuutin korjauksen ja uudelleenrakennuksen välillä. Seuraava henkilö ei jaa muistiasi siitä, mikä tunneli nousi ensin.

Lista on valmis, kun pystyt nimeämään liitännän, joka omistaa oletusreitin, resolverin, jota kukin nimi käyttää, kuvion, joka erottaa toisen tunnelin, ja yhden pyynnön tuloksen verkkoa kohden uudelleenkäynnistyksen jälkeen. Kaikki vähempi on kokoonpano, joka sattuu toimimaan tänään.

Aiheeseen liittyvät artikkelit