Tietokanta, joka toimii ennen VPN:n yhdistämistä ja epäonnistuu sen jälkeen, on harvoin tunnusongelma. Pilvipalomuurit täsmäävät lähdeosoitteita, ja täystunneli korvaa juuri sen, jota ne täsmäsivät. Ero sen välillä, mitä luulet kannettavasi lähettävän, ja sen välillä, mitä palvelin vastaanottaa, on koko vika, ja se on mitattavissa yhdellä askeleella.

Mikä lähdeosoitteesta tulee

Täystunnelissa jokainen paketti lähtee VPN-yhdyskäytävän kautta, joten palvelin näkee yhdyskäytävän lähtöosoitteen eikä kotiyhteyttäsi. Jos polulla on välityspalvelin, perille tulee sen osoite. Molemmat ovat laillisia lähteitä, eikä kumpikaan ole alkuperäisen sääntösi osoite.

Azure SQL:n palvelin- ja tietokantatason palomuurisäännöt täsmäävät sen asiakasosoitteen, joka saapuu loogiselle palvelimelle, ja täystunnelin jälkeen se on lähtöosoite. AWS:n suojausryhmä, joka sallii yhden osoitteen, käyttäytyy samalla tavalla. Paketti pudotetaan ennen todennusta, joten saamasi virhe näyttää verkkohäiriöltä eikä käyttöoikeusongelmalta. Juuri siksi ihmiset alkavat nollata salasanoja.

Missä sallittujen luettelo päätetään

Lue sääntö, joka vastaa epäonnistuvaa polkua, älä sääntöä, jonka muistat luoneesi. Pane merkille sen laajuus, portti, protokolla ja se, arvioidaanko se ennen mitään identiteettitarkistusta.

Päätä sitten, mikä kerros omistaa päätöksen laillisesti. Osoitesääntö vastaa siihen, mistä liikenne tulee. Yksityinen päätepiste vastaa siihen, onko palvelu ylipäätään tavoitettavissa yksityistä polkua pitkin. Jaetun tunnelin poikkeus vastaa siihen, mitkä kohteet ohittavat tunnelin. Ne eivät ole vaihdettavissa, ja kukin epäonnistuu eri tavalla, kun tunneli muuttuu.

Kolme korjausta, kolme kerrosta

Jokainen alla oleva vaihtoehto korjaa kulun eri syystä, ja väärän valinta tuottaa yhteyden, joka toimii seuraavaan yhdyskäytävän muutokseen asti.

RepairLayer it changesWhat it does not fix
Add the egress address to the ruleSource address matchingNothing about routing, and it breaks when the egress moves
Use a private endpointWhether the service is reached privatelyA client that still resolves the public name
Add a split-tunnel exceptionWhich flows bypass the tunnelAn expired credential or a wrong password

Lähtöosoitteen lisääminen on pienin muutos ja haurain, koska uusi yhdyskäytävä tai eri alue tekee siitä hiljaa kelvottoman. Dokumentoi osoite tunnelin määritelmän viereen, jotta ne liikkuvat yhdessä. Väliaikainen laaja alue on diagnoosi, ei korjaus; sen paikoilleen jättäminen on se tapa, jolla sisäiset palvelut päätyvät näkyviin.

Miksi hallinnoitu alusta ei voi liittyä tunneliin

Sovellusalustat kuten Heroku, AppHarbor tai CloudBees ajavat koodiasi ympäristössä, jossa ei ole tun- tai tap-laitetta eikä oikeuksia sellaista luoda. Niiden saapuvan liikenteen malli on HTTP, ei mielivaltainen kuunteleva pistoke. Buildpack, joka toimittaa VPN-binäärin, ei silti löydä paikkaa liitännälle. Toimivat mallit ovat staattinen lähtöosoite, jonka tietokanta voi sallia, alustan tarjoama yksityinen yhteystuote tai DMZ:ssä oleva välityspalvelin, johon pääsee HTTPS:n kautta.

Tuo välityspalvelin on käyttöpolku omalla todennuksellaan ja lokituksellaan. Se ei tee alustasta VPN:si jäsentä, ja sen kuvaaminen niin tuottaa sääntöjä, joita kukaan ei voi auditoida.

Tarkista siltä asiakkaalta, joka epäonnistui

Yhdistä uudelleen ja toista asiakkaan tarkka polku. Tarkista lähdeosoite, jonka palvelu kirjaa, reitti, jonka asiakas valitsee tietokannan nimelle, ja varsinaisen kyselyn tulos tässä järjestyksessä. Yhdyskäytävältä tehty testi todistaa, että yhdyskäytävä toimii, mitä ei koskaan epäilty. Jos yhteys nyt todennetaan ja kysely yhä epäonnistuu, jäljellä oleva ongelma on tietokannan käyttöoikeus.

Käy nämä säännöt läpi aina, kun tunneli muuttuu. Vaihdettu yhdyskäytävä tai uusi lähtöalue katkaisee polun ilman mitään muutosta sovelluksen kokoonpanossa.

Aiheeseen liittyvät artikkelit