La documentazione per questo prodotto è stata redatta cercando di utilizzare un linguaggio senza pregiudizi. Ai fini di questa documentazione, per linguaggio senza di pregiudizi si intende un linguaggio che non implica discriminazioni basate su età, disabilità, genere, identità razziale, identità etnica, orientamento sessuale, status socioeconomico e intersezionalità. Le eventuali eccezioni possono dipendere dal linguaggio codificato nelle interfacce utente del software del prodotto, dal linguaggio utilizzato nella documentazione RFP o dal linguaggio utilizzato in prodotti di terze parti a cui si fa riferimento. Scopri di più sul modo in cui Cisco utilizza il linguaggio inclusivo.
Cisco ha tradotto questo documento utilizzando una combinazione di tecnologie automatiche e umane per offrire ai nostri utenti in tutto il mondo contenuti di supporto nella propria lingua. Si noti che anche la migliore traduzione automatica non sarà mai accurata come quella fornita da un traduttore professionista. Cisco Systems, Inc. non si assume alcuna responsabilità per l’accuratezza di queste traduzioni e consiglia di consultare sempre il documento originale in inglese (disponibile al link fornito).
In questo documento viene descritto come configurare i router CSR1000v per l'alta disponibilità versione 3 (HAv3) su Amazon Web Services (AWS), Microsoft Azure e Google Cloud Platform (GCP).
Cisco raccomanda la conoscenza dei seguenti argomenti:
In questo articolo si presume che la configurazione di rete sottostante sia già stata completata e si concentra sulla configurazione HAv3.
Per informazioni dettagliate sulla configurazione, consultare la guida alla configurazione di Cisco CSR 1000v e del software Cisco ISRv.
Le informazioni fornite in questo documento si basano sulle seguenti versioni software e hardware:
Le informazioni discusse in questo documento fanno riferimento a dispositivi usati in uno specifico ambiente di emulazione. Su tutti i dispositivi menzionati nel documento la configurazione è stata ripristinata ai valori predefiniti. Se la rete è operativa, valutare attentamente eventuali conseguenze derivanti dall'uso dei comandi.
Cisco raccomanda la conoscenza delle diverse versioni HA disponibili:
HAv3 è disponibile da Cisco IOS®-XE Polaris 16.11.1s e aggiunge diverse nuove funzioni:
Nota: Le risorse distribuite in AWS, Azure o GCP dalle fasi di questo documento possono sostenere un costo.
Prima di iniziare la configurazione, è importante comprendere completamente la topologia e la progettazione. In questo modo è possibile risolvere eventuali problemi in un secondo momento.
Sebbene il diagramma della topologia di rete sia basato su AWS, la distribuzione di rete sottostante tra i cloud è relativamente simile. La topologia di rete è inoltre indipendente dalla versione HA utilizzata, che si tratti di HAv1, HAv2 o HAv3.
Per questo esempio di topologia, la ridondanza HA è configurata con queste impostazioni in AWS:
In una coppia HA sono presenti due router CSR1000v, in due diverse zone di disponibilità. La terza zona è un'istanza privata, che simula un dispositivo in un centro dati privato. In genere, tutto il traffico normale deve passare attraverso la tabella di route privata (o interna).
Passaggio 1. Configurare l'hosting dell'app IOX e la shell dei guest, in modo da fornire la raggiungibilità IP nella shell dei guest. Questo passaggio può essere configurato automaticamente per impostazione predefinita quando viene installato 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
Passaggio 2. Abilitare e accedere a Guestshell.
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 ~]$
Nota: Per ulteriori informazioni su guestshell, vedere - Guida alla configurazione della programmabilità
Passaggio 3. Verificare che Guestshell sia in grado di comunicare con 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
Passaggio 4. (Facoltativo) Abilitare il rilevamento BFD (Bi-Directional Forwarding Detection) e un protocollo di routing come EIGRP (Enhanced Interior Gateway Routing Protocol) o BGP (Border Gateway Protocol) sul tunnel per il rilevamento degli errori dei peer. Configurare un tunnel VxLAN o IPsec tra i router 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
Passaggio 4.1. (Facoltativo) Configurare le interfacce EIGRP over 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
Passaggio 1. Configurare l'autenticazione con IAM.
Affinché il router CSR1000v possa aggiornare una tabella di routing nella rete AWS, è necessario autenticare il router. In AWS, è necessario creare un criterio che consenta al router CSR 1000v di accedere alla tabella di routing. Viene quindi creato un ruolo IAM che utilizza questo criterio e viene applicato alla risorsa EC2.
Dopo aver creato le istanze di CSR 1000v EC2, il ruolo IAM creato deve essere collegato a ciascun router
Il criterio utilizzato nel nuovo ruolo IAM è:
{ "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": "*" } ] }
Nota: Per ulteriori informazioni, fare riferimento al ruolo IAM con un criterio e associarlo al VPC.
Passaggio 2. Installare il pacchetto Python HA.
[guestshell@guestshell ~]$ pip install csr_aws_ha --user [guestshell@guestshell ~]$ source ~/.bashrc
Passaggio 3. Configurare i parametri HA sul router primario.
[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
Passaggio 4. Configurare i parametri HA sul router secondario.
[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
Nota: L'interfaccia rivolta verso l'esterno deve essere configurata su Gigabit Ethernet1. Questa è l'interfaccia usata per raggiungere le API di Azure. HA non può funzionare correttamente in caso contrario. All'interno di guestshell, verificare che il comando curl possa recuperare i metadati da Azure.
[guestshell@guestshell ~]$ curl -H "Metadata:true" http://169.254.169.254/metadata/instance?api-version=2020-06-01
Passaggio 1. L'autenticazione per le chiamate all'API CSR1000v deve essere abilitata con Azure Active Directory (AAD) o Managed Service Identity (MSI). Per ulteriori informazioni, fare riferimento a Configurazione dell'autenticazione per le chiamate all'API CSR1000v. Senza questo passaggio, il router CSR1000v non può essere autorizzato ad aggiornare la tabella dei percorsi.
Parametri AAD
Passaggio 2. Installare il pacchetto Python HA.
[guestshell@guestshell ~]$ pip install csr_azure_ha --user [guestshell@guestshell ~]$ source ~/.bashrc
Passaggio 3. Configurare i parametri HA sul router primario (per questo passaggio è possibile utilizzare MSI o AAD).
[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=
Passaggio 4. Configurare i parametri HA sul router secondario.
[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=
Nota: Verificare che l'account del servizio associato ai router CSR 1000v disponga almeno di un'autorizzazione di amministratore di rete di calcolo.
Passaggio 1. Installare il pacchetto Python HA.
[guestshell@guestshell ~]$ pip install csr_gcp_ha --user [guestshell@guestshell ~]$ source ~/.bashrc
Passaggio 2. Configurare i parametri HA sul router primario.
[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
Passaggio 3. Configurare i parametri HA sul router secondario.
[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
Per verificare che la configurazione funzioni correttamente, consultare questa sezione.
Passaggio 1. Attivare un failover con il flag peerFail node_event.py.
[guestshell@guestshell ~]$ node_event.py -i 10 -e peerFail 200: Node_event processed successfully
Passaggio 2. Passare alla tabella delle route private del provider del cloud, verificare che la route abbia aggiornato l'hop successivo al nuovo indirizzo IP.
Al momento non sono disponibili informazioni specifiche per la risoluzione dei problemi di questa configurazione.