Questo documento contiene le istruzioni per configurare l'inoltro del protocollo per entrambi il forwarding del protocollo interno ed esterno. Prima di configurare il protocollo sull'inoltro, leggi la panoramica dell'inoltro del protocollo.
Configura il forwarding del protocollo esterno
Questa sezione mostra come configurare l'inoltro del protocollo esterno utilizzando un per inoltrare il traffico TCP a una singola istanza di destinazione. Là sono istruzioni separate per il traffico IPv4 e IPv6.
Per configurare il forwarding del protocollo esterno, crei un'istanza di destinazione che contiene una singola istanza VM. Poi creerai un forwarding a livello di regione esterno che inoltra il traffico all'istanza di destinazione.
IPv4
Per semplicità, questo esempio utilizza la rete e le subnet predefinite.
Crea una regola firewall che consenta al traffico esterno di raggiungere la destinazione. in esecuzione in un'istanza Compute Engine.
gcloud compute firewall-rules create ALLOW_IPV4_FIREWALL_RULE_NAME \ --target-tags=allow-ipv4-ext \ --allow=tcp:80 \ --source-ranges=0.0.0.0/0
Creare una VM. Per questo esempio, stiamo configurando un server Apache sulla VM.
gcloud compute instances create VM_INSTANCE_NAME \ --zone=ZONE \ --image-family=debian-12 \ --image-project=debian-cloud \ --tags=allow-ipv4-ext \ --metadata=startup-script='#! /bin/bash sudo apt-get update sudo apt-get install apache2 -y sudo a2ensite default-ssl sudo a2enmod ssl vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://169.254.169.254/computeMetadata/v1/instance/name)" echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html sudo systemctl restart apache2'
Crea un'istanza di destinazione contenente la VM creata nel passaggio precedente. Devi creare un'istanza di destinazione prima di poter creare un oggetto regola di inoltro perché la regola di inoltro deve fare riferimento a una risorsa di destinazione esistente.
gcloud compute target-instances create TARGET_INSTANCE_NAME \ --instance=VM_INSTANCE_NAME \ --zone=ZONE
Prenota un IPv4 esterno statico .
gcloud compute addresses create IPV4_ADDRESS \ --region=REGION
Crea la regola di forwarding che inoltra il traffico TCP alla destinazione in esecuzione in un'istanza Compute Engine. La regola di forwarding deve essere creata nella stessa regione in cui è stata creata l'istanza di destinazione.
gcloud compute forwarding-rules create IPV4_FORWARDING_RULE_NAME \ --load-balancing-scheme=EXTERNAL \ --region=REGION \ --ip-protocol=TCP \ --address=IPV4_ADDRESS \ --ports=80 \ --target-instance=TARGET_INSTANCE_NAME \ --target-instance-zone=ZONE
Testa la configurazione.
Ottieni l'indirizzo IP della tua regola di forwarding.
gcloud compute forwarding-rules describe IPV4_FORWARDING_RULE_NAME \ --region=REGION
Effettua richieste web al bilanciatore del carico utilizzando curl per contattare il relativo IP . Sostituisci
IP_ADDRESS
con l'indirizzo IP dal passaggio precedente.$ while true; do curl -m1 IP_ADDRESS; done
L'output è simile al seguente, dove viene visualizzato il nome della VM di backend che genera la risposta.
Page served from: VM_INSTANCE_NAME.
IPv6
La gestione del traffico IPv6 richiede una subnet a doppio stack con un'istanza VM a doppio stack per il backend dell'istanza di destinazione.
Creare una rete VPC in modalità personalizzata.
gcloud compute networks create VPC_NAME \ --subnet-mode=custom
All'interno della rete VPC, crea una subnet a doppio stack.
gcloud compute networks subnets create SUBNET_NAME \ --network=VPC_NAME \ --range=192.168.11.0/24 \ --stack-type=IPV4_IPV6 \ --ipv6-access-type=EXTERNAL \ --region=REGION
L'intervallo
192.168.11.0/24
è solo un intervallo IPv4 di esempio. Puoi inserire qualsiasi intervallo IPv4 principale per la nuova subnet in notazione CIDR. Per maggiori informazioni per informazioni, consulta Subnet IPv4 più intervalli.Crea una regola firewall che consenta al traffico esterno di raggiungere l'istanza di destinazione.
gcloud compute firewall-rules create ALLOW_IPV6_FIREWALL_RULE_NAME \ --network=VPC_NAME \ --target-tags=allow-ipv6-ext \ --allow=tcp:80 \ --source-ranges=::/0
Creare una VM a doppio stack.
gcloud compute instances create VM_INSTANCE_NAME \ --subnet=SUBNET_NAME \ --stack-type=IPV4_IPV6 \ --zone=ZONE \ --image-family=debian-12 \ --image-project=debian-cloud \ --tags=allow-ipv6-ext \ --metadata=startup-script='#! /bin/bash sudo apt-get update sudo apt-get install apache2 -y sudo a2ensite default-ssl sudo a2enmod ssl vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://metadata.google.internal/computeMetadata/v1/instance/name)" echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html sudo systemctl restart apache2'
Crea un'istanza di destinazione contenente la VM creata nel passaggio precedente.
gcloud compute target-instances create TARGET_INSTANCE_NAME \ --instance=VM_INSTANCE_NAME \ --network=VPC_NAME \ --zone=ZONE
Prenota un intervallo di indirizzi IPv6 esterni statici.
gcloud compute addresses create IPV6_ADDRESS \ --region=REGION \ --subnet=SUBNET_NAME \ --ip-version=IPV6 \ --endpoint-type=NETLB
Creare una regola di forwarding IPv6 che inoltra il traffico TCP alla destinazione in esecuzione in un'istanza Compute Engine. La regola di forwarding deve essere creata nella stessa regione in cui è stata creata l'istanza di destinazione.
gcloud compute forwarding-rules create IPV6_FORWARDING_RULE_NAME \ --load-balancing-scheme=EXTERNAL \ --subnet=SUBNET_NAME \ --ip-version=IPV6 \ --region=REGION \ --address=IPV6_ADDRESS \ --network-tier=PREMIUM \ --target-instance=TARGET_INSTANCE_NAME \ --target-instance-zone=ZONE \ --ip-protocol=TCP \ --ports=80
Testa la configurazione.
Ottieni l'indirizzo IP della regola di inoltro.
gcloud compute forwarding-rules describe IPV6_FORWARDING_RULE_NAME \ --region=REGION
Invia richieste web al bilanciatore del carico utilizzando curl per contattare il relativo indirizzo IP. Sostituisci
IPV6_ADDRESS
con l'indirizzo IP del passaggio precedente.curl -6 'http://[IPV6_ADDRESS]:80'
L'output è simile al seguente, dove il nome del backend Viene visualizzata la VM che genera la risposta.
Page served from: VM_INSTANCE_NAME.
Configura il forwarding del protocollo interno
Questa sezione mostra come configurare il forwarding del protocollo interno utilizzando una regola di inoltro per inoltrare il traffico TCP a una singola istanza di destinazione. Esistono istruzioni separate per il traffico IPv4 e IPv6.
Per questo esempio, creerai un'istanza di destinazione che contiene una singola VM con un server Apache installato. Quindi crei una finestra a regola di forwarding di regione che inoltra il traffico all'istanza di destinazione.
IPv4
Per semplicità, questo esempio utilizza la rete e le subnet predefinite.
Crea una regola firewall che consenta al traffico interno di raggiungere l'istanza di destinazione.
gcloud compute firewall-rules create ALLOW_IPV4_FIREWALL_RULE_NAME \ --target-tags=allow-ipv4-int \ --allow=tcp \ --source-ranges=0.0.0.0/0
Crea una regola firewall per consentire la connettività SSH alle VM con la rete tag
allow-ssh
. Viene utilizzato per stabilire una connessione SSH alla VM client.gcloud compute firewall-rules create ALLOW_SSH_FIREWALL_RULE_NAME \ --target-tags=allow-ssh \ --allow=tcp:22 \ --source-ranges=0.0.0.0/0
Creare una VM.
gcloud compute instances create VM_INSTANCE_NAME \ --zone=ZONE \ --image-family=debian-12 \ --image-project=debian-cloud \ --tags=allow-ipv4-int \ --metadata=startup-script='#! /bin/bash sudo apt-get update sudo apt-get install apache2 -y sudo a2ensite default-ssl sudo a2enmod ssl vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://169.254.169.254/computeMetadata/v1/instance/name)" echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html sudo systemctl restart apache2'
Crea un'istanza di destinazione contenente la VM creata nel passaggio precedente. Devi creare un'istanza di destinazione prima di poter creare un oggetto regola di inoltro, perché la regola di inoltro deve fare riferimento a una risorsa di destinazione esistente.
gcloud compute target-instances create TARGET_INSTANCE_NAME \ --instance=VM_INSTANCE_NAME \ --zone=ZONE
Crea la regola di forwarding che inoltra il traffico TCP alla destinazione in esecuzione in un'istanza Compute Engine. La regola di inoltro deve essere creata nella stessa regione in cui è stata creata l'istanza di destinazione.
gcloud compute forwarding-rules create IPV4_FORWARDING_RULE_NAME \ --load-balancing-scheme=INTERNAL \ --network-tier=PREMIUM \ --region=REGION \ --ip-protocol=TCP \ --ports=80 \ --target-instance=TARGET_INSTANCE_NAME \ --target-instance-zone=ZONE
Crea una VM client di test.
gcloud compute instances create CLIENT_VM_NAME \ --zone=ZONE \ --image-family=debian-12 \ --image-project=debian-cloud \ --tags=allow-ssh
Ora puoi testare la configurazione dell'inoltro del protocollo inviando il traffico da questa VM client all'indirizzo IP della regola di forwarding.
Testa la configurazione.
Ottieni l'indirizzo IP della regola di inoltro.
gcloud compute forwarding-rules describe IPV4_FORWARDING_RULE_NAME \ --region=REGION
Stabilisci una connessione SSH alla VM client.
gcloud compute ssh CLIENT_VM_NAME \ --zone=ZONE
Effettua richieste al bilanciatore del carico utilizzando curl per contattare il relativo IP .
$ while true; do curl -m1 IP_ADDRESS; done
L'output è simile al seguente, dove il nome del backend Viene visualizzata la VM che genera la risposta.
Page served from: VM_INSTANCE_NAME.
IPv6
La gestione del traffico IPv6 richiede una subnet a doppio stack con un'istanza VM a doppio stack per il backend dell'istanza di destinazione.
Crea una rete VPC in modalità personalizzata
--enable-ula-internal-ipv6
flag per configurare intervalli IPv6 interni su qualsiasi in questa rete.gcloud compute networks create VPC_NAME \ --subnet-mode=custom \ --enable-ula-internal-ipv6
All'interno della rete VPC, crea una subnet a doppio stack.
gcloud compute networks subnets create SUBNET_NAME \ --network=VPC_NAME \ --range=192.168.11.0/24 \ --region=REGION \ --stack-type=IPV4_IPV6 \ --ipv6-access-type=INTERNAL
L'intervallo
192.168.11.0/24
è solo un intervallo IPv4 di esempio. Puoi inserire qualsiasi intervallo IPv4 principale per la nuova subnet, in notazione CIDR. Per maggiori informazioni per informazioni, consulta Subnet IPv4 più intervalli.Creare una regola firewall che consenta al traffico interno di raggiungere la destinazione. in esecuzione in un'istanza Compute Engine.
gcloud compute firewall-rules create ALLOW_IPV6_FIREWALL_RULE_NAME \ --network=VPC_NAME \ --target-tags=allow-ipv6-int \ --allow=tcp \ --source-ranges=::/0
Crea una regola firewall per consentire la connettività SSH alle VM utilizzando il tag di rete
allow-ssh
.gcloud compute firewall-rules create ALLOW_SSH_FIREWALL_RULE_NAME \ --network=VPC_NAME \ --target-tags=allow-ssh \ --allow=tcp:22 \ --source-ranges=0.0.0.0/0
Questa regola firewall viene applicata a una VM client (creata in uno dei passaggi seguenti) a cui ti connetti utilizzando SSH per inviare traffico HTTP all'indirizzo IP della regola di inoltro.
Crea una VM dual-stack.
gcloud compute instances create VM_INSTANCE_NAME \ --subnet=SUBNET_NAME \ --stack-type=IPV4_IPV6 \ --zone=ZONE \ --image-family=debian-12 \ --image-project=debian-cloud \ --tags=allow-ipv6-int \ --metadata=startup-script='#! /bin/bash sudo apt-get update sudo apt-get install apache2 -y sudo a2ensite default-ssl sudo a2enmod ssl vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://metadata.google.internal/computeMetadata/v1/instance/name)" echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html sudo systemctl restart apache2'
Crea un'istanza di destinazione contenente la VM creata nel passaggio precedente.
gcloud compute target-instances create TARGET_INSTANCE_NAME \ --instance=VM_INSTANCE_NAME \ --network=VPC_NAME \ --zone=ZONE
Creare una regola di forwarding IPv6 che inoltra il traffico TCP alla destinazione in esecuzione in un'istanza Compute Engine. La regola di inoltro deve essere creata nella stessa regione in cui è stata creata l'istanza di destinazione.
gcloud compute forwarding-rules create IPV6_FORWARDING_RULE_NAME \ --load-balancing-scheme=INTERNAL \ --network-tier=PREMIUM \ --network=VPC_NAME \ --subnet=SUBNET_NAME \ --region=REGION \ --ip-protocol=TCP \ --ports=80 \ --target-instance=TARGET_INSTANCE_NAME \ --target-instance-zone=ZONE \ --ip-version=IPV6
Crea una VM client.
gcloud compute instances create CLIENT_VM_NAME \ --subnet=SUBNET_NAME \ --stack-type=IPV4_IPV6 \ --zone=ZONE \ --image-family=debian-12 \ --image-project=debian-cloud \ --tags=allow-ssh
Testa la configurazione.
Ottieni l'indirizzo IP della regola di forwarding.
gcloud compute forwarding-rules describe IPV6_FORWARDING_RULE_NAME \ --region=REGION
Stabilisci una connessione SSH alla VM client.
gcloud compute ssh CLIENT_VM_NAME \ --zone=ZONE
Invia una richiesta HTTP all'indirizzo IP della regola di inoltro utilizzando curl.
curl -6 'http://[FORWARDING_RULE_IP_ADDRESS]:80'
L'output è simile al seguente, dove il nome del backend La VM che genera la risposta viene visualizzata nel testo.
Page served from: VM_INSTANCE_NAME.