Questa pagina descrive come Connectivity Tests misura la raggiungibilità. Spiega anche 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 al traffico di passare da una all'altra. Ad esempio, se la configurazione di rete deve consentire alla VM1 di inviare pacchetti alla VM2, si dice che la VM2 è raggiungibile dalla VM1.
Tieni presente i seguenti aspetti relativi al modo in cui Connectivity Tests misura la raggiungibilità:
- Connectivity Tests misura la raggiungibilità da un'origine specifica a una destinazione specifica. 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 la VM1 possa aprire una connessione alla VM2 non significa che la VM2 possa aprire una connessione con la VM1. Le regole firewall potrebbero consentire il traffico in una direzione, ma non nell'altra.
- Connectivity Tests misura la raggiungibilità per un protocollo e una porta di destinazione specifici. Il fatto che la VM1 possa raggiungere la VM2 su
tcp:443non significa che possa raggiungerla sutcp:80. - Connectivity Tests verifica solo le configurazioni di 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 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 raggiungibilità ha avuto origine nella teoria dei grafi. A livello concettuale, l'intero grafo di raggiungibilità di una rete contiene tutti gli endpoint come nodi e gli archi direzionali che indicano la raggiungibilità dai nodi di origine ai nodi di destinazione.
Analisi della 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 della raggiungibilità è un test di connettività. In questo caso, connettività si riferisce allo stato delle connessioni di rete.
Per ogni passaggio lungo il percorso di forwarding della rete, un'analisi della raggiungibilità esegue test e fornisce risultati per la configurazione di rete sottostante. Ad esempio, Connectivity Tests analizza le Google Cloud regole firewall e le route applicate 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 della raggiungibilità che valuta le Google Cloud risorse nel percorso di test rispetto a un modello di configurazione ideale. È aumentata 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 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 significa 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 riesce a trovare una corrispondenza. Di conseguenza, la configurazione non esiste.
- Una corrispondenza negata significa 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 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 metadati Info associati. Ad esempio, se un passaggio controlla una route, i metadati RouteInfo 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 di test, consulta le sezioni seguenti.
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 Google Cloud configurazioni di rete. Pertanto, non è necessario fornirla durante l'esecuzione dei test.
L'intestazione del pacchetto contiene i seguenti componenti:
- Un protocollo di rete
- Un endpoint di origine, composto 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ª generazione.)
- Un servizio Cloud Run
- Un job Cloud Run
- Un nome dell'istanza Cloud SQL
- Un nome del cluster per un piano di controllo GKE
- Un endpoint di destinazione, composto da uno dei seguenti elementi e da un numero di porta:
- Un nome dell'istanza VM
- Un indirizzo IP di destinazione
- Un nome dell'istanza Cloud SQL
- Un nome del cluster per un piano di controllo GKE
- Un endpoint Private Service Connect
Puoi anche specificare un Google Cloud o non-Google Cloud tipo di rete o una combinazione di un tipo di rete e un indirizzo IP o un nome dell'istanza VM per identificare in modo univoco una località di rete.
I seguenti protocolli di rete sono supportati per VM, indirizzi 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 forwarding di pacchetti simulato 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 suddivisi 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, regola firewall, route o Google Cloud bilanciatore del carico.
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 di raggiungibilità complessivo
L'analisi della configurazione fornisce anche un risultato di raggiungibilità complessivo che può assumere uno dei quattro valori: Reachable, Unreachable, Ambiguous o Undetermined.
Conoscere il risultato di raggiungibilità complessivo può essere utile per configurare il monitoraggio o l'automazione.
Per saperne di più, consulta Risultato di raggiungibilità complessivo.
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 campo Info.
Ad esempio, InstanceInfo contiene i dettagli di un'istanza VM, inclusi il nome e l'indirizzo IP.
L'analisi della configurazione fornisce i metadati per il test stesso e i metadati per ogni passaggio di un test.
Come funziona l'analisi del piano dati in tempo reale
Il meccanismo di sondaggio 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 consegnati all'endpoint di destinazione. I probe sono esclusi dalla fatturazione di rete, dalle metriche di telemetria e dai log di flusso regolari.