Lab: NCC Site to Site con appliance flexiWAN SD-WAN

1. Introduzione

Panoramica

In questo lab esplorerai alcune delle funzionalità di Network Connectivity Center.

Network Connectivity Center (NCC) è un modello di piano di controllo hub e spoke per la gestione della connettività di rete in Google Cloud. La risorsa hub fornisce un modello centralizzato di gestione della connettività per connettere gli spoke. Al momento NCC supporta le seguenti risorse di rete come spoke:

  • Collegamenti VLAN
  • Appliance router
  • VPN ad alta disponibilità

I codelab richiedono l'utilizzo di una soluzione SD-WAN flexiWAN SaaS che semplifica l'implementazione e la gestione della rete WAN. flexWAN è una soluzione open source SD-WAN e SASE.

Cosa creerai

In questo codelab, creerai una topologia SD-WAN Hub e spoke per simulare filiali remote che attraverseranno la rete backbone di Google per la comunicazione site-to-cloud e site-to-site.

  1. Eseguirai il deployment di una coppia di VM GCE configurate per "flexiWAN" Agente SD-WAN nel VPC hub che rappresenta i headend per il traffico in entrata e in uscita verso Google Cloud.
  2. Esegui il deployment di due router flexiWAN SD-WAN remoti per rappresentare due diversi VPC di diramazioni
  3. Per i test del percorso dei dati, configurerai tre VM GCE per simulare client on-prem e server ospitati su Google Cloud

84e31c667a487f7a.png

Cosa imparerai a fare

  • Utilizzo di NCC per interconnettere filiali remote utilizzando una soluzione WAN software-defined open source
  • Esperienza pratica con una soluzione WAN open source software-defined

Che cosa ti serve

  • Conoscenza della rete VPC di Google Cloud
  • Conoscenza del router Cloud e del routing BGP
  • Il codelab richiede 6 VPC. Controlla Quota:reti e, se necessario, richiedi reti aggiuntive. Ecco lo screenshot di seguito:

6bc606cb34bce7e8.png

2. Obiettivi

  • Configura l'ambiente Google Cloud
  • Esegui il deployment delle istanze flexiWAN Edge in Google Cloud
  • Stabilisci un hub NCC e un NVA flexiWAN Edge come spoke
  • Configurare e gestire le istanze flexiWAN utilizzando fleximanage
  • Configura lo scambio di route BGP tra vpc-app-svcs e l'NVA flexiWAN
  • Creare un sito remoto simulando una filiale remota del cliente o un data center
  • Stabilire un tunnel IPSEC tra il sito remoto e l'ANP
  • Verifica che il deployment delle appliance sia andato a buon fine
  • Convalida il trasferimento di dati dal sito al cloud
  • Convalida il trasferimento di dati tra siti
  • Esegui la pulizia delle risorse utilizzate

Questo tutorial richiede la creazione di un account FlexiGestisci senza costi per autenticare, eseguire l'onboarding e gestire le istanze FlexiEdge.

Prima di iniziare

Utilizzo della console Google Cloud e di Cloud Shell

Per interagire con Google Cloud, utilizzeremo sia la console Google Cloud sia Cloud Shell durante questo lab.

Google Cloud Console

La console Cloud è disponibile all'indirizzo https://console.cloud.google.com.

Configura i seguenti elementi in Google Cloud per semplificare la configurazione di Network Connectivity Center:

Nella pagina del selettore dei progetti della console Google Cloud, seleziona o crea un progetto Google Cloud.

Avvia Cloud Shell. Questo codelab utilizza le variabili $per facilitare l'implementazione della configurazione di gcloud in Cloud Shell.

gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectname=[YOUR-PROJECT-NAME]
echo $projectname

Ruoli IAM

NCC richiede ruoli IAM per accedere ad API specifiche. Assicurati di configurare l'utente con i ruoli IAM NCC in base alle necessità.

Nome ruolo

Descrizione

Autorizzazioni

networkconnectivity.networkAdmin

Consente agli amministratori di rete di gestire hub e spoke.

networkconnectivity.hubs.networkconnectivity.spokes.

networkconnectivity.networkSpokeManager

Consente di aggiungere e gestire gli spoke in un hub. Da utilizzare nel VPC condiviso in cui il progetto host è proprietario dell'hub, ma gli altri amministratori di altri progetti possono aggiungere spoke per i loro collegamenti all'hub.

networkconnectivity.spokes.**

networkconnectivity.networkUsernetworkconnectivity.networkViewer

Consente agli utenti di rete di visualizzare diversi attributi di hub e spoke.

networkconnectivity.hubs.getnetworkconnectivity.hubs.listnetworkconnectivity.spokes.getnetworkconnectivity.spokes.listnetworkconnectivity.spokes.aggregatedList

3. configura l'ambiente del lab di rete

Panoramica

In questa sezione, eseguiremo il deployment delle reti VPC e delle regole firewall.

377d97bf3066f259.png

Simula le reti delle filiali on-prem

Questa rete VPC contiene subnet per istanze VM on-premise.

Crea le reti e le subnet del sito on-premise:

gcloud compute networks create site1-vpc \
--subnet-mode custom

gcloud compute networks create site2-vpc \
--subnet-mode custom

gcloud compute networks create s1-inside-vpc \
--subnet-mode custom

gcloud compute networks create s2-inside-vpc \
--subnet-mode custom

gcloud compute networks subnets create site1-subnet \
--network site1-vpc \
--range 10.10.0.0/24 \
--region us-central1

gcloud compute networks subnets create site2-subnet \
--network site2-vpc \
--range 10.20.0.0/24 \
--region us-east4

gcloud compute networks subnets create s1-inside-subnet \
--network s1-inside-vpc \
--range 10.10.1.0/24 \
--region us-central1

gcloud compute networks subnets create s2-inside-subnet \
--network s2-inside-vpc \
--range 10.20.1.0/24 \
--region us-east4

Crea regole firewall site1-vpc per consentire:

  • SSH, interno, IAP
  • ESP, UDP/500, UDP/4500
  • Intervallo 10.0.0.0/8
  • Intervallo 192.168.0.0/16
gcloud compute firewall-rules create site1-ssh \--network site1-vpc \
--allow tcp:22

gcloud compute firewall-rules create site1-internal \
--network site1-vpc \
--allow all \
--source-ranges 10.0.0.0/8

gcloud compute firewall-rules create site1-cloud \
--network site1-vpc \
--allow all \
--source-ranges 192.168.0.0/16

gcloud compute firewall-rules create site1-vpn \
--network site1-vpc \
--allow esp,udp:500,udp:4500 \
--target-tags router

gcloud compute firewall-rules create site1-iap \
--network site1-vpc --allow tcp:22 --source-ranges=35.235.240.0/20

Crea regole firewall site2-vpc per consentire:

  • SSH, interno, IAP
  • Intervallo 10.0.0.0/8
  • Intervallo 192.168.0.0/16
gcloud compute firewall-rules create site2-ssh \
--network site2-vpc \
--allow tcp:22

gcloud compute firewall-rules create site2-internal \
--network site2-vpc \
--allow all \
--source-ranges 10.0.0.0/8

gcloud compute firewall-rules create site2-cloud \
--network site1-vpc \
--allow all \
--source-ranges 192.168.0.0/16

gcloud compute firewall-rules create site2-vpn \
--network site1-vpc \
--allow esp,udp:500,udp:4500 \
--target-tags router

gcloud compute firewall-rules create site2-iap \
--network site2-vpc --allow tcp:22 --source-ranges=35.235.240.0/20

Crea regole firewall s1-inside-vpc per consentire:

  • SSH, interno, IAP
  • Intervallo 10.0.0.0/8
  • Intervallo 192.168.0.0/16
gcloud compute firewall-rules create s1-inside-ssh \
--network s1-inside-vpc \
--allow tcp:22

gcloud compute firewall-rules create s1-inside-internal \
--network s1-inside-vpc \
--allow all \
--source-ranges 10.0.0.0/8

gcloud compute firewall-rules create s1-inside-cloud \
--network s1-inside-vpc  \
--allow all \
--source-ranges 192.168.0.0/16

gcloud compute firewall-rules create s1-inside-iap \
--network site2-vpc --allow tcp:22 --source-ranges=35.235.240.0/20

Crea regole firewall s2-inside-vpc per consentire:

  • SSH, interno, IAP
  • Intervallo 10.0.0.0/8
  • Intervallo 192.168.0.0/16
gcloud compute firewall-rules create s2-inside-ssh \
--network s2-inside-vpc \
--allow tcp:22

gcloud compute firewall-rules create s2-inside-internal \
--network s2-inside-vpc \
--allow all \
--source-ranges 10.0.0.0/8

gcloud compute firewall-rules create s2-inside-cloud \
--network s2-inside-vpc  \
--allow all \
--source-ranges 192.168.0.0/16

gcloud compute firewall-rules create s2-inside-iap \
--network site2-vpc --allow tcp:22 --source-ranges=35.235.240.0/20

A scopo di test, crea le istanze s1-inside-vm e s2-inside-vm

gcloud compute instances create s1-vm \
--zone=us-central1-a \
--machine-type=e2-micro \
--network-interface subnet=s1-inside-subnet,private-network-ip=10.10.1.3,no-address

gcloud compute instances create s2-vm \
--zone=us-east4-b \
--machine-type=e2-micro \
--network-interface subnet=s2-inside-subnet,private-network-ip=10.20.1.3,no-address

Simula l'ambiente di rete cloud di Google Cloud

Per attivare il traffico tra regioni site-to-site attraverso la rete hub-vpc e gli spoke, devi attivare il routing globale nella rete hub-vpc. Leggi ulteriori informazioni sullo scambio di route NCC.

  1. Crea la rete e le subnet hub-vpc:
gcloud compute networks create hub-vpc \
--subnet-mode custom \
--bgp-routing-mode=global

gcloud compute networks subnets create hub-subnet1 \
--network hub-vpc \
--range 10.1.0.0/24 \
--region us-central1

gcloud compute networks subnets create hub-subnet2 \
--network hub-vpc \
--range 10.2.0.0/24 \
--region us-east4
  1. Crea la rete e le subnet workload-vpc:
gcloud compute networks create workload-vpc \
--subnet-mode custom \
--bgp-routing-mode=global

gcloud compute networks subnets create workload-subnet1 \
--network workload-vpc \
--range 192.168.235.0/24 \
--region us-central1

gcloud compute networks subnets create workload-subnet2 \
--network workload-vpc \
--range 192.168.236.0/24 \
--region us-east4
  1. Crea regole firewall Hub-VPC per consentire:
  • SSH
  • ESP, UDP/500, UDP/4500
  • intervallo 10.0.0.0/8 interno (che copre la porta TCP 179 richiesta per la sessione BGP dal router Cloud all'appliance router)
gcloud compute firewall-rules create hub-ssh \
--network hub-vpc \
--allow tcp:22

gcloud compute firewall-rules create hub-vpn \
--network hub-vpc \
--allow esp,udp:500,udp:4500 \
--target-tags router

gcloud compute firewall-rules create hub-internal \
--network hub-vpc \
--allow all \
--source-ranges 192.168.0.0/16

gcloud compute firewall-rules create hub-iap \
--network hub-vpc --allow tcp:22 --source-ranges=35.235.240.0/20
  1. Crea regole firewall per il carico di lavoro-VPC per consentire:
  • SSH
  • intervallo 192.168.0.0/16 interno (che copre la porta TCP 179 richiesta per la sessione BGP dal router Cloud all'appliance router)
gcloud compute firewall-rules create workload-ssh \
--network workload-vpc \
--allow tcp:22

gcloud compute firewall-rules create workload-internal \
--network workload-vpc \
--allow all \
--source-ranges 192.168.0.0/16

gcloud compute --project=$projectname firewall-rules create allow-from-site-1-2 --direction=INGRESS --priority=1000 --network=workload-vpc --action=ALLOW --rules=all --source-ranges=10.10.1.0/24,10.20.1.0/24

gcloud compute firewall-rules create workload-onprem \
--network hub-vpc \
--allow all \
--source-ranges 10.0.0.0/8

gcloud compute firewall-rules create workload-iap \
--network workload-vpc --allow tcp:22 --source-ranges=35.235.240.0/20
  1. Abilita Cloud NAT in Workload-VPC per consentire a workload1-vm di scaricare i pacchetti creando un router Cloud e un gateway NAT
gcloud compute routers create cloud-router-usc-central-1-nat \
    --network workload-vpc \
    --region us-central1
gcloud compute routers nats create cloudnat-us-central1 \
    --router=cloud-router-usc-central-1-nat \
    --auto-allocate-nat-external-ips \
    --nat-all-subnet-ip-ranges \
    --region us-central1
  1. Crea la workload1-vm in "us-central1-a" in workload-VPC, che utilizzerai per verificare la connettività del sito al cloud.
gcloud compute instances create workload1-vm \
    --project=$projectname \
    --machine-type=e2-micro \
    --image-family debian-10 \
    --image-project debian-cloud \
    --zone us-central1-a \
    --private-network-ip 192.168.235.3 \
        --no-address \
    --subnet=workload-subnet1 \
    --metadata startup-script="#! /bin/bash
      sudo apt-get update
      sudo apt-get install apache2 -y
      sudo service apache2 restart
      echo 'Welcome to Workload VM1 !!' | tee /var/www/html/index.html
      EOF"

4. Configurazione su appliance prem per SD-WAN

ec754b89e375f3cc.png

Crea la VM on-prem per SDWAN (appliance)

Nella sezione che segue, creeremo le appliance router site1-nva e site2-nva che fungono da router on-premise.

Creazione istanze

Crea l'appliance site1-router denominata site1-nva

gcloud compute instances create site1-nva \
--zone=us-central1-a \
--machine-type=e2-medium \
--network-interface subnet=site1-subnet \
--network-interface subnet=s1-inside-subnet,no-address \
--create-disk=auto-delete=yes,boot=yes,device-name=flex-gcp-nva-1,image=projects/ubuntu-os-cloud/global/images/ubuntu-1804-bionic-v20220901,mode=rw,size=20,type=projects/$projectname/zones/us-central1-a/diskTypes/pd-balanced \
--no-shielded-secure-boot \
--shielded-vtpm \
--shielded-integrity-monitoring \
--reservation-affinity=any \
--can-ip-forward

Crea l'appliance site2-router denominata site2-nva

gcloud compute instances create site2-nva \
--zone=us-east4-b \
--machine-type=e2-medium \
--network-interface subnet=site2-subnet \
--network-interface subnet=s2-inside-subnet,no-address \
--create-disk=auto-delete=yes,boot=yes,device-name=flex-gcp-nva-1,image=projects/ubuntu-os-cloud/global/images/ubuntu-1804-bionic-v20220901,mode=rw,size=20,type=projects/$projectname/zones/us-east4-a/diskTypes/pd-balanced \
--no-shielded-secure-boot \
--shielded-vtpm \
--shielded-integrity-monitoring \
--reservation-affinity=any \
--can-ip-forward 

5. Installa flexiWAN su site1-nva

Apri una connessione SSH a site1-nva. In caso di timeout, riprova

gcloud compute ssh site1-nva --zone=us-central1-a

Installa flexiWAN su site1-nva

sudo su 

sudo curl -sL https://deb.flexiwan.com/setup | sudo bash -
apt install flexiwan-router -y

Prepara la VM per la registrazione del piano di controllo flexiWAN.

Al termine dell'installazione di flexiWAN, esegui il comando fwsystem_checker per verificare la configurazione del sistema. Questo comando verifica i requisiti di sistema e consente di correggere gli errori di configurazione nel sistema.

  • Seleziona l'opzione 2 per una configurazione rapida e silenziosa
  • escono dopo con 0.
  • Non chiudere la finestra di Cloud Shell.
root@site-1-nva-1:/home/user# fwsystem_checker
 
<output snipped>

        [0] - quit and use fixed parameters
         1  - check system configuration
         2  - configure system silently
         3  - configure system interactively
         4  - restore system checker settings to default
        ------------------------------------------------
Choose: 2

<output snipped>

        [0] - quit and use fixed parameters
         1  - check system configuration
         2  - configure system silently
         3  - configure system interactively
         4  - restore system checker settings to default
        ------------------------------------------------
Choose: 0
Please wait..
Done.
=== system checker ended ====

Lascia aperta la sessione per i seguenti passaggi

6. Registra site1-nva con controller SD-WAN

Questi passaggi sono necessari per completare il provisioning dell'NVA flexiWAN che viene amministrato dalla console FlexiGestisci. Prima di procedere, assicurati che l'organizzazione flexiWAN sia configurata.

Autentica l'NVA flexiWAN appena distribuito con flexiGestisci utilizzando un token di sicurezza accedendo all'account fleximanage. Lo stesso token può essere riutilizzato in tutte le appliance router.

Seleziona Inventario → Token,crea un token e seleziona copia

12c173b589d220ee.png

Torna a Cloud Shell (site1-nva) e incolla il token nella directory /etc/flexiwan/agent/token.txt eseguendo queste operazioni:

nano /etc/flexiwan/agent/token.txt
#Paste the generated token obtain from flexiManage
#Exit session with CTRL+X and Select Y to save then enter

22e1cf5bad3d3086.png

Attiva i router del sito sulla console fleximanage

Accedi alla console flexiGestisci per attivare site1-nva sul controller

Nel riquadro di sinistra, Seleziona Inventario → Dispositivi, fai clic sul dispositivo "Sconosciuto"

f7719c28f78e907a.png

Inserisci il nome host di site1-nva e approva il dispositivo facendo scorrere il cursore verso destra.

9a6c6c45e1cad732.png

Seleziona la scheda "Interfacce".

Trova lo stato "Assegnato". Colonna e fai clic su "No" e cambia l'impostazione in "".

a8772059968af13e.png

Seleziona la scheda Firewall e fai clic sul segno "+" per aggiungere una regola di firewall in entrata.

Seleziona l'interfaccia WAN per applicare la regola SSH come descritto di seguito

df03b8a6c817ccd2.png

Fai clic su "Aggiorna dispositivo"

96b9feb77b8517cd.png

Avvia site1-nva dal controller flexiWAN. Torna a Inventario → Dispositivi → site1-nva e seleziona "Avvia dispositivo"

708215cf91ffc09.png

Stato - Sincronizzazione

918d72eeacc386fa.png

Stato - Sincronizzato

5135096dbff49819.png

L'indicatore di avviso è visibile in Risoluzione dei problemi → Notifiche. Dopo averli visualizzati, selezionali tutti e poi contrassegnali come letti

9e79db3572f91925.png

7. Installa flexiWAN su site2-nva

Apri una nuova scheda e crea una sessione Cloud Shell, aggiorna $variables per facilitare l'implementazione della configurazione di gcloud

gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectname=[YOUR-PROJECT-NAME]
echo $projectname

Apri una connessione SSH a site2-nva. In caso di timeout, riprova

gcloud compute ssh site2-nva --zone=us-east4-b

Installa flexiWAN su site2-nva

sudo su 

sudo curl -sL https://deb.flexiwan.com/setup | sudo bash -
apt install flexiwan-router -y

Prepara la VM per la registrazione del piano di controllo flexiWAN.

Al termine dell'installazione di flexiWAN, esegui il comando fwsystem_checker per verificare la configurazione del sistema. Questo comando verifica i requisiti di sistema e consente di correggere gli errori di configurazione nel sistema.

  • Seleziona l'opzione 2 per una configurazione rapida e silenziosa
  • escono dopo con 0.
  • Non chiudere la finestra di Cloud Shell.
root@site2-nva:/home/user# fwsystem_checker
 
<output snipped>

        [0] - quit and use fixed parameters
         1  - check system configuration
         2  - configure system silently
         3  - configure system interactively
         4  - restore system checker settings to default
        ------------------------------------------------
Choose: 2

<output snipped>

        [0] - quit and use fixed parameters
         1  - check system configuration
         2  - configure system silently
         3  - configure system interactively
         4  - restore system checker settings to default
        ------------------------------------------------
Choose: 0
Please wait..
Done.
=== system checker ended ====

8. Registra site2-nva con controller SD-WAN

Questi passaggi sono necessari per completare il provisioning dell'NVA flexiWAN che viene amministrato dalla console FlexiGestisci. Prima di procedere, assicurati che l'organizzazione flexiWAN sia configurata.

Autentica l'NVA flexiWAN di cui è stato eseguito il deployment con fleximanage utilizzando un token di sicurezza accedendo all'account fleximanage. Lo stesso token può essere riutilizzato in tutte le appliance router.

Seleziona Inventario → Token, crea un token e seleziona copia

12c173b589d220ee.png

Torna a Cloud Shell (site2-nva) e incolla il token nella directory /etc/flexiwan/agent/token.txt eseguendo queste operazioni:

nano /etc/flexiwan/agent/token.txt
#Paste the generated token obtain from flexiManage
#Exit session with CTRL+X and Select Y to save then enter

22e1cf5bad3d3086.png

Attivare i router di siti dalla console fleximanage

Accedi alla console flexiGestisci per attivare site2-nva sul controller

Nel riquadro di sinistra, Seleziona Inventario → Dispositivi, fai clic sul dispositivo "Sconosciuto"

c98696cf67043ec2.png

Inserisci il nome host di site2-nva e approva il dispositivo facendo scorrere il cursore verso destra.

de418da3f581e0bd.png

Seleziona la scheda "Interfacce".

Trova lo stato "Assegnato". Colonna e fai clic su "No" e cambia l'impostazione in "".

eee6a98dba7b2a04.png

Seleziona la scheda Firewall e fai clic sul segno "+" per aggiungere una regola firewall in entrata. Seleziona l'interfaccia WAN per applicare la regola SSH come descritto di seguito

df03b8a6c817ccd2.png

Fai clic su "Aggiorna dispositivo"

96b9feb77b8517cd.png

Avvia site2-nva dal controller flexiWAN. Torna a Inventario → Dispositivi → site2-nva e seleziona "Avvia dispositivo"

c80291bb430dce7d.png

Satus - Sincronizzazione

da9c08ebfbd1265e.png

Stato - Sincronizzato

5135096dbff49819.png

L'indicatore di avviso è visibile in Risoluzione dei problemi → Notifiche. Dopo averli visualizzati, selezionali tutti e poi contrassegnali come letti

2c21322b87d848b.png

9. Configura le appliance SDWAN dell'hub

Nella sezione seguente creerai e registrerai i router Hub (hub-r1 e hub-r2) con il controller flexiWAN, come precedentemente eseguiti con le route dei siti.

Apri una nuova scheda e crea una sessione Cloud Shell, aggiorna $variables per facilitare l'implementazione della configurazione di gcloud

gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectname=[YOUR-PROJECT-NAME]
echo $projectname

Crea istanze Hub NVA

Crea l'appliance hub-r1:

gcloud compute instances create hub-r1 \
--zone=us-central1-a \
--machine-type=e2-medium \
--network-interface subnet=hub-subnet1 \
--network-interface subnet=workload-subnet1,no-address \
--can-ip-forward \
--create-disk=auto-delete=yes,boot=yes,device-name=flex-gcp-nva-1,image=projects/ubuntu-os-cloud/global/images/ubuntu-1804-bionic-v20220901,mode=rw,size=20,type=projects/$projectname/zones/us-central1-a/diskTypes/pd-balanced \
--no-shielded-secure-boot \
--shielded-vtpm \
--shielded-integrity-monitoring \
--reservation-affinity=any

Crea l'appliance hub-r2:

gcloud compute instances create hub-r2 \
--zone=us-east4-b \
--machine-type=e2-medium \
--network-interface subnet=hub-subnet2 \
--network-interface subnet=workload-subnet2,no-address \
--can-ip-forward \
--create-disk=auto-delete=yes,boot=yes,device-name=flex-gcp-nva-1,image=projects/ubuntu-os-cloud/global/images/ubuntu-1804-bionic-v20220901,mode=rw,size=20,type=projects/$projectname/zones/us-east4-a/diskTypes/pd-balanced \
--no-shielded-secure-boot \
--shielded-vtpm \
--shielded-integrity-monitoring \
--reservation-affinity=any

10. Installa flexiWAN sulle istanze Hub per hub-r1

Apri una connessione SSH a hub-r1

gcloud compute ssh hub-r1 --zone=us-central1-a

Installa l'agente flexiWAN su entrambi hub-r1

sudo su
sudo curl -sL https://deb.flexiwan.com/setup | sudo bash -
apt install flexiwan-router -y

Prepara le VM hub-r1 per la registrazione flexiWAN.

Al termine dell'installazione di flexiWAN, esegui il comando fwsystem_checker per verificare la configurazione del sistema. Questo comando verifica i requisiti di sistema e consente di correggere gli errori di configurazione nel sistema.

root@hub-r1:/home/user# fwsystem_checker
  • Seleziona l'opzione 2 per una configurazione rapida e silenziosa
  • escono dopo con 0.
  • Non chiudere la finestra di Cloud Shell.

11. Registra le VM hub-r1 sul controller fleximanage

Autentica l'NVA flexiWAN appena distribuito con flexiGestisci utilizzando un token di sicurezza accedendo all'account fleximanage.

  • Seleziona Inventario → Token e copia il token

Torna a Cloud Shell (hub-r1) e incolla il token nella directory /etc/flexiwan/agent/token.txt eseguendo questa procedura:

nano /etc/flexiwan/agent/token.txt
#Paste the generated token obtain from flexiManage
#Exit session with CTRL+X and Select Y to save then enter

12. Installare flexiWAN sulle istanze Hub per hub-r2

Apri una connessione SSH a hub-r2

gcloud compute ssh hub-r2 --zone=us-east4-b

Installa l'agente flexiWAN su entrambi hub-r2

sudo su
sudo curl -sL https://deb.flexiwan.com/setup | sudo bash -
apt install flexiwan-router -y

Prepara le VM hub-r2 per la registrazione flexiWAN.

Al termine dell'installazione di flexiWAN, esegui il comando fwsystem_checker per verificare la configurazione del sistema. Questo comando verifica i requisiti di sistema e consente di correggere gli errori di configurazione nel sistema.

root@hub-r2:/home/user# fwsystem_checker
  • Seleziona l'opzione 2 per una configurazione rapida e silenziosa
  • escono dopo con 0.
  • Non chiudere la finestra di Cloud Shell.

13. Registra le VM hub-r2 sul controller fleximanage

Autentica l'NVA flexiWAN di cui è stato eseguito il deployment con fleximanage utilizzando un token di sicurezza accedendo all'account fleximanage.

  • Seleziona Inventario → Token e copia il token

Torna a Cloud Shell (hub-r2) e incolla il token nella directory /etc/flexiwan/agent/token.txt eseguendo questa procedura:

nano /etc/flexiwan/agent/token.txt
#Paste the generated token obtain from flexiManage
#Exit session with CTRL+X and Select Y to save then enter

Attiva i router Hub hub-r1 sulla console fleximanage

Accedi alla console fleximanage

  • Vai a Inventario → Dispositivi.
  • Trova e annota il nome host per hub-r1 e hub-r2 sono entrambi "sconosciuto"

1a88ffa4409ad3c0.png

Selezionare il dispositivo sconosciuto con Nome Host hub-r1.

  • Inserisci il nome host di hub-r1.
  • Approva il dispositivo e fai scorrere l'anello verso destra.

Seleziona la scheda Interfacce.

  • Trova la colonna "Assegnata".
  • Accanto alla riga dell'interfaccia, fai clic su "No" per modificare l'impostazione in "Sì".

Seleziona la scheda Firewall.

  • Fai clic su "+" per aggiungere una regola firewall in entrata
  • Seleziona l'interfaccia WAN per ereditare la regola
  • Consenti la porta SSH 22 con protocollo TCP
  • Fai clic su "Aggiorna dispositivo"

Avvia l'appliance hub-r1 per SD-WAN dal controller di flexiWAN

  • Torna a Inventario → Dispositivi → hub-r1

Seleziona "Avvia dispositivo"

  • Attendi il completamento della sincronizzazione e prendi nota del messaggio "In esecuzione" stato

Attiva i router Hub hub-r2 sulla console fleximanage

Seleziona il dispositivo sconosciuto con il valore HostName hub-r2.

  • Inserisci il nome host di hub-r2.
  • Approfondisci il dispositivo, quindi fai scorrere l'anello verso destra.

Seleziona la scheda Interfacce

  • Trova la colonna "Assegnata".
  • Accanto alla riga dell'interfaccia, fai clic su "No" per modificare l'impostazione in "Sì".

Seleziona la scheda Firewall.

  • Fai clic su "+" per aggiungere una regola firewall in entrata
  • Seleziona l'interfaccia WAN per ereditare la regola
  • Consenti la porta SSH 22 con protocollo TCP
  • Fai clic su Aggiungi regola.
  • Fai clic su "Aggiorna dispositivo"

Avvia l'appliance hub-r2 per SD-WAN dal controller di flexiWAN

  • Torna a Inventario → Dispositivi → hub-r2, quindi seleziona "Avvia dispositivo"
  • Attendi il completamento della sincronizzazione e prendi nota del messaggio "In esecuzione" stato

14. Network Connectivity Center nell'hub di Google Cloud

802fe0ef1e98c563.png

Abilita servizi API

Abilita l'API Network Computing nel caso in cui non sia ancora abilitata:

gcloud services enable networkconnectivity.googleapis.com

Crea l'hub NCC

gcloud network-connectivity hubs create ncc-hub
Create request issued for: [ncc-hub]
Waiting for operation [projects/user-3p-dev/locations/global/operations/operation-1668793629598-5edc24b7ee3ce-dd4c765b-5ca79556] to complete...done.     
Created hub [ncc-hub]

Configura entrambe le appliance router come spoke NCC

Trova l'URI e l'indirizzo IP sia per hub-r1 che per hub-r2 e prendi nota dell'output. Ti serviranno nel passaggio successivo.

Prendi nota dell'indirizzo IP (192.168.x.x) dell'istanza hub-r1 e hub-r2.

gcloud compute instances describe hub-r1 \
--zone=us-central1-a \
--format="value(selfLink.scope(projects))"

gcloud compute instances describe hub-r1 --zone=us-central1-a | grep "networkIP"
gcloud compute instances describe hub-r2 \
--zone=us-east4-b \
--format="value(selfLink.scope(projects))"

gcloud compute instances describe hub-r2 --zone=us-east4-b | grep "networkIP"

Aggiungi la vnic di hub-r1 networkIP (192.168.x.x) come spoke e attiva il trasferimento di dati tra siti

gcloud network-connectivity spokes linked-router-appliances create s2s-wrk-cr1 \
--hub=ncc-hub \
--router-appliance=instance="https://www.googleapis.com/compute/projects/$projectname/zones/us-central1-a/instances/hub-r1",ip=192.168.235.4 \
--region=us-central1 \
--site-to-site-data-transfer

Aggiungi la vnic di hub-r2 networkIP (192.168.x.x) come spoke e attiva il trasferimento di dati tra siti

gcloud network-connectivity spokes linked-router-appliances create s2s-wrk-cr2 \
--hub=ncc-hub \
--router-appliance=instance=/projects/$projectname/zones/us-east4-b/instances/hub-r2,ip=192.168.236.101 \
--region=us-east4 \
--site-to-site-data-transfer

Configura il router Cloud per stabilire BGP con Hub-R1

Nel passaggio seguente, crea il router Cloud e annuncia la subnet VPC del carico di lavoro 192.168.235.0/24

Crea il router Cloud in us-central1 che comunicherà con BGP con hub-r1

gcloud compute routers create wrk-cr1 \
--region=us-central1 \
--network=workload-vpc \
--asn=65002 \
--set-advertisement-groups=all_subnets \
--advertisement-mode=custom

Configurando le appliance router come Spoke NCC, il router Cloud può negoziare BGP sulle interfacce virtuali.

Crea due interfacce sul router Cloud che scambieranno i messaggi BGP con hub-r1.

Gli indirizzi IP vengono selezionati dalla subnet dei carichi di lavoro e, se necessario, possono essere modificati.

gcloud compute routers add-interface wrk-cr1 \
--region=us-central1 \
--subnetwork=workload-subnet1 \
--interface-name=int0 \
--ip-address=192.168.235.101 

gcloud compute routers add-interface wrk-cr1 \
--region=us-central1 \
--subnetwork=workload-subnet1 \
--interface-name=int1 \
--ip-address=192.168.235.102 \
--redundant-interface=int0

Configura l'interfaccia del router Cloud per stabilire il BGP con vNIC-1 di hub-r1, aggiorna l'indirizzo IP peer con l'indirizzo IP di hub-r1 networkIP . Tieni presente che per int0 e int0 viene usato lo stesso indirizzo IP. int1.

gcloud compute routers add-bgp-peer wrk-cr1 \
    --peer-name=hub-cr1-bgp-peer-0 \
    --interface=int0 \
    --peer-ip-address=192.168.235.4 \
    --peer-asn=64111 \
    --instance=hub-r1 \
    --instance-zone=us-central1-a \
    --region=us-central1

gcloud compute routers add-bgp-peer wrk-cr1 \
    --peer-name=hub-cr1-bgp-peer-1 \
    --interface=int1 \
    --peer-ip-address=192.168.235.4 \
    --peer-asn=64111 \
    --instance=hub-r1 \
    --instance-zone=us-central1-a \
    --region=us-central1

Verifica lo stato BGP. In questo momento del lab del codice, BGP è "stato di connessione" poiché l'appliance router di rete non è stata configurata per BGP.

gcloud compute routers get-status wrk-cr1 --region=us-central1

Configura Workload-cr2 per stabilire una sessione BGP con Hub-R2

Nel passaggio seguente, crea il router Cloud e annuncia la subnet VPC del carico di lavoro 192.168.236.0/24

Crea il router Cloud in us-east4 che comunicherà con BGP con hub-r2

gcloud compute routers create wrk-cr2 \
--region=us-east4 \
--network=workload-vpc \
--asn=65002 \
--set-advertisement-groups=all_subnets \
--advertisement-mode=custom

Crea una coppia di interfacce sul router Cloud che scambieranno i messaggi BGP con hub-r2, gli indirizzi IP vengono selezionati dalla subnet del carico di lavoro e e, se necessario, possono essere modificati.

gcloud compute routers add-interface wrk-cr2 \
--region=us-east4 \
--subnetwork=workload-subnet2 \
--interface-name=int0 \
--ip-address=192.168.236.5 


gcloud compute routers add-interface wrk-cr2 \
--region=us-east4 \
--subnetwork=workload-subnet2 \
--interface-name=int1 \
--ip-address=192.168.236.6 \
--redundant-interface=int0

Configura l'interfaccia del router Cloud per stabilire il BGP con vNIC-1 di hub-r2, aggiorna l'indirizzo IP peer con l'indirizzo IP di hub-r1 networkIP . Tieni presente che per int0 e int0 viene usato lo stesso indirizzo IP. int1.

gcloud compute routers add-bgp-peer wrk-cr2 \
    --peer-name=hub-cr2-bgp-peer-0 \
    --interface=int0 \
    --peer-ip-address=192.168.236.101 \
    --peer-asn=64112 \
    --instance=hub-r2 \
    --instance-zone=us-east4-b \
    --region=us-east4

gcloud compute routers add-bgp-peer wrk-cr2 \
    --peer-name=hub-cr2-bgp-peer-1 \
    --interface=int1 \
    --peer-ip-address=192.168.236.101 \
    --peer-asn=64112 \
    --instance=hub-r2 \
    --instance-zone=us-east4-b \
    --region=us-east4

Verifica lo stato BGP. In questo momento del lab del codice, BGP è "stato di connessione" poiché l'appliance router di rete non è stata configurata per BGP.

gcloud compute routers get-status wrk-cr2 --region=us-east4

15. Configura le appliance router Hub per BGP

Configura hub-r1 per BGP

Accertati di accedere alla console fleximanage

Vai a InventarioDispositivihub-r1 e seleziona il dispositivo con HostName:hub-r1.

  • Fai clic sulla scheda "Routing".
  • Fai clic su "Configurazione BGP".
  • Disattiva "Ridistribuisci route OSPF".
  • Configura hub-r1 per BGP con questi parametri e fai clic su "Salva"

8d470056f620717f.png

Seleziona "Interfacce" individua l'interfaccia LAN, individua la colonna "Routing"

  • Fai clic su "nessuno". per aprire il menu per selezionare BGP come protocollo di routing

82310aab05e9e414.png

  • Nella parte superiore della pagina, fai clic su "Aggiorna dispositivo".

Configura hub-r2 per BGP

Accertati di accedere alla console fleximanage

Vai a Inventario → Dispositivihub-r2,quindi seleziona il dispositivo con NomeHost:hub-r2.

  • Fai clic sulla scheda "Routing".
  • Fai clic su "Configurazione BGP".
  • Disattiva "Ridistribuisci route OSPF".
  • Configura hub-r2 per BGP con questi parametri e fai clic su "Salva"

8ecb14e2c046012e.png

Seleziona "Interfacce" individua l'interfaccia LAN, individua la colonna "Routing"

  • Fai clic su "Nessuno" per aprire un menu a discesa per selezionare BGP come protocollo di routing

41a381f81f2b500e.png

  • Nella parte superiore della pagina, fai clic su "Aggiorna dispositivo".

Seleziona "routing". tabulazione

  • Conferma che hub-r2 abbia appreso una route BGP da wrk-cr2

ddf3e811b193ec10.png

16. Scambio di route BGP tra le appliance router

Stabilisci un ASN locale per i siti remoti

Configurare un ASN BGP locale per site1-nva e site2-nva. Una volta configurato, stabiliremo quindi un tunnel IPSEC tra i siti remoti e i router hub.

Seleziona il dispositivo con HostName:site1-nva.

  • Fai clic sulla scheda "Routing".
  • Fai clic su "Configurazione BGP".
  • Disattiva "Ridistribuisci route OSPF".
  • BGP abilitato
  • ASN locale 7269 → Salva
  • Aggiorna dispositivo
  • Scheda Interfacce → LAN → Routing → BGP
  • Aggiorna dispositivo

Seleziona il dispositivo con HostName:site2-nva.

  • Fai clic sulla scheda "Routing".
  • Fai clic su "Configurazione BGP".
  • Disattiva "Ridistribuisci route OSPF".
  • BGP abilitato
  • ASN locale 7270 → Salva
  • Aggiorna dispositivo
  • Scheda Interfacce → LAN → Routing → BGP
  • Aggiorna dispositivo

Configura i tunnel VPN tra le appliance del sito e Hub

Accertati di accedere alla console fleximanage

  • Vai a Inventario → Dispositivi.
  • Seleziona la casella accanto al nome host di site1-nva e hub-r1 per creare un tunnel VPN tra questa coppia di NAV
  • Fai clic su Azioni→ Crea tunnel e configura quanto segue

d870b4049a0e7fcf.png

c50d794442c0bdd0.png

  • Seleziona Crea tunnel
  • Rimuovi i segni di spunta da site1-nva e ub-r1

Ripeti i passaggi per creare un tunnel tra site2-nva e hub-r2 selezionando i parametri appropriati

37c86e17b74e98ca.png

Verifica che sia impostata la coppia di tunnel tra ogni coppia di VMA.

  • Nel riquadro laterale a sinistra, seleziona "Inventario". e fai clic su "Tunnel" e individua la colonna dello stato

a31e7a73aff53b66.png

Verifica che "site1-nva" apprese alle subnet 192.168.235.0/24 e 192.168.236.0/24

  • Seleziona Inventario → Dispositivi → site1-nva e fai clic sulla scheda "Routing"

Nell'output di esempio riportato di seguito, flexiWAN ha creato automaticamente il tunnel utilizzando l'indirizzo IP dell'host 10.100.0.6 cef8dee200ac600a.png

17. Verifica la connettività del percorso dati

Verifica la connettività dal sito al cloud da on-prem

Fai riferimento al diagramma Verifica che il percorso dei dati tra s1-vm e workload1-vm

2a403992934279b3.png

Configura route statiche VPC per sito a Cloud

Site1-VPC e Site2-VPC in loco simulano una rete di data center on-premise.

Entrambe le appliance Site-1-nva e site-2-nva utilizzano la connettività VPN per raggiungere la rete hub.

Per il caso d'uso dal sito al cloud**,** crea route statiche verso la destinazione 192.168.0.0/16 utilizzando l'appliance router come hop successivo per raggiungere le reti nella rete cloud Google Cloud.

Su s1-inside-vpc,crea una route statica per la destinazione cloud (192.168.0.0/16):

gcloud compute routes create site1-subnet-route  \
--network=s1-inside-vpc \
--destination-range=192.168.0.0/16  \
--next-hop-instance=site1-nva \
--next-hop-instance-zone=us-central1-a

Su s2-inside-vpc,crea una route statica per la destinazione cloud (192.168.0.0/16):

gcloud compute routes create site2-subnet-route  \
--network=s2-inside-vpc \
--destination-range=192.168.0.0/16  \
--next-hop-instance=site2-nva \
--next-hop-instance-zone=us-east4-b

Su cloudshell, cerca l'indirizzo IP di "workload1-vm". Ti servirà per verificare la connettività da "s1-vm".

gcloud compute instances describe workload1-vm --zone=us-central1-a | grep "networkIP"

Apri una connessione SSH a s1-vm. In caso di timeout, riprova

gcloud compute ssh s1-vm --zone=us-central1-a

Accedi tramite SSH a "s1-vm" e utilizza il comando "curl" per stabilire una sessione TCP per l'indirizzo IP di Workload1-VM.

s1-vm:~$ curl 192.168.235.3 -vv
*   Trying 192.168.235.3:80...
* Connected to 192.168.235.3 (192.168.235.3) port 80 (#0)
> GET / HTTP/1.1
> Host: 192.168.235.3
> User-Agent: curl/7.74.0
> Accept: */*
> 
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
< Date: Wed, 07 Dec 2022 15:12:08 GMT
< Server: Apache/2.4.54 (Debian)
< Last-Modified: Tue, 06 Dec 2022 00:57:46 GMT
< ETag: "1f-5ef1e4acfa1d9"
< Accept-Ranges: bytes
< Content-Length: 31
< Content-Type: text/html
< 
Page served from: workload1-vm
* Connection #0 to host 192.168.235.3 left intact

Verifica la connettività tra sito

Fai riferimento al diagramma e verifica che il percorso dei dati tra s1-vm e s2-vm

1a7ec558ab1ecd37.png

Configura route statiche VPC per sito a sito

Per instradare il traffico site-to-site tra il sito 1 e il sito 2 utilizzando la rete globale di Google Cloud, creerai route statiche verso destinazioni di subnet del sito remoto utilizzando l'appliance router on-prem come hop successivo.

In un passaggio successivo, il VPC del carico di lavoro verrà configurato con NCC per supportare il trasferimento di dati tra siti.

Su s1-inside-vpc,crea una route statica per raggiungere la subnet site2 (10.20.1.0/24):

gcloud compute routes create site1-sn1-route  \
--network=s1-inside-vpc \
--destination-range=10.20.1.0/24  \
--next-hop-instance=site1-nva \
--next-hop-instance-zone=us-central1-a

Su s2-inside-vpc,crea una route statica per raggiungere la subnet site1 (10.10.1.0/24):

gcloud compute routes create site2-sn1-route  \
--network=s2-inside-vpc \
--destination-range=10.10.1.0/24  \
--next-hop-instance=site2-nva \
--next-hop-instance-zone=us-east4-b

Su cloudshell, cerca l'indirizzo IP di "s2-vm". Ti servirà per verificare la connettività da S1-vm.

gcloud compute instances describe s2-vm --zone=us-east4-b | grep networkIP

Apri una connessione SSH a s1-vm. In caso di timeout, riprova

gcloud compute ssh s1-vm --zone=us-central1-a

Accedi tramite SSH a "s1-vm" e "ping" l'indirizzo IP di "s2-vm".

s1-vm:~$ ping 10.20.1.3
PING 10.20.1.3 (10.20.1.3) 56(84) bytes of data.
64 bytes from 10.20.1.3: icmp_seq=1 ttl=60 time=99.1 ms
64 bytes from 10.20.1.3: icmp_seq=2 ttl=60 time=94.3 ms
64 bytes from 10.20.1.3: icmp_seq=3 ttl=60 time=92.4 ms
64 bytes from 10.20.1.3: icmp_seq=4 ttl=60 time=90.9 ms
64 bytes from 10.20.1.3: icmp_seq=5 ttl=60 time=89.7 ms

18. Esegui la pulizia

Accedi a Cloud Shell ed elimina le istanze VM nelle reti dell'hub e dei siti delle diramazioni

#on prem instances
gcloud compute instances delete s1-vm --zone=us-central1-a --quiet
gcloud compute instances delete s2-vm --zone=us-east4-b --quiet

#delete on prem firewall rules
gcloud compute firewall-rules delete site1-ssh --quiet
gcloud compute firewall-rules delete site1-internal --quiet
gcloud compute firewall-rules delete site1-cloud --quiet
gcloud compute firewall-rules delete site1-vpn  --quiet
gcloud compute firewall-rules delete site1-iap --quiet
gcloud compute firewall-rules delete site2-ssh --quiet
gcloud compute firewall-rules delete site2-internal --quiet
gcloud compute firewall-rules delete site2-cloud --quiet
gcloud compute firewall-rules delete site2-vpn  --quiet
gcloud compute firewall-rules delete site2-iap --quiet
gcloud compute firewall-rules delete allow-from-site-1-2 --quiet
gcloud compute firewall-rules delete s2-inside-cloud s2-inside-internal s2-inside-ssh --quiet
gcloud compute firewall-rules delete s1-inside-cloud s1-inside-iap s1-inside-internal s1-inside-ssh s2-inside-cloud s2-inside-iap s2-inside-internal s2-inside-ssh --quiet


#delete ncc spokes
gcloud network-connectivity spokes delete s2s-wrk-cr1 --region us-central1 --quiet
gcloud network-connectivity spokes delete s2s-wrk-cr2 --region us-east4 --quiet

#delete ncc hub
gcloud network-connectivity hubs delete ncc-hub --quiet

#delete the cloud router
gcloud compute routers delete wrk-cr1 --region=us-central1 --quiet
gcloud compute routers delete wrk-cr2 --region=us-east4 --quiet

#delete the instances

gcloud compute instances delete hub-r1 --zone=us-central1-a --quiet
gcloud compute instances delete hub-r2 --zone=us-east4-b --quiet
gcloud compute instances delete workload1-vm --zone=us-central1-a --quiet
gcloud compute instances delete site1-nva --zone=us-central1-a --quiet
gcloud compute instances delete site2-nva --zone=us-east4-b --quiet

#delete on prem subnets

gcloud compute networks subnets delete hub-subnet1 s1-inside-subnet site1-subnet workload-subnet1 --region=us-central1 --quiet

gcloud compute networks subnets delete hub-subnet2 s2-inside-subnet  site2-subnet workload-subnet2 --region=us-east4 --quiet 

#delete hub firewall rule
gcloud compute firewall-rules delete hub-ssh --quiet
gcloud compute firewall-rules delete hub-vpn --quiet
gcloud compute firewall-rules delete hub-internal --quiet
gcloud compute firewall-rules delete hub-iap --quiet

gcloud compute firewall-rules delete workload-ssh --quiet
gcloud compute firewall-rules delete workload-internal --quiet
gcloud compute firewall-rules delete workload-onprem --quiet
gcloud compute firewall-rules delete workload-iap --quiet

#delete on vpcs
gcloud compute networks delete hub-vpc s1-inside-vpc s2-inside-vpc site2-vpc workload-vpc --quiet 

19. Complimenti!

Hai completato il lab del Network Connectivity Center.

Argomenti trattati

  • Integrazione WAN software-defined configurata per il sito NCC nel cloud
  • Integrazione WAN software-defined configurata per NCC da sito a sito

Passaggi successivi

©Google, LLC o le sue società consociate. Tutti i diritti riservati. Distribuzione vietata.