Misurare la copertura

Questa pagina descrive in che modo Connectivity Tests misura la connettività. Inoltre, illustra 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 le configurazioni di rete sono poiché firewall e route consentono al traffico di passare dall'uno all'altro. Ad esempio, se la configurazione di rete deve consentire alla VM1 di inviare pacchetti alla VM2, si dice che la VM2 sia raggiungibile dalla VM1.

Osserva i seguenti aspetti relativi a come Connectivity Tests misura raggiungibilità:

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

Il concetto di copertura ha avuto origine nella teoria dei grafici. Concettualmente, l'intero grafico della raggiungibilità di una rete contiene tutte le come nodi e frecce direzionali che indicano la connettività dai nodi di origine ai nodi di destinazione.

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

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

Come funziona Connectivity Tests

Connectivity Tests include due componenti principali: una configurazione e 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 relativi componenti.

Connectivity Tests esegue un'analisi di raggiungibilità che valuta le risorse Google Cloud nel percorso di test rispetto a un modello di configurazione ideale. È ampliato dall'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 restrizioni delle autorizzazioni, potrebbero non avere il controllo regole firewall gerarchiche che interessano la tua rete.

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

  • Una corrispondenza significa che Connectivity Tests trova un account Google Cloud che consente al pacchetto simulato di continuare il test del tuo percorso di apprendimento.
  • Nessuna corrispondenza indica che i test di connettività non riescono a trovare una corrispondenza. Pertanto, la configurazione non esiste.
  • Una corrispondenza negata indica che i test di connettività trovano una configurazione di Google Cloud in cui il pacchetto di test simulato deve essere abbandonato.

Componenti di Connectivity Tests

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

  • Endpoint di origine e di destinazione
  • Dettagli sulla raggiungibilità del test e delle relative tracce, incluso un risultato complessivo sulla 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 ogni passaggio ha uno stato e metadati Info associati. Ad esempio, se un passaggio controlla un percorso, i metadati RouteInfo sono inclusi in quel passaggio.

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

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

Endpoint di origine e di destinazione

L'analisi della configurazione di Connectivity Tests supporta un pacchetto da 5 tuple senza la porta di origine. Questo perché la porta di origine non è utilizzata e la convalida delle risorse nelle configurazioni di rete 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:
    • Un nome istanza VM
    • Un indirizzo IP di origine
    • Un servizio App Engine di origine
    • Un ambiente di funzione Cloud Run (1ª gen.)
    • Un servizio Cloud Run
    • Nome di un'istanza Cloud SQL
    • Un nome di cluster per un piano di controllo GKE
  • Un endpoint di destinazione, composto da uno dei seguenti elementi e da un numero di porta:
    • Nome di un'istanza VM
    • Un indirizzo IP di destinazione
    • Un nome istanza Cloud SQL
    • Un nome 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 o una combinazione di un tipo di rete e indirizzo IP o nome dell'istanza VM per identificare in modo univoco una posizione di rete.

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

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

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

  • TCP
  • UDP

Le porte di destinazione per i protocolli TCP o UDP sono supportate. 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 simulato univoco in un test.

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

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

Esistono quattro stati non finali:

  • Iniziale
  • Controllo della configurazione
  • Forwarding
  • Transizione

Per ulteriori informazioni, consulta Stati di analisi della configurazione.

Stato finale

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

Esistono quattro possibili stati finali:

  • Drop
  • Abort
  • Forward
  • Deliver

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

Risultato complessivo della raggiungibilità

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

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

Per saperne di più, consulta Risultato globale sulla connettività.

Controllo dello 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 un campo Info. Ad esempio, InstanceInfo contiene i dettagli di un'istanza VM, tra cui: il nome e l'indirizzo IP.

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

Come funziona l'analisi del piano dati in tempo reale

Il meccanismo di ispezione per l'analisi del piano dati in tempo reale non coinvolge il sistema operativo ospite ed è completamente trasparente per l'utente. Le sonde vengono iniettate per conto dell'endpoint di origine nella rete e vengono eliminate poco prima di essere inviate all'endpoint di destinazione. I probe sono esclusi dalla fatturazione di rete standard, metriche di telemetria e log di flusso.

Passaggi successivi