Misurazione della raggiungibilità

In questa pagina viene descritto in che modo Connectivity Tests misura la raggiungibilità. Spiega inoltre come funzionano l'analisi della configurazione e l'analisi del piano dati in tempo reale.

Che cos'è la raggiungibilità?

Una risorsa è raggiungibile da un altro endpoint se configurazioni di rete come firewall e route consentono al traffico di passare da un endpoint all'altro. Ad esempio, se la configurazione di rete deve consentire a VM1 di inviare pacchetti a VM2, VM2 sarà raggiungibile da VM1.

Tieni presente i seguenti aspetti relativi a come Connectivity Tests misura la raggiungibilità:

  • Connectivity Tests misura la connettività da una determinata origine a una determinata destinazione. Il fatto che VM1 possa raggiungere VM2 non significa necessariamente che VM3 possa raggiunge VM2.
  • Connectivity Tests misura la connettività unidirezionale. Il fatto che VM1 possa aprire una connessione a VM2, non significa che VM2 possa aprire una connessione con VM1. Le regole firewall potrebbero consentire il traffico in una direzione, ma non nell'altra.
  • Connectivity Tests misura la connettività per un determinato protocollo e porta di destinazione. Il fatto che VM1 possa raggiungere VM2 su tcp:443 non significa che può raggiungerlo su tcp:80.
  • Connectivity Tests verifica solo le configurazioni di rete VPC di Google Cloud che potrebbero influire sulla consegna dei pacchetti dall'origine alla destinazione. Non controlla se sulla destinazione è in esecuzione un server valido, se le regole firewall del sistema operativo potrebbero bloccare il traffico o se il software di sicurezza blocca un pacchetto che contiene un payload di virus.

Il concetto di raggiungibilità ha origine nella teoria dei grafici. A livello concettuale, l'intero grafico di connettività di una rete contiene tutti gli endpoint come nodi e bordi direzionali che indicano la raggiungibilità dai nodi di origine ai nodi di destinazione.

Analisi della connettività è un termine più generico che descrive un insieme di analisi che può essere condotto per determinare la raggiungibilità della rete. Uno dei casi d'uso di un'analisi della connettività è il test di connettività. La connettività, in questo caso, si riferisce allo stato delle connessioni di rete.

Per ogni passaggio del percorso di inoltro di rete, un'analisi della connettività esegue test e fornisce risultati per la configurazione di rete sottostante. Ad esempio, Connectivity Tests analizza le regole e le route firewall di Google Cloud applicate a un pacchetto di test simulato.

Come funziona Connectivity Tests

Connectivity Tests include due componenti principali: l'analisi della configurazione e l'analisi del piano dati in tempo reale. Questa sezione descrive il funzionamento di questi due tipi di analisi.

Come funziona l'analisi della configurazione

Questa sezione descrive il funzionamento di Connectivity Tests e dei suoi componenti.

Connectivity Tests esegue un'analisi della connettività che valuta le risorse Google Cloud nel tuo percorso di test a fronte di un modello di configurazione ideale. È inoltre integrato dalla funzionalità di analisi del piano dati in tempo reale, che invia pacchetti per verificare lo stato del piano dati e fornire informazioni di base per le configurazioni supportate. Per maggiori dettagli sul funzionamento della verifica dinamica, consulta Come funziona l'analisi del piano dati in tempo reale.

In qualità di amministratore di rete, hai il controllo su molte configurazioni che potrebbero influire sul risultato dell'analisi, anche se si applicano alcune eccezioni. Ad esempio, non hai il controllo sulle reti VPC che ospitano servizi gestiti da Google come le istanze Cloud SQL. Inoltre, a causa delle limitazioni delle autorizzazioni, potresti non avere il controllo sulle regole dei criteri firewall gerarchici che interessano la rete.

Quando esegui un test di connettività, devi inserire un insieme specifico di parametri e ricevere risultati formattati sotto forma di traccia di rete o query. Un test di connettività genera più di una traccia se nella rete sono disponibili più percorsi possibili (ad esempio, quando l'endpoint di destinazione è un bilanciatore del carico Google Cloud con più backend).

  • Una corrispondenza significa che Connectivity Tests trova una configurazione di Google Cloud che consente al pacchetto simulato di continuare attraverso il percorso di test.
  • Nessuna corrispondenza significa che Connectivity Tests non riesce a trovare una corrispondenza. Pertanto, la configurazione non esiste.
  • Una corrispondenza negata indica che Connectivity Tests trova una configurazione Google Cloud in cui il pacchetto di test simulato deve essere eliminato.

Componenti di Connectivity Tests

Un test di connettività è il componente di primo livello che contiene tutti gli altri sottocomponenti di test necessari per l'analisi della configurazione. Questi componenti includono:

  • Endpoint di origine e destinazione
  • Dettagli sulla raggiungibilità per il test e le sue tracce, compreso un risultato complessivo di raggiungibilità determinato dall'analisi della configurazione
  • Una o più tracce contenenti ciascuna uno o più passaggi
  • Uno stato per ogni passaggio

Ogni test ha un nome univoco e a ogni passaggio sono associati uno stato e metadati Info. Ad esempio, se un passaggio controlla una route, in quel passaggio sono inclusi i metadati RouteInfo.

Il seguente diagramma mostra un test da un'istanza VM di Compute Engine a un'altra. Per le descrizioni dei componenti del test, consulta le sezioni riportate di seguito.

Macchina a stato per una traccia da VM a VM.
Macchina a stato per una traccia da VM a VM

Endpoint di origine e destinazione

L'analisi della configurazione di Connectivity Tests supporta un'intestazione di pacchetto a 5 tuple senza la porta di origine. Questo perché la porta di origine non viene utilizzata per la convalida delle risorse nelle configurazioni di rete di Google Cloud. Pertanto, non è necessario fornirlo durante l'esecuzione dei test.

L'intestazione del pacchetto contiene i seguenti componenti:

  • Un protocollo di rete
  • Un endpoint di origine, costituito da uno dei seguenti elementi:
    • Il nome di un'istanza VM
    • Un indirizzo IP di origine
    • Un servizio App Engine di origine
    • un ambiente Cloud Function (1ª generazione.)
    • Un servizio Cloud Run
    • Un nome di istanza Cloud SQL
    • Un nome del cluster per un piano di controllo GKE
  • Un endpoint di destinazione, costituito da uno dei seguenti elementi e da un numero di porta:
    • Il nome di un'istanza VM
    • Un indirizzo IP di destinazione
    • Un nome di istanza Cloud SQL
    • Un nome del cluster per un piano di controllo GKE
    • Un endpoint Private Service Connect

Puoi anche specificare un tipo di rete Google Cloud o non Google Cloud oppure una combinazione di un tipo di rete e un indirizzo IP o un nome di istanza VM per identificare in modo univoco una località di rete.

Per VM, indirizzo IP e servizi gestiti da Google sono supportati i seguenti protocolli di rete:

  • TCP
  • UDP
  • ICMP
  • ESP
  • AH
  • SCTP
  • IPIP

I seguenti protocolli di rete sono supportati dai connettori di accesso VPC serverless:

  • TCP
  • UDP

Sono supportate le porte di destinazione per i protocolli TCP o UDP. Se non specifichi una porta, l'impostazione predefinita è la porta 80.

Tracce, passaggi e stati

L'analisi della configurazione contiene una o più tracce. Ogni traccia rappresenta un percorso di inoltro dei pacchetti univoco e simulato in un test.

  • Ogni traccia contiene più passaggi ordinati.
  • Ogni passaggio contiene uno state relativo alla configurazione di Google Cloud che Connectivity Tests controlla per quel passaggio.
  • Gli stati sono classificati in stati non definitivi e finali.
Stati non finali

Gli stati non finali rappresentano un controllo di configurazione per ogni risorsa Google Cloud nel percorso di test, ad esempio un'istanza VM, un endpoint, una regola firewall, una route o un bilanciatore del carico Google Cloud.

Esistono quattro stati non definitivi:

  • Iniziale
  • Controllo della configurazione
  • Forwarding
  • Transizione

Per ulteriori informazioni, consulta Stati dell'analisi della configurazione.

Stato finale

Ogni traccia deve terminare con uno stato finale, che è l'ultimo passaggio della traccia.

Esistono quattro possibili stati finali:

  • Drop
  • Abort
  • Forward
  • Deliver

A ogni stato è associato un motivo. Per ulteriori informazioni, consulta i dettagli per ogni stato finale.

Risultato complessivo di raggiungibilità

L'analisi della configurazione fornisce anche un risultato di raggiungibilità complessivo che può assumere uno di quattro valori: Reachable, Unreachable, Ambiguous o Undetermined.

Conoscere il risultato complessivo della raggiungibilità può essere utile per configurare il monitoraggio o l'automazione.

Per saperne di più, consulta Risultato complessivo di raggiungibilità.

Controllo spoofing

Connectivity Tests esegue un controllo di spoofing quando un pacchetto simulato da o verso un'istanza VM utilizza un indirizzo IP non di proprietà di tale istanza. Gli indirizzi IP di proprietà di una VM includono tutti gli indirizzi IP interni e quelli secondari.

Se l'indirizzo sembra provenire da traffico esterno, chiamato anche indirizzo esterno, l'indirizzo IP non supera il controllo di spoofing.

Metadati

A ogni stato possono essere associati metadati sotto forma di campo Info. Ad esempio, InstanceInfo contiene i dettagli per un'istanza VM, tra cui il nome e l'indirizzo IP.

L'analisi della configurazione fornisce metadati per il test stesso e metadati per ogni passaggio di un test.

Come funziona l'analisi del piano dati in tempo reale

Il meccanismo di probe per l'analisi del piano dati in tempo reale non coinvolge il sistema operativo guest ed è completamente trasparente per l'utente. I probe vengono inseriti per conto dell'endpoint di origine nella rete e vengono eliminati appena prima di essere recapitati all'endpoint di destinazione. I probe sono esclusi dalla fatturazione di rete, dalle metriche di telemetria e dai log di flusso standard.

Passaggi successivi