IBM Cloud Docs
Gestione delle zone DNS

Gestione delle zone DNS

Gestire le zone DNS utilizzando l'interfaccia utente, la CLI o l'API.

È necessario disporre di un'istanza IBM Cloud® DNS Services prima di gestire le zone DNS. Fare riferimento a Crea una DNS Services istanza per ulteriori informazioni.

Una zona può avere un numero arbitrario di livelli, ma non inferiore a due. Ad esempio, ibm.austin.texas.example.com è un nome di zona valido, ma com non lo è.

È possibile avere più zone dove uno è un suffisso ad un altro. Ad esempio, sub.domain.example.com e domain.example.com possono coesistere.

È anche possibile definire sottodomini all'interno di una zona aggiunta. Ad esempio, i seguenti sono tutti i nomi validi all'interno della zona domain.example.com.

  • subdomain.domain.example.com
  • hostname.domain.example.com
  • hostname.subdomain.domain.example.com

Il nome host.sub.domain.example.com potrebbe essere host.sub all'interno della zona domain.example.com. Potrebbe anche essere host.sub.domain all'interno della zona example.com. Entrambi possono esistere contemporaneamente, e sono separati.

Limitazioni note

Il resolver DNS cerca sempre un record dalla zona di corrispondenza più lunga, anche se il record potrebbe non esistere nella zona di corrispondenza più lunga ma esiste in un'altra zona di corrispondenza non più lunga.

Diciamo che abbiamo due zone, domain.example.com e example.com.

Record per example.com

 {
      myhost.domain.example.com A 1.1.1.1
      me.domain.example.com A 8.8.8.8
  }

Record per domain.example.com

  {
      myhost.domain.example.com A 2.2.2.2
  }

Se un utente esegue una query per myhost.domain.example.com, il risultato previsto (che è 2.2.2.2) deve provenire da domain.example.com, poiché domain.example.com è la corrispondenza più lunga con la query utente.

Se si interrogano per me.domain.example.com invece, il resolver ricerca solo la zona di corrispondenza più lunga. Poiché me.domain.example.com non esiste in domain.example.com, il risultato è un NXDOMAIN.

Per ulteriori informazioni, vedere Problemi noti e limitazioni.

Creare una zona DNS nella console

  1. Dalla pagina Risorse, selezionare l'istanza DNS Services desiderata.
  2. Fare clic su Crea zona nella pagina Zone DNS.
  3. Nel pannello che appare, inserire il proprio nome di zona nel campo Nome. Facoltativamente, inserire i campi Label e Descrizione. Consultare [ Limitati nomi di zona DNS (#restricted- dns - zone - nomi) per informazioni su quali nomi non sono consentiti.
  4. Fare clic su Crea zona.

Se la creazione della zona ha esito positivo, si è indirizzati alla pagina Dettagli zona.

Le zone appena aggiunte hanno uno stato in sospeso fino a quando non si aggiungono reti consentite alla zona. La zona diventa attiva dopo che si aggiungono reti consentite.

Se la creazione della zona non è riuscita, viene visualizzata una notifica di errore con informazioni su ciò che ha causato l'errore.

Nomi di zona DNS limitati

I sottodomini a una qualsiasi delle zone a 2 livelli ristretti non sono ammessi. Ad esempio, my.host.ibm.com è un sottodominio a ibm.com. Pertanto, my.host.ibm.com è anche una zona riservata.

I seguenti nomi di zona DNS non sono ammessi.

  • ibm.com
  • softlayer.com
  • bluemix.net
  • softlayer.local
  • mybluemix.net
  • networklayer.com
  • ibmcloud.com
  • pdnsibm.net
  • appdomain.cloud
  • compass.cobaltiron.com

Modifica di una zona DNS nella console

  1. Dalla pagina Zones DNS, selezionare la tua zona. Etichetta e Descrizione appaiono.
  2. Fare clic sull'icona di modifica per Label, quindi inserire l'etichetta e fare clic su Salva.
  3. Fare clic sull'icona di modifica per Descrizione, quindi inserire la descrizione e fare clic su Salva.

Eliminare una zona DNS nella console

  1. Dalla pagina Zone DNS, fare clic sull'icona Elimina dalla riga della zona che si desidera eliminare. Viene visualizzata una finestra di dialogo di conferma.
  2. Fai clic su Delete.

Gestire le zone DNS dalla CLI

Segui queste istruzioni per installare DNS Services CLI plugin.

Primo utilizzo ibmcloud dns instances comando per elencare le istanze DNS Services e quindi utilizzare il comando ibmcloud dns instance-target per impostare l'istanza di destinazione operativa DNS Services.

$ ibmcloud dns instances
Retrieving service instances for service 'dns-svcs' ...
OK

Name                 ID                                     Location   State    Service Name
DNS Services-km      ffffffff-b042-41fd-885e-000000000000   global     active   dns-svcs

$ ibmcloud dns instance-target "DNS Services-km"

Creare una zona DNS dalla CLI

Utilizzare il comando ibmcloud dns zone-create seguito dal nome della zona per creare una zona.

$ ibmcloud dns zone-create example.com
Creating zone 'example.com' for service instance 'DNS Services-km' ...
OK

ID            example.com:f7f40364-a5e6-48f7-9fc9-387434c579ae
Name          example.com
Description
Label
State         PENDING_NETWORK_ADD
Created On    2020-04-10 07:21:51.774444868 +0000 UTC
Modified On   2020-04-10 07:21:51.774444868 +0000 UTC

Per il riferimento futuro, l'"ID" in output viene utilizzato come variabile DNS_ZONE_ID. Eseguire questo comando per memorizzarlo nella variabile DNS_ZONE_ID:

DNS_ZONE_ID="example.com:f7f40364-a5e6-48f7-9fc9-387434c579ae"

Ottenere una zona DNS dalla CLI

Utilizzare il comando ibmcloud dns zone seguito dall'ID zona per ottenere i dettagli di una zona esistente.

$ ibmcloud dns zone $DNS_ZONE_ID
Getting zone 'example.com:f7f40364-a5e6-48f7-9fc9-387434c579ae' for service instance 'DNS Services-km' ...
OK

ID            example.com:f7f40364-a5e6-48f7-9fc9-387434c579ae
Name          example.com
Description
Label
State         PENDING_NETWORK_ADD
Created On    2020-04-10 07:21:51.774444868 +0000 UTC
Modified On   2020-04-10 07:21:51.774444868 +0000 UTC

Aggiornare una zona DNS dalla CLI

Utilizzare il comando ibmcloud dns zone-update seguito dall'ID zona per aggiornare una zona. Specificare -d, --description per aggiornare la descrizione e / o -l, --label per aggiornare l'etichetta di una zona.

$ ibmcloud dns zone-update $DNS_ZONE_ID -d "example zone" -l "us-south"
Updating zone 'example.com:f7f40364-a5e6-48f7-9fc9-387434c579ae' for service instance 'DNS Services-km' ...
OK

ID            example.com:f7f40364-a5e6-48f7-9fc9-387434c579ae
Name          example.com
Description   example zone
Label         us-south
State         PENDING_NETWORK_ADD
Created On    2020-04-10 07:21:51.774444868 +0000 UTC
Modified On   2020-04-10 07:38:36.712131819 +0000 UTC

Elenco delle zone DNS dalla CLI

Utilizzare il comando ibmcloud dns zones per elencare tutte le zone.

$ ibmcloud dns zones
Listing zones for service instance 'DNS Services-km' ...
OK

ID                                                      Name               Status
example.com:f7f40364-a5e6-48f7-9fc9-387434c579ae        example.com        PENDING_NETWORK_ADD

Eliminare una zona DNS dalla CLI

Utilizzare il ibmcloud dns zone-delete seguito dall'ID zona per eliminare una zona.

ibmcloud dns zone-delete  $DNS_ZONE_ID

Gestire le zone DNS con l'API

Per prima cosa, memorizza l'endpoint API in una variabile in modo da poterlo utilizzare nelle richieste API senza dover digitare l'intero URL. Ad esempio, per memorizzare l'endpoint di produzione in una variabile, eseguire questo comando:

DNSSVCS_ENDPOINT=https://api.dns-svcs.cloud.ibm.com

Per verificare che la variabile sia stata salvata, eseguire echo $DNSSVCS_ENDPOINT e verificare che la risposta non sia vuota.

Autenticazione

L'intestazione Authorization è necessaria per ogni chiamata API. Questa intestazione è il token di connessione dell'utente che può essere richiamato da IAM (ad esempio, utilizzando il comando ibmcloud iam oauth-tokens).

È necessario ottenere un token IAM ed esportarlo in $TOKEN per DNS Services.

Creare una zona DNS con l'API

Creare una nuova zona utilizzando il seguente comando curl :

Richiesta

curl -X POST \
  $DNSSVCS_ENDPOINT/v1/instances/$INSTANCE_ID/dnszones \
  -H "Authorization: $TOKEN" \
  -d '{
  "name": "example.com",
  "description": "Example zone"
}'

Risposta

{
    "success": true,
    "result": {
        "id": "ed10e4b2-8a64-4afa-a4e2-9e60a766d079",
        "created_on": "2019-07-24 12:30:58.357201205 +0000 UTC",
        "modified_on": "2019-07-24 12:30:58.357201205 +0000 UTC",
        "instance_id": "1a34bda8-9c94-4232-bea7-7df163b21d23",
        "name": "example.com",
        "description": "Example zone",
        "state": "PENDING_NETWORK_ADD",
        "tag": "example.com:ed10e4b2-8a64-4afa-a4e2-9e60a766d079"
    },
    "errors": [],
    "messages": []
}

Per il riferimento futuro, l'"id" in risposta viene utilizzato come DNSZONE_ID

Ottenere una zona DNS con l'API

Utilizzare il seguente comando per ottenere una zona esistente.

Richiesta

curl -X GET \
  $DNSSVCS_ENDPOINT/v1/instances/$INSTANCE_ID/dnszones/$DNSZONE_ID \
  -H "Authorization: $TOKEN"

Risposta

{
    "success": true,
    "result": {
        "id": "example.com:ed10e4b2-8a64-4afa-a4e2-9e60a766d079",
        "created_on": "2019-07-24 12:30:58.357201205 +0000 UTC",
        "modified_on": "2019-07-24 12:30:58.357201205 +0000 UTC",
        "instance_id": "1a34bda8-9c94-4232-bea7-7df163b21d23",
        "name": "example.com",
        "description": "Example zone",
        "state": "PENDING_NETWORK_ADD"
    },
    "errors": [],
    "messages": []
}

Aggiornamento di una zona DNS con l'API

Utilizzare il seguente comando per aggiornare una zona esistente.È possibile aggiornare i campi descrizione ed etichetta. Tutti gli altri campi sono di sola lettura.

Richiesta

curl -X PATCH \
  $DNSSVCS_ENDPOINT/v1/instances/$INSTANCE_ID/dnszones/$DNSZONE_ID \
  -H 'Content-Type: application/json' \
  -H "Authorization: $TOKEN" \
  -d '{
    "description": "The DNS zone is used for VPCs in us-east region",
    "label": "us-east"
}'

Risposta

{
  "created_on": "2019-01-01T05:20:00.12345Z",
  "description": "The DNS zone is used for VPCs in us-east region",
  "id": "example.com:2d0f862b-67cc-41f3-b6a2-59860d0aa90e",
  "instance_id": "1407a753-a93f-4bb0-9784-bcfc269ee1b3",
  "label": "us-east",
  "modified_on": "2019-01-01T05:20:00.12345Z",
  "name": "example.com",
  "state": "PENDING_NETWORK_ADD"
}

Elencare le zone DNS con l'API

Elencare una o più zone nel tuo dominio utilizzando il seguente comando curl :

Richiesta

curl -X GET \
  $DNSSVCS_ENDPOINT/v1/instances/$INSTANCE_ID/dnszones \
  -H "Authorization: $TOKEN"

Risposta

{
    "success": true,
    "result": [
        {
            "id": "example.com:ed10e4b2-8a64-4afa-a4e2-9e60a766d079",
            "created_on": "2019-07-24 12:30:58.357201205 +0000 UTC",
            "modified_on": "2019-07-24 12:30:58.357201205 +0000 UTC",
            "instance_id": "1a34bda8-9c94-4232-bea7-7df163b21d23",
            "name": "example.com",
            "description": "Example zone",
            "state": "PENDING_NETWORK_ADD"
        }
    ],
    "errors": [],
    "messages": []
}

Eliminare una zona DNS con l'API

Richiesta

curl -X DELETE \
  $DNSSVCS_ENDPOINT/v1/instances/$INSTANCE_ID/dnszones/$DNSZONE_ID \
  -H "Authorization: $TOKEN"

Risposta

HTTP/2 204 No Content