Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

Regole Cloud NAT

La funzionalità Regole NAT consente di creare regole di accesso che definiscono il modo in cui Cloud NAT viene utilizzato per la connessione a Internet. Le regole NAT supportano il NAT NAT in base all'indirizzo di destinazione.

Quando configuri un gateway NAT senza regole NAT, le VM che utilizzano il gateway NAT utilizzano lo stesso set di indirizzi IP NAT per raggiungere tutti gli indirizzi Internet. Se hai bisogno di 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. Una volta specificate le regole NAT, ogni pacchetto viene associato a ogni regola NAT. Se un pacchetto soddisfa la condizione impostata in una regola, si verifica l'azione corrispondente a tale pacchetto.

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. Ti consigliamo di indirizzare il traffico verso tali destinazioni dalle tue VM Google Cloud in subnet private con traduzioni eseguite da NAT solo con gli indirizzi IP consentiti. Ti consigliamo di non utilizzare 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 nell'area geografica A della rete VPC test:

  • Le VM devono utilizzare l'indirizzo IP NAT 203.0.113.20 per inviare il traffico alla destinazione 198.51.100.20/30.
  • Le VM devono utilizzare l'indirizzo IP NAT 203.0.113.30 per inviare il traffico alla destinazione 198.51.100.30 o 198.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 area geografica. Queste VM devono utilizzare l'indirizzo IP NAT 203.0.113.10 per inviare traffico a qualsiasi destinazione.

Configurazione di Cloud NAT con due gateway Cloud NAT (fai clic per ingrandire).
Configurazione di Cloud NAT con due gateway Cloud NAT (fai clic per ingrandire)

Puoi utilizzare le regole NAT per questo esempio, ma sono necessari due gateway NAT perché Subnet-1 (10.10.10.0/24) ha regole NAT diverse dalle altre subnet. Per creare questa configurazione, procedi nel seguente modo:

  1. Crea un gateway chiamato Cloud NAT Gateway 1 per Subnet-1 con l'indirizzo IP NAT 203.0.113.40 e aggiungi le seguenti regole:
    1. Regola NAT 1 in Cloud NAT Gateway 1: quando la destinazione è 198.51.100.20/30, utilizza l'origine NAT con 203.0.113.20.
    2. Regola NAT 2 in Cloud NAT Gateway 1: quando la destinazione è 198.51.100.30 o 198.51.100.31, utilizza la sorgente NAT con 203.0.113.30.
  2. Crea un gateway chiamato Cloud NAT Gateway 2 per le altre subnet dell'area geografica e assegna l'indirizzo IP NAT come 203.0.113.10. In questo passaggio non sono necessarie regole NAT.

Specifiche delle regole NAT

Prima di lavorare con le regole NAT, tieni presente le seguenti specifiche:

  • Un numero di regola identifica in modo univoco una regola NAT. Due regole non possono avere lo stesso numero.
  • Ogni configurazione NAT ha una regola predefinita:
    • La regola predefinita viene applicata se non sono presenti altre regole NAT corrispondenti nella stessa configurazione NAT.
    • Il numero della regola predefinita è 65001.
    • L'intervallo CIDR IP di destinazione della regola predefinita è 0.0.0.0/0.
  • Le regole di Cloud NAT sono supportate solo quando il valore dell'opzione di allocazione dell'IP NAT è MANUAL_ONLY.
  • Gli intervalli CIDR IP di destinazione nella condizione di corrispondenza non devono sovrapporsi alle regole NAT. Possono 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 0.0.0.0/0, perché tale intervallo viene utilizzato nella regola predefinita.

  • Gli indirizzi IP NAT nelle regole NAT non devono sovrapporsi.

  • Una regola deve avere un indirizzo IP Active o non vuoto Drain non vuoto. Se la regola ha un indirizzo IP Active vuoto, le nuove connessioni che corrispondono alla regola NAT vengono eliminate.

  • Impossibile aggiungere regole NAT a un gateway NAT per cui è abilitata la mappatura indipendente dagli endpoint. Non puoi abilitare la mappatura indipendente degli endpoint su un gateway NAT con regole NAT.

Inoltre, a tutte le VM vengono assegnate porte dal valore minimo per ciascuna VM per ogni regola Cloud NAT. Se le porte assegnate a una VM da una regola NAT vengono 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 riceveranno 4096 porte in ogni pacchetto di regole NAT. In questo esempio, le VM non presentano problemi in default o rule2, ma rule1 non è in grado di allocare porte per tutte le sue VM. Di conseguenza, il traffico dalle VM che devono passare attraverso rule1 potrebbe essere ignorato e mostrare segni di esaurimento delle risorse, perché non utilizza la regola predefinita.

Lingua espressione regola

Le regole NAT vengono scritte utilizzando la sintassi Common Expression Language.

Un'espressione richiede due componenti:

  • Attributi che possono essere esaminati 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 di 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 provenienti da un pacchetto in uscita, come l'indirizzo IP di destinazione.

Nome dell'attributo Descrizione
destination.ip Indirizzo IP di destinazione del pacchetto

Suite operativa

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 IP CIDR Y contiene l'indirizzo IP X.
|| Operatore logico. x || y restituisce true se x o y è vero.
== È uguale all'operatore. x == y restituisce true se x è uguale a y.

Espressioni di esempio

Abbina il traffico all'indirizzo IP di destinazione 198.51.100.20.

"destination.ip == '198.51.100.20'"

Abbina 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