Compartir vía


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: punto de conexión local de red virtual, punto de conexión públicoy puntos de conexión privados. Estos puntos de conexión muestran propiedades y comportamientos distintos adecuados para diferentes escenarios.

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. Es un nombre de dominio en forma de <mi_name>.<dns_zone>.database.windows.net. Este nombre de dominio se resuelve en una dirección IP del intervalo de direcciones de la subred. 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. El puerto del punto de conexión local de red virtual es 1433.

El punto de conexión local de red virtual admite tipos de conexión de proxy y redirección.

Al conectarse al punto de conexión local de la red virtual, use siempre su nombre de dominio y permita el tráfico entrante en los puertos necesarios en todo el intervalo de subredes, 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 en forma de <mi_name>.public.<dns_zone>.database.windows.net. Este nombre de dominio se resuelve en una dirección IP pública accesible desde Internet. El punto de conexión público es adecuado para escenarios en los que una instancia administrada debe ser accesible a través de la red pública de Internet, por ejemplo, al conectarse a ella desde una red virtual diferente cuando el emparejamiento o los puntos de conexión privados no están disponibles. Los puntos de conexión públicos solo transportan tráfico de cliente y no se pueden usar para la replicación de datos entre dos instancias, como grupos de conmutación o Enlace de Instancia Administrada. El puerto del punto de conexión público es 3342.

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.

Al conectarse al punto de conexión público, use siempre su nombre de dominio y permita el tráfico entrante en el puerto 3342 en todo el intervalo de subredes, ya que la dirección IP subyacente puede cambiar ocasionalmente.

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 solo llevan tráfico de cliente y no se pueden usar para la replicación de datos entre dos instancias, como grupos de conmutación por error o Managed Instance Link. El puerto del punto de conexión privado es 1143.

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

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. Sin embargo, la dirección IP de un punto de conexión privado no cambia.

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

Para cumplir los criterios de "Configuración de red compatible" en el Contrato de nivel de servicio para Microsoft Online Services, la red virtual y la subred en las que se implementa SQL Managed Instance deben cumplir los siguientes requisitos:

  • 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.
  • registros DNS públicos que se pueden resolver: Si la red virtual está configurada para usar un servidor DNS personalizado, el servidor DNS 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.
  • Los registros DNS necesarios: las instancias administradas dependen de que determinados nombres de dominio se resuelvan correctamente. Esos nombres de dominio no se deben invalidar en sus redes virtuales, ya sea a través de zonas privadas de Azure DNS o un servidor DNS personalizado. De lo contrario, las instancias administradas no se implementarán o pueden dejar de estar disponibles. No se deben invalidar los siguientes dominios: 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.nety vault.azure.net. Sin embargo, tenga en cuenta que todavía puede crear puntos de conexión privados dentro de la red virtual de una instancia administrada, incluso a los recursos de los dominios anteriores. Los puntos de conexión privados usan un mecanismo DNS que no requiere que un servidor DNS local sea autoritativo para toda una zona.
  • 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 definido por el cliente para la resolución DNS dentro del motor, hay una dependencia de Azure DNS para las operaciones de la plataforma.

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

Las restricciones siguientes en las características y el tráfico de red virtual están en vigor:

  • 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.
  • 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.
  • 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.
  • Respaldo interno a Azure DNS: Las instancias administradas dependen de una resolución DNS que funcione en sus redes virtuales. Si la red virtual de una instancia administrada está configurada para usar servidores DNS personalizados y una solicitud DNS emitida a servidores DNS personalizados no se puede completar dentro de un intervalo determinado (de 1 a 2 segundos), la instancia administrada repetirá la solicitud en azure DNS en esa red virtual.