Архитектура подключения к Управляемому экземпляру SQL Azure
Область применения: Управляемый экземпляр SQL Azure
В этой статье описывается архитектура подключения в Управляемый экземпляр SQL Azure и как компоненты направляют трафик связи для управляемого экземпляра.
Обзор
В Управляемый экземпляр SQL экземпляр помещается в виртуальную сеть Azure и внутри подсети, выделенной для управляемых экземпляров. Развертывание предоставляет следующие возможности:
- Безопасный IP-адрес локальной виртуальной сети (локальной виртуальной сети).
- возможность подключения локальной сети к Управляемому экземпляру SQL;
- Возможность подключения Управляемый экземпляр SQL к связанному серверу или другому локальному хранилищу данных.
- возможность подключения Управляемого экземпляра SQL к ресурсам Azure.
Высокоуровневая архитектура подключения
Управляемый экземпляр SQL состоит из компонентов службы, размещенных в выделенном наборе изолированных виртуальных машин, сгруппированных по аналогичным атрибутам конфигурации и присоединенных к виртуальному кластеру. Некоторые компоненты службы развертываются в подсети виртуальной сети клиента, а другие службы работают в защищенной сетевой среде, которой управляет Корпорация Майкрософт.
Клиентские приложения могут подключаться к Управляемому экземпляру SQL и выполнять запросы, а также обновлять базы данных в виртуальной сети, в одноранговой виртуальной сети или в сети, подключенной через VPN или Azure ExpressRoute.
На следующей схеме показаны сущности, подключающиеся к Управляемому экземпляру SQL. На ней также показаны ресурсы, необходимые для взаимодействия с управляемым экземпляром. Процесс обмена данными в нижней части схемы показывает, как приложения клиента и средства подключаются к Управляемому экземпляру SQL в качестве источников данных.
Управляемый экземпляр SQL — это однотенантная платформа как услуга, которая работает в двух плоскостях: плоскость данных и плоскость управления.
Плоскость данных развертывается в подсети клиента для совместимости, подключения и сетевой изоляции. Плоскость данных зависит от служб Azure, таких как служба хранилища Azure, идентификатор Microsoft Entra (ранее Azure Active Directory) для проверки подлинности и служб сбора данных телеметрии. Вы увидите трафик, исходящий в подсетях, которые содержат Управляемый экземпляр SQL переход к этим службам.
Плоскость управления несет функции развертывания, управления и обслуживания основных служб с помощью автоматических агентов. Эти агенты имеют эксклюзивный доступ к вычислительным ресурсам, которые управляют службой. Невозможно использовать ssh
или протокол удаленного рабочего стола для доступа к этим узлам. Все обмены данными уровня управления шифруются и подписываются с помощью сертификатов. Чтобы проверить надежность общения сторон, Управляемый экземпляр SQL постоянно проверяет эти сертификаты с помощью списков отзыва сертификатов.
Общие сведения об обмене данными
Приложения могут подключаться к Управляемому экземпляру SQL с помощью трех типов конечных точек: локальной конечной точки виртуальной сети, общедоступной конечной точкии частных конечных точек. Эти конечные точки демонстрируют различные свойства и поведение, подходящие для различных сценариев.
Локальная конечная точка виртуальной сети
Локальная конечная точка виртуальной сети является средством подключения к Управляемому экземпляру SQL по умолчанию. Это доменное имя в форме <mi_name>.<dns_zone>.database.windows.net
. Это доменное имя соответствует IP-адресу из диапазона адресов подсети. Локальная конечная точка виртуальной сети может использоваться для подключения к Управляемый экземпляр SQL во всех стандартных сценариях подключения. Порт локальной конечной точки виртуальной сети — 1433.
Локальная конечная точка виртуальной сети поддерживает прокси-сервер и типы подключений перенаправления.
При подключении к локальной конечной точке виртуальной сети всегда используйте его доменное имя и разрешайте входящий трафик на необходимых портах во всем диапазоне подсети, так как базовый IP-адрес может иногда изменяться.
Общедоступная конечная точка
Общедоступная конечная точка — это доменное имя в виде <mi_name>.public.<dns_zone>.database.windows.net
. Это доменное имя разрешает доступ к общедоступному IP-адресу из Интернета. Общедоступная конечная точка подходит для сценариев, когда управляемый экземпляр должен быть доступен через общедоступный Интернет, например при подключении к ней из другой виртуальной сети, если пиринг или частные конечные точки недоступны. Общедоступные конечные точки переносят только клиентский трафик и не могут использоваться для репликации данных между двумя экземплярами, такими как группы переключения при отказе или управляемая ссылка экземпляра. Порт общедоступной конечной точки — 3342.
Общедоступная конечная точка всегда использует тип прокси-подключения независимо от параметра типа подключения.
При подключении к общедоступной конечной точке всегда используйте его доменное имя и разрешайте входящий трафик через порт 3342 по всему диапазону подсети, так как базовый IP-адрес может иногда меняться.
Узнайте, как настроить общедоступную конечную точку в настройке общедоступной конечной точки для Управляемый экземпляр SQL Azure.
Частные конечные точки
Частная конечная точка — это необязательный фиксированный IP-адрес в другой виртуальной сети, которая ведет трафик к управляемому экземпляру SQL. Одна Управляемый экземпляр SQL Azure может иметь несколько частных конечных точек в нескольких виртуальных сетях. Частные конечные точки пропускают только клиентский трафик и не могут использоваться для репликации данных между двумя экземплярами, такими как группы отказоустойчивости или связь управляемых экземпляров. Порт частной конечной точки — 1143.
Частные конечные точки всегда используют тип прокси-подключения независимо от параметра типа подключения.
При подключении к частной конечной точке всегда используйте доменное имя, так как подключение к Управляемый экземпляр SQL Azure через его IP-адрес еще не поддерживается. Однако IP-адрес частной конечной точки не изменяется.
Дополнительные сведения о частных конечных точках и их настройке в Приватный канал Azure для Управляемый экземпляр SQL Azure.
Архитектура подключения виртуального кластера
На следующей схеме показан концептуальный макет архитектуры виртуального кластера:
Доменное имя локальной конечной точки виртуальной сети разрешает частный IP-адрес внутренней подсистемы балансировки нагрузки. Хотя это доменное имя зарегистрировано в зоне общедоступной системы доменных имен (DNS) и является общедоступным, его IP-адрес принадлежит диапазону адресов подсети и может быть достигнут только из своей виртуальной сети по умолчанию.
Подсистема балансировки нагрузки направляет трафик в шлюз Управляемый экземпляр SQL. Так как несколько управляемых экземпляров могут выполняться в одном кластере, шлюз использует имя узла Управляемый экземпляр SQL, как показано в строка подключения для перенаправления трафика в правильную службу ядра SQL.
Значение для этого dns-zone
создается автоматически при создании кластера. Если в новом кластере размещается вторичный управляемый экземпляр, он использует идентификатор зоны совместно с основным кластером.
Требования к сети
Управляемый экземпляр SQL Azure требует настройки делегированной подсети определенными способами, которые можно достичь с помощью конфигурации подсети, предоставляемой службой. Помимо того, что требует служба, пользователи имеют полный контроль над конфигурацией сети подсети, например:
- Разрешение или блокировка трафика на некоторых или всех портах
- Добавление записей в таблицу маршрутов для маршрутизации трафика через устройства виртуальной сети или шлюз
- Настройка пользовательского разрешения DNS или
- Настройка пиринга или VPN
Чтобы соответствовать критериям "Совместимая сетевая конфигурация" в соглашении об уровне обслуживания для Microsoft Online Services, виртуальная сеть и подсеть, в которой развернут управляемый экземпляр SQL, должны соответствовать следующим требованиям:
- Выделенная подсеть: Управляемый экземпляр SQL используется подсеть, можно делегировать только службе Управляемый экземпляр SQL. Подсеть не может быть подсетью шлюза, и вы можете развертывать только Управляемый экземпляр SQL ресурсы в подсети.
-
Делегирование подсети: Управляемый экземпляр SQL подсеть должна быть делегирована поставщику
Microsoft.Sql/managedInstances
ресурсов. - Группа безопасности сети: группа безопасности сети должна быть связана с подсетью Управляемый экземпляр SQL. Группу безопасности сети можно использовать для управления доступом к конечной точке данных Управляемый экземпляр SQL путем фильтрации трафика через порт 1433 и порты 11000-11999 при настройке Управляемый экземпляр SQL для подключений перенаправления. Служба автоматически подготавливает правила и сохраняет их в актуальном состоянии, чтобы обеспечить непрерывный поток трафика управления.
- Таблица маршрутов: таблица маршрутов должна быть связана с подсетью Управляемый экземпляр SQL. Вы можете добавить записи в эту таблицу маршрутов, например для маршрутизации трафика в локальную среду через шлюз виртуальной сети или добавить маршрут по умолчанию 0.0.0.0/0, направляюющий весь трафик через виртуальное сетевое устройство, например брандмауэр. Управляемый экземпляр SQL Azure автоматически подготавливает и управляет необходимыми записями в таблице маршрутов.
- Достаточное количество IP-адресов. Подсеть Управляемого экземпляра SQL должна иметь по крайней мере 32 IP-адресов. Дополнительные сведения см. в статье об определении размера подсети для Управляемого экземпляра SQL. Вы можете развернуть управляемые экземпляры в имеющейся сети после ее настройки в соответствии с требованиями к сети для Управляемого экземпляра SQL. В противном случае создайте сеть и подсеть.
-
Разрешено политиками Azure. Если вы используете Политика Azure для предотвращения создания или изменения ресурсов в области, включающей подсеть Управляемый экземпляр SQL или виртуальную сеть, политики не должны препятствовать Управляемый экземпляр SQL управлению внутренними ресурсами. Следующие ресурсы необходимо исключить из эффектов запрета политики для нормальной работы:
- Ресурсы типа
Microsoft.Network/serviceEndpointPolicies
, когда имя ресурса начинается с\_e41f87a2\_
- Все ресурсы типа
Microsoft.Network/networkIntentPolicies
- Все ресурсы типа
Microsoft.Network/virtualNetworks/subnets/contextualServiceEndpointPolicies
- Ресурсы типа
- Блокировка виртуальной сети: блокировка виртуальной сети выделенной подсети, родительской группы ресурсов или подписки может иногда влиять на операции управления и обслуживания Управляемый экземпляр SQL. Обратите особое внимание при использовании блокировок ресурсов.
- Разрешимые общедоступные записи DNS: Если виртуальная сеть настроена для использования пользовательского DNS-сервера, DNS-сервер должен уметь разрешать общедоступные записи DNS. Использование таких функций, как проверка подлинности Microsoft Entra, может потребовать разрешения более полных доменных имен (FQDN). Дополнительные сведения см. в разделе "Разрешение частных DNS-имен" в Управляемый экземпляр SQL Azure.
-
Необходимые записи DNS: Управляемые экземпляры зависят от правильного разрешения определенных доменных имен. Эти доменные имена не должны быть переопределены в своих виртуальных сетях через частные зоны Azure DNS или настраиваемым DNS-сервером. В противном случае управляемые экземпляры не будут развертываться или могут стать недоступными. Следующие домены не должны быть переопределены:
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
иvault.azure.net
. Обратите внимание, что вы по-прежнему можете создавать частные конечные точки в виртуальной сети управляемого экземпляра даже к ресурсам в указанных выше доменах. Частные конечные точки используют механизм DNS, который не требует, чтобы локальный DNS-сервер стал доверенным для всей зоны. - Тег AzurePlatformDNS: использование тега службы AzurePlatformDNS для блокировки разрешения DNS платформы может отображаться Управляемый экземпляр SQL недоступно. Несмотря на то, что Управляемый экземпляр SQL поддерживает определяемый клиентом DNS для разрешения DNS внутри движка, для операций платформы используется Azure DNS.
Автоматизированное управление конфигурацией подсети в службе
Для повышения безопасности службы, управляемости и доступности Управляемый экземпляр SQL использует конфигурацию подсети, помогающую службам, и политику намерения сети в инфраструктуре виртуальной сети Azure для настройки сети, связанных компонентов и таблицы маршрутов, чтобы обеспечить соблюдение минимальных требований к Управляемый экземпляр SQL.
Автоматически настроенные правила безопасности сети и таблицы маршрутов отображаются клиенту и заносятся в одно из этих префиксов:
-
Microsoft.Sql-managedInstances_UseOnly_mi-
для обязательных правил и маршрутов -
Microsoft.Sql-managedInstances_UseOnly_mi-optional-
для необязательных правил и маршрутов
Дополнительные сведения см . в конфигурации подсети с поддержкой служб.
Дополнительные сведения об архитектуре подключения и трафике управления см . в разделе "Высокоуровневая архитектура подключения".
Ограничения сети
Ниже приведены ограничения на функции виртуальной сети и трафик.
- Частные подсети: развертывание управляемых экземпляров в частных подсетях (где исходящий доступ по умолчанию отключен) в настоящее время не поддерживается.
- Почта базы данных во внешние ретрансляторы SMTP через порт 25. Отправка почты базы данных через порт 25 внешним службам электронной почты доступна только для определенных типов подписок в Microsoft Azure. Экземпляры других типов подписок должны использовать другой порт (например, 587) для связи с внешними ретрансляторами SMTP. В противном случае экземпляры могут не доставлять почту базы данных. Подробные сведения см. в статье Устранение проблем с исходящими SMTP-подключениями в Azure.
- Пиринг Майкрософт. Включение пиринга Майкрософт в каналах ExpressRoute, которые пиринговые каналы напрямую или транзитивно связаны с виртуальной сетью, в которой Управляемый экземпляр SQL находится, влияет на поток трафика между Управляемый экземпляр SQL компонентами в виртуальной сети и службами, от которых она зависит. Результат проблем с доступностью. Управляемый экземпляр SQL развертывания в виртуальной сети, в которую уже включен пиринг Майкрософт, должны завершиться сбоем.
- Пиринг глобальной виртуальной сети: Пиринг виртуальных сетей между регионами Azure не работает для экземпляров SQL Managed Instance, размещённых в подсетях, созданных до 9 сентября 2020 года.
- Пиринг между виртуальными сетями — конфигурация. При установке пиринга между виртуальными сетями, содержащими подсети с Управляемый экземпляр SQL, такие подсети должны использовать разные таблицы маршрутов и группы безопасности сети (NSG). Повторное использование таблицы маршрутов и группы безопасности сети в двух или нескольких подсетях, участвующих в пиринге виртуальной сети, приведет к проблемам с подключением во всех подсетях с помощью этих таблиц маршрутов или группы безопасности сети, а также приведет к сбою операций управления Управляемый экземпляр SQL.
- Шлюз NAT. Использование Azure виртуальная сеть NAT для управления исходящим подключением с определенным общедоступным IP-адресом отображается Управляемый экземпляр SQL недоступно. В настоящее время служба Управляемый экземпляр SQL ограничена использованием базовой подсистемы балансировки нагрузки, которая не обеспечивает сосуществование входящих и исходящих потоков с azure виртуальная сеть NAT.
- IP версии 6 для виртуальной сети Azure. Вероятно, при развертывании Управляемого экземпляра SQL в виртуальных сетях IP версии 4 или 6 с двумя стеками произойдет сбой. Связывание группы безопасности сети или таблицы маршрутов с определяемыми пользователем маршрутами (определяемыми пользователем), содержащими префиксы адресов IPv6 с префиксами Управляемый экземпляр SQL подсети, отрисовывает Управляемый экземпляр SQL недоступно. Кроме того, добавление префиксов IPv6-адресов в группу безопасности сети или UDR, которая уже связана с подсетью управляемого экземпляра, отображает Управляемый экземпляр SQL недоступно. Управляемый экземпляр SQL развертывания в подсети с группой безопасности сети и UDR, у которых уже есть префиксы IPv6, должны завершиться ошибкой.
- Протокол TLS 1.2 применяется к исходящим подключениям: начиная с января 2020 года корпорация Майкрософт применяет TLS 1.2 для трафика внутри службы Azure. Для Управляемый экземпляр SQL это привело к принудительному применению TLS 1.2 для исходящих подключений, используемых для репликации и подключений связанного сервера к SQL Server. Если вы используете версию SQL Server ранее 2016 года с Управляемый экземпляр SQL, убедитесь, что вы применяете обновления TLS 1.2.
- внутренний резервный ресурс Azure DNS. Управляемые экземпляры зависят от функционирования разрешения DNS в своих виртуальных сетях. Если виртуальная сеть управляемого экземпляра настроена на использование пользовательских DNS-серверов, а запрос DNS, выданный пользовательским DNS-серверам, не выполняется в течение определенного интервала (1–2 секунды), управляемый экземпляр повторит запрос к azure DNS в этой виртуальной сети.
Связанный контент
- Обзор см. в статье Что такое управляемый экземпляр SQL Azure?.
- Дополнительные сведения см. по адресу .
- Архитектура виртуального кластера
- Конфигурация подсети с поддержкой службы
- Настройте новую виртуальную сеть Azure или существующую виртуальную сеть Azure, где можно развернуть Управляемый экземпляр SQL.
- Вычислите размер подсети, где будет развернут Управляемый экземпляр SQL.
- Узнайте, как создать управляемый экземпляр:
- На портале Azure.
- с помощью PowerShell;
- с помощью шаблона Azure Resource Manager;
- С помощью шаблона Azure Resource Manager с прыжком и SQL Server Management Studio.