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 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.

  1. 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.
  2. Esegui il deployment di due router SD-WAN flexiWAN remoti per rappresentare due VPC di siti succursali diversi
  3. Per il test del percorso dei dati, configurerai tre VM GCE per simulare client on-premise e server ospitati su Google Cloud.

84e31c667a487f7a.png

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:

6bc606cb34bce7e8.png

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.

377d97bf3066f259.png

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.

  1. Crea la rete hub-vpc e 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
  1. Crea la rete workload-vpc e 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
  1. 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
  1. 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
  1. 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
  1. Crea l'workload1-vm in "us-central1-a" in workload-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

ec754b89e375f3cc.png

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 2 per 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.

12c173b589d220ee.png

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

22e1cf5bad3d3086.png

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".

f7719c28f78e907a.png

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

9a6c6c45e1cad732.png

Seleziona la scheda "Interfacce".

Individua la colonna "Assegnato", fai clic su "No" e cambia l'impostazione su "".

a8772059968af13e.png

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

df03b8a6c817ccd2.png

Fai clic su "Aggiorna dispositivo".

96b9feb77b8517cd.png

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

708215cf91ffc09.png

Stato: Sincronizzazione in corso

918d72eeacc386fa.png

Stato: Sincronizzato

5135096dbff49819.png

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

9e79db3572f91925.png

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 2 per 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.

12c173b589d220ee.png

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

22e1cf5bad3d3086.png

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".

c98696cf67043ec2.png

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

de418da3f581e0bd.png

Seleziona la scheda "Interfacce".

Individua la colonna "Assegnato", fai clic su "No" e cambia l'impostazione su "".

eee6a98dba7b2a04.png

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

df03b8a6c817ccd2.png

Fai clic su "Aggiorna dispositivo".

96b9feb77b8517cd.png

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

c80291bb430dce7d.png

Stato: Sincronizzazione

da9c08ebfbd1265e.png

Stato: Sincronizzato

5135096dbff49819.png

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

2c21322b87d848b.png

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 2 per 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 2 per 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"

1a88ffa4409ad3c0.png

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

802fe0ef1e98c563.png

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 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 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.

82310aab05e9e414.png

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

Configura hub-r2 per BGP

Assicurati di accedere alla console flexiManage

Vai a Inventario → Dispositivihub-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".

8ecb14e2c046012e.png

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.

41a381f81f2b500e.png

  • 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

ddf3e811b193ec10.png

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

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 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.

a31e7a73aff53b66.png

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 cef8dee200ac600a.png

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

2a403992934279b3.png

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

1a7ec558ab1ecd37.png

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

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