この製品のドキュメントセットは、偏向のない言語を使用するように配慮されています。このドキュメントセットでの偏向のない言語とは、年齢、障害、性別、人種的アイデンティティ、民族的アイデンティティ、性的指向、社会経済的地位、およびインターセクショナリティに基づく差別を意味しない言語として定義されています。製品ソフトウェアのユーザインターフェイスにハードコードされている言語、RFP のドキュメントに基づいて使用されている言語、または参照されているサードパーティ製品で使用されている言語によりドキュメントに例外が存在する場合があります。シスコのインクルーシブ ランゲージの取り組みの詳細は、こちらをご覧ください。
シスコは世界中のユーザにそれぞれの言語でサポート コンテンツを提供するために、機械と人による翻訳を組み合わせて、本ドキュメントを翻訳しています。ただし、最高度の機械翻訳であっても、専門家による翻訳のような正確性は確保されません。シスコは、これら翻訳の正確性について法的責任を負いません。原典である英語版(リンクからアクセス可能)もあわせて参照することを推奨します。
このドキュメントでは、Amazon Web Services(AWS)、Microsoft Azure、およびGoogle Cloud Platform(GCP)でハイアベイラビリティバージョン3(HAv3)用のCSR1000vルータを設定する手順について説明します。
次の項目に関する知識があることが推奨されます。
この記事では、基盤となるネットワーク設定がすでに完了しており、HAv3設定に焦点を当てていることを前提としています。
設定の詳細については、『Cisco CSR 1000v and Cisco ISRv Software Configuration Guide』を参照してください。
このドキュメントの情報は、次のソフトウェアとハードウェアのバージョンに基づいています。
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、初期(デフォルト)設定の状態から起動しています。ネットワークが稼働中の場合は、コマンドが及ぼす潜在的な影響について確実に理解しておく必要があります。
次のHAバージョンに関する知識があることが推奨されます。
HAv3はCisco IOS®-XE Polaris 16.11.1から入手でき、次の新機能が追加されています。
注:AWS、Azure、またはGCPにデプロイされたリソースは、このドキュメントの手順に従うとコストがかかることがあります。
設定を開始する前に、トポロジと設計を完全に理解することが重要です。これは、今後発生する可能性のある問題のトラブルシューティングに役立ちます。
ネットワークトポロジ図はAWSに基づいていますが、クラウド間の基盤となるネットワークの展開は比較的類似しています。 ネットワークトポロジは、HAv1、HAv2、またはHAv3のいずれであっても、使用されるHAバージョンに依存しません。
このトポロジ例では、AWSでHA冗長性を次の設定で設定します。
HAペアには2台のCSR1000vルータがあり、2つの異なるアベイラビリティゾーンにあります。3番目のゾーンはプライベートインスタンスで、プライベートデータセンター内のデバイスをシミュレートします。通常、すべての通常のトラフィックは、プライベート(または内部)ルートテーブルを通過する必要があります。
ステップ1:IOXアプリケーションホスティングとguestshellを設定します。これにより、guestshellへのIP到達可能性が提供されます。 この手順は、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
ステップ2:有効にして、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 ~]$
注:guestshellの詳細については、 - Programmability Configuration Guide
ステップ3:guestshellがインターネットと通信できることを確認します。
[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
ステップ4:(オプション)ピア障害検出のために、トンネルに対して双方向フォワーディング検出(BFD)とルーティングプロトコルをEnhanced Interior Gateway Routing Protocol(EIGRP)またはボーダーゲートウェイプロトコル(BGP)として有効にします。Cisco CSR 1000vルータ間にVxLANトンネルまたはIPsecトンネルを設定します。
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
ステップ 4.1: (オプション)トンネルインターフェイス上でEIGRPを設定します。
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
ステップ1:IAMで認証を設定します。
CSR1000vルータがAWSネットワークのルーティングテーブルを更新するには、ルータを認証する必要があります。AWSでは、CSR 1000vルータにルートテーブルへのアクセスを許可するポリシーを作成する必要があります。その後、このポリシーを使用してEC2リソースに適用されるIAMロールが作成されます。
CSR 1000v EC2インスタンスを作成した後、作成したIAMロールを各ルータに関連付ける必要があります。
新しい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": "*" } ] }
注:詳細な手順については、ポリシーを持つIAMロールを参照し、VPCに関連付けてください。
ステップ2:HA Pythonパッケージをインストールします。
[guestshell@guestshell ~]$ pip install csr_aws_ha --user [guestshell@guestshell ~]$ source ~/.bashrc
ステップ3:プライマリルータでHAパラメータを設定します。
[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
ステップ4:セカンダリルータでHAパラメータを設定します。
[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
注:GigabitEthernet1にOutside側インターフェイスを設定する必要があります。 これは、Azure APIに到達するために使用されるインターフェイスです。それ以外の場合、HAは正しく機能しません。guestshell内で、curlコマンドがAzureからメタデータを取得できることを確認します。
[guestshell@guestshell ~]$ curl -H "Metadata:true" http://169.254.169.254/metadata/instance?api-version=2020-06-01
ステップ1:CSR1000v API呼び出しの認証は、Azure Active Directory (AAD)またはマネージドサービスID (MSI)のいずれかで有効にする必要があります。 詳細な手順については、「CSR1000v APIコールの認証の設定」を参照してください。 この手順がないと、CSR1000vルータはルートテーブルの更新を許可されません。
AADパラメータ
ステップ2:HA Pythonパッケージをインストールします。
[guestshell@guestshell ~]$ pip install csr_azure_ha --user [guestshell@guestshell ~]$ source ~/.bashrc
ステップ3:プライマリルータでHAパラメータを設定します(このステップではMSIまたは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=
ステップ4:セカンダリルータでHAパラメータを設定します。
[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=
注:CSR 1000vルータに関連付けられているサービスアカウントに、少なくともコンピューティングネットワーク管理者権限があることを確認します。
ステップ1:HA Pythonパッケージをインストールします。
[guestshell@guestshell ~]$ pip install csr_gcp_ha --user [guestshell@guestshell ~]$ source ~/.bashrc
ステップ2:プライマリルータでHAパラメータを設定します。
[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
ステップ3:セカンダリルータでHAパラメータを設定します。
[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
ここでは、設定が正常に機能しているかどうかを確認します。
ステップ1:node_event.py peerFailフラグを使用してフェールオーバーをトリガーします。
[guestshell@guestshell ~]$ node_event.py -i 10 -e peerFail 200: Node_event processed successfully
ステップ2:クラウドプロバイダーの[Private Route Table]に移動し、ルートが新しいIPアドレスへのネクストホップを更新したことを確認します。
現在、この設定に関する特定のトラブルシューティング情報はありません。