Configura il bilanciatore del carico di rete passthrough interno per appliance di terze parti

In Google Cloud, puoi integrare appliance di terze parti in un ambiente ad alta disponibilità, e lo scale out. A questo scopo, devi configurare una route statica personalizzata e impostare la sua hop successivo al bilanciatore del carico di rete passthrough interno di Google Cloud. In questo modo il bilanciatore del carico per bilanciare il carico del traffico per il prefisso di destinazione a un pool di di applicazioni VM di terze parti.

Questa guida utilizza un esempio per insegnarti come configurare un bilanciatore del carico di rete passthrough interno come hop successivo. Prima di seguire questa guida, acquisisci familiarità con le seguenti:

Autorizzazioni

Per seguire questa guida, devi creare le istanze e modificare in un progetto. Dovresti essere un progetto proprietario o editor, oppure includono tutte le seguenti caratteristiche Ruoli IAM di Compute Engine:

Attività Ruolo richiesto
Creazione di reti, subnet e componenti del bilanciatore del carico Amministratore rete
Aggiungi e rimuovi regole firewall Amministratore sicurezza
Creazione delle istanze Amministratore istanze Compute

Per ulteriori informazioni, consulta le seguenti guide:

Configurazione di bilanciatori del carico di rete passthrough interni come hop successivi con backend comuni

Questa guida mostra come utilizzare un bilanciatore del carico di rete passthrough interno come fare un hop per una route statica personalizzata al fine di integrare elettrodomestici.

La soluzione descritta in questa guida crea VM delle appliance che eseguono Debian Linux. Le VM di esempio non eseguono alcun filtro dei pacchetti, ma puoi aggiungi questa funzionalità modificando la rete configurazione di questo esempio o utilizzando diversi filtri dei pacchetti o software.

I passaggi in questa sezione descrivono come configurare le seguenti risorse:

  • Esempi di reti VPC e subnet personalizzate
  • Regole firewall di Google Cloud che consentono le connessioni in entrata al backend macchine virtuali (VM) dell'appliance
  • Route statiche personalizzate
  • Due VM client per testare le connessioni
  • I seguenti componenti del bilanciatore del carico di rete passthrough interno:
    • VM di backend in un gruppo di istanze gestite
    • Un controllo di integrità per le VM di backend
    • Un servizio di backend interno nella regione us-west1 da gestire distribuzione delle connessioni tra le VM di backend
    • Una regola di forwarding interno e un indirizzo IP interno per frontend del bilanciatore del carico,

Questo esempio mostra il bilanciamento del carico su più NIC di backend, descritto in Bilanciamento del carico NIC.

La topologia ha il seguente aspetto:

Esempio dettagliato di più NIC dell'hop successivo per il bilanciatore del carico di rete passthrough interno.
Esempio dettagliato di più NIC per l'hop successivo per il bilanciatore del carico di rete passthrough interno (fai clic per ingrandire).

Il diagramma mostra alcune delle risorse create dall'esempio:

  • Istanze di applicazioni dietro un bilanciatore del carico di rete passthrough interno (fr-ilb1, in esempio). Le istanze dell'applicazione hanno solo indirizzi IP interni.
  • Ogni istanza di applicazione ha il suo Flag can-ip-forward abilitato. Senza questo flag, una VM di Compute Engine può trasmettere un pacchetto solo se l'indirizzo IP di origine del pacchetto corrisponde all'indirizzo IP interno della VM, un indirizzo da un intervallo IP alias o da un indirizzo IP di una regola di forwarding che si risolve alla VM. Il flag can-ip-forward modifica questo comportamento in modo che la VM può trasmettere pacchetti con qualsiasi indirizzo IP di origine.
  • Una route statica personalizzata con una destinazione 10.50.1.0/24 e hop successivo impostati sulla regola di forwarding del bilanciatore del carico, fr-ilb1.

Il diagramma mostra anche il flusso del traffico:

  • La rete VPC testing ha una route statica personalizzata per traffico destinato a 10.50.1.0/24 subnet. Questo percorso indirizza al bilanciatore del carico.
  • Il bilanciatore del carico inoltra il traffico a una delle istanze dell'applicazione in base all'affinità sessione configurata. (L'affinità sessione interessa solo TCP traffic.)

Per altri casi d'uso, vedi Bilanciatori del carico TCP/UDP interni come successivo hop.

Configurazione di reti, regione e subnet

Questo esempio utilizza le seguenti reti, regione e regione VPC subnet:

  • Reti: questo esempio richiede due reti, ciascuna con almeno una rete una subnet. Ogni VM dell'appliance di terze parti backend deve avere almeno due una in ogni rete VPC. Le reti in questo di esempio sono VPC in modalità personalizzata reti denominate testing e production. La La rete testing in questo esempio contiene il client e il bilanciatore del carico. La rete production contiene la VM di destinazione.

  • Regione: le subnet si trovano nella regione us-west1. Le subnet devono essere nella stessa regione perché le istanze VM sono risorse di zona.

  • Subnet: le subnet, testing-subnet e production-subnet, utilizzano lo 10.30.1.0/24 e 10.50.1.0/24 di intervalli di indirizzi IP principali, rispettivamente.

Per creare reti e subnet di esempio, segui questi passaggi.

Console

Crea la rete testing e testing-subnet:

  1. Nella console Google Cloud, vai alla pagina Reti VPC.

    Vai alle reti VPC

  2. Fai clic su Crea rete VPC.

  3. Inserisci testing come nome.

  4. Nella sezione Subnet:

    • Imposta Modalità di creazione subnet su Personalizzata.
    • Nella sezione Nuova subnet, inserisci le informazioni seguenti:
        .
      • Nome: testing-subnet
      • Regione: us-west1
      • Intervallo di indirizzi IP: 10.30.1.0/24
      • Fai clic su Fine.
  5. Fai clic su Crea.

Crea la rete production e production-subnet:

  1. Nella console Google Cloud, vai alla pagina Reti VPC.

    Vai alle reti VPC

  2. Fai clic su Crea rete VPC.

  3. Inserisci production come nome.

  4. Nella sezione Subnet:

    • Imposta Modalità di creazione subnet su Personalizzata.
    • Nella sezione Nuova subnet, inserisci le informazioni seguenti:
        .
      • Nome: production-subnet
      • Regione: us-west1
      • Intervallo di indirizzi IP: 10.50.1.0/24
      • Fai clic su Fine.
  5. Fai clic su Crea.

gcloud

  1. Crea le reti VPC personalizzate:

    gcloud compute networks create testing --subnet-mode=custom
    
    gcloud compute networks create production --subnet-mode=custom
    
  2. Crea subnet nelle reti testing e production in regione us-west1:

    gcloud compute networks subnets create testing-subnet \
        --network=testing \
        --range=10.30.1.0/24 \
        --region=us-west1
    
    gcloud compute networks subnets create production-subnet \
        --network=production \
        --range=10.50.1.0/24 \
        --region=us-west1
    

Configurazione delle regole del firewall

Questo esempio utilizza le seguenti regole firewall:

  • fw-allow-testing-from-both: una regola in entrata, applicabile a tutte le destinazioni in sulla rete testing. Questa regola consente il traffico da sorgenti in Intervalli di indirizzi IP 10.30.1.0/24 e 10.50.1.0/24. Questi due intervalli coprono gli indirizzi IP interni principali delle VM in entrambe le reti.

  • fw-allow-production-from-both: una regola in entrata, applicabile a tutte le destinazioni in sulla rete production. Questa regola consente il traffico da sorgenti in Intervalli di indirizzi IP 10.30.1.0/24 e 10.50.1.0/24. Questi due intervalli coprono gli indirizzi IP interni principali delle VM in entrambe le reti.

  • fw-allow-testing-ssh: una regola in entrata applicata alle istanze VM in Rete VPC testing. Questa regola consente l'accesso SSH connettività sulla porta TCP 22 da qualsiasi indirizzo. Puoi scegliere altre un intervallo IP di origine restrittivo per questa regola; Puoi specificare l'indirizzo IP degli intervalli di sistemi da cui prevedi di avviare sessioni SSH. Questo utilizza il tag di destinazione allow-ssh per identificare le VM a cui si applica una regola firewall.

  • fw-allow-production-ssh: una regola in entrata applicata alle istanze VM in Rete VPC production. Questa regola consente l'accesso SSH connettività sulla porta TCP 22 da qualsiasi indirizzo. Come fw-allow-testing-ssh puoi scegliere un intervallo IP di origine più restrittivo per questa regola.

  • fw-allow-health-check: una regola in entrata per le VM dell'appliance di terze parti in fase di bilanciamento del carico. Questa regola consente al traffico Sistemi di controllo di integrità di Google Cloud (130.211.0.0/22 e 35.191.0.0/16). Questo esempio utilizza il tag di destinazione allow-health-check per e a identificare le istanze a cui deve essere applicato.

  • fw-allow-production-health-check: una regola in entrata per la terza parte dell'appliance in fase di bilanciamento del carico. Questa regola consente al traffico Sistemi di controllo di integrità di Google Cloud (130.211.0.0/22 e 35.191.0.0/16). Questo esempio utilizza il tag di destinazione allow-health-check per e a identificare le istanze a cui deve essere applicato.

Senza queste regole firewall, il campo di blocco predefinito una regola in entrata blocca in entrata alle istanze di backend. Devi creare una regola firewall per consentire i controlli di integrità degli intervalli IP dei sistemi di probe di Google Cloud. Consulta sonda gli intervalli IP per ulteriori informazioni.

Console

  1. Nella console Google Cloud, vai alla pagina Criteri firewall.

    Vai a Criteri firewall

  2. Fai clic su Crea regola firewall e inserisci quanto segue. informazioni per creare la regola che consenta alle VM di test di ricevere pacchetti dalle subnet di test e di produzione:

    • Nome: fw-allow-testing-from-both
    • Rete: testing
    • Priorità: 1000
    • Direzione del traffico: in entrata
    • Azione in caso di corrispondenza: consenti
    • Destinazioni: Tutte le istanze nella rete
    • Filtro di origine: Intervalli IPv4
    • Intervalli IPv4 di origine: 10.30.1.0/24, 10.50.1.0/24
    • Protocolli e porte: Consenti tutto
  3. Fai clic su Crea.

  4. Fai clic su Crea regola firewall e inserisci quanto segue. informazioni per creare la regola che consenta alle VM di produzione di ricevere pacchetti dalle subnet di test e di produzione:

    • Nome: fw-allow-production-from-both
    • Rete: production
    • Priorità: 1000
    • Direzione del traffico: in entrata
    • Azione in caso di corrispondenza: consenti
    • Destinazioni: Tutte le istanze nella rete
    • Filtro di origine: Intervalli IPv4
    • Intervalli IPv4 di origine: 10.30.1.0/24, 10.50.1.0/24
    • Protocolli e porte: Consenti tutto
  5. Fai clic su Crea.

  6. Fai clic su Crea regola firewall per creare la regola in modo da consentire le richieste in entrata Connessioni SSH nell'ambiente di test:

    • Nome: fw-allow-testing-ssh
    • Rete: testing
    • Priorità: 1000
    • Direzione del traffico: in entrata
    • Azione in caso di corrispondenza: consenti
    • Target: Tag di destinazione specificati
    • Tag di destinazione: allow-ssh
    • Filtro di origine: Intervalli IPv4
    • Intervalli IPv4 di origine: 0.0.0.0/0
    • Protocolli e porte: scegli Protocolli e porte specificati e tipo: tcp:22
  7. Fai clic su Crea.

  8. Fai clic su Crea regola firewall per creare la regola in modo da consentire le richieste in entrata Connessioni SSH nell'ambiente di produzione:

    • Nome: fw-allow-production-ssh
    • Rete: production
    • Priorità: 1000
    • Direzione del traffico: in entrata
    • Azione in caso di corrispondenza: consenti
    • Target: Tag di destinazione specificati
    • Tag di destinazione: allow-ssh
    • Filtro di origine: Intervalli IPv4
    • Intervalli IPv4 di origine: 0.0.0.0/0
    • Protocolli e porte: scegli Protocolli e porte specificati e tipo: tcp:22
  9. Fai clic su Crea.

  10. Fai clic su Crea regola firewall per creare la regola che consente Controlli di integrità di Google Cloud nell'ambiente di test:

    • Nome: fw-allow-health-check
    • Rete: testing
    • Priorità: 1000
    • Direzione del traffico: in entrata
    • Azione in caso di corrispondenza: consenti
    • Target: Tag di destinazione specificati
    • Tag di destinazione: allow-health-check
    • Filtro di origine: Intervalli IPv4
    • Intervalli IPv4 di origine: 130.211.0.0/22 e 35.191.0.0/16
    • Protocolli e porte: tcp
  11. Fai clic su Crea.

  12. Fai clic su Crea regola firewall per creare la regola che consente Controlli di integrità di Google Cloud nell'ambiente di produzione:

    • Nome: fw-allow-production-health-check
    • Rete: production
    • Priorità: 1000
    • Direzione del traffico: in entrata
    • Azione in caso di corrispondenza: consenti
    • Target: Tag di destinazione specificati
    • Tag di destinazione: allow-health-check
    • Filtro di origine: Intervalli IPv4
    • Intervalli IPv4 di origine: 130.211.0.0/22 e 35.191.0.0/16
    • Protocolli e porte: tcp
  13. Fai clic su Crea.

gcloud

  1. Crea la regola firewall fw-allow-testing-subnet per consentire di testare le VM per ricevere pacchetti dalle subnet testing e production:

    gcloud compute firewall-rules create fw-allow-testing-from-both \
        --network=testing \
        --action=allow \
        --direction=ingress \
        --source-ranges=10.30.1.0/24,10.50.1.0/24 \
        --rules=all
    
  2. Crea la regola firewall fw-allow-production-subnet per consentire la produzione VM che ricevono pacchetti dalle subnet testing e production:

    gcloud compute firewall-rules create fw-allow-production-from-both \
        --network=production \
        --action=allow \
        --direction=ingress \
        --source-ranges=10.30.1.0/24,10.50.1.0/24 \
        --rules=all
    
  3. Crea la regola firewall fw-allow-testing-ssh per consentire la connettività SSH alle VM con il tag di rete allow-ssh. Se ometti source-ranges, Google Cloud interpreta la regola nel significato che Fonte.

    gcloud compute firewall-rules create fw-allow-testing-ssh \
        --network=testing \
        --action=allow \
        --direction=ingress \
        --target-tags=allow-ssh \
        --rules=tcp:22
    
  4. Crea la regola firewall fw-allow-production-ssh per consentire l'accesso tramite SSH connettività alle VM con il tag di rete allow-ssh.

    gcloud compute firewall-rules create fw-allow-production-ssh \
        --network=production \
        --action=allow \
        --direction=ingress \
        --target-tags=allow-ssh \
        --rules=tcp:22
    
  5. Crea la regola fw-allow-health-check per consentire a Google Cloud di integrità alle VM delle appliance di terze parti nella rete testing.

    gcloud compute firewall-rules create fw-allow-testing-health-check \
        --network=testing \
        --action=allow \
        --direction=ingress \
        --target-tags=allow-health-check \
        --source-ranges=130.211.0.0/22,35.191.0.0/16 \
        --rules=tcp
    
  6. Crea la regola firewall fw-allow-production-health-check per consentire i controlli di integrità di Google Cloud sulle VM delle appliance di terze parti nel Rete production.

    gcloud compute firewall-rules create fw-allow-production-health-check \
        --network=production \
        --action=allow \
        --direction=ingress \
        --target-tags=allow-health-check \
        --source-ranges=130.211.0.0/22,35.191.0.0/16 \
        --rules=tcp
    

Creazione di appliance virtuali di terze parti

I passaggi seguenti mostrano come creare un modello di istanza e un modello gruppo di istanze regionali con più di un'interfaccia di rete. Questa istanza è utilizzato come appliance virtuale di terze parti in questo esempio.

Console

Per questo passaggio devi utilizzare gcloud perché devi creare un'istanza modello con più di un'interfaccia di rete. Console Google Cloud al momento non supporta la creazione di modelli di istanza con più di una interfaccia di rete.

gcloud

  1. Crea un file locale denominato config.sh e inserisci i seguenti contenuti:

    #!/bin/bash
    # Enable IP forwarding:
    echo 1 > /proc/sys/net/ipv4/ip_forward
    echo "net.ipv4.ip_forward=1" > /etc/sysctl.d/20-example.conf
    # Read VM network configuration:
    md_vm="http://metadata.google.internal/computeMetadata/v1/instance/"
    md_net="$md_vm/network-interfaces"
    nic0_gw="$(curl $md_net/0/gateway -H "Metadata-Flavor:Google" )"
    nic0_mask="$(curl $md_net/0/subnetmask -H "Metadata-Flavor:Google")"
    nic0_addr="$(curl $md_net/0/ip -H "Metadata-Flavor:Google")"
    nic0_id="$(ip addr show | grep $nic0_addr | awk '{print $NF}')"
    nic1_gw="$(curl $md_net/1/gateway -H "Metadata-Flavor:Google")"
    nic1_mask="$(curl $md_net/1/subnetmask -H "Metadata-Flavor:Google")"
    nic1_addr="$(curl $md_net/1/ip -H "Metadata-Flavor:Google")"
    nic1_id="$(ip addr show | grep $nic1_addr | awk '{print $NF}')"
    # Source based policy routing for nic1
    echo "100 rt-nic1" >> /etc/iproute2/rt_tables
    sudo ip rule add pri 32000 from $nic1_gw/$nic1_mask table rt-nic1
    sleep 1
    sudo ip route add 35.191.0.0/16 via $nic1_gw dev $nic1_id table rt-nic1
    sudo ip route add 130.211.0.0/22 via $nic1_gw dev $nic1_id table rt-nic1
    # Use a web server to pass the health check for this example.
    # You should use a more complete test in production.
    sudo apt-get update
    sudo apt-get install apache2 -y
    sudo a2ensite default-ssl
    sudo a2enmod ssl
    echo "Example web page to pass health check" | \
    tee /var/www/html/index.html
    sudo systemctl restart apache2
    
  2. Crea un modello di istanza per le appliance virtuali di terze parti. La deve includere il flag --can-ip-forward in modo che Le istanze VM create dal modello possono inoltrare pacchetti da altri di istanze VM nelle reti testing e production.

    gcloud compute instance-templates create third-party-template-multinic \
        --region=us-west1 \
        --network-interface subnet=testing-subnet,address="" \
        --network-interface subnet=production-subnet \
        --tags=allow-ssh,allow-health-check,my-network-tag \
        --image-family=debian-12 \
        --image-project=debian-cloud \
        --can-ip-forward \
        --metadata=startup-script="$(< config.sh)"
    
  3. Crea un gruppo di istanze gestite per le appliance virtuali di terze parti. Questo comando crea un gruppo di istanze gestite a livello di regione, che può quindi con scalabilità automatica in us-west1.

    gcloud compute instance-groups managed create third-party-instance-group \
        --region=us-west1 \
        --template=third-party-template-multinic \
        --size=3
    

Creazione delle risorse di bilanciamento del carico

Questi passaggi configurano tutto il bilanciatore del carico di rete passthrough interno componenti, che iniziano con l'integrità di controllo e di servizio di backend, quindi i componenti frontend:

  • Controllo di integrità: in questo esempio, il controllo di integrità HTTP verifica la presenza di una risposta HTTP 200 (OK). Per ulteriori informazioni, consulta sezione relativa ai controlli di integrità del bilanciatore del carico di rete passthrough interno Panoramica.

  • Servizio di backend: anche se il servizio di backend di questo esempio specifica la risorsa protocollo TCP, quando il bilanciatore del carico è l'hop successivo per una route, Google Cloud inoltra il traffico per tutti i protocolli (TCP, UDP e ICMP).

  • Regola di forwarding: anche se in questo esempio questa regola di forwarding specifica TCP, porta 80, quando il bilanciatore del carico è l'hop successivo per una route, il traffico La porta TCP o UDP viene inviata ai backend del bilanciatore del carico.

  • Indirizzo IP interno: l'esempio specifica un IP interno 10.30.1.99 per la regola di forwarding.

Console

Avvia la configurazione

  1. Nella console Google Cloud, vai alla pagina Bilanciamento del carico.

    Vai a Carica di bilanciamento

  2. Fai clic su Crea bilanciatore del carico.
  3. Per Tipo di bilanciatore del carico, seleziona Bilanciatore del carico di rete (TCP/UDP/SSL) e fai clic su Avanti.
  4. Per Proxy o passthrough, seleziona Carico passthrough bilanciatore del carico e fai clic su Avanti.
  5. Per Pubblico o interno, seleziona Interno e fai clic su Avanti.
  6. Fai clic su Configura.

Crea il primo bilanciatore del carico

  1. Imposta il Nome su ilb1.
  2. Imposta la Regione su us-west1.
  3. Imposta Rete su testing.
  4. Fai clic su Configurazione backend e apporta le seguenti modifiche:
      .
    1. In Backend, nella sezione Nuovo elemento, seleziona third-party-instance-group gruppo di istanze e fai clic su Fine.
    2. In Controllo di integrità, scegli Crea un altro controllo di integrità, inserisci le informazioni seguenti e fai clic su Salva e continua:
        .
      • Nome: hc-http-80
      • Protocollo: HTTP
      • Porta: 80
      • Protocollo proxy: NONE
      • Percorso di richiesta: / Tieni presente che quando utilizzi la console Google Cloud per creare con un bilanciatore del carico globale, il controllo di integrità è globale. Se vuoi creare un controllo di integrità a livello di regione, usa gcloud o l'API.
    3. In Affinità sessione, seleziona IP client.
    4. Verifica che sia presente un segno di spunta blu accanto a Backend configurazione prima di continuare. In caso contrario, rivedi questo passaggio.
  5. Fai clic su Configurazione frontend. Nella sezione Nuovi IP e porta frontend apporta le seguenti modifiche:
      .
    1. Nome: fr-ilb1
    2. Subnet: testing-subnet
    3. In IP interno, scegli Prenota un indirizzo IP interno statico, inserisci le informazioni seguenti e fai clic su Prenota:
        .
      • Nome: ip-ilb
      • Indirizzo IP statico: Scelta manuale
      • Indirizzo IP personalizzato: 10.30.1.99
    4. Porte: scegli Singola e inserisci 80 per la Porta. numero. Ricorda che la scelta di un protocollo e di una porta per Il bilanciatore del carico non limita i protocolli e le porte utilizzati quando il bilanciatore del carico è l'hop successivo di una route.
    5. Verifica che sia presente un segno di spunta blu accanto a Frontend configurazione prima di continuare. In caso contrario, rivedi questo passaggio.
  6. Fai clic su Esamina e finalizza. Controlla le impostazioni.
  7. Fai clic su Crea.

Avvia la configurazione

  1. Nella console Google Cloud, vai alla pagina Bilanciamento del carico.

    Vai a Carica di bilanciamento

  2. Fai clic su Crea bilanciatore del carico.
  3. Per Tipo di bilanciatore del carico, seleziona Bilanciatore del carico di rete (TCP/UDP/SSL) e fai clic su Avanti.
  4. Per Proxy o passthrough, seleziona Carico passthrough bilanciatore del carico e fai clic su Avanti.
  5. Per Pubblico o interno, seleziona Interno e fai clic su Avanti.
  6. Fai clic su Configura.

Crea il secondo bilanciatore del carico

  1. Imposta il Nome su ilb2.
  2. Imposta la Regione su us-west1.
  3. Imposta Rete su production.
  4. Fai clic su Configurazione backend e apporta le seguenti modifiche:
      .
    1. In Backend, nella sezione Nuovo elemento, seleziona third-party-instance-group gruppo di istanze e fai clic su Fine.
    2. In Controllo di integrità, seleziona hc-http-80.
    3. In Affinità sessione, seleziona IP client.
    4. Verifica che sia presente un segno di spunta blu accanto a Backend configurazione prima di continuare. In caso contrario, rivedi questo passaggio.
  5. Fai clic su Configurazione frontend. Nella sezione Nuovi IP e porta frontend apporta le seguenti modifiche:
      .
    1. Nome: fr-ilb2
    2. Subnet: production-subnet
    3. In IP interno, scegli Prenota un indirizzo IP interno statico, inserisci le seguenti informazioni e poi fai clic su Prenota:
        .
      • Nome: ip-ilb2
      • Indirizzo IP statico: Scelta manuale
      • Indirizzo IP personalizzato: 10.50.1.99
    4. Porte: scegli Singola e inserisci 80 per la Porta. numero. Ricorda che la scelta di un protocollo e di una porta per Il bilanciatore del carico non limita i protocolli e le porte utilizzati quando il bilanciatore del carico è l'hop successivo di una route.
    5. Verifica che sia presente un segno di spunta blu accanto a Frontend configurazione prima di continuare. In caso contrario, rivedi questo passaggio.
  6. Fai clic su Esamina e finalizza. Controlla le impostazioni.
  7. Fai clic su Crea.

  8. Configura le risorse del bilanciatore del carico nel VPC production in ogni rete.

gcloud

  1. Crea un nuovo controllo di integrità HTTP per testare la connettività TCP alle VM su 80.

    gcloud compute health-checks create http hc-http-80 \
        --region=us-west1 \
        --port=80
    
  2. Crea due servizi di backend interni nella regione us-west1.

    gcloud compute backend-services create ilb1 \
        --load-balancing-scheme=internal \
        --health-checks-region=us-west1 \
        --health-checks=hc-http-80 \
        --region=us-west1 \
        --network=testing \
        --session-affinity=CLIENT_IP
    
    gcloud compute backend-services create ilb2 \
        --load-balancing-scheme=internal \
        --health-checks-region=us-west1 \
        --health-checks=hc-http-80 \
        --region=us-west1 \
        --network=production \
        --session-affinity=CLIENT_IP
    
  3. Aggiungi i gruppi di istanze contenenti le appliance virtuali di terze parti come di backend sui servizi di backend.

    gcloud compute backend-services add-backend ilb1 \
        --instance-group=third-party-instance-group \
        --instance-group-region=us-west1 \
        --region=us-west1
    
    gcloud compute backend-services add-backend ilb2 \
        --instance-group=third-party-instance-group \
        --instance-group-region=us-west1 \
        --region=us-west1
    
  4. Crea le regole di forwarding interno e connettile al backend per completare la configurazione del bilanciatore del carico. Ricorda che il protocollo (TCP) e la porta (80) dei bilanciatori del carico non limitano le porte e i protocolli inoltrati alle istanze di backend (le appliance virtuali di terze parti) quando i bilanciatori del carico vengono utilizzati gli hop successivi di route.

    gcloud compute forwarding-rules create fr-ilb1 \
        --load-balancing-scheme=internal \
        --ports=80 \
        --network=testing \
        --subnet=testing-subnet \
        --region=us-west1 \
        --backend-service=ilb1 \
        --address=10.30.1.99
    
    gcloud compute forwarding-rules create fr-ilb2 \
        --load-balancing-scheme=internal \
        --ports=80 \
        --network=production \
        --subnet=production-subnet \
        --region=us-west1 \
        --backend-service=ilb2 \
        --address=10.50.1.99
    

Creazione delle route statiche che definiscono i bilanciatori del carico come hop successivi

Crea due route statiche personalizzate mostrate next-hop-ilb.

Console

Crea la prima route

  1. Nella console Google Cloud, vai alla pagina Route.

    Vai a Routes

  2. Fai clic su Crea route.

  3. Per il percorso Name (Nome), inserisci ilb-nhop-dest-10-50-1.

  4. Seleziona la rete testing.

  5. Per Intervallo IP di destinazione, inserisci 10.50.1.0/24.

  6. In Tag istanza, inserisci my-network-tag.

  7. Per l'hop successivo della route, seleziona Specifica una regola di forwarding di bilanciatore del carico TCP/UDP interno.

    Per specificare l'indirizzo IP del bilanciatore del carico come hop successivo, utilizza gcloud CLI o l'API.

  8. Specifica il nome della regola di forwarding. Per la regola di forwarding nome, seleziona fr-ilb1.

  9. Fai clic su Crea.

Crea la seconda route

  1. Fai clic su Crea route.
  2. Per il percorso Name (Nome), inserisci ilb-nhop-dest-10-30-1.
  3. Seleziona la rete testing.
  4. Per Intervallo IP di destinazione, inserisci 10.30.1.0/24.
  5. Per l'hop successivo della route, seleziona Specifica una regola di forwarding di bilanciatore del carico TCP/UDP interno.

    Per specificare l'indirizzo IP del bilanciatore del carico come hop successivo, utilizza gcloud CLI o l'API.

  6. Seleziona fr-ilb2 come nome della regola di forwarding.

  7. Fai clic su Crea.

gcloud

Crea route avanzate con l'hop successivo impostato sull'hop di ogni bilanciatore del carico di una regola di forwarding e ogni intervallo di destinazione impostato di conseguenza.

Per il flag --next-hop-ilb, puoi specificare il nome della regola di forwarding o l'indirizzo IP. Se specifichi l'indirizzo IP, questo possono essere apprese tra peer senza dover esportare la route personalizzata. Nella nell'esempio, la prima route utilizza l'indirizzo IP 10.30.1.99, mentre la seconda route utilizza il nome della regola di forwarding fr-ilb12.

Facoltativamente, puoi specificare uno o più tag istanza nella percorso. La route può essere applicata a VM specifiche se specifichi i tag di rete nella percorso. Se non specifichi nessun tag di rete, la route si applica a tutte le VM in la rete VPC. In questo esempio, la route utilizza my-network-tag per il tag di rete della route.

gcloud compute routes create ilb-nhop-dest-10-50-1 \
    --network=testing \
    --destination-range=10.50.1.0/24 \
    --next-hop-ilb=10.30.1.99 \
    --tags=my-network-tag
gcloud compute routes create ilb-nhop-dest-10-30-1 \
    --network=production \
    --destination-range=10.30.1.0/24 \
    --next-hop-ilb=fr-ilb2 \
    --next-hop-ilb-region=us-west1

Creazione dell'istanza VM testing in corso...

Questo esempio crea un'istanza VM con l'indirizzo IP 10.30.1.100 in testing-subnet (10.30.1.0/24) nel VPC testing in ogni rete.

gcloud

  1. Crea testing-vm eseguendo questo comando.

    gcloud compute instances create testing-vm \
        --zone=us-west1-a \
        --image-family=debian-12 \
        --image-project=debian-cloud \
        --tags=allow-ssh,my-network-tag \
        --subnet=testing-subnet \
        --private-network-ip 10.30.1.100 \
        --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'
    

Creazione dell'istanza VM production in corso...

Questo esempio crea un'istanza VM con l'indirizzo IP 10.50.1.100 in production-subnet (10.50.1.0/24) nel VPC production in ogni rete.

gcloud

production-vm può trovarsi in qualsiasi zona della stessa regione del bilanciatore del carico, e può utilizzare qualsiasi subnet in quella regione. In questo esempio, il valore production-vm si trova in zona us-west1-a.

  1. Crea production-vm eseguendo questo comando.

    gcloud compute instances create production-vm \
        --zone=us-west1-a \
        --image-family=debian-12 \
        --image-project=debian-cloud \
        --tags=allow-ssh \
        --subnet=production-subnet \
        --private-network-ip 10.50.1.100 \
        --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'
    

Test del bilanciamento del carico in un deployment con più NIC

  1. Verifica l'integrità dei backend del bilanciatore del carico.

    gcloud compute backend-services get-health ilb1 --region us-west1
    
    gcloud compute backend-services get-health ilb2 --region us-west1
    
  2. Testa la connettività dalla VM testing.

    gcloud compute ssh testing-vm --zone=us-west1-a
    
    curl http://10.50.1.99
    
    exit
    
  3. Testa la connettività dalla VM production.

    gcloud compute ssh production-vm --zone=us-west1-a
    
    curl http://10.30.1.99
    
    exit
    

Attivazione dell'hashing simmetrico

Quando calcoli l'hash mappato all'istanza di backend, Google Cloud ignora la direzione di indirizzi IP e porte. Lo stato calcolato un valore hash coerente di un pacchetto TCP/UDP è lo stesso indipendentemente dalla direzione da cui ha origine il pacchetto. Questa procedura è chiamata hashing simmetrico.

Per abilitare questo comportamento di hashing sui bilanciatori del carico di rete passthrough interni esistenti, devi e ricreare la regola di forwarding e la route dell'hop successivo.

Per ulteriori informazioni, consulta la sezione Simmetrico di hashing.

Elimina e ricrea le regole di forwarding

Console

Elimina la regola di forwarding e creane una nuova

  1. Nella console Google Cloud, vai alla pagina Bilanciamento del carico.

    Vai a Bilanciamento del carico

  2. Fai clic sul bilanciatore del carico be-ilb e poi su Modifica.

  3. Fai clic su Configurazione frontend.

  4. Tieni il puntatore sopra la regola di forwarding e fai clic su Elimina per rimuoverlo.

  5. Fai clic su Aggiungi IP e porta frontend.

  6. Nella sezione Nuovi IP e porta frontend apporta le seguenti modifiche:

    1. Nome: FORWARDING_RULE_NAME
    2. Subnet: SUBNET_NAME
    3. In IP interno, seleziona IP_ADDRESS
    4. Porte: PORT_NUMBER o ALL.
    5. Fai clic su Fine.
    6. Verifica che sia presente un segno di spunta blu accanto a Frontend configurazione prima di continuare. In caso contrario, rivedi questo passaggio.
  7. Fai clic su Esamina e finalizza. Controlla le impostazioni.

  8. Fai clic su Crea.

gcloud

  1. Elimina le regole di forwarding esistenti.

    gcloud compute forwarding-rules delete FORWARDING_RULE_NAME \
        --region=REGION
    
  2. Crea regole di forwarding sostitutive con lo stesso nome.

    gcloud compute forwarding-rules create FORWARDING_RULE_NAME \
        --load-balancing-scheme=internal \
        --ports=PORT_NUMBER or `ALL` \
        --network=NETWORK_NAME \
        --subnet=SUBNET_NAME \
        --region=REGION \
        --backend-service=BACKEND_SERVICE_NAME \
        --address=IP_ADDRESS
    

Quando non è richiesta la SNAT

Come dimostrato nell'esempio precedente, Network Address Translation di origine (SNAT) non è necessaria se tutte le seguenti condizioni sono vere:

  • La regola di forwarding per il bilanciatore del carico di rete passthrough interno è stata creata a partire da giugno 22 2021.
  • La route statica personalizzata che fa riferimento alla regola di forwarding è stata creata il giorno o dopo il 22 giugno 2021.
  • Il servizio di backend del bilanciatore del carico di rete passthrough interno non utilizza la sessione NONE dell'impostazione di affinità.

Puoi convertire una route del bilanciatore del carico di rete passthrough interno dell'hop successivo esistente in modo che utilizzi simmetrico l'hashing nel seguente modo:

  • Assicurati che il servizio di backend del bilanciatore del carico di rete passthrough interno non utilizzi NONE impostazione affinità sessione

  • Crea una regola di forwarding sostitutiva che faccia riferimento allo stesso servizio di backend. La regola di forwarding sostitutiva utilizza un indirizzo IP diverso.

  • Crea una route statica personalizzata sostitutiva che faccia riferimento alla nuova regola di forwarding. Assicurati che questa route sostitutiva abbia una priorità più alta di quella esistente percorso.

  • Elimina la route esistente a priorità inferiore (facendo riferimento alla route precedente ) ed elimina la regola di forwarding precedente.

Esegui la pulizia

  1. Nella configurazione del bilanciatore del carico, rimuovi il backend di backend.

    gcloud compute backend-services remove-backend ilb1 \
        --instance-group=third-party-instance-group \
        --instance-group-region=us-west1 \
        --region=us-west1
    
    gcloud compute backend-services remove-backend ilb2 \
        --instance-group=third-party-instance-group \
        --instance-group-region=us-west1 \
        --region=us-west1
    
  2. Elimina le route.

    gcloud compute routes delete ilb-nhop-dest-10-50-1
    
    gcloud compute routes delete ilb-nhop-dest-10-30-1
    
  3. Nelle configurazioni del bilanciatore del carico, elimina le regole di forwarding.

    gcloud compute forwarding-rules delete fr-ilb1 \
        --region=us-west1
    
    gcloud compute forwarding-rules delete fr-ilb2 \
        --region=us-west1
    
  4. Nelle configurazioni del bilanciatore del carico, elimina i servizi di backend.

    gcloud compute backend-services delete ilb1 \
        --region=us-west1
    
    gcloud compute backend-services delete ilb2 \
        --region=us-west1
    
  5. Nelle configurazioni del bilanciatore del carico, elimina il controllo di integrità.

    gcloud compute health-checks delete hc-http-80 \
        --region=us-west1
    

    Se hai utilizzato la console Google Cloud, il controllo di integrità è globale. Pertanto, il comando è come segue:

    gcloud compute health-checks delete hc-http-80 \
         --global
    
  6. Elimina il gruppo di istanze gestite.

    gcloud compute instance-groups managed delete third-party-instance-group \
        --region=us-west1
    
  7. Elimina i modelli di istanza.

    gcloud compute instance-templates delete third-party-template
    
    gcloud compute instance-templates delete third-party-template-multinic
    
  8. Elimina le istanze di test e produzione.

    gcloud compute instances delete testing-vm \
        --zone=us-west1-a
    
    gcloud compute instances delete production-vm \
        --zone=us-west1-a
    

Passaggi successivi