Dans le cadre de la documentation associée à ce produit, nous nous efforçons d’utiliser un langage exempt de préjugés. Dans cet ensemble de documents, le langage exempt de discrimination renvoie à une langue qui exclut la discrimination en fonction de l’âge, des handicaps, du genre, de l’appartenance raciale de l’identité ethnique, de l’orientation sexuelle, de la situation socio-économique et de l’intersectionnalité. Des exceptions peuvent s’appliquer dans les documents si le langage est codé en dur dans les interfaces utilisateurs du produit logiciel, si le langage utilisé est basé sur la documentation RFP ou si le langage utilisé provient d’un produit tiers référencé. Découvrez comment Cisco utilise le langage inclusif.
Cisco a traduit ce document en traduction automatisée vérifiée par une personne dans le cadre d’un service mondial permettant à nos utilisateurs d’obtenir le contenu d’assistance dans leur propre langue. Il convient cependant de noter que même la meilleure traduction automatisée ne sera pas aussi précise que celle fournie par un traducteur professionnel.
Ce document décrit les étapes à suivre pour configurer les routeurs CSR1000v pour la haute disponibilité version 3 (HAv3) sur Amazon Web Services (AWS), Microsoft Azure et Google Cloud Platform (GCP).
Cisco vous recommande de prendre connaissance des rubriques suivantes :
Cet article suppose que la configuration réseau sous-jacente a déjà été effectuée et se concentre sur la configuration HAv3.
Vous trouverez des détails complets sur la configuration dans le Guide de configuration du logiciel Cisco CSR 1000v et Cisco ISRv.
Les informations contenues dans ce document sont basées sur les versions de matériel et de logiciel suivantes :
The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. Si votre réseau est actif, assurez-vous de comprendre l'impact potentiel de toute commande.
Cisco vous recommande de connaître les différentes versions HA disponibles :
HAv3 est disponible auprès de Cisco IOS®-XE Polaris 16.11.1s et ajoute plusieurs nouvelles fonctionnalités :
Note: Les ressources déployées dans AWS, Azure ou GCP à partir des étapes de ce document peuvent entraîner un coût.
Avant de commencer la configuration, il est important de bien comprendre la topologie et la conception. Cela permet de résoudre les problèmes potentiels ultérieurement.
Bien que le schéma de topologie du réseau soit basé sur AWS, le déploiement sous-jacent du réseau entre les clouds est relativement similaire. La topologie du réseau est également indépendante de la version HA utilisée, qu'il s'agisse de HAv1, HAv2 ou HAv3.
Pour cet exemple de topologie, la redondance HA est configurée avec les paramètres suivants dans AWS :
Il existe deux routeurs CSR1000v dans une paire HA, dans deux zones de disponibilité différentes. La troisième zone est une instance privée, qui simule un périphérique dans un data center privé. En règle générale, tout le trafic normal doit passer par la table de routage privée (ou interne).
Étape 1. Configurez l'hébergement d'applications IOX et l'interpréteur de commandes, ce qui fournit l'accessibilité ip dans l'interpréteur de commandes. Cette étape peut être configurée automatiquement par défaut lors du déploiement de CSR1000v.
vrf definition GS ! iox app-hosting appid guestshell app-vnic gateway1 virtualportgroup 0 guest-interface 0 guest-ipaddress 192.168.35.102 netmask 255.255.255.0 app-default-gateway 192.168.35.101 guest-interface 0 name-server0 8.8.8.8 ! interface VirtualPortGroup0 vrf forwarding GS ip address 192.168.35.101 255.255.255.0 ip nat inside ! interface GigabitEthernet1 ip nat outside ! ip access-list standard GS_NAT_ACL permit 192.168.35.0 0.0.0.255 ! ip nat inside source list GS_NAT_ACL interface GigabitEthernet1 vrf GS overload ! ! The static route points to the G1 ip address's gateway ip route vrf GS 0.0.0.0 0.0.0.0 GigabitEthernet1 10.1.0.1 global
Étape 2. Activez et connectez-vous à l'interpréteur de commandes.
Device#guestshell enable Interface will be selected if configured in app-hosting Please wait for completion guestshell installed successfully Current state is: DEPLOYED guestshell activated successfully Current state is: ACTIVATED guestshell started successfully Current state is: RUNNING Guestshell enabled successfully Device#guestshell
[guestshell@guestshell ~]$
Note: Pour plus d'informations sur Guestshell, reportez-vous à la section - Programmability Configuration Guide
Étape 3. Confirmer que le shell invité peut communiquer avec Internet.
[guestshell@guestshell ~]$ ping 8.8.8.8 PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data. 64 bytes from 8.8.8.8: icmp_seq=1 ttl=109 time=1.74 ms 64 bytes from 8.8.8.8: icmp_seq=2 ttl=109 time=2.19 ms 64 bytes from 8.8.8.8: icmp_seq=3 ttl=109 time=2.49 ms 64 bytes from 8.8.8.8: icmp_seq=4 ttl=109 time=1.41 ms 64 bytes from 8.8.8.8: icmp_seq=5 ttl=109 time=3.04 ms
Étape 4. (Facultatif) Activez la détection de transfert bidirectionnel (BFD) et un protocole de routage en tant que protocole EIGRP (Enhanced Interior Gateway Routing Protocol) ou BGP (Border Gateway Protocol) dans le tunnel pour la détection des pannes homologues. Configurez un tunnel VxLAN ou IPsec entre les routeurs Cisco CSR 1000v.
crypto isakmp policy 1 encr aes 256 authentication pre-share crypto isakmp key cisco addresscrypto ipsec transform-set uni-perf esp-aes 256 esp-sha-hmac mode tunnel crypto ipsec profile vti-1 set security-association lifetime kilobytes disable set security-association lifetime seconds 86400 set transform-set uni-perf set pfs group2 interface Tunnel1 ip address 192.168.1.1 255.255.255.0 bfd interval 500 min_rx 500 multiplier 3 tunnel source GigabitEthernet1 tunnel destination redundancy cloud-ha bfd peer Example - #CSR1 ! interface Tunnel1 ip address 192.168.1.1 255.255.255.0 bfd interval 500 min_rx 500 multiplier 3 tunnel source GigabitEthernet1 tunnel destination 10.1.0.11 ! redundancy cloud-ha bfd peer 192.168.1.2 #CSR2 ! interface Tunnel1 ip address 192.168.1.2 255.255.255.0 bfd interval 500 min_rx 500 multiplier 3 tunnel source GigabitEthernet1 tunnel destination 10.1.0.10 ! redundancy cloud-ha bfd peer 192.168.1.1
Example: interface Tunnel100 ip address 192.168.1.1 255.255.255.0 bfd interval 500 min_rx 500 multiplier 3 tunnel source GigabitEthernet1 tunnel mode vxlan-gpe ipv4 tunnel destinationtunnel vxlan vni 10000 redundancy cloud-ha bfd peer
Étape 4.1. (Facultatif) Configurez le protocole EIGRP sur les interfaces de tunnel.
router eigrp 1 bfd interface Tunnel1 network 192.168.1.0 0.0.0.255
event manager applet Interface_GigabitEthernet2 event syslog pattern “Interface GigabitEthernet2, changed state to administratively down” action 1 cli command “enable” action 2 cli command “guestshell run node_event.py -i 10 -e peerFail” exit exit
Étape 1. Configurez l'authentification avec IAM.
Pour que le routeur CSR1000v puisse mettre à jour une table de routage dans le réseau AWS, le routeur doit être authentifié. Dans AWS, vous devez créer une stratégie permettant au routeur CSR 1000v d'accéder à la table de routage. Un rôle IAM est alors créé qui utilise cette stratégie et s'applique à la ressource EC2.
Une fois les instances CSR 1000v EC2 créées, le rôle IAM créé doit être attaché à chaque routeur.
La stratégie utilisée dans le nouveau rôle IAM est la suivante :
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "logs:CreateLogStream", "cloudwatch:", "s3:", "ec2:AssociateRouteTable", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:DeleteRoute", "ec2:DeleteRouteTable", "ec2:DescribeRouteTables", "ec2:DescribeVpcs", "ec2:ReplaceRoute", "ec2:DescribeRegions", "ec2:DescribeNetworkInterfaces", "ec2:DisassociateRouteTable", "ec2:ReplaceRouteTableAssociation", "logs:CreateLogGroup", "logs:PutLogEvents" ], "Resource": "*" } ] }
Note: Référez-vous à Rôle IAM avec une stratégie et associez-le au VPC pour des étapes détaillées.
Étape 2. Installez le paquet python HA.
[guestshell@guestshell ~]$ pip install csr_aws_ha --user [guestshell@guestshell ~]$ source ~/.bashrc
Étape 3. Configurez les paramètres HA sur le routeur principal.
[guestshell@guestshell ~]$ create_node.py -i 10 -t rtb-01c5b0633a3422575 -rg ca-central-1 -n eni-0bc1912748614df2a -r 0.0.0.0/0 -m primary
Étape 4. Configurez les paramètres HA sur le routeur secondaire.
[guestshell@guestshell ~]$ create_node.py -i 10 -t rtb-01c5b0633a3422575 -rg ca-central-1 -n eni-0e351ab1b8f416728 -r 0.0.0.0/0 -m secondary
create_node.py -i n -t rtb-private-route-table-id -rg region-id -n eni-CSR-id -r route(x.x.x.x/x) -m
Note: L'interface externe orientée doit être configurée sur GigabitEthernet1. Il s'agit de l'interface utilisée pour atteindre les API Azure. La HA ne peut pas fonctionner correctement autrement. Dans le shell invité, assurez-vous que la commande curl peut récupérer des métadonnées à partir d'Azure.
[guestshell@guestshell ~]$ curl -H "Metadata:true" http://169.254.169.254/metadata/instance?api-version=2020-06-01
Étape 1. L'authentification pour les appels API CSR1000v doit être activée avec Azure Active Directory (AAD) ou MSI (Managed Service Identity). Référez-vous à Configurer l'authentification pour les appels de l'API CSR1000v pour des étapes détaillées. Sans cette étape, le routeur CSR1000v ne peut pas être autorisé à mettre à jour la table de routage.
Paramètres AAD
Étape 2. Installez le paquet python HA.
[guestshell@guestshell ~]$ pip install csr_azure_ha --user [guestshell@guestshell ~]$ source ~/.bashrc
Étape 3. Configurez les paramètres HA sur le routeur principal (vous pouvez utiliser MSI ou AAD pour cette étape).
[guestshell@guestshell ~]$ create_node -i 10 -p azure -s xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxxx -g ResourceGroup -t Private-RouteTable -r 0.0.0.0/0 -n 10.1.0.10 -m primary
[guestshell@guestshell ~]$ create_node -i 10 -p azure -s xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxxx -g ResourceGroup -t Private-RouteTable -r 0.0.0.0/0 -n 10.1.0.10 -m primary -a 1e0f69c3-b6aa-46cf-b5f9-xxxxxxxxx -d ae49849c-2622-4d45-b95e-xxxxxxxxx -k bDEN1k8batJqpeqjAuUvaUCZn5Md6rWEi=
Étape 4. Configurez les paramètres HA sur le routeur secondaire.
[guestshell@guestshell ~]$ create_node -i 10 -p azure -s xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxxx -g ResourceGroup -t Private-RouteTable -r 0.0.0.0/0 -n 10.1.0.11 -m secondary
[guestshell@guestshell ~]$ create_node -i 10 -p azure -s xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxxx --g ResourceGroup -t Private-RouteTable -r 0.0.0.0/0 -n 10.0.0.11 -m secondary -a 1e0f69c3-b6aa-46cf-b5f9-xxxxxxxxx -d ae49849c-2622-4d45-b95e-xxxxxxxxx -k bDEN1k8batJqpeqjAuUvaUCZn5Md6rWEi=
Note: Assurez-vous que le compte de service associé aux routeurs CSR 1000v dispose au moins d'une autorisation d'administrateur réseau de calcul.
Étape 1. Installez le paquet python HA.
[guestshell@guestshell ~]$ pip install csr_gcp_ha --user [guestshell@guestshell ~]$ source ~/.bashrc
Étape 2. Configurez les paramètres HA sur le routeur principal.
[guestshell@guestshell ~]$ create_node -i 1 -g -r dest_network -o 200 -n nexthop_ip_addr -a route-vpc2-csr1 -b route-vpc2-csr2 -p gcp -v vpc_name
Étape 3. Configurez les paramètres HA sur le routeur secondaire.
[guestshell@guestshell ~]$ create_node -i 1 -g -r dest_network -o 200 -n nexthop_ip_addr -a route-vpc2-csr2 -b route-vpc2-csr1 -p gcp -v vpc_name
Référez-vous à cette section pour vous assurer du bon fonctionnement de votre configuration.
Étape 1. Déclenchez un basculement avec l'indicateur node_event.py peerFail.
[guestshell@guestshell ~]$ node_event.py -i 10 -e peerFail 200: Node_event processed successfully
Étape 2. Accédez à la table de routage privé de votre fournisseur de cloud, vérifiez que la route a mis à jour le saut suivant vers la nouvelle adresse IP.
Il n'existe actuellement aucune information de dépannage spécifique pour cette configuration.