In dem Dokumentationssatz für dieses Produkt wird die Verwendung inklusiver Sprache angestrebt. Für die Zwecke dieses Dokumentationssatzes wird Sprache als „inklusiv“ verstanden, wenn sie keine Diskriminierung aufgrund von Alter, körperlicher und/oder geistiger Behinderung, Geschlechtszugehörigkeit und -identität, ethnischer Identität, sexueller Orientierung, sozioökonomischem Status und Intersektionalität impliziert. Dennoch können in der Dokumentation stilistische Abweichungen von diesem Bemühen auftreten, wenn Text verwendet wird, der in Benutzeroberflächen der Produktsoftware fest codiert ist, auf RFP-Dokumentation basiert oder von einem genannten Drittanbieterprodukt verwendet wird. Hier erfahren Sie mehr darüber, wie Cisco inklusive Sprache verwendet.
Cisco hat dieses Dokument maschinell übersetzen und von einem menschlichen Übersetzer editieren und korrigieren lassen, um unseren Benutzern auf der ganzen Welt Support-Inhalte in ihrer eigenen Sprache zu bieten. Bitte beachten Sie, dass selbst die beste maschinelle Übersetzung nicht so genau ist wie eine von einem professionellen Übersetzer angefertigte. Cisco Systems, Inc. übernimmt keine Haftung für die Richtigkeit dieser Übersetzungen und empfiehlt, immer das englische Originaldokument (siehe bereitgestellter Link) heranzuziehen.
Dieses Dokument beschreibt die Schritte zur Konfiguration von CSR1000v-Routern für HAv3 (High Availability Version 3) auf Amazon Web Services (AWS), Microsoft Azure und Google Cloud Platform (GCP).
Cisco empfiehlt, dass Sie über Kenntnisse in folgenden Bereichen verfügen:
In diesem Artikel wird davon ausgegangen, dass die zugrunde liegende Netzwerkkonfiguration bereits abgeschlossen wurde und sich auf die HAv3-Konfiguration konzentriert.
Die vollständigen Konfigurationsdetails finden Sie im Cisco CSR 1000v- und Cisco ISRv-Software-Konfigurationsleitfaden.
Die Informationen in diesem Dokument basierend auf folgenden Software- und Hardware-Versionen:
Die Informationen in diesem Dokument beziehen sich auf Geräte in einer speziell eingerichteten Testumgebung. Alle Geräte, die in diesem Dokument benutzt wurden, begannen mit einer gelöschten (Nichterfüllungs) Konfiguration. Wenn Ihr Netzwerk in Betrieb ist, stellen Sie sicher, dass Sie die potenziellen Auswirkungen eines Befehls verstehen.
Cisco empfiehlt, dass Sie über Kenntnisse der verschiedenen verfügbaren HA-Versionen verfügen:
HAv3 ist von Cisco IOS®-XE Polaris 16.11.1s erhältlich und bietet eine Reihe neuer Funktionen:
Hinweis: Für Ressourcen, die in AWS, Azure oder GCP bereitgestellt werden, können in diesem Dokument Kosten anfallen.
Vor Beginn der Konfiguration ist es wichtig, die Topologie und das Design vollständig zu verstehen. So können potenzielle Probleme später behoben werden.
Obwohl das Netzwerktopologiediagramm auf AWS basiert, ist die zugrunde liegende Netzwerkbereitstellung zwischen Clouds relativ ähnlich. Die Netzwerktopologie ist auch unabhängig von der verwendeten HA-Version, egal ob es sich um HAv1, HAv2 oder HAv3 handelt.
Für dieses Topologiemanagement wird die HA-Redundanz mit den folgenden Einstellungen in AWS konfiguriert:
Es gibt zwei CSR1000v-Router in einem HA-Paar in zwei verschiedenen Verfügbarkeitszonen. Die dritte Zone ist eine private Instanz, die ein Gerät in einem privaten Rechenzentrum simuliert. Im Allgemeinen muss der gesamte normale Datenverkehr die private (oder interne) Routing-Tabelle durchlaufen.
Schritt 1: Konfigurieren von IOX-Anwendungshosting und guestshell, um die IP-Erreichbarkeit in guestshell zu ermöglichen Dieser Schritt kann standardmäßig automatisch konfiguriert werden, wenn CSR1000v bereitgestellt wird.
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
Schritt 2: Aktivieren und Anmelden bei 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 ~]$
Hinweis: Weitere Informationen zu guestshell finden Sie unter - Konfigurationsleitfaden zur Programmierbarkeit
Schritt 3: Bestätigen Sie, dass Guestshell mit dem Internet kommunizieren kann.
[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
Schritt 4: (Optional) Aktivieren Sie BFD (Bi-directional Forwarding Detection) und ein Routing-Protokoll als EIGRP (Enhanced Interior Gateway Routing Protocol) oder Border Gateway Protocol (BGP) für den Tunnel, um Fehler zu erkennen. Konfigurieren Sie entweder einen VxLAN- oder IPsec-Tunnel zwischen den Cisco CSR 1000v-Routern.
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
Schritt 4.1: (Optional) Konfigurieren Sie EIGRP über Tunnelschnittstellen.
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
Schritt 1: Konfigurieren Sie die Authentifizierung mit IAM.
Damit der CSR1000v-Router eine Routing-Tabelle im AWS-Netzwerk aktualisieren kann, muss der Router authentifiziert werden. In AWS müssen Sie eine Richtlinie erstellen, die dem CSR 1000v-Router den Zugriff auf die Routing-Tabelle ermöglicht. Anschließend wird eine IAM-Rolle erstellt, die diese Richtlinie verwendet und auf die EC2-Ressource angewendet wird.
Nachdem die CSR 1000v EC2-Instanzen erstellt wurden, muss die erstellte IAM-Rolle jedem Router zugewiesen werden.
Die in der neuen IAM-Rolle verwendete Richtlinie lautet:
{ "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": "*" } ] }
Hinweis: Detaillierte Schritte finden Sie unter IAM-Rolle mit einer Richtlinie und ordnen sie dem VPC zu.
Schritt 2: Installieren Sie das HA python-Paket.
[guestshell@guestshell ~]$ pip install csr_aws_ha --user [guestshell@guestshell ~]$ source ~/.bashrc
Schritt 3: Konfigurieren Sie die HA-Parameter auf dem primären Router.
[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
Schritt 4: Konfigurieren Sie die HA-Parameter auf dem sekundären Router.
[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
Hinweis: Die nach außen gerichtete Schnittstelle muss auf GigabitEthernet1 konfiguriert werden. Diese Schnittstelle wird zum Erreichen der Azure APIs verwendet. HA kann ansonsten nicht ordnungsgemäß funktionieren. Stellen Sie sicher, dass der curl-Befehl Metadaten aus Azure abrufen kann.
[guestshell@guestshell ~]$ curl -H "Metadata:true" http://169.254.169.254/metadata/instance?api-version=2020-06-01
Schritt 1: Die Authentifizierung für CSR1000v-API-Anrufe muss entweder mit Azure Active Directory (AAD) oder mit Managed Service Identity (MSI) aktiviert werden. Ausführliche Schritte finden Sie unter Konfigurieren der Authentifizierung für CSR1000v-API-Aufrufe. Ohne diesen Schritt kann der CSR1000v-Router nicht autorisiert werden, die Routing-Tabelle zu aktualisieren.
AD-Parameter
Schritt 2: Installieren Sie das HA python-Paket.
[guestshell@guestshell ~]$ pip install csr_azure_ha --user [guestshell@guestshell ~]$ source ~/.bashrc
Schritt 3: Konfigurieren Sie HA-Parameter auf dem primären Router (für diesen Schritt kann MSI oder AAD verwendet werden).
[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=
Schritt 4: Konfigurieren Sie die HA-Parameter auf dem sekundären Router.
[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=
Hinweis: Stellen Sie sicher, dass das Dienstkonto, das den CSR 1000v-Routern zugeordnet ist, mindestens über eine Administratorberechtigung für das Computernetzwerk verfügt.
Schritt 1: Installieren Sie das HA python-Paket.
[guestshell@guestshell ~]$ pip install csr_gcp_ha --user [guestshell@guestshell ~]$ source ~/.bashrc
Schritt 2: Konfigurieren Sie die HA-Parameter auf dem primären Router.
[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
Schritt 3: Konfigurieren Sie die HA-Parameter auf dem sekundären Router.
[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
In diesem Abschnitt überprüfen Sie, ob Ihre Konfiguration ordnungsgemäß funktioniert.
Schritt 1: Auslösen eines Failovers mit dem Node_event.py PeerFail-Flag.
[guestshell@guestshell ~]$ node_event.py -i 10 -e peerFail 200: Node_event processed successfully
Schritt 2: Navigieren Sie zur Private Route Table Ihres Cloud-Anbieters, und überprüfen Sie, ob die Route den Next-Hop auf die neue IP-Adresse aktualisiert hat.
Für diese Konfiguration sind derzeit keine spezifischen Informationen zur Fehlerbehebung verfügbar.