Regole Cloud NAT
La funzionalità delle regole NAT consente di creare regole di accesso che definiscono Cloud NAT viene utilizzato per la connessione a internet. Origine supporto regole NAT NAT in base all'indirizzo di destinazione.
Quando configuri un gateway NAT senza regole NAT, le VM che lo utilizzano impiegano lo stesso insieme di indirizzi IP NAT per raggiungere tutti gli indirizzi internet. Se hai bisogno di un maggiore controllo sui pacchetti che passano attraverso Cloud NAT, puoi aggiungere regole NAT. Una regola NAT definisce una condizione di corrispondenza e un'azione corrispondente. Dopo aver specificato le regole NAT, ogni pacchetto corrisponde a ciascuna regola NAT. Se un pacchetto corrisponde alla condizione impostata in una regola, viene eseguita l'azione corrispondente a quella corrispondenza.
Esempio di configurazione della regola Cloud NAT
L'esempio seguente illustra come utilizzare le regole NAT quando la destinazione consente l'accesso solo da pochi indirizzi IP. Consigliamo che il traffico verso dalle VM di Google Cloud nelle subnet private, tradotto con NAT di origine solo con gli indirizzi IP consentiti. È consigliabile non utilizzerai questi indirizzi IP per altre destinazioni.
Prendi in considerazione i seguenti requisiti per le VM in Subnet-1
(10.10.10.0/24
),
che si trova nella regione A della rete VPC test
:
- Le VM devono utilizzare l'indirizzo IP NAT
203.0.113.20
per inviare traffico alla destinazione198.51.100.20/30
. - Le VM devono utilizzare l'indirizzo IP NAT
203.0.113.30
per inviare il traffico alla destinazione198.51.100.30
o198.51.100.31
. - Le VM devono utilizzare l'indirizzo IP NAT
203.0.113.40
per inviare il traffico a qualsiasi altro su internet.
Questa rete VPC contiene anche altre due subnet nella stessa regione. Queste VM devono utilizzare l'indirizzo IP NAT 203.0.113.10
per inviare il traffico
per qualsiasi destinazione.
Per questo esempio puoi utilizzare le regole NAT, ma ti servono due gateway NAT
Subnet-1
(10.10.10.0/24
) ha regole NAT diverse dall'altra
subnet. Per creare questa configurazione, segui questi passaggi:
- Crea un gateway denominato
Cloud NAT Gateway 1
perSubnet-1
con IP NAT indirizzo203.0.113.40
e aggiungi le seguenti regole:- Regola NAT 1 in
Cloud NAT Gateway 1
: se la destinazione è198.51.100.20/30
, utilizza la NAT di origine con203.0.113.20
. - Regola NAT 2 in
Cloud NAT Gateway 1
: quando la destinazione è198.51.100.30
o198.51.100.31
, utilizza il NAT di origine con203.0.113.30
.
- Regola NAT 1 in
- Crea un gateway denominato
Cloud NAT Gateway 2
per le altre sottoreti della regione e assegna l'indirizzo IP NAT come203.0.113.10
. In questo passaggio non sono necessarie regole NAT.
Specifiche delle regole NAT
Prima di utilizzare le regole NAT, tieni presente le seguenti specifiche:
- Un numero di regola identifica in modo univoco una regola NAT. Non esistono due regole uguali numero della regola.
- Ogni configurazione NAT ha una regola predefinita:
- La regola predefinita viene applicata se nessun'altra regola NAT corrisponde nello stesso NAT configurazione.
- Il numero della regola predefinita è
65001
. - L'intervallo CIDR IP di destinazione della regola predefinita è
0.0.0.0/0
.
- Le regole Cloud NAT sono supportate solo se il valore dell'IP NAT alloca
è
MANUAL_ONLY
. Tutti gli indirizzi IP configurati in una determinata regola devono essere di stesso livello.
Non puoi utilizzare una combinazione di indirizzi IP del livello Premium e Standard all'interno la stessa regola (compresa la regola predefinita).
Gli intervalli IP CIDR di destinazione nella condizione di corrispondenza non devono sovrapporsi a NAT le regole del caso. Può esistere al massimo una regola che può corrispondere a un determinato pacchetto.
Non puoi creare una regola NAT con un intervallo CIDR IP di destinazione pari a
0.0.0.0/0
, perché questo intervallo viene utilizzato nella regola predefinita.Gli indirizzi IP NAT nelle regole NAT non devono sovrapporsi.
Una regola non può avere un valore
Active
vuoto o non vuoto Indirizzo IP diDrain
. Se la regola ha un indirizzo IPActive
vuoto, le nuove connessioni che corrispondono alla regola NAT.Le regole NAT non possono essere aggiunte a un gateway NAT con Mappatura indipendente dagli endpoint abilitata. Non puoi attivare la mappatura indipendente dagli endpoint su un gateway NAT contenente regole NAT.
Inoltre, a tutte le VM vengono assegnate le porte dal valore del numero minimo di porte per VM per ogni regola Cloud NAT. Se le porte allocate a una VM da una regola NAT sono esaurite, le nuove connessioni che corrispondono alla regola NAT vengono interrotte.
Ad esempio, se configuri 4096 porte per VM e hai 16 VM e 2 regole NAT
(rule1
con 1 indirizzo IP e rule2
con 2 indirizzi IP), insieme alla regola predefinita
(default
) con 2 indirizzi IP, tutte e 16 le VM hanno 4096 porte in ogni bundle
delle regole NAT. In questo esempio, non ci sono problemi in default
o rule2
per tutte le VM, ma rule1
non è in grado di allocare porte per tutte le VM.
Di conseguenza, il traffico proveniente dalle VM che devono superare rule1
potrebbe essere ignorato
e mostrare segni di esaurimento delle risorse perché il traffico non utilizza
regola predefinita.
Linguaggio di espressione regola
Le regole NAT vengono scritte utilizzando Linguaggio di espressione comune a riga di comando.
Un'espressione richiede due componenti:
- Attributi che possono essere ispezionati nelle espressioni delle regole.
- Operazioni che possono essere eseguite sugli attributi come parte di un'espressione.
Ad esempio, la seguente espressione utilizza gli attributi destination.ip
e
198.51.100.0/24
nell'operazione inIpRange()
. In questo caso, l'espressione
restituisce true se destination.ip
è compreso nell'intervallo di indirizzi IP 198.51.100.0/24
.
inIpRange(destination.ip, '198.51.100.0/24')
Le regole NAT supportano solo i seguenti attributi e operazioni:
Attributi
Gli attributi rappresentano informazioni di un pacchetto in uscita, come all'indirizzo IP di destinazione.
Nome attributo | Descrizione |
---|---|
destination.ip |
Indirizzo IP di destinazione del pacchetto |
Operazioni
La seguente documentazione di riferimento descrive gli operatori che puoi utilizzare con gli attributi per definire le espressioni delle regole.
Operazione | Descrizione |
---|---|
inIpRange(string, string) -> bool |
inIpRange(X, Y) restituisce true se l'intervallo CIDR IP Y contiene l'indirizzo IP X. |
|| |
Operatore logico. x || y restituisce true se x oppure y è vero. |
== |
Operatore di uguaglianza. x == y restituisce true se x è uguale a y. |
Espressioni di esempio
Associa il traffico all'indirizzo IP di destinazione 198.51.100.20
.
"destination.ip == '198.51.100.20'"
Associa il traffico all'indirizzo IP di destinazione 198.51.100.10/30
o 198.51.100.20
.
"inIpRange(destination.ip, '198.51.100.10/30') || destination.ip == '198.51.100.20'"
Passaggi successivi
- Scopri come configurare le regole NAT.