Dela via


Återställning till Internet för Azure Privat DNS-zoner

Den här artikeln visar hur du ställer in egenskapen ResolutionPolicy i Azure Privat DNS för att aktivera återställning till Internet-rekursion när ett auktoritativt NXDOMAIN-svar tas emot för en Private Link-zon. NXDOMAIN kallas även för ett negativt svar. När en DNS-matchare tar emot (eller har cachelagrat) ett negativt svar skickar den inget DNS-svar till DNS-klienten och frågan misslyckas.

Problem

Privat DNS frågor för Scenarier med Azure Private Link och nätverksisolering mellan olika klienter och resursgrupper har unika namnmatchningssökvägar. Detta kan påverka möjligheten att nå Private Link-aktiverade resurser utanför en klientorganisations kontroll. Det finns vm-baserade lösningar för att lösa det här problemet, men dessa lösningar ökar driftkomplexiteten och är associerade med säkerhetsrisker och högre kostnader.

Lösning

Egenskapen ResolutionPolicy i Azure Privat DNS är en fullständigt hanterad intern lösning. Den här egenskapen möjliggör offentlig rekursion via Azures rekursiva lösningsflotta när ett auktoritativt NXDOMAIN-svar tas emot för en privat länkzon och den privata adressen inte kan matchas. Lösningsprincipen är aktiverad på länknivå för virtuellt nätverk med inställningen NxDomainRedirect . I Azure Portal aktiveras NxDomainRedirect genom att välja Aktivera återställning till Internet i länkkonfigurationen för virtuella nätverk.

Definition av princip

Egenskapen ResolutionPolicy är tillgänglig i API-version 2024-06-01 eller senare. I följande exempel anges resolutionPolicy till NxDomainRedirectresursnivån virtualNetworkLinks :

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

Den här inställningen är tillgänglig i Azure Portal på: Privat DNS zoner>Virtuella nätverkslänkar>Aktivera återställning till Internet.

Hur det fungerar

Ett NXDOMAIN-svar (RCODE3) innebär att det efterfrågade domännamnet (Private Link) inte finns. Det här negativa svaret förhindrar vanligtvis att matchare försöker igen tills det cachelagrade negativa svaret upphör att gälla.

När NxDomainRedirect-matchningsprincipen är aktiverad på en länk till ett virtuellt nätverk försöker den rekursiva lösningslösningen i Azure frågan igen. Matcharen använder QNAME för den offentliga slutpunkten som frågeetikett varje gång ett NXDOMAIN-svar tas emot från PrivateEdge för det privata zonomfånget.

Den här ändringen visas i CNAME-kedjematchningen.

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

Begränsningar

  • Den här principen är endast tillgänglig för Privat DNS zoner som är associerade med Private Link-resurser.
  • Parametern ResolutionPolicy accepterar endast Standard - eller NxDomainRedirect som möjliga värden.

Demonstrera återställning till Internetupplösning

I följande exempel visas hur du aktiverar återställning till Internetupplösning för en privat länkzon (till exempel: privatelink.blob.core.windows.net).

Förutsättningar

  • Minst två resursgrupper: var och en med ett virtuellt nätverk och en privat slutpunkt.
    • Resursgrupperna kan finnas i olika regioner eller i samma region.
    • Lagringskonton används med privata slutpunkter i det här exemplet, men andra PaaS-tjänster kan länkas.
  • Minst en virtuell dator i ett av de virtuella nätverken krävs för att köra DNS-frågor.
    • Det virtuella nätverk där den virtuella datorn finns ska länkas till någon av de privata länkzonerna.

Den här guiden förutsätter att du har etablerat de nödvändiga resurserna innan du fortsätter. Mer information finns i Använda privata Azure-slutpunkter.

Granska Privat DNS zoner

  1. På sidan Azure Portal Start söker du efter och väljer Privat DNS zoner.

  2. Granska listan med namn och kontrollera att minst två privata DNS-zoner har samma namn (privatelink.blob.core.windows.net). Se följande exempel:

    Skärmbild av listan över Privat DNS zoner.

  3. Välj de privata länkzonerna och välj sedan Postuppsättningar.

  4. Kontrollera att poster för lagringskonton finns i varje privat zon.

    Kommentar

    Lagringskonton som finns i samma resursgrupp har resursposter i samma Privat DNS zon.
    Lagringskonton som finns i olika resursgrupper har resursposter i olika (identiskt namngivna) Privat DNS zoner.

Demonstrera DNS-matchningsfel

  1. Skriv ned det fullständigt kvalificerade domännamnet (FQDN) och IP-adressen för ett lagringskonto i den första privata länkzonen som visas (till exempel: myeaststorageacct1.privatelink.blob.core.windows.net, 10.40.40.5).

  2. Skriv även ned FQDN och IP-adressen för en annan Privat DNS zon med samma namn (till exempel: myeaststorageacct2.privatelink.blob.core.windows.net, 10.10.10.5).

    • Minst en av dessa Privat DNS zoner måste ha en virtuell nätverkslänk till det virtuella nätverket där du kan köra frågor från en virtuell dator.
  3. Öppna en kommandotolk på den virtuella Azure-datorn och försök att lösa FQDN för båda lagringskontona. Se följande exempel:

    C:\>dig myeaststorageacct1.privatelink.blob.core.windows.net +short
    10.40.40.5
    
    C:\>dig myeaststorageacct2.privatelink.blob.core.windows.net +short
    
    
  4. Observera att ett lagringskonto matchar och att det andra lagringskontot inte matchar.

Konfigurera återställning till internetupplösning

  1. Välj var och en av de privata DNS-zonerna igen, välj Virtuella nätverkslänkar och välj sedan pennikonen "redigera". Se följande exempel:

    Skärmbild av redigeringen av länken för det virtuella nätverket.

  2. Längst ned på sidan väljer du Aktivera återställning till Internet och sedan Spara.

    Skärmbild av hur du aktiverar återställning.

  3. Upprepa de här stegen för varje privat länkzon och ge tid för de virtuella nätverkslänkarna att uppdateras.

  4. Försök att matcha FQDN för lagringskontona igen. Se följande exempel:

    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
    

    Lagringskontot som inte löste har nu lösts via Internet, så att du kan nå den här Private Link-aktiverade resursen.

Du kan använda Azure Resource Graph Explorer eller Azure CLI för att fråga efter återställningsaktiverade virtuella nätverkslänkar. Se följande exempel:

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

Skärmbild av en resursdiagramfråga.

Indata:

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

Utdata:

{
  "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
}

Om du vill visa principvärden för matchning för alla privata länkaktiverade zoner kan du använda följande Azure Resource Graph Explorer- och Azure CLI-frågor:

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

Indata:

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

Följande Azure CLI-exempelutdata har en av de privata länkaktiverade zonerna inställda på Standard (återställning inaktiverad) för att visa hur detta visas.

Utdata:

{
  "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
}

Nästa steg