Arquitectura de conectividad de Instancia administrada de Azure SQL

Se aplica a:Azure SQL Managed Instance

En este artículo se describe la arquitectura de conectividad de Azure SQL Managed Instance y cómo los componentes dirigen el tráfico de comunicación de una instancia administrada.

Información general

En SQL Managed Instance, se coloca una instancia dentro de la red virtual de Azure y de la subred dedicada a las instancias administradas. La implementación proporciona:

  • Una dirección IP local de red virtual segura.
  • La posibilidad de conectar una red local a SQL Managed Instance.
  • Capacidad para conectar SQL Managed Instance a un servidor vinculado o a otro almacén de datos local.
  • La posibilidad de conectar SQL Managed Instance a recursos de Azure.

Nota:

La oleada de características de noviembre de 2022 introdujo algunos cambios en la estructura de conectividad predeterminada de SQL Managed Instance. En este artículo se proporciona información sobre la arquitectura actual y la arquitectura de las instancias que aún no se han inscrito en la oleada de características. Para obtener más información, consulte Oleada de características de noviembre de 2022.

Oleada de característica de noviembre de 2022

La oleada de características de noviembre de 2022 ha introducido los siguientes cambios en la arquitectura de conectividad de SQL Managed Instance:

  • Se ha quitado el punto de conexión de administración.
  • Se han simplificado las reglas de grupo de seguridad de red obligatorias (se ha quitado una regla obligatoria).
  • Se revisaron las reglas de grupos de seguridad de red obligatorias para que ya no incluyan la salida a AzureCloud en el puerto 443.
  • Se ha simplificado la tabla de rutas (se han reducido las rutas obligatorias de 13 a 5).

Arquitectura de conectividad de alto nivel

SQL Managed Instance está formada por componentes de servicio hospedados en un conjunto dedicado de máquinas virtuales aisladas que se agrupan por atributos de configuración similares y se unen a un clúster virtual. Algunos componentes de servicio se implementan dentro de la subred de red virtual del cliente, mientras que otros operan dentro un entorno de red seguro que Microsoft administra.

Diagrama que muestra a grandes rasgos la arquitectura de conectividad de Azure SQL Managed Instance después de noviembre de 2022.

Las aplicaciones de los clientes pueden conectarse a SQL Managed Instance y pueden consultar y actualizar las bases de datos dentro de la red virtual, la red virtual emparejada o la red conectada mediante VPN o Azure ExpressRoute.

En el siguiente diagrama se muestran las entidades que se conectan a SQL Managed Instance. También se muestran los recursos que deben comunicarse con una instancia administrada. El proceso de comunicación de la parte inferior del diagrama representa las aplicaciones y las herramientas del cliente que se conectan a SQL Managed Instance como orígenes de datos.

Diagrama que muestra las entidades de la arquitectura de conectividad de Azure SQL Managed Instance después de noviembre de 2022.

SQL Managed Instance es una oferta de plataforma como servicio (PaaS) de un solo inquilino que funciona en dos planos: plano de datos y plano de control.

El plano de datos se implementa en la subred del cliente por razones de compatibilidad, conectividad y aislamiento de red. El plano de datos depende de servicios de Azure, como Azure Storage, Microsoft Entra ID (anteriormente Azure Active Directory) para la autenticación, y servicios de recopilación de datos de telemetría. Verá que el tráfico que se origina en subredes que contienen SQL Managed Instance va a esos servicios.

El plano de control se ocupa de las funciones de implementación, administración y mantenimiento básico del servicio a través de agentes automatizados. Estos agentes tienen acceso exclusivo a los recursos de proceso que operan el servicio. No se puede usar ssh ni el Protocolo de escritorio remoto para acceder a esos hosts. Todas las comunicaciones de plano de control se cifran y se firman con certificados. Para comprobar la confiabilidad de las partes en comunicación, SQL Managed Instance comprueba constantemente estos certificados usando listas de revocación de certificados.

Información general sobre la comunicación

Las aplicaciones pueden conectarse a SQL Managed Instance a través de tres tipos de puntos de conexión. Estos puntos de conexión sirven para varios escenarios diferentes y muestran distintos comportamientos y propiedades de red.

Diagrama en el que se muestra el ámbito de visibilidad de los puntos de conexión locales, públicos y privados a una instancia de Azure SQL Managed Instance.

Punto de conexión local de red virtual

El punto de conexión local de red virtual es el medio predeterminado para conectarse a SQL Managed Instance. El punto de conexión local de red virtual es un nombre de dominio con el formato <mi_name>.<dns_zone>.database.windows.net que se resuelve en una dirección IP del grupo de direcciones de la subred; por lo tanto, local de red virtual, o un punto de conexión local de la red virtual. Se puede usar el punto de conexión local de red virtual para conectar SQL Managed Instance en todos los escenarios de conectividad estándar.

Los puntos de conexión locales de red virtual admiten el tipo de conexión de redireccionamiento.

Al conectarse al punto de conexión local de red virtual, use siempre su nombre de dominio, ya que la dirección IP subyacente puede cambiar ocasionalmente.

Punto de conexión público

El punto de conexión público es un nombre de dominio opcional con el formato <mi_name>.public.<dns_zone>.database.windows.net que se resuelve en una IP pública a la que se puede acceder desde Internet. El punto de conexión público permite que el tráfico de TDS solo llegue a SQL Managed Instance en el puerto 3342 y no se puede usar en escenarios de integración, como grupos de conmutación por error, vínculo de Instancia administrada y tecnologías similares.

Al conectarse al punto de conexión público, use siempre su nombre de dominio, ya que la dirección IP subyacente puede cambiar ocasionalmente.

El punto de conexión público siempre funciona en el tipo de conexión de proxy.

Aprenda a configurar un punto de conexión público en Configuración de un punto de conexión público para Azure SQL Managed Instance.

Puntos de conexión privados

Un punto de conexión privado, es una dirección IP fija opcional en otra red virtual que conduce el tráfico a la instancia administrada de SQL. Una instancia de Azure SQL Managed Instance puede tener varios puntos de conexión privados en varias redes virtuales. Los puntos de conexión privados permiten que el tráfico de TDS solo llegue a SQL Managed Instance en el puerto 1433 y no se pueden usar en escenarios de integración, como grupos de conmutación por error, vínculo de Instancia administrada y otras tecnologías similares.

Al conectarse a un punto de conexión privado, use siempre el nombre de dominio, ya que aún no se admite la conexión a Azure SQL Managed Instance a través de su dirección IP.

Los puntos de conexión privados siempre funcionan en el tipo de conexión de proxy.

Obtenga más información sobre los puntos de conexión privados y cómo configurarlos en Azure Private Link para Azure SQL Managed Instance.

Arquitectura de conectividad del clúster virtual

En esta sección, se proporciona una visión más detallada de la arquitectura de conectividad del clúster virtual de SQL Managed Instance. En el siguiente diagrama se muestra el diseño conceptual del clúster virtual:

El nombre de dominio del punto de conexión local de red virtual se resuelve en la dirección IP privada de un equilibrador de carga interno. Si bien este nombre de dominio está registrado en una zona pública del Sistema de nombres de dominio (DNS) y se puede resolver públicamente, su dirección IP pertenece al intervalo de direcciones de la subred y solo se puede acceder desde dentro de su red virtual de manera predeterminada.

El equilibrador de carga dirige el tráfico a una puerta de enlace de SQL Managed Instance. Como se pueden ejecutar varias instancias administradas dentro del mismo clúster, la puerta de enlace usa el nombre de host de SQL Managed Instance como se ve en la cadena de conexión para redirigir el tráfico al servicio correcto del motor de SQL.

El valor de dns-zone se genera automáticamente cuando se crea el clúster. Si un clúster recién creado hospeda una instancia administrada secundaria, comparte su identificador de zona con el clúster principal.

Configuración de subred asistida por servicio

Para mejorar la seguridad, la administración y la disponibilidad del servicio, SQL Managed Instance aplica una directiva de intención de red en algunos elementos de la infraestructura de red virtual de Azure. La directiva configura la subred, el grupo de seguridad de red asociado y la tabla de rutas para asegurarse de que se cumplen los requisitos mínimos de SQL Managed Instance. Este mecanismo de plataforma comunica de forma transparente los requisitos de red a los usuarios. El objetivo principal de la directiva es evitar errores de configuración de red y asegurar el funcionamiento normal de SQL Managed Instance y el cumplimiento del acuerdo de nivel de servicio. Cuando se elimina una instancia administrada, también se quita la directiva de intención de red.

La configuración de la subred asistida por el servicio se basa en la característica de delegación de subred de la red virtual para proporcionar la administración automática de la configuración de red y habilitar puntos de conexión de servicio.

Puede usar puntos de conexión de servicio para configurar reglas de firewall de red virtual en cuentas de almacenamiento que guardan copias de seguridad y registros de auditoría. Incluso con los puntos de conexión de servicio habilitados, se recomienda a los clientes que usen Azure Private Link para acceder a sus cuentas de almacenamiento. Private Link proporciona más aislamiento que los puntos de conexión de servicio.

Importante

Debido a las características de configuración del plano de control, la configuración de subred asistida por el servicio no habilita los puntos de conexión de servicio en nubes nacionales.

Requisitos de red

La subred en la que se implementa SQL Managed Instance debe tener las siguientes características:

  • Subred dedicada: la subred que usa SQL Managed Instance solo se puede delegar en el servicio SQL Managed Instance. No puede ser una subred de puerta de enlace y solo puede implementar recursos de SQL Managed Instance en ella.
  • Delegación de subred: la subred de SQL Managed Instance debe delegarse en el proveedor de recursos de Microsoft.Sql/managedInstances.
  • Grupo de seguridad de red: debe asociarse un grupo de seguridad de red a la subred de SQL Managed Instance. Puede usar un grupo de seguridad de red para controlar el acceso al punto de conexión de datos de SQL Managed Instance filtrando el tráfico en el puerto 1433 y en los puertos 11000 a 11999 cuando SQL Managed Instance está configurado para conexiones de redirección. El servicio aprovisiona reglas automáticamente y las mantiene actualizadas según es necesario para permitir el flujo ininterrumpido del tráfico de administración.
  • Tabla de rutas: debe asociarse una tabla de rutas a la subred de SQL Managed Instance. Puede agregar entradas a esta tabla de rutas, por ejemplo, para enrutar el tráfico a un entorno local mediante una puerta de enlace de red virtual, o bien para agregar la ruta 0.0.0.0/0 predeterminada y dirigir todo el tráfico por un dispositivo de red virtual como un firewall. Azure SQL Managed Instance aprovisiona y administra automáticamente sus entradas necesarias en la tabla de rutas.
  • Suficientes direcciones IP: la subred de SQL Managed Instance debe tener al menos 32 direcciones IP. Para obtener más información, consulte Determinación del tamaño de la subred de SQL Managed Instance. Puede implementar instancias administradas en la red existente después de configurarla para satisfacer los requisitos de red de SQL Managed Instance. De lo contrario, cree una red y una subred.
  • Permitido por las directivas de Azure: si usa Azure Policy para evitar la creación o modificación de recursos en un ámbito que incluye una subred o una red virtual de SQL Managed Instance, esas directivas no deben impedir que SQL Managed Instance administre sus recursos internos. Los siguientes recursos deben excluirse de los efectos de denegación de las directivas para permitir el funcionamiento normal:
    • Recursos de tipo Microsoft.Network/serviceEndpointPolicies, cuando el nombre del recurso comienza con \_e41f87a2\_.
    • Todos los recursos de tipo Microsoft.Network/networkIntentPolicies.
    • Todos los recursos de tipo Microsoft.Network/virtualNetworks/subnets/contextualServiceEndpointPolicies.
  • Bloqueos en la red virtual: los bloqueos en la red virtual de la subred dedicada, su grupo de recursos principal o suscripción pueden interferir a veces en el funcionamiento de administración y mantenimiento de SQL Managed Instance. Tenga especial cuidado cuando use estos bloqueos.
  • Tráfico de replicación: el tráfico de replicación para grupos de conmutación por error entre dos instancias administradas debe ser directo y no redirigirse a través de una red central.
  • Servidor DNS personalizado: si la red virtual está configurada para usar un servidor DNS personalizado, ese servidor debe poder resolver registros DNS públicos. El uso de características como la autenticación de Microsoft Entra puede exigir la resolución de más nombres de dominio completos (FQDN). Para obtener más información, vea Resolución de nombres DNS privados en Azure SQL Managed Instance.

Reglas de seguridad obligatorias con la configuración de subred asistida por servicio

Para garantizar el flujo de tráfico de administración de entrada, se requieren las reglas que se describen en la siguiente tabla. La directiva de intención de red aplica las reglas y no es necesario que el cliente las implemente. Para obtener más información sobre la arquitectura de conectividad y el tráfico de administración, consulte Arquitectura de conectividad de alto nivel.

Nombre Puerto Protocolo Origen Destino Acción
healthprobe-in Any Any AzureLoadBalancer subnet Allow
internal-in Any Any subnet subnet Allow

Para garantizar el flujo de tráfico de administración de salida, se requieren las reglas que se describen en la siguiente tabla. Para obtener más información sobre la arquitectura de conectividad y el tráfico de administración, consulte Arquitectura de conectividad de alto nivel.

Nombre Puerto Protocolo Origen Destino Acción
AAD-out 443 TCP subnet AzureActiveDirectory Allow
OneDsCollector-out 443 TCP subnet OneDsCollector Allow
internal-out Any Any subnet subnet Allow
StorageP-out 443 Any subnet Storage.primaryRegion Allow
StorageS-out 443 Any subnet Storage.secondaryRegion Allow

Rutas obligatorias con la configuración de subred asistida por servicio

Las rutas que se describen en la siguiente tabla son necesarias para asegurar que el tráfico de administración vaya directamente a un destino. La directiva de intención de red aplica las rutas y no es necesario que el cliente las implemente. Para obtener más información sobre la arquitectura de conectividad y el tráfico de administración, consulte Arquitectura de conectividad de alto nivel.

Nombre Prefijo de dirección Próximo salto
AzureActiveDirectory AzureActiveDirectory Internet*
OneDsCollector OneDsCollector Internet*
Storage.primaryRegion Storage.primaryRegion Internet*
Storage.secondaryRegion Storage.secondaryRegion Internet*
subnet-to-vnetlocal subnet Virtual network

Nota

* El valor Internet de la columna Próximo salto indica a la puerta de enlace que redirija el tráfico fuera de la red virtual. Sin embargo, si la dirección de destino es para un servicio de Azure, este redirige el tráfico directamente al servicio a través de la red de Azure en lugar de enviarlo fuera de la nube de Azure. El tráfico entre los servicios de Azure no pasa por Internet, independientemente de la región de Azure donde esté la red virtual o de la región de Azure donde esté implementada la instancia del servicio de Azure. Para obtener más información, consulte Enrutamiento del tráfico de redes virtuales.

También puede agregar entradas a la tabla de rutas para redirigir el tráfico que tiene intervalos IP privados del entorno local como destino a través de una puerta de enlace de red virtual o de un dispositivo de red virtual.

Restricciones de redes

TLS 1.2 obligatorio en las conexiones de salida: en enero de 2020, Microsoft impuso el uso de TLS 1.2 para el tráfico interno de todos los servicios de Azure. Para SQL Managed Instance, esto supuso la obligación de usar TLS 1.2 en las conexiones de salida usadas para la replicación y en las conexiones del servidor vinculado con SQL Server. Si usa una versión de SQL Server anterior a la 2016 con SQL Managed Instance, asegúrese de aplicar las actualizaciones específicas de TLS 1.2.

Las siguientes características de red virtual no se admiten actualmente con SQL Managed Instance:

  • Correo electrónico de base de datos a retransmisiones SMTP externas en el puerto 25: el envío de correo electrónico de base de datos por el puerto 25 a servicios de correo electrónico externo solo está disponible para determinados tipos de suscripción en Microsoft Azure. Las instancias de otros tipos de suscripción deben usar otro puerto (por ejemplo, el 587) para ponerse en contacto con retransmisiones SMTP externas. De lo contrario, es posible que las instancias no entreguen el correo electrónico de base de datos. Para más información, consulte Solución de problemas de conectividad SMTP saliente en Azure.
  • Emparejamiento de Microsoft: la habilitación del emparejamiento de Microsoft en circuitos de ExpressRoute emparejados directamente o de manera transitiva con la red virtual en la que reside SQL Managed Instance afecta al flujo del tráfico entre los componentes de SQL Managed Instance de la red virtual y los servicios de los que depende. Esto da lugar a problemas de disponibilidad. Se prevé que se produzcan errores en las implementaciones de SQL Managed Instance en una red virtual que tenga habilitado el emparejamiento de Microsoft.
  • Emparejamiento de red virtual global: la conectividad de emparejamiento de red virtual entre regiones de Azure no funciona para instancias de SQL Managed Instance que están en subredes creadas antes del 9 de septiembre de 2020.
  • Emparejamiento de red virtual: configuración: al establecer el emparejamiento de red virtual entre redes virtuales que contienen subredes con instancias de SQL Managed Instance, estas subredes deben usar otras tablas de rutas y grupos de seguridad de red (NSG). La reutilización de la tabla de rutas y el grupo de seguridad de red en dos o más subredes que participan en el emparejamiento de red virtual provocará problemas de conectividad en todas las subredes que usan esas tablas de rutas o NSG, y provocará un error en las operaciones de administración de SQL Managed Instance.
  • AzurePlatformDNS: el uso de la etiqueta de servicio AzurePlatformDNS para bloquear la resolución DNS de la plataforma hace que SQL Managed Instance no esté disponible. Aunque SQL Managed Instance admite DNS definidos por el cliente para la resolución de DNS dentro del motor, hay una dependencia del DNS de la plataforma para las operaciones de la plataforma.
  • NAT Gateway: el uso de Azure Virtual Network NAT para controlar la conectividad de salida con una dirección IP pública específica da lugar a que SQ Managed Instance no esté disponible. Actualmente, el servicio SQL Managed Instance está limitado al uso de un equilibrador de carga básico que no proporciona coexistencia de flujos de entrada y de salida con Azure Virtual Network NAT.
  • IPv6 para Azure Virtual Network: Se espera que se produzca un error en la implementación de Azure SQL Managed Instance en redes virtuales IPv4/IPv6 de pila dual. La asociación de un grupo de seguridad de red o una tabla de rutas que contiene rutas definidas por el usuario (UDR) con prefijos de dirección IPv6 a una subred de SQL Managed Instance da lugar a que SQL Managed Instance no esté disponible. Además, agregar prefijos de dirección IPv6 a un grupo de seguridad de red o una UDR que ya están asociados a una subred de una instancia administrada da lugar a que SQL Managed Instance no esté disponible. Se prevé que se produzcan errores en las implementaciones de Azure SQL Managed Instance en una subred con un grupo de seguridad de red y UDR que ya tienen prefijos IPv6.
  • Zonas DNS privadas de Azure con nombres reservados para los servicios de Microsoft: los siguientes nombres de dominio son nombres reservados: 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.net y vault.azure.net. La implementación de SQL Managed Instance en una red virtual que tenga asociada una zona DNS privada de Azure con un nombre reservado para servicios de Microsoft dará error. La asociación de una zona DNS privada de Azure que usa un nombre reservado con una red virtual que contiene una instancia administrada da lugar a que SQL Managed Instance no esté disponible. Para obtener información sobre la configuración de Private Link, consulte Configuración de DNS para puntos de conexión privados de Azure.

Pasos siguientes