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.

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 VNet admiten tipo de conexión de redireccionamiento y proxy.

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 usa el tipo de conexión proxy independientemente de la configuración del tipo de conexión.

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.

El punto de conexión privado siempre usa el tipo de conexión proxy independientemente de la configuración del tipo de conexión.

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 el siguiente diagrama se muestra el diseño conceptual de la arquitectura del clúster virtual:

Diagrama que muestra la arquitectura de conectividad del clúster virtual para Azure SQL Managed Instance.

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.

Requisitos de red

Azure SQL Managed Instance requiere que los aspectos de la subred delegada se configuren de maneras específicas, lo que puede lograr mediante la configuración de subred asistida por el servicio. Más allá de lo que requiere el servicio, los usuarios tienen control total sobre su configuración de red de subred, como:

  • Permitir o bloquear el tráfico en algunos o todos los puertos
  • Adición de entradas a la tabla de rutas para enrutar el tráfico a través de aplicaciones de red virtual o una puerta de enlace
  • Configuración de la resolución DNS personalizada o
  • Configuración del emparejamiento o una VPN

La subred en la que se implementa SQL Managed Instance debe cumplir los siguientes requesitos:

  • 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.

Configuración de subred asistida por servicio

Para mejorar la seguridad del servicio, la capacidad de administración y la disponibilidad, SQL Managed Instance usa la configuración de subred asistida por servicio y la directiva de intención de red en la infraestructura de red virtual de Azure para configurar la red, los componentes asociados y la tabla de rutas para asegurarse de que se cumplen los requisitos mínimos de SQL Managed Instance.

Las reglas de seguridad de red y de la tabla de rutas configuradas automáticamente son visibles para el cliente y se anotan con uno de estos prefijos:

  • Microsoft.Sql-managedInstances_UseOnly_mi- para reglas y rutas obligatorias
  • Microsoft.Sql-managedInstances_UseOnly_mi-optional- para reglas y rutas opcionales

Para obtener más información, revisa la configuración de subred asistida por el servicio.

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.

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:

  • Subredes privadas: actualmente no se admite la implementación de instancias administradas en subredes privadas (donde el acceso saliente predeterminado está deshabilitado).
  • 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.
  • Etiqueta 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.
  • Registros DNS para servicios Microsoft reservados: los siguientes nombres de dominio están reservados y su resolución tal como se define en Azure DNS no se debe invalidar en una red virtual que hospeda instancias administradas: 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 en la que uno o varios nombres de dominio se invalidan, ya sea a través de Azure DNS Private Zones o por un servidor DNS personalizado, se producirá un error. Invalidar la resolución de estos dominios en una red virtual que contiene una instancia administrada representa que la instancia administrada no está disponible. Para obtener información sobre cómo configurar registros DNS de Private Link dentro de una red virtual que contiene instancias administradas, consulte Configuración de DNS de punto de conexión privado de Azure.