Comportamento e logica di risoluzione DNS

Il sistema dei nomi di dominio (DNS) è alla base del web e lavora in modo trasparente in background per convertire i nomi dei siti web leggibili dall'uomo in indirizzi IP numerici leggibili dal computer. Questi indirizzi seguono le linee guida RFC 1918 di Internet per IPv4 e RFC 4193 per IPv6. In breve, i server DNS associano i nomi di dominio, come ad esempio ibm.com, ai corrispondenti indirizzi IP, che la maggior parte delle persone non ha mai bisogno di conoscere.

Per eseguire questa traduzione, il sistema DNS interroga una rete di server DNS interconnessi su Internet. Questo processo è simile all'utilizzo di un elenco telefonico o di una mappa per trovare un luogo specifico.

Server dei nomi

Un name server fornisce servizi che rispondono alle interrogazioni di una directory, traducendo nomi web o hostname significativi e basati su testo in indirizzi IP.

La delega del server dei nomi si verifica quando il server dei nomi di un dominio riceve una richiesta per i record di un sottodominio e risponde rimandando il richiedente al server dei nomi delegato che gestisce il sottodominio. Questo processo consente la gestione decentralizzata di domini di grandi dimensioni, come ibm.com.

Con un server DNS personalizzato, puoi utilizzare i server del provider DNS con il nome di riferimento personalizzato del tuo dominio. Ad esempio, è possibile definire il proprio server dei nomi come ns1.cloud.ibm.com invece di quello predefinito dal provider, come ns1.acme.com.

Proxying dei record DNS e balancelli di carico globali

CIS supporta il proxying per i bilanciatori di carico globali e i record DNS. Quando un record o un bilanciatore di carico è proxy, il suo traffico passa direttamente attraverso CIS.

Attualmente, è possibile utilizzare un proxy per i record DNS di tipo A, AAAA o CNAME. Per ulteriori informazioni, vedere Tipi di record DNS.

Impostazione delle modalità proxy

I bilanciatori di carico e i record DNS supportano sia la modalità DNS-only che quella proxy- HTTP. È possibile avere HTTP domini proxy e domini solo DNS nella stessa istanza di CIS, ma il comportamento di instradamento del traffico è diverso: il traffico per i record che sono proxy passa attraverso CIS, mentre il traffico per i record che non sono proxy (modalità solo DNS) passa direttamente dal client all'origine.

HTTP modalità proxy

In modalità proxy di HTTP, CIS annuncia all'esterno gli indirizzi IP dell' IBM, ma protegge (maschera) gli indirizzi IP del server di origine. I record di indirizzi IP annunciati hanno un TTL automatico. Il traffico passa attraverso CIS, dove vengono applicate tutte le caratteristiche di sicurezza, prestazioni e affidabilità, come le regole del firewall e la cache. Il TTL "automatico" (cinque minuti) riduce anche il numero di interrogazioni autoritative che vengono effettuate nei confronti di CIS.

Modalità solo DNS

In modalità solo DNS, i record vengono risolti all'IP di origine ed è possibile personalizzare il TTL dei record. Per i bilanciatori di carico globali, CIS serve direttamente gli indirizzi dei server di origine sani, ma si affida ai resolver DNS, che rispettano il TTL breve, per richiedere a CIS DNS un elenco aggiornato di indirizzi sani.

In modalità solo DNS, nessuna delle funzionalità di sicurezza, affidabilità e prestazioni di CIS viene applicata.

Flattening del CNAME del record root

La funzione di "appiattimento dei CNAME" di CIS consente ai record radice di aggirare la restrizione delle RFC IETF. Questa restrizione stabilisce che se un record radice è un CNAME, non può avere altri record per quel dominio. I server autoritativi di CIS aggirano questa restrizione restituendo il A records corrispondente al CNAME di destinazione invece di restituire il CNAME stesso, nascondendo di fatto il CNAME. Questa tecnica consente di aggiungere al dominio altri record, come i record MX, anche se il record radice è un CNAME.

DNS protetto

Il DNSSEC è una tecnologia che "firma" digitalmente i dati DNS, consentendo di avere la certezza della loro validità. Per eliminare le vulnerabilità da Internet, è necessario implementare il protocollo DNSSEC in ogni fase del processo di ricerca, dalla zona radice al nome di dominio finale (ad esempio, www.icann.org).

Modifiche di record DNS in batch

CIS supporta le modifiche dei record DNS in batch, consentendo di aggiornare più record di zona in un'unica azione. Questo approccio riduce l'impegno manuale e semplifica le attività di gestione del dominio, come le migrazioni, la configurazione degli ambienti o i flussi di lavoro di automazione. Mentre la console CIS supporta le modifiche individuali, le operazioni in batch sono meglio eseguite utilizzando l'API.

L'endpoint API Batch DNS records consente di eseguire più DELETES, PATCHES, PUTS e POSTS in un'unica richiesta.

Le operazioni incluse nel corpo della richiesta /batch vengono sempre elaborate nel seguente ordine:

  1. Eliminazioni
  2. Patch
  3. Inserimenti
  4. Messaggi

All'interno di ogni tipo di operazione, le modifiche ai singoli record vengono applicate nell'ordine in cui vengono elaborate. Se una delle operazioni fallisce, non vengono applicate modifiche e l'API restituisce il primo errore che incontra.

Considerazioni chiave per i record DNS batch

Quando si specifica ogni operazione nel corpo della richiesta /batch, seguire le seguenti linee guida per i campi obbligatori e la gestione dei campi non specificati:

  • Deletes: Solo il campo id è richiesto per ogni oggetto record. È possibile includere campi aggiuntivi, come name per chiarezza, ma tutti gli altri campi vengono ignorati.

  • Patches: Oltre a ciascun record id, specificare i campi che si desidera aggiornare. Tutti i campi non specificati rimangono invariati.

  • Puts: Specificare id, content, name e type di ciascun record. Specificare anche gli altri campi che si desidera impostare su valori non predefiniti. I campi non specificati assumono il valore predefinito per ogni tipo di record. Questa operazione funziona come una sovrascrittura, quindi tutti i campi di un record sono sempre interessati.

  • Posts: Utilizzato per creare nuovi record. Il campo id non è obbligatorio. Per le definizioni dei campi, vedere l'endpoint Crea record DNS e selezionare il tipo di record appropriato dalle specifiche del corpo della richiesta.

Richiesta di esempio

In questo esempio, il campo proxy per il primo record elencato in puts assume il valore predefinito false.

{
  "deletes": [
    {
      "id": "023e105f4ecef8ad9ca31a8372d0c353"
    }
  ],
  "patches": [
    {
      "id": "023e105f4ecef8ad9ca31a8372d0c353",
      "comment": "Domain verification record",
      "name": "example.com",
      "proxied": true,
      "settings": {},
      "tags": [],
      "ttl": 3600,
      "content": "198.51.100.4",
      "type": "A"
    }
  ],
  "posts": [
    {
      "comment": "Domain verification record",
      "name": "example.com",
      "proxied": true,
      "settings": {},
      "tags": [],
      "ttl": 3600,
      "content": "198.51.100.4",
      "type": "A"
    }
  ],
  "puts": [
    {
      "id": "023e105f4ecef8ad9ca31a8372d0c353",
      "comment": "Domain verification record",
      "name": "example.com",
      "proxied": true,
      "settings": {},
      "tags": [],
      "ttl": 3600,
      "content": "198.51.100.4",
      "type": "A"
    }
  ]
}