Questa pagina descrive in che modo Connectivity Tests misura la raggiungibilità. 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, come firewall e route, consentono il passaggio del traffico da un endpoint 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.
Tieni presente i seguenti aspetti su come Connectivity Tests misura la raggiungibilità:
- Connectivity Tests misura la raggiungibilità da una determinata origine a una determinata destinazione. Il fatto che la VM1 possa raggiungere la VM2 non significa necessariamente che la VM3 possa raggiungere la VM2.
- Connectivity Tests misura la raggiungibilità unidirezionale. Il fatto che 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 raggiungerla sutcp:80
. - I test di connettività testano solo le configurazioni della rete Google Cloud VPC che potrebbero influire sulla consegna dei pacchetti dall'origine alla destinazione. Non controlla 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. A livello concettuale, l'intero grafo 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à. In questo caso, Connettività fa riferimento 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 Google Cloud regole e i percorsi del firewall applicati a un pacchetto di test simulato.
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 il funzionamento di Connectivity Tests e dei relativi componenti.
Connectivity Tests esegue un'analisi di raggiungibilità che valuta le Google Cloud risorse nel percorso di test in base a un modello di configurazione ideale. È integrata dalla funzionalità di analisi del piano dati in tempo reale, che invia pacchetti per verificare lo stato del piano dati e fornire informazioni di riferimento 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 influiscono sulla 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 Google Cloud bilanciatore del carico con più backend).
- Una corrispondenza indica che Connectivity Tests trova una Google Cloud configurazione che consente al pacchetto simulato di continuare nel percorso di test.
- Nessuna corrispondenza indica che Connectivity Tests non riescono a trovare una corrispondenza. Pertanto, la configurazione non esiste.
- Una corrispondenza rifiutata indica che Connectivity Tests trova una Google Cloud configurazione 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 componenti secondari di test necessari per l'analisi della configurazione. Questi componenti includono:
- Endpoint di origine e di destinazione
- Dettagli sulla raggiungibilità per il test e le relative tracce, incluso un risultato di raggiungibilità complessiva determinato dall'analisi della configurazione
- Una o più tracce che contengono 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.
Endpoint di origine e di destinazione
L'analisi della configurazione di Connectivity Tests supporta un'intestazione del pacchetto di 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. Google Cloud Pertanto, non devi fornirla 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 dell'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
- Un nome istanza Cloud SQL
- Un nome di cluster per un piano di controllo GKE
- Un endpoint di destinazione, costituito da uno dei seguenti elementi e da un numero di porta:
- Un nome dell'istanza VM
- Un indirizzo IP di destinazione
- Un nome istanza Cloud SQL
- Un nome di cluster per un piano di controllo GKE
- Un endpoint Private Service Connect
Puoi anche specificare un tipo di rete Google Cloud o nonGoogle Cloud o una combinazione di un tipo di rete e un indirizzo IP o il 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 e univoco in un test.
- Ogni traccia contiene più passaggi ordinati.
- Ogni passaggio contiene uno stato relativo alla Google Cloud configurazione 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 di configurazione per ogni Google Cloud risorsa nel percorso di test, ad esempio un'istanza VM, un endpoint, una regola firewall, una route o un Google Cloud bilanciatore del carico.
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 i dettagli per ogni stato finale.
Risultato della raggiungibilità complessiva
L'analisi della configurazione fornisce anche un risultato di raggiungibilità complessiva 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 di raggiungibilità complessiva.
Controllo dello 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 un 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 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. Le sonde sono escluse dalla fatturazione della rete regolare, 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)