Connectiviteitsarchitectuur van 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.
Notitie
In de functiegolf van november 2022 zijn wijzigingen aangebracht in de standaardverbindingsstructuur van SQL Managed Instance. Dit artikel bevat informatie over de huidige architectuur en de architectuur van exemplaren die nog niet zijn ingeschreven bij de functiegolf. Zie de functiegolf van november 2022 voor meer informatie.
Functiegolf november 2022
In de functiegolf van november 2022 zijn de volgende wijzigingen aangebracht in de connectiviteitsarchitectuur van SQL Managed Instance:
- Het beheereindpunt is verwijderd.
- Vereenvoudigde verplichte regels voor netwerkbeveiligingsgroepen (één verplichte regel verwijderd).
- Herziene verplichte regels voor netwerkbeveiligingsgroepen, zodat ze niet langer uitgaand zijn naar AzureCloud op poort 443.
- Vereenvoudigd de routetabel (gereduceerde verplichte routes van 13 tot 5).
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.
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.
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 besturingsvlak bevat de onderhoudsfuncties voor implementatie, beheer en kernservice via geautomatiseerde agents. Deze agents hebben exclusieve toegang tot de rekenresources die de service gebruiken. U kunt het Remote Desktop Protocol niet gebruiken ssh
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. Deze eindpunten dienen voor verschillende scenario's en vertonen verschillende netwerkeigenschappen en -gedrag.
VNet-lokaal eindpunt
Het lokale VNet-eindpunt is het standaardmiddel om verbinding te maken met SQL Managed Instance. Het VNet-lokale eindpunt is een domeinnaam in de vorm van <mi_name>.<dns_zone>.database.windows.net
die wordt omgezet in een IP-adres uit de adresgroep van het subnet; vandaar VNet-lokaal of een eindpunt dat lokaal is voor het virtuele netwerk. Het VNet-lokale eindpunt kan worden gebruikt om verbinding te maken met een met SQL beheerd exemplaar in alle standaardconnectiviteitsscenario's.
VNet-lokale eindpunten ondersteunen het verbindingstype omleiding.
Wanneer u verbinding maakt met het VNet-lokale eindpunt, moet u altijd de domeinnaam ervan gebruiken als het onderliggende IP-adres af en toe kan veranderen.
Openbaar eindpunt
Het openbare eindpunt is een optionele domeinnaam in de vorm die <mi_name>.public.<dns_zone>.database.windows.net
wordt omgezet in een openbaar IP-adres dat bereikbaar is vanaf internet. Met een openbaar eindpunt kan TDS-verkeer alleen sql Managed Instance bereiken op poort 3342 en kan het niet worden gebruikt voor integratiescenario's, zoals failovergroepen, beheerde exemplaarkoppeling en vergelijkbare technologieën.
Wanneer u verbinding maakt met het openbare eindpunt, gebruikt u altijd de domeinnaam als het onderliggende IP-adres af en toe kan veranderen.
Het openbare eindpunt werkt altijd in het proxyverbindingstype.
Meer informatie over het instellen van een openbaar eindpunt in Het openbare 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. Met privé-eindpunten kan TDS-verkeer alleen worden bereikt via SQL Managed Instance op poort 1433 en kan het niet worden gebruikt voor integratiescenario's, zoals failovergroepen, managed instance-koppeling en andere vergelijkbare technologieën.
Wanneer u verbinding maakt met een privé-eindpunt, gebruikt u altijd de domeinnaam omdat u via het IP-adres verbinding maakt met Azure SQL Managed Instance.
Privé-eindpunten werken altijd in het proxyverbindingstype.
Meer informatie over privé-eindpunten en het configureren ervan in Azure Private Link voor Azure SQL Managed Instance.
Connectiviteitsarchitectuur voor virtuele clusters
In deze sectie vindt u een beter overzicht van de connectiviteitsarchitectuur voor virtuele clusters van SQL Managed Instance. In het volgende diagram ziet u de conceptuele indeling van het virtuele cluster:
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 zone-id
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.
Met service ondersteunde subnetconfiguratie
Sql Managed Instance past een beleid voor netwerkintentie toe op bepaalde elementen van de infrastructuur van het virtuele Azure-netwerk om de beveiliging, beheerbaarheid en beschikbaarheid van de service te verbeteren. Het beleid configureert het subnet, de bijbehorende netwerkbeveiligingsgroep en de routetabel om ervoor te zorgen dat aan de minimale vereisten voor SQL Managed Instance wordt voldaan. Dit platformmechanisme communiceert transparant over netwerkvereisten voor gebruikers. Het belangrijkste doel van het beleid is om onjuiste netwerkconfiguratie te voorkomen en ervoor te zorgen dat normale sql Managed Instance-bewerkingen en service level agreement-toezeggingen worden gegarandeerd. Wanneer u een beheerd exemplaar verwijdert, wordt het beleid voor de netwerkintentie ook verwijderd.
Een serviceondersteunde subnetconfiguratie bouwt voort op de functie voor het delegeren van het virtuele netwerksubnet om automatisch netwerkconfiguratiebeheer te bieden en service-eindpunten in te schakelen.
U kunt service-eindpunten gebruiken om firewallregels voor virtuele netwerken te configureren voor opslagaccounts die back-ups en auditlogboeken bewaren. Zelfs als service-eindpunten zijn ingeschakeld, wordt klanten aangemoedigd om Azure Private Link te gebruiken voor toegang tot hun opslagaccounts. Private Link biedt meer isolatie dan service-eindpunten.
Belangrijk
Vanwege de specifieke configuratie van het besturingsvlak schakelt een service-aided subnetconfiguratie geen service-eindpunten in in nationale clouds in.
Vereisten voor netwerkfirewall
Het subnet waarin SQL Managed Instance wordt geïmplementeerd, moet de volgende kenmerken hebben:
- 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.
- Subnetdelegering: het subnet sql Managed Instance moet worden gedelegeerd aan de
Microsoft.Sql/managedInstances
resourceprovider. - Netwerkbeveiligingsgroep: Er moet een netwerkbeveiligingsgroep worden 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 richt automatisch regels in en houdt deze actueel om ononderbroken stroom 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 die al het verkeer door een virtueel netwerkapparaat, zoals een firewall, omleidt. 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 voor SQL Managed Instance bepalen voor meer informatie. U kunt beheerde exemplaren implementeren in het bestaande netwerk nadat u het hebt geconfigureerd om te voldoen aan de netwerkvereisten voor SQL Managed Instance. Als dat niet mogelijk is, kunt u een nieuw netwerk en subnet maken.
- Toegestaan door Azure-beleid: als u Azure Policy gebruikt om te voorkomen dat resources worden gemaakt of gewijzigd in een bereik dat een subnet of virtueel sql Managed Instance-netwerk bevat, mag uw beleid niet voorkomen dat SQL Managed Instance de interne resources beheert. De volgende resources moeten worden uitgesloten van beleid weigeren effecten voor normale werking:
- Resources van het type
Microsoft.Network/serviceEndpointPolicies
, wanneer de resourcenaam begint met\_e41f87a2\_
- Alle resources van het type
Microsoft.Network/networkIntentPolicies
- Alle resources van het type
Microsoft.Network/virtualNetworks/subnets/contextualServiceEndpointPolicies
- Resources van het type
- Vergrendelingen op virtueel netwerk: vergrendelingen op het virtuele netwerk van het toegewezen subnet, de bovenliggende resourcegroep of het abonnement kunnen af en toe invloed hebben op beheer- en onderhoudsbewerkingen van SQL Managed Instance. Let vooral op het gebruik van resourcevergrendelingen.
- Replicatieverkeer: replicatieverkeer voor failovergroepen tussen twee beheerde exemplaren moet direct zijn en niet worden gerouteerd via een hubnetwerk.
- Aangepaste DNS-server: 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 FQDN's (Fully Qualified Domain Names). Zie Voor meer informatie het omzetten van privé-DNS-namen in Azure SQL Managed Instance.
Verplichte beveiligingsregels met servicehulpsubnetconfiguratie
Om de verkeersstroom voor inkomend beheer te garanderen, zijn de regels die in de volgende tabel worden beschreven, vereist. De regels worden afgedwongen door het beleid voor netwerkintentie en hoeven niet door de klant te worden geïmplementeerd. Zie De connectiviteitsarchitectuur op hoog niveau voor meer informatie over de connectiviteitsarchitectuur en het beheerverkeer.
Naam | Poort | Protocol | Bron | Doel | Actie |
---|---|---|---|---|---|
healthprobe-in | Alle | Alle | AzureLoadBalancer | Subnet | Toestaan |
intern | Alle | Alle | Subnet | Subnet | Toestaan |
Om ervoor te zorgen dat de verkeersstroom voor uitgaand beheer wordt gegarandeerd, zijn de regels die in de volgende tabel worden beschreven, vereist. Zie De connectiviteitsarchitectuur op hoog niveau voor meer informatie over de connectiviteitsarchitectuur en het beheerverkeer.
Naam | Poort | Protocol | Bron | Doel | Actie |
---|---|---|---|---|---|
AAD-out | 443 | TCP | Subnet | AzureActiveDirectory | Toestaan |
OneDsCollector-out | 443 | TCP | Subnet | OneDsCollector | Toestaan |
internal-out | Alle | Alle | Subnet | Subnet | Toestaan |
StorageP-out | 443 | Alle | Subnet | Opslag.primaryRegion | Toestaan |
StorageS-out | 443 | Alle | Subnet | Opslag.secondaryRegion | Toestaan |
Verplichte routes met configuratie van servicehulpsubnet
De routes die in de volgende tabel worden beschreven, zijn nodig om ervoor te zorgen dat beheerverkeer rechtstreeks naar een bestemming wordt gerouteerd. De routes worden afgedwongen door het netwerkintentiebeleid en hoeven niet door de klant te worden geïmplementeerd. Zie De connectiviteitsarchitectuur op hoog niveau voor meer informatie over connectiviteitsarchitectuur en beheerverkeer.
Naam | Adresvoorvoegsel | Volgende hop |
---|---|---|
AzureActiveDirectory | AzureActiveDirectory | Internet* |
OneDsCollector | OneDsCollector | Internet* |
Opslag.primaryRegion | Opslag.primaryRegion | Internet* |
Opslag.secondaryRegion | Opslag.secondaryRegion | Internet* |
subnet-naar-vnetlocal | Subnet | Virtueel netwerk |
Notitie
* Met de internetwaarde in de kolom Volgende hop wordt de gateway geïnstrueerd om het verkeer buiten het virtuele netwerk te routeren. Als het doeladres echter voor een Azure-service is, routeert Azure het verkeer rechtstreeks naar de service via het Azure-netwerk in plaats van buiten de Azure-cloud. Verkeer tussen Azure-services gaat niet via internet, ongeacht in welke Azure-regio het virtuele netwerk bestaat of naar welke Azure-regio een exemplaar van de Azure-service wordt geïmplementeerd. Zie Routering van verkeer van virtuele Azure-netwerken voor meer informatie.
U kunt ook vermeldingen toevoegen aan de routetabel om verkeer met on-premises privé-IP-bereiken als bestemming te routeren via de gateway van het virtuele netwerk of het virtuele netwerkapparaat.
Netwerkbeperkingen
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 tls 1.2-specifieke updates toepassen.
De volgende functies voor virtuele netwerken worden momenteel niet ondersteund met SQL Managed Instance:
- 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 Azure oplossen voor meer informatie.
- Microsoft-peering: Het inschakelen van Microsoft-peering op ExpressRoute-circuits die rechtstreeks of transitief worden gekoppeld aan een virtueel netwerk waarin SQL Managed Instance zich bevindt, is van invloed op de verkeersstroom tussen onderdelen van SQL Managed Instance binnen het virtuele netwerk en services waarvan het afhankelijk is. Resultaat beschikbaarheidsproblemen. Implementaties van SQL Managed Instance in een virtueel netwerk waarvoor Microsoft-peering al is ingeschakeld, zullen naar verwachting mislukken.
- Peering van virtuele netwerken: peering van virtuele netwerken in Azure-regio's werkt niet voor exemplaren van SQL Managed Instance die zijn geplaatst in subnetten die vóór 9 september 2020 zijn gemaakt.
- Peering van virtuele netwerken: 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.
- AzurePlatformDNS: als u de Servicetag AzurePlatformDNS gebruikt om DNS-resolutie van het platform te blokkeren, is SQL Managed Instance 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 platform-DNS voor platformbewerkingen.
- NAT-gateway: Het gebruik van Azure Virtual Network NAT om uitgaande connectiviteit met een specifiek openbaar IP-adres te beheren, zorgt ervoor dat SQL Managed Instance niet beschikbaar is. 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 twee stacks 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.
- Privézones van Azure DNS met een naam die is gereserveerd voor Microsoft-services: De volgende domeinnamen zijn gereserveerde namen:
windows.net
, ,database.windows.net
,table.core.windows.net
management.core.windows.net
core.windows.net
login.microsoftonline.com
graph.windows.net
login.windows.net
monitoring.core.windows.net
queue.core.windows.net
blob.core.windows.net
en .servicebus.windows.net
vault.azure.net
Het implementeren van SQL Managed Instance in een virtueel netwerk met een gekoppelde Azure DNS-privézone waarvoor een naam wordt gebruikt die is gereserveerd voor Microsoft-services mislukt. Het koppelen van een privézone van Azure DNS die gebruikmaakt van een gereserveerde naam met een virtueel netwerk dat een beheerd exemplaar bevat, zorgt ervoor dat SQL Managed Instance niet beschikbaar is. Zie de DNS-configuratie van Azure Private Endpoint voor meer informatie over de configuratie van Private Link.
Volgende stappen
- Zie Wat is Azure SQL Managed Instance? voor een overzicht.
- Zie De architectuur van een virtueel cluster voor meer informatie
- Meer informatie over het instellen van een nieuw virtueel Azure-netwerk of een bestaand virtueel Azure-netwerk waar u SQL Managed Instance kunt implementeren.
- Bereken de grootte van het subnet waar u SQL Managed Instance wilt implementeren.
- Meer informatie over het maken van een beheerd exemplaar:
- Vanuit Azure Portal.
- Met behulp van PowerShell.
- Met behulp van een Azure Resource Manager-sjabloon.
- Met behulp van een Azure Resource Manager-sjabloon met een jumpbox en SQL Server Management Studio.