El conjunto de documentos para este producto aspira al uso de un lenguaje no discriminatorio. A los fines de esta documentación, "no discriminatorio" se refiere al lenguaje que no implica discriminación por motivos de edad, discapacidad, género, identidad de raza, identidad étnica, orientación sexual, nivel socioeconómico e interseccionalidad. Puede haber excepciones en la documentación debido al lenguaje que se encuentra ya en las interfaces de usuario del software del producto, el lenguaje utilizado en función de la documentación de la RFP o el lenguaje utilizado por un producto de terceros al que se hace referencia. Obtenga más información sobre cómo Cisco utiliza el lenguaje inclusivo.
Cisco ha traducido este documento combinando la traducción automática y los recursos humanos a fin de ofrecer a nuestros usuarios en todo el mundo contenido en su propio idioma. Tenga en cuenta que incluso la mejor traducción automática podría no ser tan precisa como la proporcionada por un traductor profesional. Cisco Systems, Inc. no asume ninguna responsabilidad por la precisión de estas traducciones y recomienda remitirse siempre al documento original escrito en inglés (insertar vínculo URL).
Este documento describe los pasos para configurar los routers CSR1000v para la versión 3 de alta disponibilidad (HAv3) en Amazon Web Services (AWS), Microsoft Azure y Google Cloud Platform (GCP).
Cisco recomienda que tenga conocimiento sobre estos temas:
Este artículo asume que la configuración de red subyacente ya se ha completado y se centra en la configuración de HAv3.
Los detalles completos de la configuración se encuentran en la Guía de Configuración del Software Cisco CSR 1000v y Cisco ISRv.
La información que contiene este documento se basa en las siguientes versiones de software y hardware.
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 su red está activa, asegúrese de comprender el impacto potencial de cualquier comando.
Cisco recomienda que tenga conocimiento de diferentes versiones de HA disponibles:
HAv3 está disponible en Cisco IOS®-XE Polaris 16.11.1s y agrega varias nuevas funciones:
Nota: Los recursos implementados en AWS, Azure o GCP a partir de los pasos de este documento pueden generar un costo.
Antes de que comience la configuración, es importante comprender completamente la topología y el diseño. Esto ayuda a resolver cualquier problema potencial más adelante.
Aunque el diagrama de topología de red se basa en AWS, la implementación de red subyacente entre nubes es relativamente similar. La topología de red también es independiente de la versión de HA utilizada, ya sea HAv1, HAv2 o HAv3.
Para este ejemplo de topología, la redundancia HA se configura con estos ajustes en AWS:
Hay dos routers CSR1000v en un par HA, en dos zonas de disponibilidad diferentes. La tercera zona es una instancia privada, que simula un dispositivo en un Data Center privado. Generalmente, todo el tráfico normal debe fluir a través de la tabla de ruta privada (o interna).
Paso 1. Configure el alojamiento de aplicaciones IOX y el shell de invitado, esto proporciona alcance de ip en el shell de invitado. Este paso se puede configurar automáticamente de forma predeterminada cuando se despliega 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
Paso 2. Habilite e inicie sesión en el shell de invitado.
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: Para obtener más información sobre el shell de invitado, consulte - Guía de Configuración de Programmability
Paso 3. Confirme que el shell pueda comunicarse 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
Paso 4. (Opcional) Habilite la detección de reenvío bidireccional (BFD) y un protocolo de routing como protocolo de routing de gateway interior mejorado (EIGRP) o protocolo de gateway fronterizo (BGP) en el túnel para la detección de fallos entre pares. Configure un túnel VxLAN o IPsec entre los routers 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
Paso 4.1. (Opcional) Configure EIGRP sobre Interfaces de Túnel.
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
Paso 1. Configure la autenticación con IAM.
Para que el router CSR1000v actualice una tabla de ruteo en la red AWS, el router debe autenticarse. En AWS, debe crear una política que permita al router CSR 1000v acceder a la tabla de rutas. A continuación, se crea una función IAM que utiliza esta política y se aplica al recurso EC2.
Después de crear las instancias CSR 1000v EC2, la función IAM creada debe estar conectada a cada router.
La política utilizada en la nueva función de IAM es:
{ "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: Refiérase a la función IAM con una política y asóciela al VPC para ver los pasos detallados.
Paso 2. Instale el paquete HA python.
[guestshell@guestshell ~]$ pip install csr_aws_ha --user [guestshell@guestshell ~]$ source ~/.bashrc
Paso 3. Configure los parámetros HA en el 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
Paso 4. Configure los parámetros HA en el router secundario.
[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: La interfaz de cara externa se debe configurar en GigabitEthernet1. Esta es la interfaz utilizada para alcanzar las API de Azure. De lo contrario, HA no puede funcionar correctamente. Dentro del shell, asegúrese de que el comando curl pueda obtener metadatos de Azure.
[guestshell@guestshell ~]$ curl -H "Metadata:true" http://169.254.169.254/metadata/instance?api-version=2020-06-01
Paso 1. La autenticación para llamadas API CSR1000v debe estar habilitada con Azure Active Directory (AAD) o con la identidad de servicio administrado (MSI). Consulte Configuración de la Autenticación para Llamadas API CSR1000v para ver los pasos detallados. Sin este paso, el router CSR1000v no puede estar autorizado para actualizar la tabla de rutas.
Parámetros AAD
Paso 2. Instale el paquete HA python.
[guestshell@guestshell ~]$ pip install csr_azure_ha --user [guestshell@guestshell ~]$ source ~/.bashrc
Paso 3. Configure los parámetros HA en el router primario (se puede utilizar MSI o AAD para este paso).
[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=
Paso 4. Configure los parámetros HA en el router secundario.
[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: Asegúrese de que la cuenta de servicio asociada a los routers CSR 1000v tenga al menos un permiso de administración de red informática.
Paso 1. Instale el paquete HA python.
[guestshell@guestshell ~]$ pip install csr_gcp_ha --user [guestshell@guestshell ~]$ source ~/.bashrc
Paso 2. Configure los parámetros HA en el 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
Paso 3. Configure los parámetros HA en el router secundario.
[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
Use esta sección para confirmar que su configuración funciona correctamente.
Paso 1. Activa una conmutación por fallas con el indicador node_event.py peerFail.
[guestshell@guestshell ~]$ node_event.py -i 10 -e peerFail 200: Node_event processed successfully
Paso 2. Navegue hasta la Tabla de rutas privadas de su proveedor de nube, verifique que la ruta haya actualizado el siguiente salto a la nueva dirección IP.
Actualmente, no hay información específica de troubleshooting disponible para esta configuración.