Anslutningsarkitektur för Azure SQL Managed Instance

Gäller för:Azure SQL Managed Instance

Den här artikeln beskriver anslutningsarkitekturen i Azure SQL Managed Instance och hur komponenter dirigerar kommunikationstrafik för en hanterad instans.

Översikt

I SQL Managed Instance placeras en instans i det virtuella Azure-nätverket och inuti det undernät som är dedikerat till hanterade instanser. Distributionen innehåller:

  • En säker IP-adress för virtuellt nätverk (VNet-lokalt).
  • Möjligheten att ansluta ett lokalt nätverk till SQL Managed Instance.
  • Möjligheten att ansluta SQL Managed Instance till en länkad server eller till ett annat lokalt datalager.
  • Möjligheten att ansluta SQL Managed Instance till Azure-resurser.

Kommentar

Funktionsvågen november 2022 introducerade ändringar i standardanslutningsstrukturen för SQL Managed Instance. Den här artikeln innehåller information om den aktuella arkitekturen och arkitekturen för instanser som ännu inte har registrerats i funktionsvågen. Mer information finns i funktionsvågen november 2022.

Funktionsvåg i november 2022

Funktionsvågen november 2022 introducerade följande ändringar i SQL Managed Instance-anslutningsarkitekturen:

  • Hanteringsslutpunkten har tagits bort.
  • Förenklade obligatoriska regler för nätverkssäkerhetsgrupper (en obligatorisk regel har tagits bort).
  • Ändrade obligatoriska regler för nätverkssäkerhetsgrupper så att de inte längre inkluderar utgående trafik till AzureCloud på port 443.
  • Förenklade routningstabellen (minskade obligatoriska vägar från 13 till 5).

Anslutningsarkitektur på hög nivå

SQL Managed Instance består av tjänstkomponenter som finns på en dedikerad uppsättning isolerade virtuella datorer som grupperas efter liknande konfigurationsattribut och som är anslutna till ett virtuellt kluster. Vissa tjänstkomponenter distribueras i kundens virtuella nätverksundernät medan andra tjänster fungerar i en säker nätverksmiljö som Microsoft hanterar.

Diagram that shows the high-level connectivity architecture for Azure SQL Managed Instance after November 2022.

Kundprogram kan ansluta till SQL Managed Instance och kan köra frågor mot och uppdatera databaser i det virtuella nätverket, peer-kopplade virtuella nätverk eller nätverk som är anslutna via VPN eller Azure ExpressRoute.

Följande diagram visar entiteter som ansluter till SQL Managed Instance. Den visar också de resurser som behöver kommunicera med en hanterad instans. Kommunikationsprocessen längst ned i diagrammet representerar kundprogram och verktyg som ansluter till SQL Managed Instance som datakällor.

Diagram that shows entities in the connectivity architecture for Azure SQL Managed Instance after November 2022.

SQL Managed Instance är en plattform som en tjänst för en klientorganisation som fungerar i två plan: ett dataplan och ett kontrollplan.

Dataplanet distribueras i kundens undernät för kompatibilitet, anslutning och nätverksisolering. Dataplanet är beroende av Azure-tjänster som Azure Storage, Microsoft Entra-ID (tidigare Azure Active Directory) för autentisering och telemetriinsamlingstjänster. Du ser trafik som kommer från undernät som innehåller SQL Managed Instance gå till dessa tjänster.

Kontrollplanet har funktioner för distribution, hantering och kärnunderhåll via automatiserade agenter. Dessa agenter har exklusiv åtkomst till de beräkningsresurser som använder tjänsten. Du kan inte använda ssh eller Fjärrskrivbordsprotokoll för att komma åt dessa värdar. All kontrollplanskommunikation krypteras och signeras med hjälp av certifikat. För att kontrollera tillförlitligheten hos kommunicerande parter verifierar SQL Managed Instance ständigt dessa certifikat med hjälp av listor över återkallade certifikat.

Kommunikationsöversikt

Program kan ansluta till SQL Managed Instance via tre typer av slutpunkter. Dessa slutpunkter hanterar olika scenarier och uppvisar distinkta nätverksegenskaper och beteenden.

Diagram that shows the scope of visibility for VNet-local, public, and private endpoints to an Azure SQL Managed Instance.

VNet-lokal slutpunkt

Den lokala VNet-slutpunkten är standardmetoden för att ansluta till SQL Managed Instance. Den VNet-lokala slutpunkten är ett domännamn i form av <mi_name>.<dns_zone>.database.windows.net som matchar en IP-adress från undernätets adresspool, därav VNet-local eller en slutpunkt som är lokal för det virtuella nätverket. Den VNet-lokala slutpunkten kan användas för att ansluta till en SQL Managed Instance i alla standardanslutningsscenarier.

VNet-lokala slutpunkter stöder omdirigeringsanslutningstypen.

När du ansluter till den VNet-lokala slutpunkten använder du alltid dess domännamn eftersom den underliggande IP-adressen ibland kan ändras.

Offentlig slutpunkt

Den offentliga slutpunkten är ett valfritt domännamn i form av <mi_name>.public.<dns_zone>.database.windows.net som matchar en offentlig IP-adress som kan nås från Internet. Offentlig slutpunkt tillåter endast TDS-trafik att nå SQL Managed Instance på port 3342 och kan inte användas för integreringsscenarier, till exempel redundansgrupper, länk till hanterad instans och liknande tekniker.

När du ansluter till den offentliga slutpunkten använder du alltid dess domännamn eftersom den underliggande IP-adressen ibland kan ändras.

Offentlig slutpunkt fungerar alltid i proxyanslutningstyp.

Lär dig hur du konfigurerar en offentlig slutpunkt i Konfigurera offentlig slutpunkt för Azure SQL Managed Instance.

Privata slutpunkter

En privat slutpunkt är en valfri fast IP-adress i ett annat virtuellt nätverk som dirigerar trafik till din SQL-hanterade instans. En Azure SQL Managed Instance kan ha flera privata slutpunkter i flera virtuella nätverk. Privata slutpunkter tillåter endast TDS-trafik att nå SQL Managed Instance på port 1433 och kan inte användas för integreringsscenarier, till exempel redundansgrupper, länk till hanterad instans och andra liknande tekniker.

När du ansluter till en privat slutpunkt använder du alltid domännamnet eftersom det inte stöds att ansluta till Azure SQL Managed Instance via dess IP-adress än.

Privata slutpunkter fungerar alltid i proxyanslutningstyp.

Läs mer om privata slutpunkter och hur du konfigurerar dem i Azure Private Link för Azure SQL Managed Instance.

Arkitektur för anslutning till virtuellt kluster

Det här avsnittet innehåller en närmare titt på anslutningsarkitekturen för virtuella kluster i SQL Managed Instance. Följande diagram visar den konceptuella layouten för det virtuella klustret:

Domännamnet för den VNet-lokala slutpunkten matchar den privata IP-adressen för en intern lastbalanserare. Även om det här domännamnet är registrerat i en offentlig DNS-zon (Domain Name System) och kan matchas offentligt, tillhör ip-adressen undernätets adressintervall och kan endast nås inifrån det virtuella nätverket som standard.

Lastbalanseraren dirigerar trafik till en SQL Managed Instance-gateway. Eftersom flera hanterade instanser kan köras i samma kluster använder gatewayen värdnamnet FÖR SQL Managed Instance enligt anslutningssträng för att omdirigera trafik till rätt SQL-motortjänst.

Värdet för zone-id genereras automatiskt när du skapar klustret. Om ett nyligen skapat kluster är värd för en sekundär hanterad instans delar det sitt zon-ID med det primära klustret.

Undernätskonfiguration med tjänststöd

För att förbättra tjänstens säkerhet, hanterbarhet och tillgänglighet tillämpar SQL Managed Instance en princip för nätverksinsikter på vissa element i den virtuella Azure-nätverksinfrastrukturen. Principen konfigurerar undernätet, den associerade nätverkssäkerhetsgruppen och routningstabellen för att säkerställa att minimikraven för SQL Managed Instance uppfylls. Den här plattformsmekanismen kommunicerar transparent nätverkskraven till användarna. Principens huvudmål är att förhindra felkonfiguration av nätverket och att säkerställa normala SQL Managed Instance-åtgärder och serviceavtalsåtagande. När du tar bort en hanterad instans tas även principen för nätverks avsikt bort.

En tjänststödd undernätskonfiguration bygger ovanpå delegeringsfunktionen för det virtuella nätverkets undernät för att tillhandahålla automatisk hantering av nätverkskonfiguration och för att aktivera tjänstslutpunkter.

Du kan använda tjänstslutpunkter för att konfigurera brandväggsregler för virtuella nätverk på lagringskonton som behåller säkerhetskopior och granskningsloggar. Även med tjänstslutpunkter aktiverade uppmanas kunderna att använda Azure Private Link för att få åtkomst till sina lagringskonton. Private Link ger mer isolering än tjänstslutpunkter.

Viktigt!

På grund av konfigurationsspecifika egenskaper för kontrollplanet aktiverar inte en tjänststödd undernätskonfiguration tjänstslutpunkter i nationella moln.

Nätverkskrav

Det undernät där SQL Managed Instance distribueras måste ha följande egenskaper:

  • Dedikerat undernät: Undernätet SQL Managed Instance använder kan endast delegeras till SQL Managed Instance-tjänsten. Undernätet kan inte vara ett gatewayundernät och du kan bara distribuera SQL Managed Instance-resurser i undernätet.
  • Delegering av undernät: Undernätet för SQL Managed Instance måste delegeras till Microsoft.Sql/managedInstances resursprovidern.
  • Nätverkssäkerhetsgrupp: En nätverkssäkerhetsgrupp måste vara associerad med undernätet SQL Managed Instance. Du kan använda en nätverkssäkerhetsgrupp för att styra åtkomsten till SQL Managed Instance-dataslutpunkten genom att filtrera trafik på port 1433 och portarna 11000-11999 när SQL Managed Instance har konfigurerats för omdirigeringsanslutningar. Tjänsten etablerar automatiskt regler och håller dem aktuella efter behov för att tillåta oavbrutet flöde av hanteringstrafik.
  • Routningstabell: En routningstabell måste associeras med undernätet SQL Managed Instance. Du kan lägga till poster i den här routningstabellen, till exempel för att dirigera trafik till en lokal via en virtuell nätverksgateway, eller lägga till standardvägen 0.0.0.0/0 som dirigerar all trafik via en virtuell nätverksinstallation, till exempel en brandvägg. Azure SQL Managed Instance etablerar och hanterar automatiskt de poster som krävs i routningstabellen.
  • Tillräckligt med IP-adresser: UNDERnätet för SQL Managed Instance måste ha minst 32 IP-adresser. Mer information finns i Fastställa storleken på undernätet för SQL Managed Instance. Du kan distribuera hanterade instanser i det befintliga nätverket när du har konfigurerat det för att uppfylla nätverkskraven för SQL Managed Instance. Annars skapar du ett nytt nätverk och undernät.
  • Tillåts av Azure-principer: Om du använder Azure Policy för att förhindra att resurser skapas eller ändras i ett omfång som innehåller ett SQL Managed Instance-undernät eller virtuellt nätverk får dina principer inte hindra SQL Managed Instance från att hantera sina interna resurser. Följande resurser måste undantas från principnekningseffekter för normal åtgärd:
    • Resurser av typen Microsoft.Network/serviceEndpointPolicies, när resursnamnet börjar med \_e41f87a2\_
    • Alla resurser av typen Microsoft.Network/networkIntentPolicies
    • Alla resurser av typen Microsoft.Network/virtualNetworks/subnets/contextualServiceEndpointPolicies
  • Lås på virtuellt nätverk: Lås på det dedikerade undernätets virtuella nätverk, dess överordnade resursgrupp eller prenumeration kan ibland störa hanterings- och underhållsåtgärder för SQL Managed Instance. Var särskilt försiktig när du använder resurslås.
  • Replikeringstrafik: Replikeringstrafik för redundansgrupper mellan två hanterade instanser ska vara direkt och inte dirigeras via ett hubbnätverk.
  • Anpassad DNS-server: Om det virtuella nätverket är konfigurerat att använda en anpassad DNS-server måste DNS-servern kunna matcha offentliga DNS-poster. Användning av funktioner som Microsoft Entra-autentisering kan kräva att du löser mer fullständigt kvalificerade domännamn (FQDN). Mer information finns i Lösa privata DNS-namn i Azure SQL Managed Instance.

Obligatoriska säkerhetsregler med tjänststödd undernätskonfiguration

För att säkerställa inkommande hanteringstrafikflöde krävs de regler som beskrivs i följande tabell. Reglerna tillämpas av principen för nätverks avsikt och behöver inte distribueras av kunden. Mer information om anslutningsarkitektur och hanteringstrafik finns i Anslutningsarkitektur på hög nivå.

Name Port Protokoll Källa Mål Action
healthprobe-in Valfri Valfri AzureLoadBalancer Undernät Tillåt
internal-in Valfri Valfri Undernät Undernät Tillåt

För att säkerställa trafikflödet för utgående hantering krävs de regler som beskrivs i följande tabell. Mer information om anslutningsarkitektur och hanteringstrafik finns i Anslutningsarkitektur på hög nivå.

Name Port Protokoll Källa Mål Action
AAD-out 443 TCP Undernät AzureActiveDirectory Tillåt
OneDsCollector-out 443 TCP Undernät OneDsCollector Tillåt
internal-out Valfri Valfri Undernät Undernät Tillåt
StorageP-out 443 Valfri Undernät Lagring.primaryRegion Tillåt
StorageS-out 443 Valfri Undernät Lagring.secondaryRegion Tillåt

Obligatoriska vägar med tjänststödd undernätskonfiguration

De vägar som beskrivs i följande tabell är nödvändiga för att säkerställa att hanteringstrafiken dirigeras direkt till ett mål. Vägarna framtvingas av principen för nätverks avsikt och behöver inte distribueras av kunden. Mer information om anslutningsarkitektur och hanteringstrafik finns i Anslutningsarkitektur på hög nivå.

Name Adressprefix Nästa hopp
AzureActiveDirectory AzureActiveDirectory Internet*
OneDsCollector OneDsCollector Internet*
Lagring.primaryRegion Lagring.primaryRegion Internet*
Lagring.secondaryRegion Lagring.secondaryRegion Internet*
subnet-to-vnetlocal Undernät Virtuellt nätverk

Kommentar

*Internetvärdet i kolumnen Nästa hopp instruerar gatewayen att dirigera trafiken utanför det virtuella nätverket. Men om måladressen är för en Azure-tjänst dirigerar Azure trafiken direkt till tjänsten via Azure-nätverket i stället för utanför Azure-molnet. Trafik mellan Azure-tjänster passerar inte internet, oavsett vilken Azure-region det virtuella nätverket finns i eller vilken Azure-region en instans av Azure-tjänsten distribueras till. Mer information finns i Trafikdirigering för virtuella Azure-nätverk.

Du kan också lägga till poster i routningstabellen för att dirigera trafik som har lokala privata IP-intervall som mål via den virtuella nätverksgatewayen eller den virtuella nätverksinstallationen.

Nätverksbegränsningar

TLS 1.2 tillämpas på utgående anslutningar: Från och med januari 2020 tillämpar Microsoft TLS 1.2 för intratjänsttrafik i alla Azure-tjänster. För SQL Managed Instance resulterade detta i att TLS 1.2 tillämpades på utgående anslutningar som används för replikering och på länkade serveranslutningar till SQL Server. Om du använder en version av SQL Server som är tidigare än 2016 med SQL Managed Instance kontrollerar du att du tillämpar TLS 1.2-specifika uppdateringar.

Följande funktioner för virtuella nätverk stöds för närvarande inte med SQL Managed Instance:

  • Databasmeddelande till externa SMTP-reläer på port 25: Att skicka databaspost via port 25 till externa e-posttjänster är endast tillgängligt för vissa prenumerationstyper i Microsoft Azure. Instanser av andra prenumerationstyper bör använda en annan port (till exempel 587) för att kontakta externa SMTP-reläer. Annars kan instanser misslyckas med att leverera databasmeddelande. Mer information finns i Felsöka problem med utgående SMTP-anslutning i Azure.
  • Microsoft-peering: Aktivering av Microsoft-peering på ExpressRoute-kretsar som peer-kopplas direkt eller transitivt med ett virtuellt nätverk där SQL Managed Instance finns påverkar trafikflödet mellan SQL Managed Instance-komponenter i det virtuella nätverket och de tjänster som den är beroende av. Resultat av tillgänglighetsproblem. SQL Managed Instance-distributioner till ett virtuellt nätverk som redan har Microsoft-peering aktiverat förväntas misslyckas.
  • Peering för virtuella nätverk – global: Peering-anslutning för virtuella nätverk i Azure-regioner fungerar inte för instanser av SQL Managed Instance som placeras i undernät som skapades före den 9 september 2020.
  • Peering för virtuella nätverk – konfiguration: När du upprättar peering för virtuella nätverk mellan virtuella nätverk som innehåller undernät med SQL Managed Instances måste sådana undernät använda olika routningstabeller och nätverkssäkerhetsgrupper (NSG). Om du återanvänder routningstabellen och NSG:n i två eller flera undernät som deltar i peering för virtuella nätverk orsakas anslutningsproblem i alla undernät med hjälp av dessa routningstabeller eller NSG, vilket gör att SQL Managed Instances hanteringsåtgärder misslyckas.
  • AzurePlatformDNS: Om du använder tjänsttaggen AzurePlatformDNS för att blockera plattforms-DNS-matchning skulle SQL Managed Instance inte vara tillgängligt. Även om SQL Managed Instance stöder kunddefinierad DNS för DNS-matchning i motorn finns det ett beroende av plattforms-DNS för plattformsåtgärder.
  • NAT-gateway: Om du använder Azure Virtual Network NAT för att styra utgående anslutning med en specifik offentlig IP-adress blir SQL Managed Instance otillgängligt. SQL Managed Instance-tjänsten är för närvarande begränsad till att använda den grundläggande lastbalanseraren, som inte tillhandahåller samexistens för inkommande och utgående flöden med Azure Virtual Network NAT.
  • IPv6 för Azure Virtual Network: Distribution av SQL Managed Instance till virtuella IPv4/IPv6-nätverk med dubbla staplar förväntas misslyckas. Om du associerar en nätverkssäkerhetsgrupp eller en routningstabell med användardefinierade vägar (UDR) som innehåller IPv6-adressprefix till ett SQL Managed Instance-undernät blir SQL Managed Instance otillgängligt. Om du lägger till IPv6-adressprefix i en nätverkssäkerhetsgrupp eller UDR som redan är associerad med ett undernät för hanterad instans blir SQL Managed Instance inte tillgängligt. SQL Managed Instance-distributioner till ett undernät med en nätverkssäkerhetsgrupp och UDR som redan har IPv6-prefix förväntas misslyckas.
  • Privata Azure DNS-zoner med ett namn som är reserverat för Microsoft-tjänster: Följande domännamn är reserverade namn: windows.net, database.windows.net, core.windows.net, blob.core.windows.net, table.core.windows.net, monitoring.core.windows.netmanagement.core.windows.net, queue.core.windows.net, graph.windows.netlogin.microsoftonline.com, login.windows.net, servicebus.windows.netoch vault.azure.net. Det går inte att distribuera SQL Managed Instance till ett virtuellt nätverk som har en associerad privat Azure DNS-zon som använder ett namn som är reserverat för Microsoft-tjänster. Om du associerar en privat Azure DNS-zon som använder ett reserverat namn med ett virtuellt nätverk som innehåller en hanterad instans blir SQL Managed Instance otillgängligt. Information om Private Link-konfiguration finns i DNS-konfiguration för privata slutpunkter i Azure.

Nästa steg