Прочитать на английском

Поделиться через


Резервное подключение к Интернету для зон Частная зона DNS Azure

В этой статье показано, как задать свойство ResolutionPolicy в Azure Частная зона DNS, чтобы включить обратный возврат к Интернету при получении достоверного ответа NXDOMAIN для зоны Приватный канал. NXDOMAIN также называется отрицательным ответом. Когда сопоставитель DNS получает (или кэшировал) отрицательный ответ, он не отправляет ОТВЕТ DNS клиенту DNS и запрос завершается сбоем.

Проблема

Частная зона DNS запросы для сценариев Приватный канал Azure и сетевой изоляции в разных клиентах и группах ресурсов имеют уникальные пути разрешения имен. Это может повлиять на возможность доступа к ресурсам с поддержкой Приватный канал за пределами элемента управления клиента. Решения на основе виртуальных машин существуют для решения этой проблемы, но эти решения повышают операционную сложность и связаны с рисками безопасности и более высокими затратами.

Решение

Свойство ResolutionPolicy в Azure Частная зона DNS — это полностью управляемое собственное решение. Это свойство обеспечивает общедоступную рекурсию через рекурсивный флот сопоставителя Azure при получении авторитетного ответа NXDOMAIN для зоны приватного канала, а частный адрес не удается устранить. Политика разрешения включена на уровне канала виртуальной сети с параметром NxDomainRedirect . В портал Azure параметр NxDomainRedirect включен, выбрав "Включить резервный доступ к Интернету" в конфигурации канала виртуальной сети.

Определение политики

Свойство ResolutionPolicy доступно в API версии 2024-06-01 или выше. В следующем примере параметр resolutionPolicy имеет значение NxDomainRedirect на уровне ресурсов virtualNetworkLinks :

{
  "id": "'string'",
  "name": '"string'",
  "type": "Microsoft.Network/privateDnsZones/virtualNetworkLinks",
  "location": "global",
  "properties": {
    "provisioningState": "Succeeded",
    "registrationEnabled": bool,
    "resolutionPolicy": "NxDomainRedirect",
    "virtualNetwork": {
      "id": "'string'"
    }
  }
}

Этот параметр доступен в портал Azure: Частная зона DNS зонах> виртуальная сеть Ссылки>позволяют вернуться к Интернету.

Принцип работы

Ответ NXDOMAIN (RCODE3) означает, что запрашиваемое доменное имя (Приватный канал) не существует. Этот отрицательный ответ обычно предотвращает повторную попытку запроса до истечения срока действия кэшированного отрицательного ответа.

Если политика разрешения NxDomainRedirect включена по ссылке виртуальной сети, рекурсивный сопоставитель Azure повторяет запрос. Сопоставитель использует общедоступную конечную точку QNAME в качестве метки запроса при каждом получении ответа NXDOMAIN из PrivateEdge для этой области частной зоны.

Это изменение можно увидеть в разрешении цепочки CNAME.

C:\>nslookup remoteprivateendpoint.blob.core.windows.net
Server:  UnKnown
Address:  168.63.129.16

Non-authoritative answer:
Name:    blob.mwh20prdstr02e.store.core.windows.net
Address:  203.0.113.33
Aliases:  remoteprivateendpoint.blob.core.windows.net
          remoteprivateendpoint.privatelink.blob.core.windows.net

Ограничения

  • Эта политика доступна только для зон Частная зона DNS, связанных с Приватный канал ресурсами.
  • Параметр ResolutionPolicy принимает только значения Default или NxDomainRedirect .

Демонстрация возврата к разрешению в Интернете

В следующем примере показано, как включить резервное подключение к интернет-разрешению для зоны приватного канала (например, privatelink.blob.core.windows.net).

Необходимые компоненты

  • По крайней мере две группы ресурсов: каждая с виртуальной сетью и частной конечной точкой.
    • Группы ресурсов могут находиться в разных регионах или в одном регионе.
    • Учетные записи хранения используются с частными конечными точками в этом примере, но другие службы PaaS могут быть связаны.
  • Для выполнения DNS-запросов требуется по крайней мере одна виртуальная машина в одной из виртуальных сетей.
    • Виртуальная сеть, в которой находится виртуальная машина, должна быть связана с одной из зон приватного канала.

В этом руководстве предполагается, что вы подготовили необходимые ресурсы, прежде чем продолжить. Дополнительные сведения см. в статье "Использование частных конечных точек Azure".

Проверка зон Частная зона DNS

  1. На домашней странице портал Azure найдите и выберите Частная зона DNS зоны.

  2. Просмотрите список имен и убедитесь, что хотя бы две частные зоны DNS имеют одинаковое имя (privatelink.blob.core.windows.net). См. следующий пример.

    Снимок экрана: список зон Частная зона DNS.

  3. Выберите зоны приватного канала и выберите наборы записей.

  4. Убедитесь, что записи для учетных записей хранения присутствуют в каждой частной зоне.

    Примечание

    Учетные записи хранения, которые находятся в одной группе ресурсов, имеют записи ресурсов в той же зоне Частная зона DNS.
    Учетные записи хранения, которые находятся в разных группах ресурсов, имеют записи ресурсов в разных (идентичных именованных) зонах Частная зона DNS.

Демонстрация сбоя разрешения DNS

  1. Запишите полное доменное имя (FQDN) и IP-адрес для учетной записи хранения в первой зоне приватного канала (например, myeaststorageacct1.privatelink.blob.core.windows.net). 10.40.40.5

  2. Кроме того, запишите полное доменное имя и IP-адрес для другой зоны Частная зона DNS с тем же именем (например, myeaststorageacct2.privatelink.blob.core.windows.net, 10.10.10.5).

    • По крайней мере одна из этих зон Частная зона DNS должна иметь связь виртуальной сети с виртуальной сетью, где можно выполнять запросы с виртуальной машины.
  3. Откройте командную строку на виртуальной машине Azure и попытайтесь устранить полное доменное имя обеих учетных записей хранения. См. следующий пример.

    C:\>dig myeaststorageacct1.privatelink.blob.core.windows.net +short
    10.40.40.5
    
    C:\>dig myeaststorageacct2.privatelink.blob.core.windows.net +short
    
    
  4. Обратите внимание, что одна учетная запись хранения разрешается, а другая учетная запись хранения не разрешается.

Настройка резервного доступа к разрешению интернета

  1. Снова выберите каждую из частных зон DNS, выберите виртуальная сеть Ссылки и щелкните значок "Изменить" карандаша. См. следующий пример.

    Снимок экрана: изменение ссылки виртуальной сети.

  2. В нижней части страницы выберите "Включить резервный доступ к Интернету " и нажмите кнопку "Сохранить".

    Снимок экрана: включение резервного восстановления.

  3. Повторите эти действия для каждой зоны приватного канала и разрешите время обновления каналов виртуальной сети.

  4. Повторите попытку разрешить полное доменное имя учетных записей хранения. См. следующий пример.

    C:\>dig myeaststorageacct1.privatelink.blob.core.windows.net +short
    10.40.40.5
    
    C:\>dig myeaststorageacct2.privatelink.blob.core.windows.net +short
    blob.bl5prdstr19c.store.core.windows.net.
    203.0.113.161
    

    Учетная запись хранения, которая не была разрешена, теперь успешно разрешается через Интернет, что позволяет получить доступ к этому ресурсу с поддержкой Приватный канал.

Обозреватель Azure Resource Graph или Azure CLI можно использовать для запроса резервных каналов виртуальной сети. См. следующие примеры.

resources
| where tostring(properties.resolutionPolicy) contains 'NxDomainRedirect'
| extend privateDnsZone = extract("/privateDnsZones/([^/]+)/", 1, id)
| project privateDnsZone, resourceGroup, properties.resolutionPolicy

Снимок экрана: запрос графа ресурсов.

Входные данные:

az graph query -q "resources
| where tostring(properties.resolutionPolicy) contains 'NxDomainRedirect'
| extend privateDnsZone = extract('/privateDnsZones/([^/]+)/', 1, id)
| project privateDnsZone, resourceGroup, properties.resolutionPolicy"

Выходные данные:

{
  "count": 4,
  "data": [
    {
      "privateDnsZone": "privatelink.blob.core.windows.net",
      "properties_resolutionPolicy": "NxDomainRedirect",
      "resourceGroup": "myresourcegroup"
    },
    {
      "privateDnsZone": "privatelink.blob.core.windows.net",
      "properties_resolutionPolicy": "NxDomainRedirect",
      "resourceGroup": "mywestrg2"
    },
    {
      "privateDnsZone": "privatelink.blob.core.windows.net",
      "properties_resolutionPolicy": "NxDomainRedirect",
      "resourceGroup": "mywestrg"
    },
    {
      "privateDnsZone": "privatelink.blob.core.windows.net",
      "properties_resolutionPolicy": "NxDomainRedirect",
      "resourceGroup": "myeastrg"
    }
  ],
  "skip_token": null,
  "total_records": 4
}

Чтобы отобразить значения политики разрешения для всех зон с поддержкой приватного канала, можно использовать следующие запросы Azure Resource Graph и Azure CLI:

resources
| where tostring(properties) contains 'resolutionPolicy'
| extend privateDnsZone = extract("/privateDnsZones/([^/]+)/", 1, id)
| project privateDnsZone, resourceGroup, properties.resolutionPolicy

Входные данные:

az graph query -q "resources
| where tostring(properties) contains 'resolutionPolicy'
| extend privateDnsZone = extract('/privateDnsZones/([^/]+)/', 1, id)
| project privateDnsZone, resourceGroup, properties.resolutionPolicy"

В следующем примере выходных данных Azure CLI есть одна из зон с поддержкой приватного канала, для параметра Default (отключено резервное подключение), чтобы продемонстрировать, как это отображается.

Выходные данные:

{
  "count": 4,
  "data": [
    {
      "privateDnsZone": "privatelink.blob.core.windows.net",
      "properties_resolutionPolicy": "Default",
      "resourceGroup": "mywestrg"
    },
    {
      "privateDnsZone": "privatelink.blob.core.windows.net",
      "properties_resolutionPolicy": "NxDomainRedirect",
      "resourceGroup": "myresourcegroup"
    },
    {
      "privateDnsZone": "privatelink.blob.core.windows.net",
      "properties_resolutionPolicy": "NxDomainRedirect",
      "resourceGroup": "mywestrg2"
    },
    {
      "privateDnsZone": "privatelink.blob.core.windows.net",
      "properties_resolutionPolicy": "NxDomainRedirect",
      "resourceGroup": "myeastrg"
    }
  ],
  "skip_token": null,
  "total_records": 4
}

Следующие шаги


Дополнительные ресурсы

Обучение

Модуль

Введение в частный резолвер Azure DNS - Training

Узнайте о частном резольвере Azure DNS и о том, как использовать его для разрешения DNS-запросов из локальной среды в облачные решения.

Сертификация

Microsoft Certified: Azure Network Engineer Associate (Сертификация Майкрософт. Помощник сетевого инженера Azure) - Certifications

Продемонстрировать проектирование, реализацию и обслуживание сетевой инфраструктуры Azure, балансировку трафика, маршрутизацию сети и многое другое.