Architektura łączności dla usługi Azure SQL Managed Instance

Dotyczy:Azure SQL Managed Instance

W tym artykule opisano architekturę łączności w usłudze Azure SQL Managed Instance oraz sposób, w jaki składniki kierują ruch komunikacyjny dla wystąpienia zarządzanego.

Omówienie

W usłudze SQL Managed Instance wystąpienie jest umieszczane w sieci wirtualnej platformy Azure i w podsieci dedykowanej dla wystąpień zarządzanych. Wdrożenie zapewnia:

  • Bezpieczny adres IP sieci wirtualnej (VNet-local).
  • Możliwość łączenia sieci lokalnej z usługą SQL Managed Instance.
  • Możliwość połączenia usługi SQL Managed Instance z połączonym serwerem lub z innym lokalnym magazynem danych.
  • Możliwość łączenia usługi SQL Managed Instance z zasobami platformy Azure.

Uwaga

Fala funkcji z listopada 2022 r. wprowadziła zmiany w domyślnej strukturze łączności usługi SQL Managed Instance. Ten artykuł zawiera informacje o bieżącej architekturze i architekturze wystąpień, które nie zostały jeszcze zarejestrowane w fali funkcji. Aby uzyskać więcej informacji, zobacz fala funkcji z listopada 2022 r.

Fala funkcji z listopada 2022 r.

Fala funkcji z listopada 2022 r. wprowadziła następujące zmiany w architekturze łączności usługi SQL Managed Instance:

  • Usunięto punkt końcowy zarządzania.
  • Uproszczone obowiązkowe reguły sieciowej grupy zabezpieczeń (usunięto jedną obowiązkową regułę).
  • Poprawiono obowiązkowe reguły sieciowej grupy zabezpieczeń, aby nie uwzględniały już ruchu wychodzącego do usługi AzureCloud na porcie 443.
  • Uproszczono tabelę tras (zredukowano obowiązkowe trasy z zakresu od 13 do 5).

Architektura łączności wysokiego poziomu

Wystąpienie zarządzane SQL składa się ze składników usługi hostowanych w dedykowanym zestawie izolowanych maszyn wirtualnych, które są zgrupowane razem przez podobne atrybuty konfiguracji i przyłączone do klastra wirtualnego. Niektóre składniki usługi są wdrażane wewnątrz podsieci sieci wirtualnej klienta, podczas gdy inne usługi działają w bezpiecznym środowisku sieciowym zarządzanym przez firmę Microsoft.

Diagram przedstawiający architekturę łączności wysokiego poziomu dla usługi Azure SQL Managed Instance po listopadzie 2022 r.

Aplikacje klienckie mogą łączyć się z usługą SQL Managed Instance i wysyłać zapytania do baz danych w sieci wirtualnej, równorzędnej sieci wirtualnej lub sieci połączonej za pomocą sieci VPN lub usługi Azure ExpressRoute.

Na poniższym diagramie przedstawiono jednostki łączące się z usługą SQL Managed Instance. Przedstawia również zasoby, które muszą komunikować się z wystąpieniem zarządzanym. Proces komunikacji w dolnej części diagramu reprezentuje aplikacje i narzędzia klienta łączące się z usługą SQL Managed Instance jako źródła danych.

Diagram przedstawiający jednostki w architekturze łączności dla usługi Azure SQL Managed Instance po listopadzie 2022 r.

Sql Managed Instance to pojedyncza dzierżawa, platforma jako usługa, która działa w dwóch płaszczyznach: płaszczyznę danych i płaszczyznę sterowania.

Płaszczyzna danych jest wdrażana w podsieci klienta w celu zapewnienia zgodności, łączności i izolacji sieciowej. Płaszczyzna danych zależy od usług platformy Azure, takich jak Azure Storage, Microsoft Entra ID (dawniej Azure Active Directory) na potrzeby uwierzytelniania i usług zbierania danych telemetrycznych. Zobaczysz ruch pochodzący z podsieci zawierających usługę SQL Managed Instance przechodzący do tych usług.

Płaszczyzna sterowania obsługuje funkcje wdrażania, zarządzania i konserwacji podstawowej usługi za pośrednictwem zautomatyzowanych agentów. Ci agenci mają wyłączny dostęp do zasobów obliczeniowych, które obsługują usługę. Nie można uzyskać dostępu do tych hostów za pomocą ssh protokołu Remote Desktop Protocol ani protokołu Remote Desktop Protocol. Cała komunikacja płaszczyzny sterowania jest szyfrowana i podpisana przy użyciu certyfikatów. Aby sprawdzić wiarygodność komunikujących się stron, usługa SQL Managed Instance stale weryfikuje te certyfikaty przy użyciu list odwołania certyfikatów.

Omówienie komunikacji

Aplikacje mogą łączyć się z usługą SQL Managed Instance za pośrednictwem trzech typów punktów końcowych. Te punkty końcowe obsługują różne scenariusze i wykazują odrębne właściwości i zachowania sieciowe.

Diagram przedstawiający zakres widoczności dla punktów końcowych lokalnych, publicznych i prywatnych sieci wirtualnych w usłudze Azure SQL Managed Instance.

Lokalny punkt końcowy sieci wirtualnej

Lokalny punkt końcowy sieci wirtualnej jest domyślnym sposobem nawiązywania połączenia z usługą SQL Managed Instance. Lokalny punkt końcowy sieci wirtualnej jest nazwą domeny w postaci <mi_name>.<dns_zone>.database.windows.net , która jest rozpoznawana jako adres IP z puli adresów podsieci, w związku z tym sieć wirtualna-lokalna lub punkt końcowy, który jest lokalny dla sieci wirtualnej. Lokalny punkt końcowy sieci wirtualnej może służyć do nawiązywania połączenia z wystąpieniem zarządzanym SQL we wszystkich standardowych scenariuszach łączności.

Lokalne punkty końcowe sieci wirtualnej obsługują typ połączenia przekierowania.

Podczas nawiązywania połączenia z lokalnym punktem końcowym sieci wirtualnej zawsze używaj jego nazwy domeny, ponieważ podstawowy adres IP może czasami ulec zmianie.

Publiczny punkt końcowy

Publiczny punkt końcowy jest opcjonalną nazwą domeny w postaci <mi_name>.public.<dns_zone>.database.windows.net rozpoznawanej jako publiczny adres IP dostępny z Internetu. Publiczny punkt końcowy umożliwia dostęp do usługi TDS tylko do usługi SQL Managed Instance na porcie 3342 i nie może być używany do scenariuszy integracji, takich jak grupy trybu failover, link wystąpienia zarządzanego i podobne technologie.

Podczas nawiązywania połączenia z publicznym punktem końcowym zawsze używaj jego nazwy domeny, ponieważ podstawowy adres IP może czasami ulec zmianie.

Publiczny punkt końcowy zawsze działa w typie połączenia serwera proxy.

Dowiedz się, jak skonfigurować publiczny punkt końcowy w temacie Konfigurowanie publicznego punktu końcowego dla usługi Azure SQL Managed Instance.

Prywatne punkty końcowe

Prywatny punkt końcowy to opcjonalny stały adres IP w innej sieci wirtualnej, który prowadzi ruch do wystąpienia zarządzanego SQL. Jedna usługa Azure SQL Managed Instance może mieć wiele prywatnych punktów końcowych w wielu sieciach wirtualnych. Prywatne punkty końcowe zezwalają na ruch TDS tylko do usługi SQL Managed Instance na porcie 1433 i nie można ich używać w scenariuszach integracji, takich jak grupy trybu failover, link wystąpienia zarządzanego i inne podobne technologie.

Podczas nawiązywania połączenia z prywatnym punktem końcowym zawsze używaj nazwy domeny, ponieważ nawiązywanie połączenia z usługą Azure SQL Managed Instance za pośrednictwem adresu IP nie jest jeszcze obsługiwane.

Prywatne punkty końcowe zawsze działają w typie połączenia serwera proxy.

Dowiedz się więcej o prywatnych punktach końcowych i sposobie ich konfigurowania w usłudze Azure Private Link dla usługi Azure SQL Managed Instance.

Architektura łączności klastra wirtualnego

W tej sekcji przedstawiono bliżej architekturę łączności klastra wirtualnego usługi SQL Managed Instance. Na poniższym diagramie przedstawiono koncepcyjny układ klastra wirtualnego:

Nazwa domeny lokalnego punktu końcowego sieci wirtualnej jest rozpoznawana jako prywatny adres IP wewnętrznego modułu równoważenia obciążenia. Mimo że ta nazwa domeny jest zarejestrowana w publicznej strefie systemu nazw domen (DNS) i jest publicznie rozpoznawalna, jego adres IP należy do zakresu adresów podsieci i może być domyślnie osiągany tylko z wewnątrz sieci wirtualnej.

Moduł równoważenia obciążenia kieruje ruch do bramy usługi SQL Managed Instance. Ponieważ wiele wystąpień zarządzanych może działać wewnątrz tego samego klastra, brama używa nazwy hosta usługi SQL Managed Instance, jak pokazano w parametry połączenia, aby przekierować ruch do odpowiedniej usługi aparatu SQL.

Wartość parametru dns-zone jest generowana automatycznie podczas tworzenia klastra. Jeśli nowo utworzony klaster hostuje pomocnicze wystąpienie zarządzane, współudzieli swój identyfikator strefy z klastrem podstawowym.

Konfiguracja podsieci wspomagana przez usługę

Aby zwiększyć bezpieczeństwo usług, łatwość zarządzania i dostępność, usługa SQL Managed Instance stosuje zasady intencji sieci w niektórych elementach infrastruktury sieci wirtualnej platformy Azure. Zasady konfigurują podsieć, skojarzą sieciową grupę zabezpieczeń i tabelę tras w celu zapewnienia spełnienia minimalnych wymagań dotyczących usługi SQL Managed Instance. Ten mechanizm platformy w sposób przezroczysty komunikuje wymagania dotyczące sieci użytkownikom. Głównym celem zasad jest zapobieganie błędnej konfiguracji sieci i zapewnienie normalnego zaangażowania w operacje usługi SQL Managed Instance i zobowiązanie umowy dotyczącej poziomu usług. Usunięcie wystąpienia zarządzanego spowoduje również usunięcie zasad intencji sieci.

Konfiguracja podsieci wspomaganej przez usługę jest oparta na funkcji delegowania podsieci sieci wirtualnej w celu zapewnienia automatycznego zarządzania konfiguracją sieci i włączania punktów końcowych usługi.

Za pomocą punktów końcowych usługi można skonfigurować reguły zapory sieci wirtualnej na kontach magazynu, które przechowują kopie zapasowe i dzienniki inspekcji. Nawet w przypadku włączenia punktów końcowych usługi klienci są zachęcani do korzystania z usługi Azure Private Link w celu uzyskania dostępu do kont magazynu. Usługa Private Link zapewnia większą izolację niż punkty końcowe usługi.

Ważne

Ze względu na specyfikę konfiguracji płaszczyzny sterowania konfiguracja podsieci wspomaganej przez usługę nie włącza punktów końcowych usługi w chmurach krajowych.

Wymagania dotyczące sieci

Podsieć, w której wdrożono usługę SQL Managed Instance, musi mieć następujące cechy:

  • Dedykowana podsieć: Podsieć używana przez usługę SQL Managed Instance może być delegowana tylko do usługi SQL Managed Instance. Podsieć nie może być podsiecią bramy i można wdrożyć tylko zasoby usługi SQL Managed Instance w podsieci.
  • Delegowanie podsieci: podsieć usługi SQL Managed Instance musi być delegowana do dostawcy Microsoft.Sql/managedInstances zasobów.
  • Sieciowa grupa zabezpieczeń: sieciowa grupa zabezpieczeń musi być skojarzona z podsiecią usługi SQL Managed Instance. Sieciowa grupa zabezpieczeń umożliwia kontrolowanie dostępu do punktu końcowego danych usługi SQL Managed Instance przez filtrowanie ruchu na porcie 1433 i portach 11000–11999, gdy usługa SQL Managed Instance jest skonfigurowana pod kątem połączeń przekierowania. Usługa automatycznie aprowizuje reguły i utrzymuje je zgodnie z wymaganiami, aby umożliwić nieprzerwany przepływ ruchu zarządzania.
  • Tabela tras: tabela tras musi być skojarzona z podsiecią usługi SQL Managed Instance. Możesz dodać wpisy do tej tabeli tras, na przykład w celu kierowania ruchu do lokalizacji za pośrednictwem bramy sieci wirtualnej lub dodać domyślną trasę 0.0.0.0.0/0 kierującą cały ruch przez wirtualne urządzenie sieciowe, takie jak zapora. Usługa Azure SQL Managed Instance automatycznie aprowizuje wymagane wpisy w tabeli tras i zarządza nimi.
  • Wystarczające adresy IP: podsieć usługi SQL Managed Instance musi mieć co najmniej 32 adresy IP. Aby uzyskać więcej informacji, zobacz Określanie rozmiaru podsieci dla usługi SQL Managed Instance. Wystąpienia zarządzane można wdrożyć w istniejącej sieci po skonfigurowaniu go w celu spełnienia wymagań sieciowych dla usługi SQL Managed Instance. W innym przypadku utwórz nową sieć i podsieć.
  • Dozwolone przez zasady platformy Azure: jeśli używasz usługi Azure Policy do zapobiegania tworzeniu lub modyfikowaniu zasobów w zakresie obejmującym podsieć lub sieć wirtualną usługi SQL Managed Instance, zasady nie mogą uniemożliwić usłudze SQL Managed Instance zarządzania zasobami wewnętrznymi. Następujące zasoby należy wykluczyć z efektów odmowy zasad dla normalnego działania:
    • Zasoby typu Microsoft.Network/serviceEndpointPolicies, gdy nazwa zasobu zaczyna się od \_e41f87a2\_
    • Wszystkie zasoby typu Microsoft.Network/networkIntentPolicies
    • Wszystkie zasoby typu Microsoft.Network/virtualNetworks/subnets/contextualServiceEndpointPolicies
  • Blokady w sieci wirtualnej: blokady w sieci wirtualnej dedykowanej podsieci, nadrzędnej grupy zasobów lub subskrypcji mogą czasami zakłócać zarządzanie usługą SQL Managed Instance i operacje konserwacji. Podczas korzystania z blokad zasobów należy zachować szczególną ostrożność.
  • Ruch replikacji: ruch replikacji dla grup trybu failover między dwoma wystąpieniami zarządzanymi powinien być bezpośredni i nie jest kierowany przez sieć koncentratora.
  • Niestandardowy serwer DNS: jeśli sieć wirtualna jest skonfigurowana do używania niestandardowego serwera DNS, serwer DNS musi mieć możliwość rozpoznawania publicznych rekordów DNS. Korzystanie z funkcji, takich jak uwierzytelnianie firmy Microsoft Entra, może wymagać rozpoznawania w pełni kwalifikowanych nazw domen (FQDN). Aby uzyskać więcej informacji, zobacz Rozpoznawanie prywatnych nazw DNS w usłudze Azure SQL Managed Instance.

Obowiązkowe reguły zabezpieczeń z konfiguracją podsieci wspomaganej przez usługę

Aby zapewnić przepływ ruchu związanego z zarządzaniem przychodzącym, wymagane są reguły opisane w poniższej tabeli. Reguły są wymuszane przez zasady intencji sieci i nie muszą być wdrażane przez klienta. Aby uzyskać więcej informacji na temat architektury łączności i ruchu zarządzania, zobacz Architektura łączności wysokiego poziomu.

Nazwisko Port Protokół Element źródłowy Element docelowy Akcja
healthprobe-in Dowolne Dowolne AzureLoadBalancer Podsieci Zezwalaj
wewnętrzne Dowolne Dowolne Podsieci Podsieci Zezwalaj

Aby zapewnić przepływ ruchu wychodzącego zarządzania, wymagane są reguły opisane w poniższej tabeli. Aby uzyskać więcej informacji na temat architektury łączności i ruchu zarządzania, zobacz Architektura łączności wysokiego poziomu.

Nazwisko Port Protokół Element źródłowy Element docelowy Akcja
AAD-out 443 TCP Podsieci AzureActiveDirectory Zezwalaj
OneDsCollector-out 443 TCP Podsieci OneDsCollector Zezwalaj
wewnętrzne wyjście Dowolne Dowolne Podsieci Podsieci Zezwalaj
StorageP-out 443 Dowolne Podsieci Magazynu.primaryRegion Zezwalaj
Magazyny wychodzące 443 Dowolne Podsieci Magazynu.secondaryRegion Zezwalaj

Obowiązkowe trasy z konfiguracją podsieci wspomaganej przez usługę

Trasy opisane w poniższej tabeli są niezbędne do zapewnienia, że ruch zarządzania jest kierowany bezpośrednio do miejsca docelowego. Trasy są wymuszane przez zasady intencji sieci i nie muszą być wdrażane przez klienta. Aby uzyskać więcej informacji na temat architektury łączności i ruchu związanego z zarządzaniem, zobacz Architektura łączności wysokiego poziomu.

Nazwisko Prefiks adresu Narzędzie Następny przeskok
AzureActiveDirectory AzureActiveDirectory Internet*
OneDsCollector OneDsCollector Internet*
Magazynu.primaryRegion Magazynu.primaryRegion Internet*
Magazynu.secondaryRegion Magazynu.secondaryRegion Internet*
podsieć-sieć wirtualnalokalna Podsieci Sieć wirtualna

Uwaga

*Wartość internetowa w kolumnie Następny przeskok powoduje, że brama będzie kierować ruch poza sieć wirtualną. Jeśli jednak adres docelowy dotyczy usługi platformy Azure, platforma Azure kieruje ruch bezpośrednio do usługi za pośrednictwem sieci platformy Azure zamiast poza chmurą platformy Azure. Ruch między usługami platformy Azure nie przechodzi przez Internet, niezależnie od regionu świadczenia usługi Azure, w którym istnieje sieć wirtualna, lub w którym regionie platformy Azure jest wdrażane wystąpienie usługi platformy Azure. Aby uzyskać więcej informacji, zobacz Routing ruchu w sieci wirtualnej platformy Azure.

Możesz również dodać wpisy do tabeli tras w celu kierowania ruchu, który ma lokalne zakresy prywatnych adresów IP jako miejsce docelowe za pośrednictwem bramy sieci wirtualnej lub wirtualnego urządzenia sieciowego.

Ograniczenia sieci

Protokół TLS 1.2 jest wymuszany na połączeniach wychodzących: począwszy od stycznia 2020 r. firma Microsoft wymusza protokół TLS 1.2 dla ruchu wewnątrz usługi we wszystkich usługach platformy Azure. W przypadku usługi SQL Managed Instance spowodowało to wymuszanie protokołu TLS 1.2 na połączeniach wychodzących używanych do replikacji i połączeniach serwera połączonego z programem SQL Server. Jeśli używasz wersji programu SQL Server starszej niż 2016 z usługą SQL Managed Instance, upewnij się, że zastosowano aktualizacje specyficzne dla protokołu TLS 1.2.

Następujące funkcje sieci wirtualnej nie są obecnie obsługiwane w usłudze SQL Managed Instance:

  • Poczta bazy danych do zewnętrznych przekaźników SMTP na porcie 25: Wysyłanie poczty bazy danych za pośrednictwem portu 25 do zewnętrznych usług poczty e-mail jest dostępne tylko dla niektórych typów subskrypcji na platformie Microsoft Azure. Wystąpienia innych typów subskrypcji powinny używać innego portu (na przykład 587) do kontaktowania się z zewnętrznymi przekaźnikami SMTP. W przeciwnym razie wystąpienia mogą nie dostarczyć poczty bazy danych. Aby uzyskać więcej informacji, zobacz Rozwiązywanie problemów z łącznością wychodzącą SMTP na platformie Azure.
  • Komunikacja równorzędna firmy Microsoft: włączenie komunikacji równorzędnej firmy Microsoft w obwodach usługi ExpressRoute, które są bezpośrednio lub przechodnio za pomocą sieci wirtualnej, w której znajduje się wystąpienie zarządzane SQL, wpływa na przepływ ruchu między składnikami usługi SQL Managed Instance wewnątrz sieci wirtualnej i usług, od których zależy. Wynik problemów z dostępnością. Wdrożenia usługi SQL Managed Instance w sieci wirtualnej, która ma już włączoną komunikację równorzędną firmy Microsoft, powinny zakończyć się niepowodzeniem.
  • Komunikacja równorzędna sieci wirtualnych — globalna: łączność komunikacji równorzędnej sieci wirtualnych między regionami platformy Azure nie działa w przypadku wystąpień usługi SQL Managed Instance umieszczonych w podsieciach utworzonych przed 9 września 2020 r.
  • Komunikacja równorzędna sieci wirtualnych — konfiguracja: podczas ustanawiania komunikacji równorzędnej sieci wirtualnych między sieciami wirtualnymi, które zawierają podsieci z wystąpieniami zarządzanymi SQL, takie podsieci muszą używać różnych tabel tras i sieciowych grup zabezpieczeń. Ponowne użycie tabeli tras i sieciowej grupy zabezpieczeń w co najmniej dwóch podsieciach uczestniczących w komunikacji równorzędnej sieci wirtualnej spowoduje problemy z łącznością we wszystkich podsieciach przy użyciu tych tabel tras lub sieciowej grupy zabezpieczeń i spowodować niepowodzenie operacji zarządzania usługi SQL Managed Instance.
  • AzurePlatformDNS: użycie tagu usługi AzurePlatformDNS w celu zablokowania rozpoznawania nazw DNS platformy spowoduje, że wystąpienie zarządzane SQL będzie niedostępne. Mimo że usługa SQL Managed Instance obsługuje system DNS zdefiniowany przez klienta na potrzeby rozpoznawania nazw DNS wewnątrz aparatu, istnieje zależność od platformy DNS dla operacji platformy.
  • Brama translatora adresów sieciowych: używanie translatora adresów sieciowych platformy Azure do kontrolowania łączności wychodzącej z określonym publicznym adresem IP powoduje, że usługa SQL Managed Instance jest niedostępna. Usługa SQL Managed Instance jest obecnie ograniczona do korzystania z podstawowego modułu równoważenia obciążenia, który nie zapewnia współistnienia przepływów przychodzących i wychodzących z translatorem adresów sieciowych usługi Azure Virtual Network.
  • Protokół IPv6 dla usługi Azure Virtual Network: wdrażanie wystąpienia zarządzanego SQL w dwóch sieciach wirtualnych IPv4/IPv6 powinno zakończyć się niepowodzeniem. Kojarzenie sieciowej grupy zabezpieczeń lub tabeli tras z trasami zdefiniowanymi przez użytkownika (UDR), które zawiera prefiksy adresów IPv6 do podsieci usługi SQL Managed Instance, renderuje wystąpienie zarządzane SQL niedostępne. Ponadto dodanie prefiksów adresów IPv6 do sieciowej grupy zabezpieczeń lub trasy zdefiniowanej przez użytkownika, która jest już skojarzona z podsiecią wystąpienia zarządzanego, powoduje, że wystąpienie zarządzane SQL jest niedostępne. Wdrożenia usługi SQL Managed Instance w podsieci z sieciową grupą zabezpieczeń i trasa zdefiniowana przez użytkownika, które mają już prefiksy IPv6, powinny zakończyć się niepowodzeniem.
  • Strefy prywatne usługi Azure DNS o nazwie zarezerwowanej dla usługi firmy Microsoft: Następujące nazwy domen to nazwy zarezerwowane: windows.net, database.windows.net, blob.core.windows.netmanagement.core.windows.netmonitoring.core.windows.netqueue.core.windows.nettable.core.windows.netcore.windows.netlogin.microsoftonline.comlogin.windows.netgraph.windows.netservicebus.windows.neti .vault.azure.net Wdrażanie usługi SQL Managed Instance w sieci wirtualnej, która ma skojarzona prywatną strefę usługi Azure DNS, która używa nazwy zarezerwowanej dla usługi firmy Microsoft kończy się niepowodzeniem. Skojarzenie strefy prywatnej usługi Azure DNS, która używa nazwy zarezerwowanej z siecią wirtualną zawierającą wystąpienie zarządzane, powoduje, że wystąpienie zarządzane SQL jest niedostępne. Aby uzyskać informacje na temat konfiguracji usługi Private Link, zobacz Konfiguracja usługi DNS prywatnego punktu końcowego platformy Azure.

Następne kroki