Delen via


Connectiviteitsarchitectuur voor Azure SQL Managed Instance

van toepassing op:Azure SQL Managed Instance

In dit artikel wordt de connectiviteitsarchitectuur in Azure SQL Managed Instance beschreven en wordt beschreven hoe onderdelen communicatieverkeer voor een beheerd exemplaar leiden.

Overzicht

In SQL Managed Instance wordt een exemplaar in het virtuele Azure-netwerk geplaatst en binnen het subnet dat is toegewezen aan beheerde exemplaren. De implementatie biedt:

  • Een beveiligd IP-adres van een virtueel netwerk (VNet-lokaal).
  • De mogelijkheid om een on-premises netwerk te verbinden met SQL Managed Instance.
  • De mogelijkheid om SQL Managed Instance te verbinden met een gekoppelde server of een ander on-premises gegevensarchief.
  • De mogelijkheid om SQL Managed Instance te verbinden met Azure-resources.

Architectuur voor connectiviteit op hoog niveau

SQL Managed Instance bestaat uit serviceonderdelen die worden gehost op een toegewezen set geïsoleerde virtuele machines die zijn gegroepeerd op vergelijkbare configuratiekenmerken en zijn gekoppeld aan een virtueel cluster. Sommige serviceonderdelen worden geïmplementeerd in het subnet van het virtuele netwerk van de klant, terwijl andere services werken binnen een beveiligde netwerkomgeving die Door Microsoft wordt beheerd.

diagram met de architectuur voor connectiviteit op hoog niveau voor Azure SQL Managed Instance na november 2022.

Klanttoepassingen kunnen verbinding maken met SQL Managed Instance en databases in het virtuele netwerk, gekoppeld virtueel netwerk of netwerk dat is verbonden met VPN of Azure ExpressRoute, opvragen en bijwerken.

In het volgende diagram ziet u entiteiten die verbinding maken met SQL Managed Instance. Ook worden de resources weergegeven die moeten communiceren met een beheerd exemplaar. Het communicatieproces onderaan het diagram vertegenwoordigt klanttoepassingen en hulpprogramma's die als gegevensbronnen verbinding maken met SQL Managed Instance.

diagram met entiteiten in de connectiviteitsarchitectuur voor Azure SQL Managed Instance na november 2022.

SQL Managed Instance is een platform als een service met één tenant die in twee vlakken werkt: een gegevensvlak en een besturingsvlak.

Het gegevensvlak wordt geïmplementeerd in het subnet van de klant voor compatibiliteit, connectiviteit en netwerkisolatie. Het gegevensvlak is afhankelijk van Azure-services zoals Azure Storage, Microsoft Entra ID (voorheen Azure Active Directory) voor verificatie- en telemetrieverzamelingsservices. U ziet verkeer dat afkomstig is van subnetten die SQL Managed Instance bevatten naar die services.

Het besturingssysteem omvat de functies voor implementatie, beheer en onderhoud van kernservices via geautomatiseerde agents. Deze agents hebben exclusieve toegang tot de rekenresources die de service gebruiken. U kunt ssh of Remote Desktop Protocol niet gebruiken om toegang te krijgen tot deze hosts. Alle communicatie op het besturingsvlak wordt versleuteld en ondertekend met behulp van certificaten. Sql Managed Instance controleert deze certificaten voortdurend met behulp van certificaatintrekkingslijsten om de betrouwbaarheid van de communicerende partijen te controleren.

Communicatieoverzicht

Toepassingen kunnen verbinding maken met SQL Managed Instance via drie typen eindpunten: VNet-lokaal eindpunt, openbaar eindpunten privé-eindpunten. Deze eindpunten vertonen verschillende eigenschappen en gedragingen die geschikt zijn voor verschillende scenario's.

Diagram dat het bereik van zichtbaarheid laat zien voor VNet-lokale, publieke en private eindpunten naar een Azure SQL Managed Instance.

VNet-lokaal eindpunt

Het VNet-lokale eindpunt is de standaardinstelling om verbinding te maken met SQL Managed Instance. Het is een domeinnaam in de vorm van <mi_name>.<dns_zone>.database.windows.net. Deze domeinnaam wordt omgezet in een IP-adres uit het adresbereik van het subnet. Het VNet-lokale eindpunt kan worden gebruikt om verbinding te maken met een met SQL beheerd exemplaar in alle standaardconnectiviteitsscenario's. De poort van het VNet-lokale eindpunt is 1433.

VNet-lokaal eindpunt ondersteunt proxy- en omleidingsverbindingstypen.

Wanneer u verbinding maakt met het VNet-lokale eindpunt, gebruikt u altijd de domeinnaam en staat u inkomend verkeer toe op de vereiste poort(en) in het hele subnetbereik, omdat het onderliggende IP-adres af en toe kan veranderen.

Openbaar eindpunt

Het openbare eindpunt is een domeinnaam in de vorm van <mi_name>.public.<dns_zone>.database.windows.net. Deze domeinnaam wordt omgezet in een openbaar IP-adres dat bereikbaar is vanaf internet. Een openbaar eindpunt is geschikt voor scenario's wanneer een beheerd exemplaar toegankelijk moet zijn via het openbare internet, bijvoorbeeld wanneer u er verbinding mee maakt vanuit een ander virtueel netwerk wanneer peering of privé-eindpunten niet beschikbaar zijn. Openbare eindpunten dragen alleen clientverkeer en kunnen niet worden gebruikt voor gegevensreplicatie tussen twee exemplaren, zoals failovergroepen of Managed Instance Link. De poort van het publieke eindpunt is 3342.

Het openbare eindpunt maakt altijd gebruik van het proxyverbindingstype ongeacht de instelling van het verbindingstype.

Wanneer u verbinding maakt met het openbare eindpunt, gebruikt u altijd de domeinnaam en staat u inkomend verkeer toe op poort 3342 in het hele subnetbereik, omdat het onderliggende IP-adres af en toe kan veranderen.

Meer informatie over het instellen van een openbaar eindpunt in Openbaar eindpunt configureren voor azure SQL Managed Instance.

Privé-eindpunten

Een privé-eindpunt is een optioneel vast IP-adres in een ander virtueel netwerk dat verkeer naar uw met SQL beheerde exemplaar leidt. Eén met Azure SQL beheerd exemplaar kan meerdere privé-eindpunten in meerdere virtuele netwerken hebben. Privé-eindpunten verzenden alleen clientverkeer en kunnen niet worden gebruikt voor gegevensreplicatie tussen twee instanties, zoals in het geval van failovergroepen of Managed Instance Link. De poort van het privé-eindpunt is 1143.

Privé-eindpunten maken altijd gebruik van het proxyverbindingstype ongeacht de instelling van het verbindingstype.

Wanneer u verbinding maakt met een privé-eindpunt, gebruikt u altijd de domeinnaam, omdat verbinding maken met Azure SQL Managed Instance via het IP-adres nog niet wordt ondersteund. Het IP-adres van een privé-eindpunt verandert echter niet.

Meer informatie over privé-eindpunten en hoe u deze configureert in Azure Private Link voor Azure SQL Managed Instance.

Connectiviteitsarchitectuur voor virtuele clusters

In het volgende diagram ziet u de conceptuele indeling van de virtuele clusterarchitectuur:

diagram met de connectiviteitsarchitectuur voor virtuele clusters voor Azure SQL Managed Instance.

De domeinnaam van het VNet-lokale eindpunt wordt omgezet in het privé-IP-adres van een interne load balancer. Hoewel deze domeinnaam is geregistreerd in een openbare DNS-zone (Domain Name System) en openbaar kan worden omgezet, behoort het IP-adres tot het adresbereik van het subnet en kan het alleen worden bereikt vanuit het virtuele netwerk.

Met de load balancer wordt verkeer omgeleid naar een sql Managed Instance-gateway. Omdat meerdere beheerde exemplaren binnen hetzelfde cluster kunnen worden uitgevoerd, gebruikt de gateway de hostnaam van sql Managed Instance, zoals te zien is in de verbindingsreeks om verkeer om te leiden naar de juiste SQL Engine-service.

De waarde voor dns-zone wordt automatisch gegenereerd wanneer u het cluster maakt. Als een nieuw gemaakt cluster als host fungeert voor een secundair beheerd exemplaar, wordt de zone-id gedeeld met het primaire cluster.

Netwerkvereisten

Voor Azure SQL Managed Instance moeten aspecten van het gedelegeerde subnet op specifieke manieren worden geconfigureerd, wat u kunt bereiken met behulp van de service-ondersteuningssubnetconfiguratie. Naast wat de service vereist, hebben gebruikers volledige controle over hun subnetnetwerkconfiguratie, zoals:

  • Verkeer op sommige of alle poorten toestaan of blokkeren
  • Vermeldingen toevoegen aan de routetabel om verkeer te routeren via virtuele netwerkapparaten of een gateway
  • Aangepaste DNS-resolutie configureren of
  • Een peering- of VPN-verbinding instellen

Als u wilt voldoen aan de criteria 'Conforme netwerkconfiguratie' in serviceovereenkomst voor Microsoft Online Services, moeten het virtuele netwerk en subnet waarin SQL Managed Instance wordt geïmplementeerd, voldoen aan de volgende vereisten:

  • toegewezen subnet: het subnet dat door SQL beheerd exemplaar wordt gebruikt, kan alleen worden gedelegeerd aan de SQL Managed Instance-service. Het subnet kan geen gatewaysubnet zijn en u kunt alleen SQL Managed Instance-resources in het subnet implementeren.
  • Subnetdelegatie: Het subnet van SQL Managed Instance moet worden gedelegeerd aan de Microsoft.Sql/managedInstances resourceprovider.
  • netwerkbeveiligingsgroep: er moet een netwerkbeveiligingsgroep zijn gekoppeld aan het subnet sql Managed Instance. U kunt een netwerkbeveiligingsgroep gebruiken om de toegang tot het gegevenseindpunt van sql Managed Instance te beheren door verkeer te filteren op poort 1433 en poorten 11000-11999 wanneer SQL Managed Instance is geconfigureerd voor omleidingsverbindingen. De service provisioneert automatisch regels en houdt ze actueel om een ononderbroken doorstroom van beheerverkeer mogelijk te maken.
  • routetabel: er moet een routetabel zijn gekoppeld aan het subnet sql Managed Instance. U kunt vermeldingen toevoegen aan deze routetabel, bijvoorbeeld om verkeer naar de locatie te routeren via een gateway van een virtueel netwerk of om de standaardroute 0.0.0.0/0 toe te voegen al het verkeer via een virtueel netwerkapparaat, zoals een firewall, door te leiden. Azure SQL Managed Instance richt automatisch de vereiste vermeldingen in de routetabel in en beheert deze.
  • Voldoende IP-adressen: het subnet SQL Managed Instance moet ten minste 32 IP-adressen hebben. Zie De grootte van het subnet bepalen voor sql Managed Instancevoor meer informatie. U kunt beheerde exemplaren implementeren in het bestaande netwerk nadat u deze hebt geconfigureerd om te voldoen aan de netwerkvereisten voor sql Managed Instance. Anders maakt u een nieuw netwerk en subnetaan.
  • Toegestaan door Azure-beleid: Als u Azure Policy gebruikt om te voorkomen dat resources worden aangemaakt of gewijzigd binnen een bereik dat een SQL Managed Instance-subnet of virtueel netwerk omvat, mag uw beleid niet voorkomen dat SQL Managed Instance zijn interne resources beheert. De volgende resources moeten worden uitgesloten van de beleidseffecten van weigering voor een normaal functionerende situatie.
    • Resources van het type Microsoft.Network/serviceEndpointPolicies, wanneer de resourcenaam begint met \_e41f87a2\_
    • Alle bronnen van type Microsoft.Network/networkIntentPolicies
    • Alle resources van het type Microsoft.Network/virtualNetworks/subnets/contextualServiceEndpointPolicies
  • Vergrendelingen in het virtuele netwerk: vergrendelingen op het virtuele netwerk van het toegewezen subnet, de bovenliggende resourcegroep of het abonnement kunnen af en toe invloed hebben op de beheer- en onderhoudswerkzaamheden van SQL Managed Instance. Wees extra voorzichtig bij het gebruik van resource locks.
  • Oplosbare openbare DNS-records: Als het virtuele netwerk is geconfigureerd voor het gebruik van een aangepaste DNS-server, moet de DNS-server openbare DNS-records kunnen oplossen. Het gebruik van functies zoals Microsoft Entra-verificatie vereist mogelijk het omzetten van meer volledig gekwalificeerde domeinnamen (FQDN's). Zie Het omzetten van privé-DNS-namen in Azure SQL Managed Instancevoor meer informatie.
  • Vereiste DNS-records: Beheerde exemplaren zijn afhankelijk van het correct oplossen van specifieke domeinnamen. Deze domeinnamen mogen niet worden overschreven in hun virtuele netwerken, hetzij via privézones van Azure DNS of door een aangepaste DNS-server. Anders kunnen beheerde exemplaren niet worden geïmplementeerd of zijn ze mogelijk niet beschikbaar. De volgende domeinen mogen niet worden overschreven: windows.net, database.windows.net, core.windows.net, blob.core.windows.net, table.core.windows.net, management.core.windows.net, monitoring.core.windows.net, queue.core.windows.net, graph.windows.net, login.microsoftonline.com, login.windows.net, servicebus.windows.neten vault.azure.net. Houd er echter rekening mee dat u nog steeds privé-eindpunten kunt maken in het virtuele netwerk van een beheerd exemplaar, zelfs tot de bronnen in de bovengenoemde domeinen. Privé-eindpunten maken gebruik van een DNS-mechanisme dat niet vereist dat een lokale DNS-server gezaghebbend wordt voor een hele zone.
  • AzurePlatformDNS-tag: als u de servicetag AzurePlatformDNS gebruikt om DNS-resolutie van het platform te blokkeren, is SQL Managed Instance mogelijk niet beschikbaar. Hoewel SQL Managed Instance ondersteuning biedt voor door de klant gedefinieerde DNS voor DNS-omzetting in de engine, is er een afhankelijkheid van Azure DNS voor platformbewerkingen.

Configuratie van door service ondersteunde subnetten

Om de beveiliging, beheerbaarheid en beschikbaarheid van services te verbeteren, maakt SQL Managed Instance gebruik van servicehulpbeleid voor subnetconfiguratie en netwerkintentie in de infrastructuur van het virtuele Azure-netwerk om het netwerk, de bijbehorende onderdelen en de routetabel te configureren om ervoor te zorgen dat aan de minimale vereisten voor SQL Managed Instance wordt voldaan.

Automatisch geconfigureerde regels voor netwerkbeveiliging en routetabel zijn zichtbaar voor de klant en voorzien van een van deze voorvoegsels:

  • Microsoft.Sql-managedInstances_UseOnly_mi- voor verplichte regels en routes
  • Microsoft.Sql-managedInstances_UseOnly_mi-optional- voor optionele regels en routes

Raadpleeg service-aided subnetconfiguratievoor meer informatie.

Voor meer informatie over de connectiviteitsarchitectuur en het beheerverkeer, zie Connectiviteit op hoog niveau.

Netwerkbeperkingen

De volgende beperkingen voor functies en verkeer van virtuele netwerken zijn van kracht:

  • privésubnetten: het implementeren van beheerde exemplaren in privésubnetten (waarbij standaard uitgaande toegang is uitgeschakeld) wordt momenteel niet ondersteund.
  • Database-e-mail naar externe SMTP-relays op poort 25: het verzenden van database-e-mail via poort 25 naar externe e-mailservices is alleen beschikbaar voor bepaalde abonnementstypen in Microsoft Azure. Exemplaren van andere abonnementstypen moeten een andere poort (bijvoorbeeld 587) gebruiken om contact op te maken met externe SMTP-relays. Anders kunnen exemplaren geen database-e-mail leveren. Zie Problemen met uitgaande SMTP-connectiviteit in Azureoplossen voor meer informatie.
  • Microsoft-peering: Het inschakelen van Microsoft-peering op ExpressRoute-circuits die rechtstreeks of transitief zijn gekoppeld aan een virtueel netwerk waarin SQL Managed Instance zich bevindt, is van invloed op de verkeersstroom tussen SQL Managed Instance-onderdelen binnen het virtuele netwerk en services waarvan deze afhankelijk is. Resultaat beschikbaarheidsproblemen. Implementaties van SQL Managed Instance in een virtueel netwerk waarvoor Microsoft-peering al is ingeschakeld, zullen naar verwachting mislukken.
  • globale peering van virtuele netwerken: peering van virtuele netwerken connectiviteit tussen Azure-regio’s werkt niet voor SQL Managed Instance-exemplaren die in subnetten zijn geplaatst die vóór 9 september 2020 zijn aangemaakt.
  • Peering van virtuele netwerken: configuratie: bij het tot stand brengen van peering van virtuele netwerken tussen virtuele netwerken die subnetten met SQL Managed Instances bevatten, moeten dergelijke subnetten verschillende routetabellen en netwerkbeveiligingsgroepen (NSG) gebruiken. Het opnieuw gebruiken van de routetabel en NSG in twee of meer subnetten die deelnemen aan peering van virtuele netwerken, veroorzaken connectiviteitsproblemen in alle subnetten met behulp van deze routetabellen of NSG, en veroorzaken dat de beheerbewerkingen van SQL Managed Instance mislukken.
  • NAT-gateway: als u Azure Virtual Network NAT- gebruikt om uitgaande connectiviteit met een specifiek openbaar IP-adres te beheren, is SQL Managed Instance niet beschikbaar. De SQL Managed Instance-service is momenteel beperkt tot het gebruik van de basic load balancer, die geen co-existentie biedt van binnenkomende en uitgaande stromen met Azure Virtual Network NAT.
  • IPv6 voor Azure Virtual Network: het implementeren van SQL Managed Instance in virtuele IPv4-/IPv6-netwerken met dubbele stack zal naar verwachting mislukken. Als u een netwerkbeveiligingsgroep of een routetabel koppelt aan door de gebruiker gedefinieerde routes (UDR's) die IPv6-adresvoorvoegsels bevat voor een subnet van sql Managed Instance, is SQL Managed Instance niet beschikbaar. Als u IPv6-adresvoorvoegsels toevoegt aan een netwerkbeveiligingsgroep of UDR die al is gekoppeld aan een subnet van een beheerd exemplaar, is SQL Managed Instance niet beschikbaar. Implementaties van SQL Managed Instance naar een subnet met een netwerkbeveiligingsgroep en UDR met al IPv6-voorvoegsels zullen naar verwachting mislukken.
  • TLS 1.2 wordt afgedwongen voor uitgaande verbindingen: Vanaf januari 2020 dwingt Microsoft TLS 1.2 af voor intraserviceverkeer in alle Azure-services. Voor SQL Managed Instance werd TLS 1.2 afgedwongen op uitgaande verbindingen die worden gebruikt voor replicatie en op gekoppelde serververbindingen met SQL Server. Als u een versie van SQL Server gebruikt die ouder is dan 2016 met SQL Managed Instance, moet u ervoor zorgen dat u tls 1.2-specifieke updates toepast.
  • Interne terugval naar Azure DNS-: beheerde exemplaren zijn afhankelijk van functionerende DNS-omzetting in hun virtuele netwerken. Als het virtuele netwerk van een beheerd exemplaar is geconfigureerd voor het gebruik van aangepaste DNS-server(s) en een DNS-aanvraag die is uitgegeven aan aangepaste DNS-server(s) niet wordt voltooid binnen een bepaald interval (1-2 seconden), zal het beheerde exemplaar de aanvraag herhalen met Azure DNS in dat virtuele netwerk.