Private Link ændrer, hvor en forbindelse lander, ikke hvad forbindelsen hedder. For Azure SQL Database er den forskel hele designet: den logiske server beholder sit navn, og det private endepunkt leverer en netværkspost, som navnet opløses til. At erstatte navnet med en IP-adresse er den ene ændring, der bryder TLS, legitimationsoplysninger og værktøjer på samme tid. To forbindelsesstrenge kan se ens ud og opføre sig helt forskelligt.

Behold orders-db.database.windows.net, og giv klienten et privat svar på det.

Navnet og adressen har forskellige opgaver

Navnet identificerer SQL-tjenesten, og det er, hvad certifikatet og login forventer. Den private adresse leverer en netværkspost inde i det tilsluttede virtuelle netværk. Forveksler man de to, får man en forbindelse, der når noget og ikke autentificerer mod noget.

Microsofts vejledning til Azure SQL kræver det normale servernavn fra klienter. En direkte IP og tilsvarende navnet med privatelink-præfiks er ikke et udskifteligt loginmål. Værktøjer, der accepterer en IP, accepterer den og fejler derefter på TLS eller på autentificering, hvilket skjuler den egentlige fejl. De fejl læses som legitimationsproblemer, indtil man ser på værtsnavnet i fejlen.

Hvad den private zone egentlig ændrer

Den private DNS-zone registrerer én adresse til serveren i privatelink-navnerummet, og zonen er knyttet til det virtuelle netværk, der skal bruge den. Opløsningen flytter sig; forbindelsesstrengen gør ikke. Formen nedenfor er en illustration, ikke en post, der skal indsættes i en offentlig zone.

Application name:        orders-db.database.windows.net
Private DNS zone:        privatelink.database.windows.net
Resolved private entry:  the approved private endpoint address

Vedligehold den post og dens zonetilknytning som infrastruktur, med en ejer og en gennemgangsdato.

To zoner med samme oprindelse og forskellige svar er den normale sluttilstand, ikke en konflikt. Offentlige klienter beholder det offentlige svar, og private klienter får endepunktets adresse. Fejltilstanden, man skal holde øje med, er delvis udbredelse af den private visning, hvor et undernet opløses privat, og et andet stille ikke gør.

Klienter uden for Azure har brug for en vej ind i den zone

En VPN-klient sidder uden for Azures resolver, så den private zone skal kunne nås fra den hybride vej. En Azure DNS-viderebefordrer eller Azure DNS Private Resolver kan betjene forespørgsler, der ankommer gennem det netværk. Microsofts vejledning er at videresende den relevante offentlige tjeneste-zone gennem den ordning i stedet for at antage, at klienter forespørger privatelink-navnet direkte. Klienter, der ikke kan opløse det private svar, falder tilbage til det offentlige uden at klage.

Hold videresendelsens omfang bevidst, fordi udskiftning af en offentlig zone i brug ødelægger navne, som erstatningen ikke indeholder.

Tildel i en rækkefølge, der holder identiteten fast

Trinnene har separate ejere: opret og godkend endepunktet, lever VPN-ruten, integrer privat DNS, og konfigurer derefter klienten med dens normale servernavn. At gøre DNS før ruten giver timeouts, der ligner DNS-fejl. At gøre klienten sidst holder én variabel i bevægelse ad gangen. Hvert trin har et observerbart resultat, så ingen af dem skal testes ved at gætte.

Et tilsluttet VPN-ikon vælger ikke i sig selv en privat destination.

Hvad et privat endepunkt ikke slår fra

Oprettelse af et privat endepunkt deaktiverer ikke automatisk offentlig adgang til den logiske server. Det er en separat udrulningsbeslutning, og den hører efter, at de tilsigtede private klienter er bekræftet fungerende. Behold en gendannelsesvej, og tag højde for programmer, der stadig bruger den offentlige indgang. At slå offentlig adgang fra først er måden, hvorpå en fungerende tjeneste bliver et afbrud med et pænt revisionsspor.

Kontroller også, hvilken forbindelsespolitik serveren bruger.

Redirect sender klienten til en port på noden efter en indledende gateway-forbindelse, hvilket ændrer, hvad klientnetværket skal tillade. Proxy holder trafikken på gatewayen. En vellykket TCP-håndtryk på én port er ikke hele loginforløbet.

Dette er Azure SQL Database, ikke SQL Managed Instance, som har sin egen forbindelsesmodel og ingen tilsvarende historie med private endepunkter. I begge tilfælde skal tre ting holdes adskilt: navnet, netværksposten og legitimationsoplysningen. At ændre, hvor en forbindelse rejser, bør aldrig ændre, hvilken tjeneste klienten tror, den taler med.

Relaterede artikler