Tutorial: Crea un record collegato al Traffic Manager usando interfaccia della riga di comando di Azure

In questa esercitazione si crea un record collegato di Gestione traffico in DNS di Azure usando l'interfaccia della riga di comando di Azure-+. Un Record Collegato di Traffic Manager collega direttamente un record DNS a un profilo Gestione traffico di Azure, restituendo indirizzi IP ai client senza una risoluzione CNAME intermedia.

Important

I Record collegati di Gestione traffico sono attualmente in ANTEPRIMA. Vedi le Condizioni supplementari d'uso per le anteprime di Microsoft Azure per conoscere le condizioni legali applicabili alle funzionalità di Azure che sono in beta, in anteprima o non ancora rilasciate nella disponibilità generale.

Per una guida basata su portale, vedi Crea un Record Collegato del Traffic Manager usando il portale Azure. Per una panoramica concettuale, vedi Traffic Manager Linked Records Overview.

In questa esercitazione apprenderai a:

  • Crea l'infrastruttura di rete e delle macchine virtuali.
  • Crea un profilo Traffic Manager con endpoint.
  • Crea un record collegato al Traffic Manager usando interfaccia della riga di comando di Azure.
  • Provare il record collegato di Gestione traffico.

Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.

Prerequisiti

  • Un account Azure con una sottoscrizione attiva.

  • interfaccia della riga di comando di Azure versione 2.60 o successiva installata localmente, oppure usa Azure Cloud Shell. Esegui az --version per verificare la versione. Per installare o aggiornare, vedere Installare interfaccia della riga di comando di Azure.

  • Nome di dominio ospitato in DNS di Azure. Se non hai una zona DNS di Azure, creala e delega il tuo dominio ad DNS di Azure.

    Note

    In questa esercitazione viene usato contoso.com come nome di dominio di esempio. Sostituire contoso.com con il proprio nome di dominio.

Impostare le variabili di ambiente

Imposta variabili per i nomi delle risorse e le posizioni utilizzate in questo tutorial per evitare di ripeterle in ogni comando.

RESOURCE_GROUP="test-rg"
LOCATION="eastus"
VNET_NAME="vnet-1"
TM_PROFILE_NAME="tm-profile"
DNS_ZONE="contoso.com"

Creare il gruppo di risorse

az group create \
    --name $RESOURCE_GROUP \
    --location $LOCATION

Creare la rete virtuale

az network vnet create \
    --resource-group $RESOURCE_GROUP \
    --name $VNET_NAME \
    --address-prefix 10.10.0.0/16 \
    --subnet-name subnet-1 \
    --subnet-prefix 10.10.0.0/24

Creare macchine virtuali server Web

Crea due macchine virtuali Ubuntu con indirizzi IP pubblici da usare come endpoint del Traffic Manager.

Crea gli indirizzi IP pubblici

az network public-ip create \
    --resource-group $RESOURCE_GROUP \
    --name public-ip-1 \
    --sku Standard \
    --dns-name vm-1-tmlink

az network public-ip create \
    --resource-group $RESOURCE_GROUP \
    --name public-ip-2 \
    --sku Standard \
    --dns-name vm-2-tmlink

Creare il gruppo di sicurezza di rete

az network nsg create \
    --resource-group $RESOURCE_GROUP \
    --name nsg-1

az network nsg rule create \
    --resource-group $RESOURCE_GROUP \
    --nsg-name nsg-1 \
    --name AllowHTTP \
    --protocol tcp \
    --priority 100 \
    --destination-port-range 80

az network nsg rule create \
    --resource-group $RESOURCE_GROUP \
    --nsg-name nsg-1 \
    --name AllowHTTPS \
    --protocol tcp \
    --priority 110 \
    --destination-port-range 443

Creare le interfacce di rete della macchina virtuale

az network nic create \
    --resource-group $RESOURCE_GROUP \
    --name nic-1 \
    --vnet-name $VNET_NAME \
    --subnet subnet-1 \
    --network-security-group nsg-1 \
    --public-ip-address public-ip-1

az network nic create \
    --resource-group $RESOURCE_GROUP \
    --name nic-2 \
    --vnet-name $VNET_NAME \
    --subnet subnet-1 \
    --network-security-group nsg-1 \
    --public-ip-address public-ip-2

Creare le macchine virtuali

Note

Sostituisci <your-ssh-public-key> con il contenuto del tuo file di chiave pubblica SSH, oppure usalo --generate-ssh-keys per creare una nuova coppia di chiavi.

az vm create \
    --resource-group $RESOURCE_GROUP \
    --name vm-1 \
    --nics nic-1 \
    --image Ubuntu2404 \
    --admin-username azureuser \
    --generate-ssh-keys \
    --no-wait

az vm create \
    --resource-group $RESOURCE_GROUP \
    --name vm-2 \
    --nics nic-2 \
    --image Ubuntu2404 \
    --admin-username azureuser \
    --generate-ssh-keys

L'ultimo comando attende che vm-2 venga creato. Entrambe le VM sono pronte quando il comando ritorna.

Installa NGINX su entrambe le VM

az vm run-command invoke \
    --resource-group $RESOURCE_GROUP \
    --name vm-1 \
    --command-id RunShellScript \
    --scripts "sudo apt-get update && sudo apt-get install -y nginx && echo 'Hello World from vm-1' | sudo tee /var/www/html/index.html"

az vm run-command invoke \
    --resource-group $RESOURCE_GROUP \
    --name vm-2 \
    --command-id RunShellScript \
    --scripts "sudo apt-get update && sudo apt-get install -y nginx && echo 'Hello World from vm-2' | sudo tee /var/www/html/index.html"

Recupera gli indirizzi IP pubblici

Nota gli indirizzi IP di entrambe le VM. Ne hai bisogno quando aggiungi endpoint di Traffic Manager.

VM1_IP=$(az network public-ip show \
    --resource-group $RESOURCE_GROUP \
    --name public-ip-1 \
    --query ipAddress \
    --output tsv)

VM2_IP=$(az network public-ip show \
    --resource-group $RESOURCE_GROUP \
    --name public-ip-2 \
    --query ipAddress \
    --output tsv)

echo "vm-1 IP: $VM1_IP"
echo "vm-2 IP: $VM2_IP"

Crea il profilo del Traffic Manager

az network traffic-manager profile create \
    --resource-group $RESOURCE_GROUP \
    --name $TM_PROFILE_NAME \
    --routing-method Priority \
    --unique-dns-name tm-profile-$RANDOM

Aggiungi endpoint al profilo di Traffic Manager

az network traffic-manager endpoint create \
    --resource-group $RESOURCE_GROUP \
    --profile-name $TM_PROFILE_NAME \
    --name tmendpoint-1 \
    --type externalEndpoints \
    --target $VM1_IP \
    --priority 1

az network traffic-manager endpoint create \
    --resource-group $RESOURCE_GROUP \
    --profile-name $TM_PROFILE_NAME \
    --name tmendpoint-2 \
    --type externalEndpoints \
    --target $VM2_IP \
    --priority 2

Ottieni l'ID risorsa completo del profilo Traffic Manager. Ne hai bisogno durante la creazione del record collegato.

TM_PROFILE_ID=$(az network traffic-manager profile show \
    --resource-group $RESOURCE_GROUP \
    --name $TM_PROFILE_NAME \
    --query id \
    --output tsv)

echo "Traffic Manager profile ID: $TM_PROFILE_ID"

Crea il record associato di Traffic Manager

Usa az network dns record-set a create con il --traffic-management-profile parametro per creare il Record Collegato del Traffic Manager. Il seguente comando crea un record A all'apice della zona (@).

Note

Il parametro --traffic-management-profile è disponibile in interfaccia della riga di comando di Azure versione 2.60 e successiva, e richiede l'API di anteprima dei Record Collegati del Traffic Manager (2024-06-01-previewo successiva).

az network dns record-set a create \
    --resource-group <dns-zone-resource-group> \
    --zone-name $DNS_ZONE \
    --name "@" \
    --traffic-management-profile $TM_PROFILE_ID

Note

Sostituisci <dns-zone-resource-group> con il gruppo di risorse che contiene la tua zona DNS di Azure. Questo può differire dal gruppo di risorse che contiene il profilo Traffic Manager.

Per creare un Record Collegato al Traffic Manager per un sottodominio invece dell'apice della zona, sostituisci "@" con il nome del sottodominio, ad "www"esempio:

az network dns record-set a create \
    --resource-group <dns-zone-resource-group> \
    --zone-name $DNS_ZONE \
    --name "www" \
    --traffic-management-profile $TM_PROFILE_ID

Verifica il record collegato

az network dns record-set a show \
    --resource-group <dns-zone-resource-group> \
    --zone-name $DNS_ZONE \
    --name "@"

L'output include la proprietà trafficManagementProfile con l'ID risorsa del profilo di Gestione traffico, a conferma che il collegamento è stato stabilito:

{
  "name": "@",
  "properties": {
    "trafficManagementProfile": {
      "id": "/subscriptions/.../resourceGroups/test-rg/providers/Microsoft.Network/trafficManagerProfiles/tm-profile"
    },
    "TTL": 30,
    ...
  }
}

Note

Il valore TTL mostrato nell'output è ereditato dalla configurazione DNS del profilo Traffic Manager. Qualsiasi valore TTL specificato durante la creazione del record viene ignorato.

Testa il record collegato al Traffic Manager

Per testare la risoluzione dei nomi, consulta direttamente uno dei server di nomi DNS di Azure per la tua zona. Per prima cosa, elenca i server di nomi della tua zona:

az network dns record-set ns show \
    --resource-group <dns-zone-resource-group> \
    --zone-name $DNS_ZONE \
    --name "@" \
    --query "nsRecords[0].nsdname" \
    --output tsv

Utilizzare il server dei nomi restituito con nslookup per eseguire il test della risoluzione:

nslookup contoso.com <name-server-from-above>

La risposta contiene l'indirizzo IP dell'endpoint Traffic Manager sano con la priorità più alta—senza alcun record CNAME nella risposta. Questo conferma che i Record Collegati del Traffic Manager restituiscono direttamente gli indirizzi IP.

Failover di test

  1. Naviga nel tuo dominio. Dovresti vedere la pagina NGINX per VM-1.

  2. Ferma la VM-1 VM:

    az vm stop --resource-group $RESOURCE_GROUP --name vm-1
    
  3. Aspetta qualche minuto che Traffic Manager rilevi l'endpoint come non sano.

  4. Svuota la cache DNS locale (ipconfig /flushdnssu Windows, sudo dscacheutil -flushcache su macOS) e naviga di nuovo verso il tuo dominio. Dovrebbe essere visualizzata la pagina vm-2.

  5. Riavvia VM-1 per ripristinare la configurazione originale:

    az vm start --resource-group $RESOURCE_GROUP --name vm-1
    

Pulire le risorse

Quando non hai più bisogno delle risorse create in questo tutorial, elimina il gruppo di risorse e il record DNS:

# Delete the resource group and all resources within it
az group delete --name $RESOURCE_GROUP --yes --no-wait

# Delete the Traffic Manager Linked Record from the DNS zone
az network dns record-set a delete \
    --resource-group <dns-zone-resource-group> \
    --zone-name $DNS_ZONE \
    --name "@" \
    --yes

Passaggi successivi

In questo tutorial, hai creato un Record Collegato al Traffic Manager usando interfaccia della riga di comando di Azure. Il record collega l'apice della tua zona DNS a un profilo Traffic Manager, restituendo direttamente gli indirizzi IP ai client.