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 la guía de configuración sobre cómo implementar routers CSR1000v para alta disponibilidad en la nube de Amazon AWS. Su objetivo es proporcionar a los usuarios conocimientos prácticos de HA y la capacidad de implementar un banco de pruebas completamente funcional.
Para obtener más información sobre AWS y HA, consulte la sección.
Cisco recomienda que tenga conocimiento sobre estos temas:
La información de este documento se basa en Denali 16.7.1 de Cisco IOS-XE®.
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 tiene una red en vivo, asegúrese de entender el posible impacto de cualquier comando.
En un entorno de zona de disponibilidad múltiple, simule el tráfico continuo desde el Data Center privado (VM) a Internet. Simule una conmutación por fallo de HA y observe que HA funciona correctamente cuando se confirma el tráfico de switches de la tabla de routing de CSRHA a la interfaz privada de CSRHA1.
Antes de que se inicie la configuración, es importante comprender completamente la topología y el diseño. Esto ayuda a resolver cualquier problema potencial más adelante.
Hay varias situaciones de implementación de HA basadas en los requisitos de la red. Para este ejemplo, la redundancia de HA se configura con estas configuraciones:
Hay dos routers CSR1000v en un par HA, en dos zonas de disponibilidad diferentes. Considere cada zona de disponibilidad como un Data Center independiente para disfrutar de una resistencia de hardware adicional.
La tercera zona es una VM, que simula un dispositivo en un Data Center privado. Por ahora, el acceso a Internet está habilitado a través de la interfaz pública en para que pueda acceder y configurar la VM. Generalmente, todo el tráfico normal debe fluir a través de la tabla de rutas privadas.
Haga ping en la interfaz privada de la máquina virtual → tabla de rutas privadas → CSRHA → 8.8.8.8 para la simulación de tráfico. En un escenario de failover, observe que la tabla de ruta privada ha conmutado la ruta para señalar a la interfaz privada de CSRHA1.
RTB: ID de la tabla de rutas.
CIDR: dirección de destino para la ruta que se actualizará en la tabla de rutas.
ENI: ID de la interfaz de red de la interfaz gigabit CSR 1000v a la que se enruta el tráfico.
Por ejemplo, si CSRHA falla, CSRHA1 toma el control y actualiza la ruta en la tabla de rutas AWS para que apunte a su propio ENI.
REGIÓN: la región AWS de CSR 1000v.
El flujo general de configuración consiste en comenzar por la función más completa (Región/VPC) y descender hasta la más específica (Interfaz/subred). Sin embargo, no existe un orden específico de configuración. Antes de comenzar, es importante entender la topología primero .
Consejo: Dé nombres a todos sus parámetros (VPC, interfaz, subred, tablas de rutas, etc.).
Este ejemplo utiliza US West (Oregón).
Los grupos de seguridad son como las ACL para permitir o denegar el tráfico.
IAM le otorga a su CSR acceso a las API de Amazon.
El CSR1000v se utiliza como proxy para llamar a los comandos API de AWS para modificar la tabla de rutas. De forma predeterminada, los AMI no pueden acceder a las API. Este procedimiento crea un rol IAM y este rol se utiliza durante el inicio de una instancia CSR. IAM proporciona las credenciales de acceso para que los CSR utilicen y modifiquen las API de 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": "*" } ] }
Cada router CSR1000v tiene 2 interfaces (1 pública y 1 privada) y se encuentra en su propia zona de disponibilidad. Puede pensar en cada CSR como si se encontrara en Data Centers independientes.
Nota: Es posible que la subred creada en el paso anterior no aparezca en esta lista desplegable. Es posible que tenga que actualizar o cancelar la página y volver a empezar para que aparezca la subred.
Nota: Si pierde su clave privada, no podrá volver a iniciar sesión en su CSR. No hay ningún método para recuperar claves.
Nota: La terminología pública/privada puede confundirle aquí. A efectos de este ejemplo, la definición de una interfaz pública es Eth0, que es la interfaz de cara a Internet. Desde el punto de vista de AWS, nuestra interfaz pública es su IP privada.
De forma predeterminada, todos los ENI vienen con esta verificación de origen/destino habilitada. Una función antisimulación diseñada para evitar dejar que un ENI se vea desbordado por tráfico que no está realmente destinado a él, verificando que el ENI es el destino del tráfico antes de reenviarlo. El router rara vez es el destino real de un paquete. Esta función debe estar inhabilitada en todos los ENI de tránsito CSR o no puede reenviar paquetes.
Nota: Es posible que el nombre de usuario proporcionado por AWS a SSH en el CSR1000v se incluya incorrectamente como raíz. Cambie esto a ec2-user si es necesario.
Nota: Debe poder hacer ping a la dirección DNS para SSH en. Aquí está ec2-54-208-234-64.compute-1.amazonaws.com. Verifique que la subred/eni pública del router esté asociada con la Tabla de rutas públicas. Vaya brevemente al paso 8 para saber cómo asociar la subred a la tabla de rutas.
Subred pública: 10.16.1.0/24
Subred privada: 10.16.5.0/24
Si no puede hacer ping a la dirección IP elástica de este nuevo AMI, vaya brevemente al paso 8 y asegúrese de que la subred pública esté asociada a la tabla de rutas públicas.
Para este ejemplo, utilice Ubuntu Server 14.04 LTS en el mercado.
Subred pública: 10.16.2.0/24
Subred privada: 10.16.6.0/24
Si no puede hacer ping a la dirección IP elástica de este nuevo AMI, vaya brevemente al paso 8 y asegúrese de que la subred pública esté asociada a la tabla de rutas públicas.
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 no aparece en la tabla, agréguela manualmente:
ubuntu@ip-10-16-2-139:~$ sudo route add -host 8.8.8.8 gw 10.16.6.1 dev eth1
3 Las interfaces públicas están asociadas con la tabla de rutas públicas:
Subredes públicas: 10.16.0.0/24, 10.16.1.0/24 y 10.16.2.0/24
3 Las interfaces privadas están asociadas con la tabla de rutas privadas:
Subredes privadas: 10.16.4.0/24, 10.16.5.0/24 y 10.16.6.0/24
Configure el túnel de encapsulación de routing genérico (GRE) a través de las IP elásticas de los CSR 1000v (se recomienda evitar los problemas de renovación de concesión de DHCP, que detectan fallos falsos). Los valores de detección de reenvío de bidireccionamiento (BFD) se pueden configurar para que sean más agresivos que los que se muestran en este ejemplo, si se requiere una convergencia más rápida. Sin embargo, esto puede llevar a eventos de peer down BFD durante la conectividad intermitente. Los valores de este ejemplo detectan fallas de peer en 1,5 segundos. Hay un retraso variable de unos pocos segundos entre el momento en que se ejecuta el comando API de AWS y cuando los cambios en la tabla de ruteo VPC entran en efecto.
GRE y BFD: se utilizan para observar las condiciones de conmutación por fallo de HA
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 y routing: se utiliza para la accesibilidad a Internet de VM a través de la interfaz privada
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 y BFD: se utilizan para observar las condiciones de conmutación por fallo de HA
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 y routing: se utiliza para la accesibilidad a Internet de VM a través de la interfaz privada
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
Supervise los eventos de peer down BFD configurando cada CSR 1000v mediante el comando del proveedor de nube aws especificado a continuación. Utilice este comando para definir los cambios de ruteo a (VPC) Route-table-id, Network-interface-id y CIDR después de que se detecte un error AWS HA como un peer down BFD.
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
Ejemplo de Configuración de Redundancia en 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
Ejemplo de Configuración de Redundancia en 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
Resolución: Http se utiliza para enviar la llamada API desde el CSR a AWS. Asegúrese de que DNS puede resolver el nombre DNS que aparece en la instancia. Asegúrese de que el tráfico http no esté bloqueado.
*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
Resolución: El nombre de región y ENI no están configurados correctamente en redes diferentes. La región y ENI deben estar en la misma zona que el router.
*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>
Resolución: Función/política IAM JSON creada incorrectamente o no aplicada a CSR. El rol IAM autoriza al CSR a realizar llamadas 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>