Regole Cloud NAT
Questa pagina fornisce una panoramica delle regole Cloud NAT per NAT pubblico. Queste regole consentono di definire la modalità di utilizzo di Cloud NAT per la connessione a internet.
Le regole Cloud NAT per il supporto NAT pubblico supportano la Network Address Translation (SNAT) dell'origine in base all'indirizzo di origine (anteprima) o di destinazione.
Regole NAT
Per impostazione predefinita, quando configuri un gateway Cloud NAT per NAT pubblico, i pacchetti tradotti da questo gateway NAT utilizzano lo stesso insieme di indirizzi IP NAT per raggiungere tutti gli indirizzi internet. Se hai bisogno di un maggiore controllo sui pacchetti tradotti da 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 viene abbinato a ciascuna regola NAT. Se un pacchetto corrisponde alla condizione impostata in una regola, viene eseguita l'azione corrispondente a quella corrispondenza.
Le regole NAT per il NAT pubblico supportano la corrispondenza degli indirizzi di origine e di destinazione:
- Nelle regole basate sull'origine (anteprima), i pacchetti vengono abbinati in base al loro indirizzo IP di origine. Sono supportati solo gli indirizzi di origine IPv4.
- Nelle regole basate sulla destinazione, i pacchetti vengono abbinati in base al loro indirizzo IP di destinazione. Sono supportati solo gli indirizzi di destinazione IPv4.
Non è consentito combinare condizioni basate sull'origine e sulla destinazione in una singola regola NAT. Per saperne di più, consulta le specifiche delle regole NAT.
Esempio di configurazione della regola Cloud NAT
L'esempio seguente mostra come utilizzare le regole NAT quando la destinazione consente l'accesso solo da pochi indirizzi IP. Ti consigliamo di eseguire la traduzione SNAT del traffico verso queste destinazioni dalle tue VM Trusted Cloud nelle subnet private solo con gli indirizzi IP consentiti. Ti consigliamo di non utilizzare questi indirizzi IP per altre destinazioni.
Considera 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 traffico alla destinazione198.51.100.30
o198.51.100.31
. - Le VM devono utilizzare l'indirizzo IP NAT
203.0.113.40
per inviare traffico a qualsiasi altra destinazione internet.
Questa rete VPC contiene anche due subnet aggiuntive nella stessa regione. Queste VM devono utilizzare l'indirizzo IP NAT 203.0.113.10
per inviare il traffico
a qualsiasi destinazione.
Puoi utilizzare le regole NAT per questo esempio, ma hai bisogno di due gateway NAT perché
Subnet-1
(10.10.10.0/24
) ha regole NAT diverse dalle altre
subnet. Per creare questa configurazione:
- Crea un gateway denominato
Cloud NAT Gateway 1
perSubnet-1
con indirizzo IP NAT203.0.113.40
e aggiungi le seguenti regole:- Regola NAT 1 in
Cloud NAT Gateway 1
: quando la destinazione è198.51.100.20/30
, utilizza203.0.113.20
per NAT. - Regola NAT 2 in
Cloud NAT Gateway 1
: quando la destinazione è198.51.100.30
o198.51.100.31
, utilizza203.0.113.30
per NAT.
- Regola NAT 1 in
- Crea un gateway chiamato
Cloud NAT Gateway 2
per le altre subnet della regione e assegna l'indirizzo IP NAT come203.0.113.10
. In questo passaggio non sono necessarie regole NAT.
Specifiche delle regole NAT
- Cloud NAT supporta regole basate sull'origine e sulla destinazione. Ogni regola definisce una condizione basata sull'indirizzo di origine o di destinazione, ma non su entrambi.
- Una priorità della regola identifica in modo univoco una regola NAT, da 0 (priorità più alta) a 65.000 (priorità più bassa). Due regole non possono avere la stessa priorità.
- Ogni configurazione NAT ha una regola predefinita:
- La regola predefinita viene applicata se non viene trovata alcuna corrispondenza con altre regole NAT nella stessa configurazione NAT.
- La priorità della regola predefinita è
65001
. - Per le regole basate sull'origine e sulla destinazione, l'intervallo IP CIDR della regola predefinita è
0.0.0.0/0
.
- Le regole Cloud NAT sono supportate solo quando il valore dell'opzione di allocazione dell'IP NAT è
MANUAL_ONLY
. Tutti gli indirizzi IP configurati in una determinata regola devono essere dello stesso livello.
Non puoi utilizzare un mix di indirizzi IP di livello Premium e Standard all'interno della stessa regola (inclusa la regola predefinita).
Gli intervalli CIDR IP nelle condizioni di corrispondenza non devono sovrapporsi tra le regole NAT. A ogni pacchetto può essere applicata al massimo una regola. Se un pacchetto corrisponde a una regola basata sull'origine e sulla destinazione, Cloud NAT applica la regola con priorità più elevata.
Non puoi creare una regola NAT con
0.0.0.0/0
come intervallo di origine o destinazione perché viene utilizzata dalla regola predefinita.Gli indirizzi IP NAT nelle regole NAT non devono sovrapporsi.
Una regola deve avere un valore
Active
non vuoto o un indirizzo IPDrain
non vuoto. Se la regola ha un indirizzo IPActive
vuoto, le nuove connessioni che corrispondono alla regola NAT vengono eliminate.Le regole NAT non possono essere aggiunte a un gateway NAT con la mappatura indipendente degli endpoint abilitata. Non puoi abilitare la mappatura indipendente dagli endpoint su un gateway NAT che contiene regole NAT.
Inoltre, a tutte le VM vengono assegnate 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 eliminate.
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 le 16 VM riceverebbero 4096 porte in ogni bundle
di 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.
Pertanto, il traffico delle VM che deve passare attraverso rule1
potrebbe essere eliminato
e mostrare segni di esaurimento delle risorse perché non utilizza la
regola predefinita.
Linguaggio delle espressioni di regola
Le regole NAT vengono scritte utilizzando la sintassi di Common Expression Language.
Un'espressione richiede due componenti:
- Attributi che possono essere ispezionati nelle espressioni delle regole.
- Operazioni che possono essere eseguite sugli attributi nell'ambito 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 le informazioni di un pacchetto in uscita, come l'indirizzo IP di origine e di destinazione.
Nome attributo | Descrizione |
---|---|
source.ip |
Indirizzo IP di origine del pacchetto |
destination.ip |
Indirizzo IP di destinazione del pacchetto |
Operazioni
Il seguente 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 o y è
true . |
== |
Operatore di uguaglianza. x == y restituisce
true se x è uguale a
y . |
Espressioni di esempio
Puoi abbinare i pacchetti in base all'indirizzo di origine o di destinazione, ma non a entrambi.
Esempi di corrispondenza basata sull'origine
Corrispondenza dei pacchetti con l'indirizzo IP di origine 10.0.0.25
:
"source.ip == '10.0.0.25'"
Corrispondenza dei pacchetti con l'indirizzo IP di origine 10.0.0.25
o 10.0.0.26
:
"source.ip == '10.0.0.25' || source.ip == '10.0.0.26'"
Corrispondenza dei pacchetti con l'intervallo di indirizzi IP di origine 10.0.2.0/24
:
"inIpRange(source.ip, '10.0.2.0/24')"
Corrispondenza dei pacchetti con l'indirizzo IP di origine 10.0.0.25
o l'intervallo di indirizzi IP di origine
10.0.2.0/24
:
"source.ip == '10.0.0.25' || inIpRange(source.ip, '10.0.2.0/24')"
Esempi di corrispondenza basata sulla destinazione
Corrispondenza dei pacchetti con l'indirizzo IP di destinazione 198.51.100.20
:
"destination.ip == '198.51.100.20'"
Corrispondenza dei pacchetti con l'indirizzo IP di destinazione 198.51.100.20
o
198.51.100.21
:
"destination.ip == '198.51.100.20' || destination.ip == '198.51.100.21'"
Trova i pacchetti con intervallo di indirizzi IP di destinazione 198.51.100.10/30
:
"inIpRange(destination.ip, '198.51.100.10/30')"
Corrispondenza dei pacchetti con l'indirizzo IP di destinazione 198.51.100.20
o
l'intervallo di indirizzi IP di destinazione 198.51.100.10/30
:
"destination.ip == '198.51.100.20' || inIpRange(destination.ip, '198.51.100.10/30')"
Passaggi successivi
- Scopri come configurare le regole NAT.