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 le guide de configuration sur la façon de déployer des routeurs CSR1000v pour la haute disponibilité sur le cloud Amazon AWS. Il vise à donner aux utilisateurs une connaissance pratique de la haute disponibilité et la capacité de déployer un banc d'essai entièrement fonctionnel.
Pour plus d'informations sur AWS et HA, reportez-vous à la section.
Cisco vous recommande de prendre connaissance des rubriques suivantes :
Les informations contenues dans ce document sont basées sur Cisco IOS-XE® Denali 16.7.1.
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 en ligne, assurez-vous de bien comprendre l’incidence possible des commandes.
Dans un environnement à zones de disponibilité multiples, simulez le trafic continu du data center privé (VM) vers Internet. Simulez un basculement de haute disponibilité et observez que la haute disponibilité réussit lorsque la table de routage commute le trafic de CSRHA vers l'interface privée de CSRHA1.
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.
Il existe différents scénarios de déploiement haute disponibilité en fonction des besoins du réseau. Dans cet exemple, la redondance haute disponibilité est configurée avec les paramètres suivants :
Une paire haute disponibilité comprend deux routeurs CSR1000v, dans deux zones de disponibilité différentes. Considérez chaque zone de disponibilité comme un data center distinct pour une résilience matérielle supplémentaire.
La troisième zone est une machine virtuelle qui simule un périphérique dans un data center privé. Pour l'instant, l'accès à Internet est activé via l'interface publique sur afin que vous puissiez accéder à la machine virtuelle et la configurer. En général, tout le trafic normal doit transiter par la table de routage privé.
Envoyez une requête ping à l'interface privée de la VM → table de routage privé → CSRHA → 8.8.8.8 pour la simulation du trafic. Dans un scénario de basculement, observez que la table de routage privé a commuté la route vers l'interface privée de CSRHA1.
RTB : ID de la table de routage.
CIDR : adresse de destination de la route à mettre à jour dans la table de routage.
ENI : ID d'interface réseau de l'interface Gigabit CSR 1000v vers laquelle le trafic est acheminé.
Par exemple, si CSRHA échoue, CSRHA1 prend le relais et met à jour la route dans la table de route AWS pour pointer vers son propre ENI.
REGION - Région AWS de CSR 1000v.
Le flux général de configuration doit commencer par la fonctionnalité la plus englobante (Région/VPC) et descendre jusqu'à la fonctionnalité la plus spécifique (Interface/sous-réseau). Cependant, il n'existe pas d'ordre de configuration spécifique. Avant de commencer, il est important de bien comprendre la topologie.
Astuce : Donnez des noms à tous vos paramètres (VPC, Interface, Sous-réseau, Tables de routage, etc.).
Cet exemple utilise US West (Oregon).
Les groupes de sécurité sont comme des listes de contrôle d’accès pour autoriser ou refuser le trafic.
IAM accorde à votre CSR l'accès aux API Amazon.
Le routeur CSR1000v est utilisé comme proxy pour appeler les commandes de l'API AWS afin de modifier la table de routage. Par défaut, les AMI ne sont pas autorisés à accéder aux API. Cette procédure crée un rôle IAM qui est utilisé lors du lancement d'une instance CSR. IAM fournit les informations d'identification d'accès permettant aux CSR d'utiliser et de modifier les API AWS.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:AssociateRouteTable", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:DeleteRoute", "ec2:DeleteRouteTable", "ec2:DescribeRouteTables", "ec2:DescribeVpcs", "ec2:ReplaceRoute", "ec2:DisassociateRouteTable", "ec2:ReplaceRouteTableAssociation" ], "Resource": "*" } ] }
Chaque routeur CSR1000v possède 2 interfaces (1 publique, 1 privée) et se trouve dans sa propre zone de disponibilité. Vous pouvez penser que chaque CSR se trouve dans des data centers distincts.
Note: Le sous-réseau créé à l'étape précédente peut ne pas apparaître dans cette liste déroulante. Vous devrez peut-être actualiser ou annuler la page et recommencer pour que le sous-réseau apparaisse.
Note: Si vous perdez votre clé privée, vous ne pourrez plus vous connecter à votre CSR. Il n'existe aucune méthode de récupération des clés.
Note: La terminologie publique/privée peut vous dérouter ici. Pour les besoins de cet exemple, la définition d'une interface publique est Eth0, qui est l'interface Internet. Du point de vue d'AWS, notre interface publique est leur adresse IP privée.
Par défaut, cette vérification de la source/destination est activée pour tous les ENI. Fonction anti-usurpation destinée à éviter qu'un ENI soit submergé par du trafic qui n'est pas réellement destiné à lui en vérifiant que l'ENI est la destination du trafic avant de le transmettre. Le routeur est rarement la destination réelle d’un paquet. Cette fonctionnalité doit être désactivée sur tous les ENI de transit CSR ou elle ne peut pas transférer de paquets.
Note: Le nom d'utilisateur fourni par AWS à SSH dans le CSR1000v peut être incorrectement répertorié comme racine. Remplacez-le par ec2-user si nécessaire.
Note: Vous devez pouvoir envoyer une requête ping à l'adresse DNS vers SSH dans. Le voici : ec2-54-208-234-64.compute-1.amazonaws.com. Vérifiez que le sous-réseau/eni public du routeur est associé à la table de routage publique. Passez brièvement à l’étape 8 pour savoir comment associer le sous-réseau à la table de routage.
Sous-réseau public : 10.16.1.0/24
Sous-réseau privé : 10.16.5.0/24
Si vous ne parvenez pas à envoyer une requête ping à l’adresse IP élastique de ce nouvel AMI, passez brièvement à l’étape 8 et vérifiez que le sous-réseau public est associé à la table de routage public.
Pour cet exemple, utilisez Ubuntu Server 14.04 LTS sur le marché.
Sous-réseau public : 10.16.2.0/24
Sous-réseau privé : 10.16.6.0/24
Si vous ne parvenez pas à envoyer une requête ping à l’adresse IP élastique de ce nouvel AMI, passez brièvement à l’étape 8 et vérifiez que le sous-réseau public est associé à la table de routage public.
ubuntu@ip-10-16-2-139:~$ cd /etc/network/interfaces.d/ ubuntu@ip-10-16-2-139:/etc/network/interfaces.d$ sudo vi eth1.cfg auto eth1 iface eth1 inet static address 10.16.6.131 netmask 255.255.255.0 network 10.16.6.0 up route add -host 8.8.8.8 gw 10.16.6.1 dev eth1
ubuntu@ip-10-16-2-139:/etc/network/interfaces.d$ sudo ifdown eth1 && sudo ifup eth1 ubuntu@ip-10-16-2-139:/etc/network/interfaces.d$ sudo reboot
ubuntu@ip-10-16-2-139:~$ route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 10.16.2.1 0.0.0.0 UG 0 0 0 eth0 8.8.8.8 10.16.6.1 255.255.255.255 UGH 0 0 0 eth1 <-------------- 10.16.3.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 10.16.6.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
Si 8.8.8.8 n'est pas répertorié dans le tableau, ajoutez-le manuellement :
ubuntu@ip-10-16-2-139:~$ sudo route add -host 8.8.8.8 gw 10.16.6.1 dev eth1
3 Les interfaces publiques sont associées à la table de routage publique :
Sous-réseaux publics : 10.16.0.0/24, 10.16.1.0/24, 10.16.2.0/24
3 Les interfaces privées sont associées à la table de routage privé :
Sous-réseaux privés : 10.16.4.0/24, 10.16.5.0/24, 10.16.6.0/24
Configurez le tunnel GRE (Generic Routing Encapsulation) via les adresses IP élastiques des routeurs CSR 1000v (recommandé pour éviter les problèmes de renouvellement de bail DHCP, qui détectent les erreurs). Les valeurs BFD (Biderection Forwarding Detection) peuvent être configurées pour être plus agressives que celles indiquées dans cet exemple, si une convergence plus rapide est requise. Cependant, cela peut entraîner des événements d'homologue inactif BFD pendant une connectivité intermittente. Les valeurs de cet exemple détectent une défaillance d'homologue dans un délai de 1,5 seconde. Il existe un délai variable d’environ quelques secondes entre l’exécution de la commande AWS API et l’entrée en vigueur des modifications de la table de routage VPC.
GRE et BFD : utilisés pour observer les conditions de basculement haute disponibilité
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 52.10.183.185 /* Elastic IP of the peer CSR */ ! router eigrp 1 bfd interface Tunnel1 network 192.168.1.0 passive-interface GigabitEthernet1
NAT et routage : utilisés pour l'accessibilité Internet des VM via l'interface privée
interface GigabitEthernet1 ip address dhcp ip nat outside no shutdown ! interface GigabitEthernet2 ip address dhcp ip nat inside no shutdown ! ip nat inside source list 10 interface GigabitEthernet1 overload ! access-list 10 permit 10.16.6.0 0.0.0.255 ! ip route 10.16.6.0 255.255.255.0 GigabitEthernet2 10.16.4.1
GRE et BFD : utilisés pour observer les conditions de basculement haute disponibilité
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 50.112.227.77 /* Elastic IP of the peer CSR */ ! router eigrp 1 bfd interface Tunnel1 network 192.168.1.0 passive-interface GigabitEthernet1
NAT et routage : utilisés pour l'accessibilité Internet des VM via l'interface privée
interface GigabitEthernet1 ip address dhcp ip nat outside no shutdown ! interface GigabitEthernet2 ip address dhcp ip nat inside no shutdown ! ip nat inside source list 10 interface GigabitEthernet1 overload ! access-list 10 permit 10.16.6.0 0.0.0.255 ! ip route 10.16.6.0 255.255.255.0 GigabitEthernet2 10.16.5.1
Surveillez les événements d'homologue BFD en configurant chaque CSR 1000v à l'aide de la commande aws du fournisseur cloud spécifiée ci-dessous. Utilisez cette commande pour définir les modifications de routage vers (VPC) Route-table-id, Network-interface-id et CIDR après la détection d'une erreur AWS HA, telle que BFD peer down.
CSR(config)# redundancy CSR(config-red)# cloud provider [aws | azure] node-id # bfd peer ipaddr # route-table table-name # cidr ip ipaddr/prefix # eni elastic-network-intf-name # region region-name
CSRHA#show bfd neighbors IPv4 Sessions NeighAddr LD/RD RH/RS State Int 192.168.1.2 4097/4097 Up Up Tu1
Exemple de configuration de redondance sur CSRHA
redundancy cloud provider aws 1 bfd peer 192.168.1.2 route-table rtb-ec081d94 cidr ip 8.8.8.8/32 eni eni-90b500a8 region us-west-2
Exemple de configuration de redondance sur CSRHA1
redundancy cloud provider aws 1 bfd peer 192.168.1.1 route-table rtb-ec081d94 cidr ip 8.8.8.8/32 eni eni-10e3a018 region us-west-2
CSRHA#show bfd nei IPv4 Sessions NeighAddr LD/RD RH/RS State Int 192.168.1.2 4097/4097 Up Up Tu1 CSRHA#show ip eigrp neighbors EIGRP-IPv4 Neighbors for AS(1) H Address Interface Hold Uptime SRTT RTO Q Seq (sec) (ms) Cnt Num 0 192.168.1.2 Tu1 12 00:11:57 1 1470 0 2
CSRHA#show redundancy cloud provider aws 1 Cloud HA: work_in_progress=FALSE Provider : AWS node 1 State : idle BFD peer = 192.168.1.2 BFD intf = Tunnel1 route-table = rtb-ec081d94 cidr = 8.8.8.8/32 eni = eni-90b500a8 region = us-west-2
ubuntu@ip-10-16-3-139:~$ ping -I eth1 8.8.8.8 PING 8.8.8.8 (8.8.8.8) from 10.16.6.131 eth1: 56(84) bytes of data. 64 bytes from 8.8.8.8: icmp_seq=1 ttl=50 time=1.60 ms 64 bytes from 8.8.8.8: icmp_seq=2 ttl=50 time=1.62 ms 64 bytes from 8.8.8.8: icmp_seq=3 ttl=50 time=1.57 ms
CSRHA(config)#int Tun1 CSRHA(config-if)#shut
show redundancy cloud provider [aws | azure] node-id debug redundancy cloud [all | trace | detail | error] debug ip http all
Résolution : Le protocole HTTP est utilisé pour envoyer l'appel d'API du CSR à AWS. Assurez-vous que DNS peut résoudre le nom DNS répertorié dans votre instance. Assurez-vous que le trafic http n'est pas bloqué.
*May 30 20:08:06.922: %VXE_CLOUD_HA-3-FAILED: VXE Cloud HA BFD state transitioned, AWS node 1 event httpc_send_request failed *May 30 20:08:06.922: CLOUD-HA : AWS node 1 httpc_send_request failed (0x12) URL=http://ec2.us-east-2b.amazonaws.com
Résolution : Le nom de la région et l'ENI sont incorrectement configurés dans différents réseaux. Region et ENI doivent se trouver dans la même zone que le routeur.
*May 30 23:38:09.141: CLOUD-HA : res content iov_len=284 iov_base=<?xml version="1.0" encoding="UTF-8"?> <Response><Errors><Error><Code>InvalidParameterValue</Code><Message>route table rtb-9c0000f4 and interface eni-32791318 belong to different networks</Message></Error></Errors><RequestID>af3f228c-d5d8-4b23-b22c-f6ad999e70bd</RequestID></Response>
Résolution : Rôle/stratégie JSON IAM créé de manière incorrecte ou non appliqué au CSR. Le rôle IAM autorise le CSR à effectuer des appels API.
*May 30 22:22:46.437: CLOUD-HA : res content iov_len=895 iov_base=<?xml version="1.0" encoding="UTF-8"?> <Response><Errors><Error><Code>UnauthorizedOperation</Code><Message>You are not authorized to perform this operation. Encoded
authorization failure message: qYvEB4MUdOB8m2itSteRgnOuslAaxhAbDph5qGRJkjJbrESajbmF5HWUR-MmHYeRAlpKZ3Jg_y-_tMlYel5l_ws8Jd9q2W8YDXBl3uXQqfW_cjjrgy9jhnGY0nOaNu65aLpfqui8kS_4RPOpm5grRFfo99-8uv_N3mYaBqKFPn3vUcSYKBmxFIIkJKcjY9esOeLIOWDcnYGGu6AGGMoMxWDtk0K8nwk4IjLDcnd2cDXeENS45w1PqzKGPsHv3wD28TS5xRjIrPXYrT18UpV6lLA_09Oh4737VncQKfzbz4tPpnAkoW0mJLQ1vDpPmNvHUpEng8KrGWYNfbfemoDtWqIdABfaLLLmh4saNtnQ_OMBoTi4toBLEb2BNdMkl1UVBIxqTqdFUVRS**MSG 00041 TRUNCATED** **MSG 00041 CONTINUATION #01**qLosAb5Yx0DrOsLSQwzS95VGvQM_n87LBHYbAWWhqWj3UfP_zmiak7dlm9P41mFCucEB3Cs4FRsFtb-9q44VtyQJaS2sU2nhGe3x4uGEsl7F1pNv5vhVeYOZB3tbOfbV1_Y4trZwYPFgLKgBShZp-WNmUKUJsKc1-6KGqmp7519imvh66JgwgmU9DT_qAZ-jEjkqWjBrxg6krw</Message></Error></Errors><RequestID>4cf31249-2a6e-4414-ae8d-6fb825b0f398</RequestID></Response>