Questa pagina descrive come 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 le configurazioni di rete come firewall e route consentono il traffico da uno all'altro. Ad esempio, se la configurazione di rete deve consentire a VM1 di inviare pacchetti a VM2, si dice che VM2 è raggiungibile da VM1.
Tieni presente i seguenti aspetti su come Connectivity Tests misura la raggiungibilità:
- Connectivity Tests misura la raggiungibilità da un'origine specifica a una destinazione specifica. Il fatto che VM1 possa raggiungere VM2 non significa necessariamente che VM3 possa raggiungere VM2.
- Connectivity Tests misura la raggiungibilità 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 raggiungibilità per un determinato protocollo
e una porta di destinazione. Il fatto che VM1 possa raggiungere VM2 su
tcp:443non significa che possa raggiungerla sutcp:80. - Connectivity Tests verificano solo le configurazioni di rete VPC Google Cloud che potrebbero influire sulla distribuzione dei pacchetti dall'origine alla destinazione. Non verifica se è in esecuzione un server valido nella destinazione, se le regole del firewall del sistema operativo potrebbero bloccare il traffico o se il software di sicurezza blocca un pacchetto che trasporta un payload di virus.
Il concetto di raggiungibilità ha origine nella teoria dei grafi. A livello concettuale, l'intero grafico di raggiungibilità di una rete contiene tutti gli endpoint come nodi e archi direzionali che indicano la raggiungibilità dai nodi di origine ai nodi di destinazione.
L'analisi di raggiungibilità è un termine più generico che descrive un insieme di analisi che possono essere condotte per determinare la raggiungibilità della rete. Uno dei casi d'uso di un'analisi di raggiungibilità è un test di connettività. Connettività, in questo caso, si riferisce allo stato delle connessioni di rete.
Per ogni passaggio del percorso di inoltro di rete, un test di analisi della raggiungibilità e fornisce i risultati per la configurazione di rete sottostante. Ad esempio, Connectivity Tests analizza le regole firewall e le route applicate a un pacchetto di test simulato. Google Cloud
Come funziona Connectivity Tests
Connectivity Tests include due componenti principali: un'analisi della configurazione e un'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 come funzionano Connectivity Tests e i relativi componenti.
Connectivity Tests esegue un'analisi di raggiungibilità che valuta le risorse nel percorso di test rispetto a un modello di configurazione ideale. Google Cloud È arricchito 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 dell'analisi del piano dati in tempo reale, vedi 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 influiscono sulla tua rete.
Quando esegui un test di connettività, inserisci un insieme specifico di parametri e ricevi risultati formattati sotto forma di trace 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ù backend).
- Una corrispondenza indica che Connectivity Tests trova una Google Cloud configurazione che consente al pacchetto simulato di continuare lungo il percorso di test.
- Nessuna corrispondenza significa che Connectivity Tests non riescono a trovare una corrispondenza. Pertanto, la configurazione non esiste.
- Una corrispondenza negata indica che Connectivity Tests trova una configurazioneGoogle 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 di raggiungibilità per il test e le relative tracce, incluso un risultato di raggiungibilità complessivo determinato dall'analisi della configurazione
- Una o più tracce, ognuna delle quali contiene uno o più passaggi
- Uno stato per ogni passaggio
Ogni test ha un nome univoco e ogni passaggio ha uno stato e Info metadati
associati. Ad esempio, se un passaggio controlla un percorso, RouteInfo
i metadati sono inclusi in quel passaggio.
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 seguenti.
Endpoint di origine e destinazione
L'analisi della configurazione di Connectivity Tests supporta un'intestazione del pacchetto a 5 tuple senza la porta di origine. Questo perché la porta di origine non viene utilizzata per convalidare le risorse nelle configurazioni di rete Google Cloud . Pertanto, non devi fornirlo quando esegui i 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 di istanza VM
- Un indirizzo IP di origine
- Un servizio App Engine di origine
- Un ambiente Cloud Run Functions (1ª generazione.)
- Un servizio Cloud Run
- Nome di un'istanza Cloud SQL
- Un nome del cluster per un control plane GKE
- Un endpoint di destinazione, composto da uno dei seguenti elementi e da un numero di porta:
- Un nome di istanza VM
- Un indirizzo IP di destinazione
- Nome di un'istanza Cloud SQL
- Un nome del cluster per un control plane GKE
- Un endpoint Private Service Connect
Puoi anche specificare un tipo di rete Google Cloud o nonGoogle 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 posizione 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 simulato e univoco in un test.
- Ogni traccia contiene più passaggi ordinati.
- Ogni passaggio contiene uno stato relativo alla configurazione Google Cloud che Connectivity Tests controlla per quel passaggio.
- Gli stati sono suddivisi in stati non finali e finali.
Stati non finali
Gli stati non finali rappresentano un controllo della 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 finali:
- Iniziale
- Controllo della configurazione
- Forwarding
- Transizione
Per saperne di più, 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:
DropAbortForwardDeliver
A ogni stato è associato un motivo. Per saperne di più, consulta i dettagli di ogni stato finale.
Risultato complessivo di 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 complessivo di raggiungibilità può essere utile per configurare il monitoraggio o l'automazione.
Per saperne di più, consulta Risultato di raggiungibilità complessivo.
Spoofing
Connectivity Tests eseguono un controllo di spoofing quando un pacchetto simulato verso o da un'istanza VM utilizza un indirizzo IP non di proprietà dell'istanza. Gli indirizzi IP di proprietà di una VM includono tutti gli indirizzi IP interni e secondari della VM.
Se l'indirizzo sembra provenire da traffico esterno, chiamato anche indirizzo estero, l'indirizzo IP non supera il controllo dello spoofing.
Metadati
A ogni stato possono essere associati metadati sotto forma di campo Info.
Ad esempio, InstanceInfo contiene i dettagli di un'istanza VM, inclusi
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 probing 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 poco prima di essere inviati all'endpoint di destinazione. I probe sono esclusi dalla normale fatturazione di rete, dalle metriche di telemetria e dai log di flusso.
Passaggi successivi
Utilizzare i test di connettività per diversi casi d'uso della connettività
Identificare e risolvere i problemi ICMP (tutorial)