1. Introduction
Présentation
Dans cet atelier, vous allez découvrir certaines des fonctionnalités de Network Connectivity Center.
Network Connectivity Center (NCC) est un modèle de plan de contrôle en étoile pour la gestion de la connectivité réseau dans Google Cloud. La ressource hub fournit un modèle de gestion centralisée de la connectivité pour connecter les spokes. NCC accepte actuellement les ressources réseau suivantes en tant que spokes:
- Rattachements de VLAN
- Appareils de routeur
- VPN haute disponibilité
Les ateliers de programmation nécessitent l'utilisation d'une solution SD-WAN SaaS flexible, qui simplifie le déploiement et la gestion WAN. flexWAN est une solution SD-WAN et SASE Open Source.
Objectifs de l'atelier
Dans cet atelier de programmation, vous allez créer une topologie SD-WAN en étoile pour simuler des agences distantes qui traverseront le réseau backbone de Google pour établir une communication de site à cloud et de site à site.
- Vous allez déployer une paire de VM GCE configurées pour "flexiWAN" Agent SD-WAN dans le VPC hub qui représente les têtes de réseau du trafic entrant et sortant vers GCP.
- Déployer deux routeurs flexiWAN SD-WAN distants pour représenter le VPC de deux succursales différentes
- Pour tester le chemin des données, vous configurerez trois VM GCE afin de simuler des clients sur site et un serveur hébergé sur GCP
Points abordés
- Utiliser NCC pour interconnecter les succursales distantes à l'aide d'une solution WAN Open Source définie par logiciel
- Expérience pratique d'une solution WAN définie par logiciel Open Source
Prérequis
- Connaissances du réseau VPC GCP
- Connaissances de Cloud Router et du routage BGP
- L'atelier de programmation nécessite six VPC. Vérifiez vos Quota:Networks et demandezdes réseaux supplémentaires si nécessaire. Capture d'écran ci-dessous:
2. Objectifs
- Configurer l'environnement GCP
- Déployer des instances flexiWAN Edge dans GCP
- Établir un hub NCC et un NVA flexiWAN Edge en tant que spoke
- Configurer et gérer des instances flexiWAN avec flexiManage
- Configurer l'échange de routage BGP entre vpc-app-svcs et le NVA flexiWAN
- Créer un site distant simulant la branche distante d'un client ou le centre de données
- Établir un tunnel IPSEC entre le site distant et la NVA
- Vérifier que les dispositifs ont bien été déployés
- Valider le transfert de données de site à cloud
- Valider le transfert de données de site à site
- Nettoyer les ressources utilisées
Ce tutoriel nécessite la création d'un compte FlexiManage sans frais pour authentifier, intégrer et gérer des instances FlexiEdge.
Avant de commencer
Utiliser la console Google Cloud et Cloud Shell
Pour interagir avec GCP, nous allons utiliser à la fois la console Google Cloud et Cloud Shell tout au long de cet atelier.
Console Google Cloud
La console Cloud est accessible à l'adresse https://console.cloud.google.com.
Configurez les éléments suivants dans Google Cloud pour faciliter la configuration de Network Connectivity Center:
Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.
Lancez le Cloud Shell. Cet atelier de programmation utilise $variables pour faciliter l'implémentation de la configuration gcloud dans Cloud Shell.
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectname=[YOUR-PROJECT-NAME]
echo $projectname
Rôles IAM
NCC nécessite des rôles IAM pour accéder à des API spécifiques. Veillez à configurer votre utilisateur avec les rôles IAM NCC si nécessaire.
Nom du rôle | Description | Autorisations |
networkconnectivity.networkAdmin | Permet aux administrateurs réseau de gérer le hub et les spokes. | networkconnectivity.hubs.networkconnectivity.spokes. |
networkconnectivity.networkSpokeManager | Permet d'ajouter et de gérer des spokes dans un hub. À utiliser dans un VPC partagé où le projet hôte possède le hub, mais les autres administrateurs d'autres projets peuvent ajouter des spokes pour leurs rattachements au hub. | networkconnectivity.spokes.** |
networkconnectivity.networkUsernetworkconnectivity.networkViewer | Permet aux utilisateurs du réseau d'afficher différents attributs du hub et des spokes. | networkconnectivity.hubs.getnetworkconnectivity.hubs.listnetworkconnectivity.spokes.getnetworkconnectivity.spokes.listnetworkconnectivity.spokes.aggregatedList |
3. Configurer l'environnement de l'atelier réseau
Présentation
Dans cette section, nous allons déployer les réseaux VPC et les règles de pare-feu.
Simuler les réseaux de sites de branches sur site
Ce réseau VPC contient des sous-réseaux pour les instances de VM sur site.
Créez les réseaux et sous-réseaux sur site:
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
Créez des règles de pare-feu "site1-vpc" à autoriser:
- SSH, interne, IAP
- ESP, UDP/500, UDP/4500
- Plage 10.0.0.0/8
- Plage 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
Créez des règles de pare-feu site2-vpc à autoriser:
- SSH, interne, IAP
- Plage 10.0.0.0/8
- Plage 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
Créez des règles de pare-feu "s1-inside-vpc" à autoriser:
- SSH, interne, IAP
- Plage 10.0.0.0/8
- Plage 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
Créez des règles de pare-feu "s2-inside-vpc" à autoriser:
- SSH, interne, IAP
- Plage 10.0.0.0/8
- Plage 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
À des fins de test, créez les instances s1-inside-vm
et 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
Simuler l'environnement réseau cloud GCP
Pour activer le trafic interrégional de site à site via le réseau hub-vpc
et les spokes, vous devez activer le routage global dans le réseau hub-vpc
. Pour en savoir plus, consultez la section sur l'échange de routes NCC.
- Créez un réseau et des sous-réseaux
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
- Créez un réseau et des sous-réseaux
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
- Créez des règles de pare-feu VPC Hub pour autoriser:
- SSH
- ESP, UDP/500, UDP/4500
- plage interne 10.0.0.0/8 (qui couvre le port TCP 179 requis pour la session BGP entre le routeur cloud et l'appareil de routeur)
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
- Créez des règles de pare-feu VPC de charge de travail pour autoriser:
- SSH
- plage interne 192.168.0.0/16 (qui couvre le port TCP 179 requis pour la session BGP entre le routeur cloud et l'appareil de routeur)
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
- Activez Cloud NAT dans le VPC de charge de travail pour permettre à load1-vm de télécharger des packages en créant un routeur Cloud Router et une passerelle 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
- Créez le
workload1-vm
in "us-central1-a" in
workload-VPC
. Vous utiliserez cet hôte pour vérifier la connectivité du site au 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. Configurer des appareils sur site pour SD-WAN
Créer la VM sur site pour SDWAN (appareils)
Dans la section suivante, nous allons créer des appareils de routeur site1-nva et site2-nva faisant office de routeurs sur site.
Créer des instances
Créez l'appareil site1-router
nommé 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
Créez l'appareil site2-router nommé 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. Installer flexiWAN sur site1-nva
Connectez-vous en SSH à site1-nva. Si le délai est dépassé, réessayez.
gcloud compute ssh site1-nva --zone=us-central1-a
Installer flexiWAN sur site1-nva
sudo su
sudo curl -sL https://deb.flexiwan.com/setup | sudo bash -
apt install flexiwan-router -y
Préparer la VM pour l'enregistrement du plan de contrôle flexiWAN.
Une fois l'installation du module flexiWAN terminée, exécutez la commande fwsystem_checker pour vérifier la configuration de votre système. Cette commande vérifie la configuration système requise et vous aide à corriger les erreurs de configuration sur votre système.
- Sélectionnez l'option
2
pour une configuration rapide et silencieuse. - puis prenez la sortie 0.
- Ne fermez pas la fenêtre 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 ====
Laissez la session ouverte pour les étapes suivantes
6. Enregistrer site1-nva avec le contrôleur SD-WAN
Cette procédure est requise pour le provisionnement de la NVA flexiWAN depuis la console FlexiManage. Assurez-vous que l'organisation FlexiWAN est configurée avant de continuer.
Authentifiez le NVA flexiWAN nouvellement déployé avec flexiManage à l'aide d'un jeton de sécurité en vous connectant au compte flexiManage. Le même jeton peut être réutilisé sur tous les appareils du routeur.
Sélectionnez Inventory → Tokens (Inventaire → Jetons), créez un jeton, puis sélectionner une copie
Retournez dans Cloud Shell (site1-nva) et collez le jeton dans le répertoire /etc/flexiwan/agent/token.txt en procédant comme suit :
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
Activer les routeurs de site dans la console flexiManage
Se connecter à la console flexiManage pour activer site1-nva sur le contrôleur
Dans le panneau de gauche, sous Inventaire > Appareils, cliquez sur l'appareil Inconnu.
Saisissez le nom d'hôte du site1-nva, puis approuvez l'appareil en faisant glisser le curseur vers la droite.
Sélectionnez l'onglet Interfaces.
Repérez la colonne Attribué colonne, puis cliquez sur Non. et définissez le paramètre sur Oui.
Sélectionnez l'onglet "Pare-feu" et cliquez sur le signe + pour ajouter une règle de pare-feu entrant.
Sélectionnez l'interface WAN pour appliquer la règle SSH comme décrit ci-dessous.
Cliquez sur Mettre à jour l'appareil.
Démarrez site1-nva à partir du contrôleur flexiWAN. Accédez de nouveau à Inventory → Devices → site1-nva (Inventaire → Appareils → site1-nva), puis sélectionnez Start Device (Démarrer l'appareil).
État : Synchronisation
État : Synchronisé
L'indicateur d'avertissement s'affiche sous Dépannage → Notifications. Après les avoir consultés, sélectionnez-les tous, puis marquez-les comme lus
7. Installer flexiWAN sur site2-nva
Ouvrez un nouvel onglet, créez une session Cloud Shell, mettez à jour les $variables pour faciliter l'implémentation de la configuration gcloud.
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectname=[YOUR-PROJECT-NAME]
echo $projectname
Connectez-vous en SSH à site2-nva. Si le délai est dépassé, réessayez.
gcloud compute ssh site2-nva --zone=us-east4-b
Installer flexiWAN sur site2-nva
sudo su
sudo curl -sL https://deb.flexiwan.com/setup | sudo bash -
apt install flexiwan-router -y
Préparer la VM pour l'enregistrement du plan de contrôle flexiWAN.
Une fois l'installation du module flexiWAN terminée, exécutez la commande fwsystem_checker pour vérifier la configuration de votre système. Cette commande vérifie la configuration système requise et vous aide à corriger les erreurs de configuration sur votre système.
- Sélectionnez l'option
2
pour une configuration rapide et silencieuse. - puis prenez la sortie 0.
- Ne fermez pas la fenêtre 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. Enregistrer site2-nva avec le contrôleur SD-WAN
Cette procédure est requise pour le provisionnement de la NVA flexiWAN depuis la console FlexiManage. Assurez-vous que l'organisation FlexiWAN est configurée avant de continuer.
Authentifiez le NVA flexiWAN nouvellement déployé avec flexiManage à l'aide d'un jeton de sécurité en vous connectant au compte flexiManage. Le même jeton peut être réutilisé sur tous les appareils du routeur.
Sélectionnez Inventory → Tokens (Inventaire → Jetons), créez un jeton, puis sélectionnez Copier.
Retournez dans Cloud Shell (site2-nva) et collez le jeton dans le répertoire /etc/flexiwan/agent/token.txt en procédant comme suit :
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
Activer les routeurs de site à partir de la console flexiManage
Se connecter à la console flexiManage pour activer site2-nva sur le contrôleur
Dans le panneau de gauche, sous Inventaire > Appareils, cliquez sur l'appareil Inconnu.
Saisissez le nom d'hôte de site2-nva, puis approuvez l'appareil en faisant glisser le curseur vers la droite.
Sélectionnez l'onglet Interfaces.
Repérez la colonne Attribué colonne, puis cliquez sur Non. et définissez le paramètre sur Oui.
Sélectionnez l'onglet Pare-feu et cliquez sur le signe + pour ajouter une règle de pare-feu entrant. Sélectionnez l'interface WAN pour appliquer la règle SSH comme décrit ci-dessous.
Cliquez sur Mettre à jour l'appareil.
Démarrez site2-nva à partir du contrôleur flexiWAN. Accédez de nouveau à Inventory → Devices → site2-nva (Inventaire → Appareils → site2-nva), puis sélectionnez Start Device (Démarrer l'appareil).
Satus - Synchronisation
État : Synchronisé
L'indicateur d'avertissement s'affiche sous Dépannage → Notifications. Après les avoir consultés, sélectionnez-les tous, puis marquez-les comme lus
9. Configurer des appareils Hub SDWAN
Dans la section suivante, vous allez créer et enregistrer les routeurs Hub (hub-r1 et hub-r2) auprès du contrôleur flexiWAN, comme précédemment exécuté avec les routes de site.
Ouvrez un nouvel onglet, créez une session Cloud Shell, mettez à jour les $variables pour faciliter l'implémentation de la configuration gcloud.
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectname=[YOUR-PROJECT-NAME]
echo $projectname
Créer des instances NVA Hub
Créez l'appareil 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
Créez l'appareil 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. Installer flexiWAN sur des instances Hub pour hub-r1
Ouvrir une connexion SSH vers hub-r1
gcloud compute ssh hub-r1 --zone=us-central1-a
Installer l'agent flexiWAN sur les deux hub-r1
sudo su
sudo curl -sL https://deb.flexiwan.com/setup | sudo bash -
apt install flexiwan-router -y
Préparer les VM hub-r1 pour l'enregistrement flexiWAN.
Une fois l'installation du module flexiWAN terminée, exécutez la commande fwsystem_checker pour vérifier la configuration de votre système. Cette commande vérifie la configuration système requise et vous aide à corriger les erreurs de configuration sur votre système.
root@hub-r1:/home/user# fwsystem_checker
- Sélectionnez l'option
2
pour une configuration rapide et silencieuse. - puis prenez la sortie 0.
- Ne fermez pas la fenêtre Cloud Shell.
11. Enregistrer des VM hub-r1 sur le contrôleur flexiManage
Authentifiez le NVA flexiWAN nouvellement déployé avec flexiManage à l'aide d'un jeton de sécurité en vous connectant au compte flexiManage.
- Sélectionnez Inventory → Tokens (Inventaire → Jetons), puis copiez le jeton.
Retournez dans Cloud Shell (hub-r1) et collez le jeton dans le répertoire /etc/flexiwan/agent/token.txt en procédant comme suit :
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. Installer flexiWAN sur des instances Hub pour hub-r2
Ouvrir une connexion SSH vers hub-r2
gcloud compute ssh hub-r2 --zone=us-east4-b
Installer l'agent flexiWAN sur les deux hub-r2
sudo su
sudo curl -sL https://deb.flexiwan.com/setup | sudo bash -
apt install flexiwan-router -y
Préparer les VM hub-r2 pour l'enregistrement flexiWAN.
Une fois l'installation du module flexiWAN terminée, exécutez la commande fwsystem_checker pour vérifier la configuration de votre système. Cette commande vérifie la configuration système requise et vous aide à corriger les erreurs de configuration sur votre système.
root@hub-r2:/home/user# fwsystem_checker
- Sélectionnez l'option
2
pour une configuration rapide et silencieuse. - puis prenez la sortie 0.
- Ne fermez pas la fenêtre Cloud Shell.
13. Enregistrer des VM hub-r2 sur le contrôleur flexiManage
Authentifiez le NVA flexiWAN nouvellement déployé avec flexiManage à l'aide d'un jeton de sécurité en vous connectant au compte flexiManage.
- Sélectionnez Inventory → Tokens (Inventaire → Jetons), puis copiez le jeton.
Retournez dans Cloud Shell (hub-r2) et collez le jeton dans le répertoire /etc/flexiwan/agent/token.txt en procédant comme suit :
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
Activer les routeurs Hub-r1 dans la console flexiManage
Se connecter à la console flexiManage
- Accédez à Inventaire → Appareils.
- Recherchez et notez que les noms d'hôte de hub-r1 et de hub-r2 sont tous deux inconnus.
Sélectionnez l'appareil inconnu avec le nom d'hôte hub-r1.
- Saisissez le nom d'hôte de hub-r1
- Approuvez l'appareil, puis faites glisser le curseur vers la droite.
Sélectionnez l'onglet Interfaces.
- Recherchez la colonne "Assigned" (Attribué).
- À côté de la ligne de l'interface, cliquez sur Non pour définir le paramètre sur Oui.
Sélectionnez l'onglet Pare-feu.
- Cliquez sur +. à "Ajouter une règle de pare-feu entrante"
- Sélectionnez l'interface WAN pour hériter de la règle
- Autoriser le port SSH 22 avec le protocole TCP
- Cliquez sur Mettre à jour l'appareil.
Démarrez l'appareil hub-r1 pour SD-WAN à partir du contrôleur flexiWAN
- Revenez à la page Inventaire → Appareils → hub-r1.
Sélectionnez Démarrer l'appareil.
- Attendez la fin de la synchronisation et notez la mention running (en cours d'exécution). état
Activer les routeurs Hub R2 dans la console flexiManage
Sélectionnez l'appareil inconnu avec le nom d'hôte hub-r2.
- Saisissez le nom d'hôte de hub-r2
- Approuvez l'appareil, puis faites glisser le curseur vers la droite.
Sélectionnez l'onglet "Interfaces".
- Recherchez la colonne "Assigned" (Attribué).
- À côté de la ligne de l'interface, cliquez sur Non pour définir le paramètre sur Oui.
Sélectionnez l'onglet Pare-feu.
- Cliquez sur +. à "Ajouter une règle de pare-feu entrante"
- Sélectionnez l'interface WAN pour hériter de la règle
- Autoriser le port SSH 22 avec le protocole TCP
- Cliquez sur Ajouter une règle.
- Cliquez sur Mettre à jour l'appareil.
Démarrez l'appareil hub-r2 pour SD-WAN à partir du contrôleur flexiWAN
- Revenez à la page Inventory → Devices → hub-r2 (Inventaire → Appareils → hub-r2), puis sélectionnez Start Device (Démarrer l'appareil).
- Attendez la fin de la synchronisation et notez la mention running (en cours d'exécution). état
14. Network Connectivity Center sur GCP Hub
Activer les services d'API
Activez l'API de connectivité réseau si elle ne l'est pas encore:
gcloud services enable networkconnectivity.googleapis.com
Créer le 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]
Configurer les deux appareils de routeur en tant que spoke NCC
Recherchez l'URI et l'adresse IP de hub-r1 et de hub-r2, puis notez le résultat. Vous aurez besoin de ces informations à l'étape suivante.
Veillez à bien noter l'adresse IP (192.168.x.x) des instances hub-r1 et 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"
Ajouter la vnic networkIP
du hub-r1 (192.168.x.x) en tant que spoke et activer le transfert de données de site à site
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
Ajouter la vnic networkIP
du hub-r2 (192.168.x.x) en tant que spoke et activer le transfert de données de site à site
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
Configurer Cloud Router pour établir une session BGP avec Hub-R1
À l'étape suivante, vous allez créer le routeur Cloud Router et annoncer le sous-réseau VPC de la charge de travail 192.168.235.0/24.
Créer le routeur cloud dans la région us-central1 qui communiquera avec BGP avec hub-r1
gcloud compute routers create wrk-cr1 \
--region=us-central1 \
--network=workload-vpc \
--asn=65002 \
--set-advertisement-groups=all_subnets \
--advertisement-mode=custom
En configurant les dispositifs de routeur en tant que spoke NCC, cela permet au routeur cloud de négocier BGP sur les interfaces virtuelles.
Créez deux interfaces sur le routeur cloud qui échangeront des messages BGP avec hub-r1.
Les adresses IP sont sélectionnées dans le sous-réseau de la charge de travail et "&" peuvent être modifiés si nécessaire.
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
Configurez l'interface Cloud Router pour établir une session BGP avec la vNIC-1 de hub-r1, mettez à jour l'adresse IP du pair avec l'adresse IP du hub-r1 networkIP
. Notez que la même adresse IP est utilisée pour int0 et "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
Vérifiez l'état de la session BGP. À ce stade de l'atelier de programmation, BGP correspond à "état de connexion". car l'appareil de routeur réseau n'a pas été configuré pour BGP.
gcloud compute routers get-status wrk-cr1 --region=us-central1
Configurer Workload-cr2 pour établir une session BGP avec Hub-R2
À l'étape suivante, vous allez créer le routeur Cloud Router et annoncer le sous-réseau VPC de la charge de travail 192.168.236.0/24.
Créer le routeur cloud dans la région us-east4 qui communiquera avec BGP avec hub-r2
gcloud compute routers create wrk-cr2 \
--region=us-east4 \
--network=workload-vpc \
--asn=65002 \
--set-advertisement-groups=all_subnets \
--advertisement-mode=custom
Créez une paire d'interfaces sur le routeur cloud qui échangera des messages BGP avec le hub-r2. Les adresses IP sont sélectionnées dans le sous-réseau de la charge de travail. peuvent être modifiés si nécessaire.
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
Configurez l'interface Cloud Router pour établir une session BGP avec la vNIC-1 de hub-r2, mettez à jour l'adresse IP du pair avec l'adresse IP du hub-r1 networkIP
. Notez que la même adresse IP est utilisée pour int0 et "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
Vérifiez l'état de la session BGP. À ce stade de l'atelier de programmation, BGP correspond à "état de connexion". car l'appareil de routeur réseau n'a pas été configuré pour BGP.
gcloud compute routers get-status wrk-cr2 --region=us-east4
15. Configurer les appareils de routeur Hub pour BGP
Configurer hub-r1 pour BGP
Veillez à vous connecter à la console flexiManage
Accédez à Inventaire → Appareils → hub-r1, puis sélectionnez l'appareil correspondant à HostName:hub-r1.
- Cliquez sur l'onglet Routage.
- Cliquez sur BGP Configuration (Configuration BGP).
- Désactivez l'option Redistribute OSPF Routes (Répartir les routes OSPF).
- Configurez hub-r1 pour BGP avec ces paramètres, puis cliquez sur Enregistrer.
Sélectionnez Interfaces. recherchez l'interface LAN, puis la colonne Routage
- Cliquez sur none (aucune). pour ouvrir le menu et sélectionner BGP comme protocole de routage
- En haut de la page, cliquez sur "Mettre à jour l'appareil".
Configurer hub-r2 pour BGP
Veillez à vous connecter à la console flexiManage
Accédez à Inventory → Devices (Inventaire → Appareils) → hub-r2,puis sélectionnez l'appareil associé à HostName:hub-r2.
- Cliquez sur l'onglet Routage.
- Cliquez sur BGP Configuration (Configuration BGP).
- Désactivez l'option Redistribute OSPF Routes (Répartir les routes OSPF).
- Configurez hub-r2 pour BGP avec ces paramètres, puis cliquez sur Enregistrer.
Sélectionnez Interfaces. recherchez l'interface LAN, recherchez la colonne "Routage"
- Cliquez sur "Aucun". pour ouvrir un menu déroulant permettant de sélectionner BGP comme protocole de routage
- En haut de la page, cliquez sur Mettre à jour l'appareil.
Sélectionnez Routage. Tabulation
- Vérifiez que hub-r2 a appris une route BGP à partir de wrk-cr2.
16. Échange de routes BGP entre appareils de routeur
Établir le numéro ASN local pour les sites distants
Configurez un numéro ASN BGP local pour site1-nva et site2-nva. Une fois la configuration effectuée, nous établirons un tunnel IPSEC entre les sites distants et les routeurs hub.
Sélectionnez l'appareil dont le nom est défini sur HostName:site1-nva.
- Cliquez sur l'onglet Routage.
- Cliquez sur BGP Configuration (Configuration BGP).
- Désactivez l'option Redistribute OSPF Routes (Répartir les routes OSPF).
- BGP activé
- Numéro ASN local 7269 → Enregistrer
- Mettre à jour l'appareil
- Onglet Interfaces → LAN → Routage → BGP
- Mettre à jour l'appareil
Sélectionnez l'appareil dont le nom est défini sur HostName:site2-nva.
- Cliquez sur l'onglet Routage.
- Cliquez sur BGP Configuration (Configuration BGP).
- Désactivez l'option Redistribute OSPF Routes (Répartir les routes OSPF).
- BGP activé
- Numéro ASN local 7270 → Enregistrer
- Mettre à jour l'appareil
- Onglet Interfaces → LAN → Routage → BGP
- Mettre à jour l'appareil
Configurer des tunnels VPN entre des appareils de site et de hub
Veillez à vous connecter à la console flexiManage
- Accédez à Inventaire → Appareils.
- Cochez la case à côté du nom d'hôte de site1-nva et de hub-r1 pour créer un tunnel VPN entre cette paire de NVA.
- Cliquez sur Actions → Create Tunnels (Actions → Créer des tunnels) et configurez les paramètres suivants
- Sélectionnez Créer des tunnels.
- Décochez les cases de site1-nva et ub-r1.
Répétez les étapes pour créer un tunnel entre site2-nva et hub-r2 en sélectionnant les paramètres appropriés.
Vérifiez que les deux tunnels sont établis entre chaque paire de NVA.
- Dans le panneau de gauche, sélectionnez inventaire. et cliquez sur Tunnels. et localisez la colonne d'état
Vérifiez que "site1-nva" routes apprises vers les sous-réseaux 192.168.235.0/24 et 192.168.236.0/24
- Sélectionnez Inventaire → Appareils → site1-nva, puis cliquez sur l'onglet Routage.
Dans l'exemple de résultat ci-dessous, flexiWAN a créé automatiquement le tunnel à l'aide de l'adresse IP de l'hôte 10.100.0.6.
17. Vérifier la connectivité du chemin de données
Vérifier la connectivité du site au cloud sur site
Reportez-vous au schéma "Vérifier que le chemin d'accès aux données entre s1-vm et workload1-vm"
Configurer des routes statiques VPC pour du site vers le cloud
Les VPC Site1 et Site2-VPC sur site simulent un réseau de centre de données sur site.
Les dispositifs de routeur Site-1-nva et site-2-nva utilisent tous deux une connectivité VPN pour atteindre le réseau hub.
Pour le cas d'utilisation site vers cloud**,** créez des routes statiques vers la destination 192.168.0.0/16 en utilisant l'appareil de routeur comme saut suivant pour atteindre les réseaux du réseau cloud GCP.
Sur s1-inside-vpc,créez une route statique pour la destination 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
Sur s2-inside-vpc,créez une route statique pour la destination 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
Dans Cloud Shell, recherchez l'adresse IP de workload1-vm. Vous en aurez besoin pour tester la connectivité à partir de s1-vm.
gcloud compute instances describe workload1-vm --zone=us-central1-a | grep "networkIP"
Ouvrez une connexion SSH vers s1-vm. Si le délai expire, réessayez.
gcloud compute ssh s1-vm --zone=us-central1-a
Connectez-vous en SSH à s1-vm et utilisez la commande curl pour établir une session TCP vers l'adresse IP de la VM de charge de travail1.
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
Vérification de la connectivité du site au site
Reportez-vous au schéma pour vérifier que le chemin d'accès aux données entre s1-vm et s2-vm
Configurer des routes statiques VPC pour des sites à sites
Pour acheminer le trafic de site à site entre le site 1 et le site 2 à l'aide du réseau mondial de GCP, vous allez créer des routes statiques vers des destinations de sous-réseau du site distant en utilisant l'appareil de routeur sur site comme saut suivant.
Lors d'une étape ultérieure, le VPC de charge de travail sera configuré avec NCC pour permettre le transfert de données de site à site.
Sur s1-inside-vpc,créez une route statique pour atteindre 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
Sur s2-inside-vpc,créez une route statique pour atteindre 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
Dans Cloud Shell, recherchez l'adresse IP de s2-vm. Vous en aurez besoin pour tester la connectivité à partir de S1-vm.
gcloud compute instances describe s2-vm --zone=us-east4-b | grep networkIP
Ouvrez une connexion SSH vers s1-vm. Si le délai expire, réessayez.
gcloud compute ssh s1-vm --zone=us-central1-a
Se connecter en SSH à s1-vm et "ping" l'adresse IP de 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. Effectuer un nettoyage
Se connecter à Cloud Shell et supprimer des instances de VM sur les réseaux des sites hub et des succursales
#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. Félicitations !
Vous avez terminé l'atelier Network Connectivity Center.
Sujets abordés
- Configuration de l'intégration WAN définie par logiciel pour le site NCC vers le cloud
- Configuration de l'intégration WAN définie par logiciel pour NCC de site à site
Étapes suivantes
- Présentation de Network Connectivity Center
- Documentation de Network Connectivity Center
- ressources FlexiWAN
- Dépôt GitLab flexiWAN
©Google, LLC ou ses sociétés affiliées. Tous droits réservés. Ne pas diffuser.