Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Cisco Catalyst 8000V (AWS版)の冗長化 ~ csr_aws_ha 実装の挙動整理 ~

Cisco Catalyst 8000V (AWS版)の冗長化 ~ csr_aws_ha 実装の挙動整理 ~

MyHomeNWLab

March 26, 2023
Tweet

More Decks by MyHomeNWLab

Other Decks in Technology

Transcript

  1. Cisco Catalyst 8000V (AWS版)の冗長化
    ~ csr_aws_ha 実装の挙動整理 ~
    初版作成日: 2023/03/26
    作成者: MyHomeNWLab

    View Slide

  2. 概要
    • Amazon Web Services (AWS)版のCisco Catalyst 8000Vでの
    冗長化には csr_aws_ha のPythonパッケージを用いたスクリプト ベー
    スの実装方法が存在します。
    • オンプレミス環境で幅広く使われているVRRPやHSRPのようなFHRP
    (First Hop Redundancy Protocol)と異なり、挙動がスクリプトの
    実装に依存してしまうため、設定方法や挙動を整理しました。

    View Slide

  3. 検証時のCatalyst 8000Vの情報
    • Product: Cisco Catalyst 8000V Edge Software – BYOL
    • URL: https://aws.amazon.com/marketplace/pp/prodview-
    rohvq2cjd4ccg
    • Catalyst 8000V Version: 17.09.01a

    View Slide

  4. 検証時の構成
    • Public SubnetとPrivate Subnetを用意して、Private SubnetのServer
    からInternetへの通信はCatalyst 8000Vを通る構成としました。
    • ServerからInternet側へ抜けるにあたってのFirst HopはCatalyst 8000V
    となります。そのため、LAN to WANのInternet宛通信に対してNexthopの
    冗長化が必要となる構成になっています。
    • 「Catalyst 8000VのIPsecトンネルを経由して拠点と通信」するような通信フ
    ローの検証までは行っておらず、本資料でも取り扱っていない点は留意してくだ
    さい。

    View Slide

  5. 冗長化の構成要素
    • Catalyst 8000V同士 (PrimaryとSecondary)でトンネリング
    (IPsec or VXLAN)を行い、動的ルーティング (OSPF or EIGRP or
    BGP)で互いのLoopbackのアドレス情報を共有し、 BFDで対向インス
    タンスの障害を検知します。
    • 障害を検知するとAWSのRoute tableの設定を書き換えます。
    • トンネリングと動的ルーティングのプロトコル選定には選択余地がありますが、
    いずれのプロトコルを選択しても根本的な動作は変わりません。

    View Slide

  6. 概要図と通信フローの整理

    View Slide

  7. AWS
    Virtual Private Cloud (VPC)
    Availability Zone 1
    Public Subnet
    Private Subnet
    EC2
    Catalyst 8000V #1
    EC2
    Server #1
    Internet
    Gateway
    Availability Zone 2
    Public Subnet
    Private Subnet
    EC2
    Catalyst 8000V #2
    EC2
    Server #2
    Internet
    Gi1 (Source NAT実行)
    Gi2
    Gi1 (Source NAT実行)
    Gi2
    Destination Target
    172.31.0.0/16 Local
    0.0.0.0/0 eni-**01 (Catalyst 8000V #1 Gi2)
    ⇒ eni-**02 (Catalyst 8000V #2 Gi2)
    【Route table: rt-private】
    インスタンス
    障害
    BFDで障害検知して
    Targetを書き換え
    概要図
    Tunnel
    BFD & 動的ルーティング
    Fail
    インスタンスには
    IAM Role/Policy
    で権限設定が必要
    経路切替
    IAM
    Role
    IAM
    Role

    View Slide

  8. AWS
    Virtual Private Cloud (VPC)
    Availability Zone 1
    Public Subnet
    Private Subnet
    EC2
    Catalyst 8000V #1
    EC2
    Server #1
    Internet
    Gateway
    Availability Zone 2
    Public Subnet
    Private Subnet
    EC2
    Catalyst 8000V #2
    EC2
    Server #2
    Internet
    Gi1 (Source NAT実行)
    Gi2
    Gi1 (Source NAT実行)
    Gi2
    Destination Target
    172.31.0.0/16 Local
    0.0.0.0/0 eni-**01 (Catalyst 8000V #1 Gi2)
    【Route table: rt-private】
    正常時
    Tunnel
    BFD & 動的ルーティング
    IAM
    Role
    IAM
    Role

    View Slide

  9. AWS
    Virtual Private Cloud (VPC)
    Availability Zone 1
    Public Subnet
    Private Subnet
    EC2
    Catalyst 8000V #1
    EC2
    Server #1
    Internet
    Gateway
    Availability Zone 2
    Public Subnet
    Private Subnet
    EC2
    Catalyst 8000V #2
    EC2
    Server #2
    Internet
    Gi1 (Source NAT実行)
    Gi2
    Gi1 (Source NAT実行)
    Gi2
    Destination Target
    172.31.0.0/16 Local
    0.0.0.0/0 eni-**01 (Catalyst 8000V #1 Gi2)
    ⇒ eni-**02 (Catalyst 8000V #2 Gi2)
    【Route table: rt-private】
    インスタンス
    障害
    BFDで障害検知して
    Targetを書き換え
    障害時
    Tunnel
    BFD & 動的ルーティング
    Fail
    インスタンスには
    IAM Role/Policy
    で権限設定が必要
    経路切替
    IAM
    Role
    IAM
    Role

    View Slide

  10. AWS
    Virtual Private Cloud (VPC)
    Availability Zone 1
    Public Subnet
    Private Subnet
    EC2
    Catalyst 8000V #1
    EC2
    Server #1
    Internet
    Gateway
    Availability Zone 2
    Public Subnet
    Private Subnet
    EC2
    Catalyst 8000V #2
    EC2
    Server #2
    Internet
    Gi1 (Source NAT実行)
    Gi2
    Gi1 (Source NAT実行)
    Gi2
    Destination Target
    172.31.0.0/16 Local
    0.0.0.0/0 eni-**01 (Catalyst 8000V #1 Gi2)
    ⇐ eni-**02 (Catalyst 8000V #2 Gi2)
    【Route table: rt-private】
    5分刻みのタイミングで
    切り戻し
    障害復旧時の切り戻り
    Tunnel
    BFD & 動的ルーティング
    切り戻し
    IAM
    Role
    IAM
    Role
    復旧

    View Slide

  11. 冗長化スクリプト

    View Slide

  12. 冗長化スクリプトの概要
    • Catalyst 8000Vの冗長化スクリプトはCloud Providerによって種別
    が分かれており、AWS環境では csr_aws_ha を用います。
    • 名称に「csr」が含まれているのは、 CSR1000V世代から存在する名残
    だと思われます。
    Cloud Provider Package Name
    Microsoft Azure csr_azure_ha
    Amazon Web Services csr_aws_ha
    Google Cloud Platform csr_gcp_ha
    ← 本資料での取り扱い対象

    View Slide

  13. csr_aws_ha の実装
    • csr_aws_ha はPythonのパッケージとして提供されており、IOS-XEの
    Guestshell上で実行されます。
    • Catalyst 8000VのEC2インスタンスからAWSのRoute tableの切り替
    えを行うためにIAMで必要な権限を割り当てる必要があります。
    • 設定を行うためのUser InterfaceとしてPythonベースのコマンドが提供
    されており、その中でも主要なものが create_node.py コマンドになりま
    す。

    View Slide

  14. Catalyst 8000V (AWS版)の冗長化スクリプトの動作
    C8000V#1 (AWS版)
    guestshell
    csr_ha.service
    【IAM Policy】
    {
    "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": "*"
    }
    ]
    }
    Destination Target
    192.168.0.0/16 eni-**01 (C8000V#1)
    ⇒ eni-**02 (C8000V#2)
    172.31.0/16 local
    C8000V#2 (AWS版)
    guestshell
    csr_ha.service
    インスタンス
    障害
    【Route table: rt-private】
    Tunnel Interface上で
    BFDと動的ルーティングを動作させて障害を検知
    障害検知時に
    Route tableのTargetを書き換え
    必要な権限 (IAM Policy)

    View Slide

  15. ~/.bashrc に設定される csr_aws_ha 向けのエイリアス
    [[email protected] ~]$ cat ~/.bashrc
    # User specific aliases and functions
    alias create_node=create_node.py
    alias show_node=show_node.py
    alias node_event=node_event.py
    alias set_params=set_params.py
    alias clear_params=clear_params.py
    alias delete_node=delete_node.py
    export PATH=/home/guestshell/.local/bin:/home/guestshell/.local/lib/python3.6/site-
    packages/csr_ha:/home/guestshell/.local/lib/python3.6/site-packages/csr_cloud:$PATH
    [[email protected] ~]$
    出力を一部省略
    csr_aws_ha に含まれている各種スクリプトに対するエイリアスやPATHが設定されます。

    View Slide

  16. csr_aws_ha に含まれる主要コマンド
    [[email protected] ~]$ ls ~/.local/bin/
    __pycache__ create_node.py ha_api.py node_event.py rst2html.py rst2latex.py
    rst2odt_prepstyles.py rst2xetex.py set_params.py
    chardetect delete_node.py ha_tools.sh pasteurize rst2html4.py rst2man.py rst2pseudoxml.py
    rst2xml.py show_node.py
    clear_params.py futurize jp.py revert_nodes.sh rst2html5.py rst2odt.py rst2s5.py
    rstpep2html.py
    [[email protected] ~]$
    ~/.bashrc に設定されるエイリアスのコマンドは ~/.local/bin/ 配下に存在します。

    View Slide

  17. create_node.py コマンドの概要
    • 前提情報として csr_aws_ha の設定用語として Node あるいは Node
    Index と呼ばれるキーワードがあります。
    • 複数のRouteに対する設定が行えるので、設定対象を一意に識別するために
    Node Indexを利用します。設定時にNode Index (1から1023まで)を指
    定して、設定情報のレコードを格納するイメージになります。1号機と2号機の
    両方で設定が必要になります。
    • primary と secondary のModeはRouteに対して適用します。そのため、
    複数のRouteでModeを分けて通信の負荷分散も可能です。ただし、運用性
    を考慮して設定してください。

    View Slide

  18. create_node.py コマンドの実行例
    Command Node Index Region Name Route Table Name Route Nex Hop Interface Mode
    create_node.py -i 1 -rg ap-northeast-1 -t rtb-1234 -r 0.0.0.0/0 -n eni-0001 -m primary
    create_node.py -i 2 -rg ap-northeast-1 -t rtb-1234 -r 8.8.8.8/32 -n eni-0001 -m secondary
    create_node.py -i 3 -rg ap-northeast-1 -t rtb-1234 -r 8.8.4.4/0 -n eni-0001 -m secondary
    【Catalyst 8000V #1】
    Command Node Index Region Name Route Table Name Route Nex Hop Interface Mode
    create_node.py -i 1 -rg ap-northeast-1 -t rtb-1234 -r 0.0.0.0/0 -n eni-0002 -m secondary
    create_node.py -i 2 -rg ap-northeast-1 -t rtb-1234 -r 8.8.8.8/32 -n eni-0002 -m primary
    create_node.py -i 3 -rg ap-northeast-1 -t rtb-1234 -r 8.8.4.4/0 -n eni-0002 -m primary
    【Catalyst 8000V #2】
    固有情報を指定
    Route 毎に primary と secondary を分けると通信の負荷分散が可能

    View Slide

  19. show_node.py -i all
    [[email protected] ~]$ show_node.py -i all
    200: Retrieved the node successfully
    Redundancy node configuration:
    index 1
    region ap-northeast-1
    routeTableId rtb-****
    eniId eni-****
    route 0.0.0.0/0
    mode primary
    Redundancy node configuration:
    index 2
    region ap-northeast-1
    routeTableId rtb-****
    eniId eni-****
    route 8.8.8.8/32
    mode secondary

    「show_node.py」で「-i all」をオプションに指定すると、
    全てのNode Indexの情報が出力されます。
    対象のNode Indexを絞りたい場合は「-i 1」のように
    Node Indexの対象番号を引数に渡します。

    View Slide

  20. csr_aws_ha のNode情報の定義ファイル
    [[email protected] ~]$ tree ~/cloud
    /home/guestshell/cloud
    `-- HA
    |-- csr_ha.log
    |-- debug_ha.sh
    |-- events
    |-- ha_tools.sh
    |-- install.log
    |-- node_file
    |-- revert_nodes.sh
    `-- sock_file
    2 directories, 7 files
    [[email protected] ~]$
    備考: “sudo yum install tree” コマンドで “tree” コマンドをインストールして確認しています。
    create_node.py で設定した内容が格納されます。
    [[email protected] ~]$ cat ~/cloud/HA/node_file
    {'index': '1', 'routeTableId': 'rtb-****', 'region': 'ap-northeast-1',
    'eniId': 'eni-****', 'route': '0.0.0.0/0', 'mode': 'primary'}
    [[email protected] ~]$

    View Slide

  21. csr_ha のサービス
    [[email protected] ~]$ systemctl status csr_ha
    ● csr_ha.service - CSR High Availability service
    Loaded: loaded (/etc/systemd/user/csr_ha.service; enabled; vendor preset: disabled)
    Active: active (running) since Wed 2022-11-23 11:37:29 UTC; 40min ago
    Main PID: 222 (python3)
    CGroup: /system.slice/libvirtd.service/system.slice/csr_ha.service
    tq222 /usr/bin/python3 /home/guestshell/.local/lib/python3.6/site-
    packages/csr_ha/server/ha_server.py start
    mq227 /usr/bin/python3 /home/guestshell/.local/lib/python3.6/site-
    packages/csr_ha/server/ha_server.py start
    [[email protected] ~]$
    csr_aws_ha はサービスとして動作しています。

    View Slide

  22. Primary復旧時の切り戻し処理
    • Primaryのインスタンスが復旧すると、一定間隔で自動切り戻しの処理が走り
    ます。いわゆるPreempt動作になります。
    • cron による revert_nodes.sh コマンドの定期実行に依存しているため、
    手動切り戻しの実装には変えられません。
    • 内部的には「node_event.py -i all -e revert」を実行しており、全ての
    Node Indexを対象にrevertのイベントを実行します。
    • 補足ですが node_event.py コマンドは引数に与えるイベント種別で動作が変わります。

    View Slide

  23. Primary復旧時の切り戻し処理の実装面
    [[email protected] ~]$ crontab -l
    */5 * * * * bash /home/guestshell/.local/lib/python3.6/site-packages/csr_ha/client_api/revert_nodes.sh
    [[email protected] ~]$
    crontabで5分刻みで revert_nodes.sh のスクリプトが呼び出される処理となっており、
    本スクリプトによってPrimary機の復旧時には自動的に切り戻し処理が実行されます。
    ※備考: HH:00, HH:05, HH:10, HH:15, HH:20, ..., HH:50, HH:55 の間隔で実行されます。

    View Slide

  24. node_event.py コマンドの情報源
    • revert_nodes.sh コマンドから呼び出されている node_event.py コマンドの情報は
    CSR1000V時代であればドキュメントに記載があります。
    • Configure CSR1000v HA Version 3 on AWS, Azure and GCP - Cisco
    • URL: https://www.cisco.com/c/en/us/support/docs/routers/cloud-
    services-router-1000v-series/217051-configure-csr1000v-ha-version-3-
    on-aws.html
    • CSR1000v HA Version 2 Configuration Guide on Microsoft Azure - Cisco
    • URL: https://www.cisco.com/c/en/us/support/docs/routers/cloud-
    services-router-1000v-series/213930-csr1000v-hav2-configuration-
    guide-on-mic.html

    View Slide

  25. Configuration

    View Slide

  26. IOS-XEの設定 (startup/running-config)
    • IOS-XEの設定はトンネリング (IPsec or VXLAN)と動的ルーティング
    (OSPF or EIGRP or BGP)には設計の選択肢があります。手早く検証
    して挙動を把握するのであればドキュメントの設定例が参考になります。
    • EC2インスタンスへのIPアドレスの割り当て制御はAWS基盤が制御を
    握っているため、トンネリングやBFD Peerで対向へのIPアドレスを指定す
    る際はマッピングを間違えないように注意してください。

    View Slide

  27. IPアドレス設定のマッピング
    Catalyst 8000V #1 Catalyst 8000V #2
    redundancy
    cloud-ha bfd peer 192.168.101.2 all
    !
    interface Tunnel1
    ip address 192.168.101.1 255.255.255.252
    load-interval 30
    bfd interval 100 min_rx 100 multiplier 3
    tunnel source GigabitEthernet1
    tunnel mode ipsec ipv4
    tunnel destination 18.178.#.#
    tunnel protection ipsec profile vti-1
    !
    redundancy
    cloud-ha bfd peer 192.168.101.1 all
    !
    interface Tunnel1
    ip address 192.168.101.2 255.255.255.252
    load-interval 30
    bfd interval 100 min_rx 100 multiplier 3
    tunnel source GigabitEthernet1
    tunnel mode ipsec ipv4
    tunnel destination 52.192.#.#
    tunnel protection ipsec profile vti-1
    !
    Gi1はDHCPでElastic IP: 52.192.#.# を取得 Gi1はDHCPでElastic IP: 18.178.#.# を取得
    BDFで障害検知を行うPeerのIPアドレスを指定します。

    View Slide

  28. ECインスタンスのUser Data設定
    • EC2インスタンスのUser Dataに情報を書き込むと、Catalyst 8000V
    がライセンスやIOS-XEの設定を読み込んで起動します。
    • 筆者の場合は検証の試行錯誤を何度もして再現性を確認する必要が
    あったので、Terraformを活用してデプロイの自動化に活用していました。
    • Catalyst 8000Vが解釈可能なUser DataはいくつかのSectionに分
    かれて構成されています。

    View Slide

  29. EC2インスタンスのUser Dataに記述するSection
    • Section: License
    • 起動時にライセンスを適用して「Section: IOS configuration」のライセンスが必要なコマンドが正常に実行できるようにします。
    • license boot level コマンドで割り当てる想定のライセンス種別を指定します。
    • Section: IOS configuration
    • IOS-XEのコマンドを記述します。
    • Section: Python package
    • csr_aws_ha のパッケージとバージョンを指定します。
    • Section: Scripts
    • 外部スクリプトのダウンロード先を指定します。スクリプトを直接記述できない点に注意が必要です。メーカー側で csr_aws_ha
    向けのスクリプトはホスティングしていないため、導入担当者が用意する必要があります。

    View Slide

  30. EC2インスタンスのUser Dataの設定例
    Section: License
    TechPackage:network-premier
    Section: IOS configuration
    hostname c8000v01

    Section: Python package
    csr_aws_ha 3.1.0 {--user}
    Section: Scripts
    https://example.test/script.sh?v=dummy1 1 ap-northeast-1 rtb-**** eni-**** '0.0.0.0/0' primary
    https://example.test/script.sh?v=dummy2 2 ap-northeast-1 rtb-**** eni-**** '8.8.8.8/32' secondary
    https://example.test/script.sh?v=dummy3 3 ap-northeast-1 rtb-**** eni-**** '8.8.4.4/32' secondary

    View Slide

  31. Section: License

    View Slide

  32. Catalyst 8000VのSection: License
    検証時Ver. 17.09.01a
    Section: License
    TechPackage:network-essentials
    Section: License
    TechPackage:network-advantage
    Section: License
    TechPackage:network-premier
    ドキュメント上に記述されている「ipbase, security, appx, ax」ではライセンスが適用されず、
    「license boot level」コマンドのオプションと同様の値を指定する必要がありました。
    おそらく、CSR1000V時代の情報のままになっていると思われます。
    C8000V#configure terminal
    Enter configuration commands, one per line. End with
    CNTL/Z.
    C8000V(config)#
    C8000V(config)#license boot level ?
    network-advantage License Level Network-Advantage
    network-essentials License Level Network-Essentials
    network-premier License Level Network-Premier
    C8000V(config)#license boot level

    View Slide

  33. Section: Scripts

    View Slide

  34. Section: Scripts の活用
    • csr_aws_ha による冗長化では、Guestshell上で reate_node.py コマン
    ドを実行する必要があります。
    • しかしながら「Section: IOS configuration」ではIOS-XEの設定は指定で
    きますが、Guestshellに対する設定はできません。そのためGuestshellに対す
    る設定を行うための「Section: Scripts」が用意されています。
    • 「Section: Scripts」ではコマンドを直接記述できず、外部からスクリプトをダウ
    ンロードして実行する必要があります。なお、User Dataでスクリプトに渡す引
    数は任意で指定できます。

    View Slide

  35. スクリプトの参考例
    #!/bin/bash
    create_node.py -i ${1} -rg ${2} -t ${3} -n ${4} -r ${5} -m ${6}
    URL例: https://example.test/script.sh
    引数をUser Data側で指定する想定で、単に create_node.py コマンドとオプションを並べた例です。
    スクリプトを外部公開する場合は、機密情報を記載しないように注意してください。

    View Slide

  36. Catalyst 8000VのSection: Scripts
    Section: Scripts
    https://www.example.test/script.sh arg1 arg2
    Catalyst 8000V (IOS-XE)
    #!/bin/bash

    wget --read-timeout=30 --tries=5 https://www.example.test/script.sh -O script.sh &>> customdata.log

    chmod +x script.sh
    ./script.sh arg1 arg2 &>> script.sh.log &

    bootflash:guest-share/customdata_bash.sh
    guestshell
    IOS-XEホストOS上からguestshell (コンテナ上)へスクリプト ファイルの受け渡し
    対象URLのダウンロード処理
    ダウンロードしたスクリプトに引数を渡して実行処理
    書式: 【URL】 【引数】

    View Slide

  37. 同じURLの重複指定
    Section: Scripts
    https://www.example.test/echo_msg.sh Hello
    https://www.example.test/echo_msg.sh World
    #!/bin/bash
    echo "${1}" > ~/"${1}"
    ファイル名: echo_msg.sh
    [[email protected] ~]$ ls ~/
    World cloud customdata
    [[email protected] ~]$
    同じURLの場合、最後のものが優先されます。
    重複で実行はされません。

    View Slide

  38. ファイル名 (ベースURL)は重複且つURL Parameterは一意
    Section: Scripts
    https://www.example.test/echo_msg.sh?v=dummy1 Hello
    https://www.example.test/echo_msg.sh?v=dummy2 World
    [[email protected] ~]$ ls ~/
    Hello World cloud customdata
    [[email protected] ~]$
    [[email protected] ~]$ ls ~/customdata/
    customdata.log 'echo_msg.sh?v=dummy1.log' 'echo_msg.sh?v=dummy2.log'
    'echo_msg.sh?v=dummy1' 'echo_msg.sh?v=dummy2' syslogger.py
    [[email protected] ~]$
    #!/bin/bash
    echo "${1}" > ~/"${1}"
    ファイル名: echo_msg.sh
    ダウンロード元のファイルの実体は1つですが、
    URL Parameterを与えることによって
    異なるファイル名でダウンロードさせています。
    元々が同じURLの同じファイルであっても、URL Parameterを付与して別物扱いにできます。
    「?v=dummy1」のように一意なURL Parameterを与えています。

    View Slide

  39. 異なるURLで同一ファイル名
    Section: Scripts
    https://www.example.test/echo_msg.sh Hello
    https://www.example.test/dir/echo_msg.sh World
    [[email protected] ~]$ ls
    Hello World cloud customdata
    [[email protected] ~]$
    [[email protected] ~]$ ls ~/customdata/
    customdata.log echo_msg.sh echo_msg.sh.log syslogger.py
    [[email protected] ~]$
    ファイル名: echo_msg.sh
    ファイルは最後にダウンロードされたものが残ります。
    スクリプトの実行自体は順に行われます。
    元々が同じURLの同じファイルであっても、URL Parameterを付与して別物扱いにできます。
    1番目にダウンロード 2番目にダウンロード 同じファイル名でも異なるURLの場合は、
    上から順にダウンロードされて実行されます。
    #!/bin/bash
    echo "${1}" > ~/"${1}"

    View Slide

  40. 参考情報

    View Slide

  41. 筆者作成のTerraformのサンプル設定
    • 筆者がTerraformを用いてCatalyst 8000Vの冗長化構成のデプロイ
    を自動化していた際の情報があります。GitHub上にまとめているので適
    宜参考にしてください。
    • URL:
    https://github.com/myhomenwlab/Sample_configuration_of_Ci
    sco_Catalyst_8000V_HA_on_AWS/blob/main/README_jp.md

    View Slide

  42. End Of File
    本スライドが資料の最後です。
    52

    View Slide