Configura l'inoltro del protocollo

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.

  1. 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
    
  2. 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'
    
  3. Crea un'istanza di destinazione contenente la VM creata nel passaggio precedente. Devi creare un'istanza di destinazione prima di poter creare una regola di forwarding perché la regola di forwarding deve fare riferimento a una destinazione esistente risorsa.

    gcloud compute target-instances create TARGET_INSTANCE_NAME \
       --instance=VM_INSTANCE_NAME \
       --zone=ZONE
    
  4. Prenota un IPv4 esterno statico .

    gcloud compute addresses create IPV4_ADDRESS \
      --region=REGION
    
  5. 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
    
  6. Testa la configurazione.

    1. Ottieni l'indirizzo IP della tua regola di forwarding.

      gcloud compute forwarding-rules describe IPV4_FORWARDING_RULE_NAME \
        --region=REGION
      
    2. 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 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 una VM a doppio stack per il backend dell'istanza di destinazione.

  1. Creare una rete VPC in modalità personalizzata.

    gcloud compute networks create VPC_NAME \
      --subnet-mode=custom
    
  2. 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 ulteriori informazioni per informazioni, consulta Subnet IPv4 più intervalli.

  3. 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_IPV6_FIREWALL_RULE_NAME \
      --network=VPC_NAME \
      --target-tags=allow-ipv6-ext \
      --allow=tcp:80 \
      --source-ranges=::/0
    
  4. 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'
    
  5. 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
    
  6. Prenota un indirizzo IPv6 esterno statico intervallo.

    gcloud compute addresses create IPV6_ADDRESS \
      --region=REGION \
      --subnet=SUBNET_NAME \
      --ip-version=IPV6 \
      --endpoint-type=NETLB
    
  7. 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
    
  8. Testa la configurazione.

    1. Ottieni l'indirizzo IP della regola di forwarding.

      gcloud compute forwarding-rules describe IPV6_FORWARDING_RULE_NAME \
       --region=REGION
      
    2. Effettua richieste web al bilanciatore del carico utilizzando curl per contattare il relativo 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 l'inoltro del protocollo interno utilizzando un per inoltrare il traffico TCP a una singola istanza di destinazione. Esistono le 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.

  1. 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_IPV4_FIREWALL_RULE_NAME \
      --target-tags=allow-ipv4-int \
      --allow=tcp \
      --source-ranges=0.0.0.0/0
    
  2. 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
    
  3. 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'
    
  4. Crea un'istanza di destinazione contenente la VM creata nel passaggio precedente. Devi creare un'istanza di destinazione prima di poter creare una regola di forwarding perché la regola di forwarding deve fare riferimento a una destinazione esistente risorsa.

    gcloud compute target-instances create TARGET_INSTANCE_NAME \
      --instance=VM_INSTANCE_NAME \
      --zone=ZONE
    
  5. 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=INTERNAL \
      --network-tier=PREMIUM \
      --region=REGION \
      --ip-protocol=TCP \
      --ports=80 \
      --target-instance=TARGET_INSTANCE_NAME \
      --target-instance-zone=ZONE
    
  6. Creare 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.

  7. Testa la configurazione.

    1. Ottieni l'indirizzo IP della tua regola di forwarding.

      gcloud compute forwarding-rules describe IPV4_FORWARDING_RULE_NAME \
       --region=REGION
      
    2. Stabilisci una connessione SSH alla VM client.

      gcloud compute ssh CLIENT_VM_NAME \
      --zone=ZONE
      
    3. 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 una VM a doppio stack per il backend dell'istanza di destinazione.

  1. 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
    
  2. 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 ulteriori informazioni per informazioni, consulta Subnet IPv4 più intervalli.

  3. 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
    
  4. Crea una regola firewall per consentire la connettività SSH alle VM utilizzando la rete tag 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 successivi) a cui ti connetti utilizzando SSH per inviare traffico HTTP l'indirizzo IP della regola di forwarding.

  5. 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-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'
    
  6. 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
    
  7. 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=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
    
  8. Creare 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
    
  9. Testa la configurazione.

    1. Ottieni l'indirizzo IP della regola di forwarding.

      gcloud compute forwarding-rules describe IPV6_FORWARDING_RULE_NAME \
       --region=REGION
      
    2. Stabilisci una connessione SSH alla VM client.

      gcloud compute ssh CLIENT_VM_NAME \
       --zone=ZONE
      
    3. Effettua una richiesta HTTP all'indirizzo IP della regola di forwarding utilizzando con il comando 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.
      

Passaggi successivi