1. Introduzione
Panoramica
In questo lab esplorerai alcune delle funzionalità di Network Connectivity Center.
Network Connectivity Center (NCC) è un modello di control plane hub and spoke per la gestione della connettività di rete in Google Cloud. La risorsa hub fornisce un modello di gestione della connettività centralizzato per connettere gli spoke. Al momento NCC supporta le seguenti risorse di rete come spoke:
- Collegamenti VLAN
- Appliance router
- VPN ad alta disponibilità
Codelabs richiede l'utilizzo della soluzione SD-WAN SaaS flexiWAN che semplifica l'implementazione e la gestione della WAN. flexWAN è una soluzione SD-WAN e SASE open source.
Cosa creerai
In questo codelab, creerai una topologia SD-WAN hub and spoke per simulare siti di succursali remoti che attraverseranno la rete backbone di Google per la comunicazione da sito a cloud e da sito a sito.
- Verrà eseguito il deployment di una coppia di VM GCE configurate per l'agente SD-WAN "flexiWAN" nel VPC hub che rappresenta gli headend per il traffico in entrata e in uscita verso GCP.
- Esegui il deployment di due router SD-WAN flexiWAN remoti per rappresentare due VPC di siti succursali diversi
- Per il test del percorso dei dati, configurerai tre VM GCE per simulare client on-premise e server ospitati su Google Cloud.
Cosa imparerai a fare
- Utilizzo di NCC per interconnettere filiali remote utilizzando una soluzione SD-WAN open source
- Esperienza pratica con una soluzione WAN definita dal software open source
Che cosa ti serve
- Conoscenza della rete VPC di GCP
- Conoscenza del router Cloud e del routing BGP
- Il codelab richiede 6 VPC. Controlla Quota:reti e richiedi reti aggiuntive, se necessario. Vedi lo screenshot di seguito:

2. Obiettivi
- Configura l'ambiente GCP
- Esegui il deployment delle istanze flexiWAN Edge in GCP
- 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
- Crea un sito remoto che simula una filiale remota del cliente o un data center
- Stabilisci un tunnel IPsec tra il sito remoto e la NVA
- Verifica che gli appliance siano stati implementati correttamente
- Convalida del trasferimento dei dati dal sito al cloud
- Convalida il trasferimento di dati tra siti
- Libera spazio dalle risorse utilizzate
Questo tutorial richiede la creazione di un account flexiManage 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 GCP, utilizzeremo sia la console Google Cloud che Cloud Shell durante questo lab.
Google Cloud Console
Puoi accedere alla console Cloud all'indirizzo https://console.cloud.google.com.
Configura i seguenti elementi in Google Cloud per semplificare la configurazione di Network Connectivity Center:
Nella console Google Cloud, nella pagina di selezione del progetto, 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 esigenze.
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 altri amministratori di altri progetti possono aggiungere spoke per i relativi allegati all'hub. | networkconnectivity.spokes.** |
networkconnectivity.networkUsernetworkconnectivity.networkViewer | Consente agli utenti della rete di visualizzare diversi attributi dell'hub e degli spoke. | networkconnectivity.hubs.getnetworkconnectivity.hubs.listnetworkconnectivity.spokes.getnetworkconnectivity.spokes.listnetworkconnectivity.spokes.aggregatedList |
3. Configurare l'ambiente di lab di rete
Panoramica
In questa sezione, eseguiremo il deployment delle reti VPC e delle regole firewall.

Simula le reti dei siti filiali on-prem
Questa rete VPC contiene subnet per le 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
Simulare l'ambiente di rete cloud GCP
Per abilitare il traffico cross-region da sito a sito tramite la rete hub-vpc e gli spoke, devi abilitare il routing globale nella rete hub-vpc. Scopri di più sullo scambio di route di NCC.
- Crea la rete
hub-vpce le subnet:
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
- Crea la rete
workload-vpce le subnet:
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
- Crea regole firewall Hub-VPC per consentire:
- SSH
- ESP, UDP/500, UDP/4500
- intervallo interno 10.0.0.0/8 (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
- Crea regole firewall VPC del workload per consentire:
- SSH
- intervallo interno 192.168.0.0/16 (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
- Abilita Cloud NAT nel VPC del workload 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
- Crea l'
workload1-vmin "us-central1-a" inworkload-VPC, che utilizzerai per verificare la connettività dal 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. Configurare le appliance on-premise per SD-WAN

Crea la VM on-prem per SDWAN (appliance)
Nella sezione seguente, 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. Se si verifica un 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 control plane di flexiWAN.
Al termine dell'installazione di flexiWAN, esegui il comando fwsystem_checker per controllare la configurazione del sistema. Questo comando controlla i requisiti di sistema e aiuta a correggere gli errori di configurazione nel sistema.
- Seleziona l'opzione
2per una configurazione rapida e silenziosa - e poi esci 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 passaggi successivi.
6. Registra site1-nva con il controller SD-WAN
Questi passaggi sono necessari per completare il provisioning della NVA flexiWAN, che viene amministrata dalla console flexiManage. Prima di procedere, assicurati che l'organizzazione flexiWAN sia configurata.
Autentica la NVA flexiWAN appena implementata con flexiManage utilizzando un token di sicurezza accedendo all'account flexiManage. Lo stesso token può essere riutilizzato in tutti gli apparecchi router.
Seleziona Inventario → Token,crea un token e seleziona Copia.

Torna a Cloud Shell (site1-nva) e incolla il token nella directory /etc/flexiwan/agent/token.txt eseguendo le seguenti 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

Attiva i router del sito nella console flexiManage
Accedi alla console flexiManage per attivare site1-nva sul controller
Nel riquadro a sinistra, seleziona Inventario → Dispositivi, fai clic sul dispositivo "Sconosciuto".

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

Seleziona la scheda "Interfacce".
Individua la colonna "Assegnato", fai clic su "No" e cambia l'impostazione su "Sì".

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

Fai clic su "Aggiorna dispositivo".
Avvia site1-nva dal controller flexiWAN. Torna a Inventario → Dispositivi → site1-nva seleziona "Avvia dispositivo".
Stato: Sincronizzazione in corso

Stato: Sincronizzato

L'indicatore di avviso è visibile in Risoluzione dei problemi → Notifiche. Una volta visualizzati, seleziona tutti e contrassegnali come letti.

7. Installa flexiWAN su site2-nva
Apri una nuova scheda e crea una sessione Cloud Shell, aggiorna le variabili $per facilitare l'implementazione della configurazione 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. Se si verifica un 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 control plane di flexiWAN.
Al termine dell'installazione di flexiWAN, esegui il comando fwsystem_checker per controllare la configurazione del sistema. Questo comando controlla i requisiti di sistema e aiuta a correggere gli errori di configurazione nel sistema.
- Seleziona l'opzione
2per una configurazione rapida e silenziosa - e poi esci 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. Registrare site2-nva con il controller SD-WAN
Questi passaggi sono necessari per completare il provisioning della NVA flexiWAN, che viene amministrata dalla console flexiManage. Prima di procedere, assicurati che l'organizzazione flexiWAN sia configurata.
Autentica la NVA flexiWAN appena implementata con flexiManage utilizzando un token di sicurezza accedendo all'account flexiManage. Lo stesso token può essere riutilizzato in tutti gli apparecchi router.
Seleziona Inventario → Token, crea un token e seleziona Copia.

Torna a Cloud Shell (site2-nva) e incolla il token nella directory /etc/flexiwan/agent/token.txt eseguendo le seguenti 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

Attiva i router del sito dalla console flexiManage
Accedi alla console flexiManage per attivare site2-nva sul controller
Nel riquadro a sinistra, seleziona Inventario → Dispositivi, fai clic sul dispositivo "Sconosciuto".

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

Seleziona la scheda "Interfacce".
Individua la colonna "Assegnato", fai clic su "No" e cambia l'impostazione su "Sì".

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

Fai clic su "Aggiorna dispositivo".
Avvia site2-nva dal controller flexiWAN. Torna a Inventario → Dispositivi → site2-nva seleziona "Avvia dispositivo".
Stato: Sincronizzazione

Stato: Sincronizzato

L'indicatore di avviso è visibile in Risoluzione dei problemi → Notifiche. Una volta visualizzati, seleziona tutti e contrassegnali come letti.

9. Configura le appliance SDWAN hub
Nella sezione seguente creerai e registrerai i router hub (hub-r1 e hub-r2) con il controller flexiWAN come eseguito in precedenza con le route del sito.
Apri una nuova scheda e crea una sessione Cloud Shell, aggiorna le variabili $per facilitare l'implementazione della configurazione gcloud
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectname=[YOUR-PROJECT-NAME]
echo $projectname
Crea istanze NVA hub
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 gli 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 di flexiWAN.
Al termine dell'installazione di flexiWAN, esegui il comando fwsystem_checker per controllare la configurazione del sistema. Questo comando controlla i requisiti di sistema e aiuta a correggere gli errori di configurazione nel sistema.
root@hub-r1:/home/user# fwsystem_checker
- Seleziona l'opzione
2per una configurazione rapida e silenziosa - e poi esci con 0.
- Non chiudere la finestra di Cloud Shell.
11. Registra le VM hub-r1 sul controller flexiManage
Autentica la NVA flexiWAN appena implementata con flexiManage 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 le seguenti 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
12. Installa 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 gli 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 di flexiWAN.
Al termine dell'installazione di flexiWAN, esegui il comando fwsystem_checker per controllare la configurazione del sistema. Questo comando controlla i requisiti di sistema e aiuta a correggere gli errori di configurazione nel sistema.
root@hub-r2:/home/user# fwsystem_checker
- Seleziona l'opzione
2per una configurazione rapida e silenziosa - e poi esci con 0.
- Non chiudere la finestra di Cloud Shell.
13. Registra le VM hub-r2 sul controller flexiManage
Autentica la NVA flexiWAN appena implementata 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 le seguenti 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
Attiva gli hub di router 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, entrambi "sconosciuti"

Seleziona il dispositivo sconosciuto con il nome host hub-r1.
- Inserisci il nome host di hub-r1
- Approva il dispositivo. Sposta il selettore verso destra.
Seleziona la scheda Interfacce.
- Trova la colonna "Assegnato"
- Accanto alla riga dell'interfaccia, fai clic su "No" per modificare l'impostazione su "Sì".
Seleziona la scheda Firewall.
- Fai clic su "+" per aggiungere una regola firewall in entrata.
- Seleziona l'interfaccia WAN da cui ereditare la regola.
- Consenti la porta SSH 22 con il 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 dello stato "In esecuzione".
Attiva gli hub router hub-r2 sulla console flexiManage
Seleziona il dispositivo sconosciuto con il nome host hub-r2.
- Inserisci il nome host di hub-r2
- Approva il dispositivo. Sposta il selettore verso destra.
Seleziona la scheda Interfacce.
- Trova la colonna "Assegnato"
- Accanto alla riga dell'interfaccia, fai clic su "No" per impostare l'impostazione su "Sì".
Seleziona la scheda Firewall.
- Fai clic su "+" per aggiungere una regola firewall in entrata.
- Seleziona l'interfaccia WAN da cui ereditare la regola.
- Consenti la porta SSH 22 con il 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, seleziona "Avvia dispositivo".
- Attendi il completamento della sincronizzazione e prendi nota dello stato "In esecuzione".
14. Network Connectivity Center in Google Cloud Hub

Abilita i servizi API
Abilita l'API Network Connectivity 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 di router come spoke NCC
Trova l'URI e l'indirizzo IP sia per hub-r1 che per hub-r2 e annota l'output. Avrai bisogno di queste informazioni nel passaggio successivo.
Assicurati di prendere 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 da sito a sito
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 hub-r2 networkIP (192.168.x.x) come spoke e attiva il trasferimento di dati da sito a sito
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 successivo, crea il router Cloud e annuncia la subnet VPC del workload 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
Se configuri gli appliance router come spoke NCC, il router cloud può negoziare BGP sulle interfacce virtuali.
Crea due interfacce sul router cloud che scambieranno messaggi BGP con hub-r1.
Gli indirizzi IP vengono selezionati dalla subnet del workload e possono essere modificati, se necessario.
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 BGP con vNIC-1 di hub-r1, aggiorna peer-ip-address con l'indirizzo IP di hub-r1 networkIP . Tieni presente che per int0 e int1 viene utilizzato lo stesso indirizzo IP.
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. A questo punto del lab, BGP è "connect state" (stato di connessione) perché 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 BGP con Hub-R2
Nel passaggio successivo, crea il router Cloud e annuncia la subnet VPC del workload 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 messaggi BGP con hub-r2. Gli indirizzi IP vengono selezionati dalla subnet del workload e possono essere modificati, se necessario.
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 BGP con vNIC-1 di hub-r2, aggiorna peer-ip-address con l'indirizzo IP di hub-r1 networkIP . Tieni presente che per int0 e int1 viene utilizzato lo stesso indirizzo IP.
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. A questo punto del lab, BGP è "connect state" (stato di connessione) perché 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
Assicurati di accedere alla console flexiManage
Vai a Inventario → Dispositivi → hub-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".

Seleziona la scheda "Interfacce", individua l'interfaccia LAN e trova la colonna "Routing".
- Fai clic su "nessuno" per aprire il menu e selezionare BGP come protocollo di routing.

- Nella parte superiore della pagina, fai clic su "Aggiorna dispositivo".
Configura hub-r2 per BGP
Assicurati di accedere alla console flexiManage
Vai a Inventario → Dispositivi → hub-r2,seleziona il dispositivo con HostName: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".

Seleziona la scheda "Interfacce", individua l'interfaccia LAN e trova la colonna "Routing".
- Fai clic su "Nessuno" per aprire un menu a discesa e selezionare BGP come protocollo di routing.

- Nella parte superiore della pagina, fai clic su "Aggiorna dispositivo".
Seleziona la scheda "Routing".
- Verifica che hub-r2 abbia appreso una route BGP da wrk-cr2

16. Scambio di route BGP tra appliance router
Stabilisci l'ASN locale per i siti remoti
Configura un ASN BGP locale per site1-nva e site2-nva. Una volta configurato, stabiliremo un tunnel IPSEC tra i siti remoti e gli hub router.
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 dell'hub
Assicurati 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 NVA.
- Fai clic su Azioni → Crea tunnel e configura quanto segue

- 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

Verifica che la coppia di tunnel sia stabilita tra ogni coppia di NVA.
- Nel riquadro a sinistra, seleziona "Inventario", fai clic su "Tunnel" e individua la colonna dello stato.

Verifica che "site1-nva" abbia appreso le route 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 host 10.100.0.6 
17. Verificare la connettività del percorso dei dati
Verifica la connettività dal sito al cloud da on-premise
Fai riferimento al diagramma. Verifica che il percorso dei dati tra s1-vm e workload1-vm

Configura route statiche VPC per Site-to-Cloud
Site1-VPC e Site2-VPC on-premise simulano una rete di data center on-premise.
Entrambe le appliance router Site-1-nva e Site-2-nva utilizzano la connettività VPN per raggiungere la rete hub.
Per lo scenario d'uso da sito a cloud**,** crea route statiche alla destinazione 192.168.0.0/16 utilizzando l'appliance router come hop successivo per raggiungere le reti nella rete cloud GCP.
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
In Cloud Shell, cerca l'indirizzo IP di "workload1-vm". Ti servirà per testare la connettività da "s1-vm".
gcloud compute instances describe workload1-vm --zone=us-central1-a | grep "networkIP"
Apri una connessione SSH a s1-vm. Se si verifica un 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 con 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
Verificare la connettività da sito a sito
Fai riferimento al diagramma e verifica che il percorso dei dati tra s1-vm e s2-vm

Configura le route statiche VPC per Site-to-Site
Per instradare il traffico site-to-site tra il sito 1 e il sito 2 utilizzando la rete globale di GCP, creerai route statiche verso le destinazioni delle subnet del sito remoto utilizzando l'appliance router on-premise come hop successivo.
In un passaggio successivo, il VPC del workload verrà configurato con NCC per supportare il trasferimento di dati da sito a sito.
Su s1-inside-vpc,crea una route statica per raggiungere site2-subnet (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 site1-subnet (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
In Cloud Shell, cerca l'indirizzo IP di "s2-vm". Ti servirà per testare la connettività da S1-vm.
gcloud compute instances describe s2-vm --zone=us-east4-b | grep networkIP
Apri una connessione SSH a s1-vm. Se si verifica un timeout, riprova.
gcloud compute ssh s1-vm --zone=us-central1-a
Usa SSH per connetterti a "s1-vm" e invia un ping all'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 dei siti hub e succursale
#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 Network Connectivity Center.
Argomenti trattati
- Configurazione dell'integrazione della WAN definita dal software per NCC da sito a cloud
- Integrazione della WAN definita dal software configurata per NCC da sito a sito
Passaggi successivi
- Panoramica di Network Connectivity Center
- Documentazione di Network Connectivity Center
- Risorse flexiWAN
- Repository GitLab di flexiWAN
©Google, LLC o le sue società consociate. Tutti i diritti riservati. Distribuzione vietata.




