この記事はシスコの有志による Cisco Systems Japan Advent Calendar 2023 の 10日目として投稿しています。
2017年版: https://qiita.com/advent-calendar/2017/cisco
2018年版: https://qiita.com/advent-calendar/2018/cisco
2019年版: https://qiita.com/advent-calendar/2019/cisco
2020年版 1枚目: https://qiita.com/advent-calendar/2020/cisco
2020年版 2枚目: https://qiita.com/advent-calendar/2020/cisco2
2021年版 1枚目https://qiita.com/advent-calendar/2021/cisco
2021年版 2枚目https://qiita.com/advent-calendar/2021/cisco2
2022年版(1,2): https://qiita.com/advent-calendar/2022/cisco
2023年版: https://qiita.com/advent-calendar/2023/cisco<---こちら
初めに
今回はIOS XE で EVPN が構築できるようになったという情報を聞き、CML(Cisco Modeling Lab)のBETA CAT9000V UADPを使ってEVPNの環境をシングルホームとデュアルホームのL2延伸を作ってみました。
IOS XE 16.9.1からVXLANに対応をはじめ、様々な機能がCatalyst9300を中心に追加されています。
CMLには BETA CAT9000V Q200 もありますがこちらはCatalyst9500Xや9600Xに近いものになりますので今回はcatalyst9300と同じASICを積んだUADPの方を使用していきます。
EVPN-VXLANとは?
EVPN-VXLANとは何なのかについて書いていきます。
まずEVPNとはEthernet VPNの略になります。
Layer 2 network延伸技術の一つです。
オーバーレイ ネットワークを提供し、BGP-MPを使ってMACアドレスやIPアドレス等を広報しています。
デュアルホーム構成による冗長や、VXLANやPBB,MPLS等用途に合わせてデータプレーンを選択できます。
今回使用するVXLANではL2とL3の統合ができ、よりスケールの大きい環境でL2,L3の技術を使用したい場合に活躍してくれます。
知っておくべき単語集
EVPNの構築に当たり、ここで知っておくべき単語をご紹介しておきます。
VXLANについて
VXLANとはL3ネットワーク上に論理的なL2ネットワークを構築するトンネリングプロトコルのことです。
VXLAN IDを使用してイーサネットフレームをカプセル化することでトンネリングを実現しています。
VLANでは最大約4000のネットワークしか構成できないため、大規模なネットワークでは不足していましたが、VXLANを使用することで最大約1600万のネットワークを構成できるようになりました。
VXLANネットワーク識別子
各 VXLAN セグメントは、VXLAN ネットワーク識別子と呼ばれる 24 ビットのセグメント ID で識別されます。これにより、最大 1,600 万の VXLAN セグメントを同じ管理ドメイン内に存在させることができます。
仮想トンネルエンドポイント(VTEP)
すべての VXLAN セグメントには、仮想トンネルエンドポイント(VTEP)と呼ばれるトンネルエッジデバイスがあります。これらのデバイスは VXLAN ネットワークのエッジにあり、VXLAN トンネルのインスタンスを作成し、VXLAN のカプセル化とカプセル化解除を実行します。
今回の記事ではPEルーターとして記載しています。
VNI(VXLAN Network ID)
VXLANを識別するためのID
EVI(EVPN インスタンス)
VTEP 上のバーチャル プライベート ネットワーク(VPN)を表します。
レイヤ3VPNのIP VRFに相当するもので、MAC VRFとも呼ばれています。
アンダーレイマルチキャスト
アンダーレイネットワークでマルチキャストグループを介してトラフィックを複製する方法。
レイヤ 2 VNI をマルチキャストグループにマッピングすることでBUMトラフィックを転送する。
入力の複製
入力デバイスがすべてのトラフィックを複製して、個別のユニキャストとして出力デバイスに送信する。
BUMトラフィック
Broadcast,Unknown Unicast,Multicast のトラフィックのことです。
シングルホームでL2を延伸してみる
まずはシングルホームでホスト同士L2通信ができるか試してみます。
各ホストは同じセグメントのアドレスを持たせていますが、PEルーター-Pルーター間は別のセグメントのアドレスを持たせています。
EVPNではレイヤ2VNIを使用してアンダーレイマルチキャスト、又は入力の複製方式のどちらかを使用してBUMトラフィックを転送します。
今回は初回なので入力の複製の方式を使います。
MultiCastわからなか
1. アンダーレイをOSPFで形成する
まずは各ルータにOSPFを設定し、アンダーレイを形成します。
例としてPE1のConfigのみ記載します。
Loopback1はVXLANのLoopbackとして使用します。
ip routing
!
interface Loopback 0 --ルーティング用ループバック
ip address 1.1.1.1 255.255.255.255
ip ospf 1 area 0
!
interface Loopback 1 --VXLAN用ループバック
ip address 11.11.11.11 255.255.255.255
ip ospf 1 area 0
!
interface GigabitEthernet 1/0/1 --物理インターフェイス
no switchport
ip address 10.0.101.1 255.255.255.0
ip ospf network point-to-point
ip ospf 1 area 0
!
router ospf 1 --OSPFプロセス
router-id 1.1.1.1
!
2. BGPの設定
続いてBGPでネイバーを張ります。
PルーターをルートリフレクタにしてPEルータ同士でネイバーを張ります。
interface Loopback 0 --ルーティング用ループバック
ip address 1.1.1.1 255.255.255.255
ip ospf 1 area 0
!
router bgp 65001 --BGP有効化
bgp log-neighbor-changes
no bgp default ipv4-unicast
neighbor 10.10.10.10 remote-as 65001 --Pルーターとのセッション
neighbor 10.10.10.10 update-source Loopback0 --BGPのアップデートソースをループバックに設定
!
address-family ipv4
exit-address-family
!
address-family l2vpn evpn --アドレスファミリのL2VPN,EVPNを指定
neighbor 10.10.10.10 activate --Pルーターとの情報交換を有効化
neighbor 10.10.10.10 send-community both
exit-address-family
interface Loopback0
ip address 10.10.10.10 255.255.255.255
ip ospf 1 area 0
!
router bgp 65001 --BGP有効化
bgp router-id 10.10.10.10
bgp log-neighbor-changes
neighbor 1.1.1.1 remote-as 65001 --PEルーターとのセッション
neighbor 1.1.1.1 update-source Loopback0 --BGPのアップデートソースをループバックに設定
neighbor 2.2.2.2 remote-as 65001
neighbor 2.2.2.2 update-source Loopback0
!
address-family ipv4
exit-address-family
!
address-family l2vpn evpn --アドレスファミリのL2VPN,EVPNを指定
neighbor 1.1.1.1 activate --PEルーターとの情報交換を有効化
neighbor 1.1.1.1 send-community extended
neighbor 1.1.1.1 route-reflector-client --ルートリフレクタクライアントの設定
neighbor 2.2.2.2 activate
neighbor 2.2.2.2 send-community both
neighbor 2.2.2.2 route-reflector-client
exit-address-family
!
3. EVPNの設定 オーバレイ設定
次にEVPNの設定を入れ、オーバーレイを形成していきます。
VXLANのカプセリングを行うため、VTEPに当たるPEルーターで設定していきます。
また、PEルーターでNVEを使ってTunnelを張るので、Pルーターへの設定は特にもうありません。
l2vpn evpn --l2VPN のEVPNを有効化
replication-type ingress --BUMトラフィックの転送方式をingressに設定(マルチキャストを使用する場合は「static」)
!
l2vpn evpn instance 101 vlan-based --EVIを作成
encapsulation vxlan --カプセリングのプロトコルにVXLANを指定
!
vlan 101 --VLAN を作成
!
vlan configuration 101
member evpn-instance 101 vni 10101 --VLAN101とVNI,EVIを紐づけ
!
interface nve1 --NVE インターフェイスを作成
no ip address
source-interface Loopback1 --アドレスをループバック1を使用
host-reachability protocol bgp --BGPをホスト到達可能性プロトコルとして指定
member vni 10101 ingress-replication --VNIとingressの設定を紐づけ
!
4. アクセス側インターフェイスの設定
最後にアクセス側のインターフェイスを設定します。
VLAN101をVNIやEVIと紐づけたのでアクセス側のインターフェイスをaccess port にして、VLAN101を割り当てます。
interface GigabitEthernet1/0/1
switchport access vlan 202
switchport mode access
これでEVPNのシングルホームの設定は完了しました。
5. 状態確認
まず、ホスト同士の疎通を確認してみます。
cisco@inserthostname-here:~$ ping 172.16.1.2
PING 172.16.1.2 (172.16.1.2) 56(84) bytes of data.
64 bytes from 172.16.1.2: icmp_seq=1 ttl=64 time=219 ms
64 bytes from 172.16.1.2: icmp_seq=2 ttl=64 time=124 ms
64 bytes from 172.16.1.2: icmp_seq=3 ttl=64 time=118 ms
64 bytes from 172.16.1.2: icmp_seq=4 ttl=64 time=136 ms
64 bytes from 172.16.1.2: icmp_seq=5 ttl=64 time=195 ms
^C
--- 172.16.1.2 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4008ms
rtt min/avg/max/mdev = 118.103/158.434/219.143/40.861 ms
cisco@inserthostname-here:~$ ping 172.16.1.3
PING 172.16.1.3 (172.16.1.3) 56(84) bytes of data.
64 bytes from 172.16.1.3: icmp_seq=1 ttl=64 time=1328 ms
64 bytes from 172.16.1.3: icmp_seq=2 ttl=64 time=642 ms
64 bytes from 172.16.1.3: icmp_seq=3 ttl=64 time=592 ms
64 bytes from 172.16.1.3: icmp_seq=4 ttl=64 time=651 ms
64 bytes from 172.16.1.3: icmp_seq=5 ttl=64 time=584 ms
^C
--- 172.16.1.3 ping statistics ---
6 packets transmitted, 5 received, 16.6667% packet loss, time 5005ms
rtt min/avg/max/mdev = 583.638/759.579/1328.367/285.628 ms, pipe 2
ネットワークを介しても、L2通信できました。
EVPNはMACアドレスも学習して通信していますので、PEルータで確認します。
PE1#show l2route evpn mac
EVI ETag Prod Mac Address Next Hop(s) Seq Number
----- ---------- ----- -------------- ---------------------------------------------------- ----------
101 0 L2VPN 5254.0006.f1fa Gi1/0/3:101 0
101 0 L2VPN 5254.000c.2df6 Gi1/0/3:101 0
101 0 L2VPN 5254.000d.e06d Gi1/0/2:101 0
101 0 BGP 5254.0014.3369 V:10101 22.22.22.22 0
101 0 BGP 5254.001c.d70c V:10101 22.22.22.22 0
101 0 L2VPN 5254.001e.c262 Gi1/0/2:101 0
PE2#show l2route evpn mac
EVI ETag Prod Mac Address Next Hop(s) Seq Number
----- ---------- ----- -------------- ---------------------------------------------------- ----------
101 0 BGP 5254.0006.f1fa V:10101 11.11.11.11 0
101 0 BGP 5254.000c.2df6 V:10101 11.11.11.11 0
101 0 BGP 5254.000d.e06d V:10101 11.11.11.11 0
101 0 L2VPN 5254.0014.3369 Gi1/0/3:101 0
101 0 L2VPN 5254.001c.d70c Gi1/0/3:101 0
101 0 BGP 5254.001e.c262 V:10101 11.11.11.11 0
HOST1 52:54:00:0d:e0:6d
HOST2 52:54:00:06:f1:fa
HOST3 52:54.00:1c.d7:0c
PEルータが各ホストのMACアドレスを学習できています。
マルチホームでも延伸してみる
マルチホームもできるとのことですのでこちらもやってみます。
マルチホームにすると、冗長させることができます。
PEルータが止まってしまってももう一方の経路に自動で切り替えて通信させることができます。
IOS XRのEVPNはオールアクティブモードでも動作させることができ、ロードバランシングによる負荷分散もできますが、IOS XEのEVPNはシングルアクティブモードしかサポートしていないため、オールアクティブモードは使用できません。
PE3_MultiとL2 Switch間は冗長の設定ができてからリンクをつなげます。
1. シングルホームを構築
今回はシングルホームの環境からマルチホームの環境に移行させて作ってみます。
その際の注意点として、冗長の設定を入れる前にリンクをUPにしてはいけません。
設定を入れる前にリンクをUPにしてしまうとトラフィックのループやブラックホール化が起きてしまいます。
ip routing
!
l2vpn evpn
replication-type ingress
!
l2vpn evpn instance 202 vlan-based
encapsulation vxlan
!
vlan configuration 202
member evpn-instance 202 vni 20202
!
interface Loopback0
ip address 1.1.1.1 255.255.255.255
ip ospf 1 area 0
!
interface Loopback1
ip address 11.11.11.11 255.255.255.255
ip ospf 1 area 0
!
interface GigabitEthernet1/0/1
no switchport
ip address 10.0.201.1 255.255.255.0
ip ospf network point-to-point
ip ospf 1 area 0
!
interface GigabitEthernet1/0/2
switchport access vlan 202
switchport mode access
!
interface nve1
no ip address
source-interface Loopback1
host-reachability protocol bgp
member vni 20202 ingress-replication
!
router ospf 1
router-id 1.1.1.1
!
router bgp 65001
bgp log-neighbor-changes
no bgp default ipv4-unicast
neighbor 10.10.10.10 remote-as 65001
neighbor 10.10.10.10 update-source Loopback0
!
address-family ipv4
exit-address-family
!
address-family l2vpn evpn
neighbor 10.10.10.10 activate
neighbor 10.10.10.10 send-community both
exit-address-family
!
ip routing
!
interface Loopback0
ip address 10.10.10.10 255.255.255.255
ip ospf 1 area 0
!
interface GigabitEthernet1/0/1
no switchport
ip address 10.0.201.20 255.255.255.0
ip ospf network point-to-point
ip ospf 1 area 0
!
interface GigabitEthernet1/0/2
no switchport
ip address 10.0.202.20 255.255.255.0
ip ospf network point-to-point
ip ospf 1 area 0
!
interface GigabitEthernet1/0/3
no switchport
ip address 10.0.203.20 255.255.255.0
ip ospf network point-to-point
ip ospf 1 area 0
!
router ospf 1
router-id 10.10.10.10
!
router bgp 65001
bgp log-neighbor-changes
no bgp default ipv4-unicast
neighbor 1.1.1.1 remote-as 65001
neighbor 1.1.1.1 update-source Loopback0
neighbor 2.2.2.2 remote-as 65001
neighbor 2.2.2.2 update-source Loopback0
neighbor 3.3.3.3 remote-as 65001
neighbor 3.3.3.3 update-source Loopback0
!
address-family ipv4
exit-address-family
!
address-family l2vpn evpn
neighbor 1.1.1.1 activate
neighbor 1.1.1.1 send-community both
neighbor 1.1.1.1 route-reflector-client
neighbor 2.2.2.2 activate
neighbor 2.2.2.2 send-community both
neighbor 2.2.2.2 route-reflector-client
neighbor 3.3.3.3 activate
neighbor 3.3.3.3 send-community both
neighbor 3.3.3.3 route-reflector-client
exit-address-family
設定は前段のシングルホームとほとんど一緒です。
アドレスやVlanなどは変えていますがそれ以外は基本的には一緒です。
2. イーサネットセグメントで冗長性の設定
続いてイーサネットセグメントを設定し、冗長性を持たせます。
この設定はPE2,PE3両方とも同じ設定を入れなければ冗長を組むことはできません。
ESI(Ethernet Segment Id)を設定しますがこれが同じになっていないとお互いが冗長を組むためのペアだということを認識できません。
l2vpn evpn ethernet-segment 1
identifier type 0 00.00.00.00.00.00.00.00.01
redundancy single-active
3. イーサネットセグメントと VTEP 上のインターフェイスとの関連付け
関連付けはアクティブになっているリンクから設定してください。
今回のトポロジだと、PE2のアクセス側のインターフェイスから設定になります。
最初に説明したようにループやブラックホール化が起きてしまいます。
interface GigabitEthernet1/0/1
evpn ethernet-segment 1
4. 最後のインターフェイスを起動させる
5. 状態確認
まずはホスト同士L2通信ができているか確認します。
cisco@inserthostname-here:~$ ping 172.16.2.2
PING 172.16.2.2 (172.16.2.2) 56(84) bytes of data.
64 bytes from 172.16.2.2: icmp_seq=1 ttl=64 time=577 ms
64 bytes from 172.16.2.2: icmp_seq=2 ttl=64 time=644 ms
64 bytes from 172.16.2.2: icmp_seq=3 ttl=64 time=596 ms
64 bytes from 172.16.2.2: icmp_seq=4 ttl=64 time=557 ms
64 bytes from 172.16.2.2: icmp_seq=5 ttl=64 time=585 ms
こちらも現在は疎通が取れています。
続いてそれぞれのPEのEVIの状態を確認します。
ここでどちらがアクティブリンクで、どちらがバックアップのリンクかどうかを確認します。
PE2_Multi#show l2vpn evpn evi detail
EVPN instance: 202 (VLAN Based)
RD: 10.0.202.2:202 (auto)
Import-RTs: 65001:202
Export-RTs: 65001:202
Per-EVI Label: none
State: Established
Replication Type: Ingress (global)
Encapsulation: vxlan
IP Local Learn: Enabled (global)
Adv. Def. Gateway: Enabled (global)
Re-originate RT5: Disabled
Adv. Multicast: Disabled (global)
AR Flood Suppress: Enabled (global)
Vlan: 202
Protected: False
Ethernet-Tag: 0
State: Established
Flood Suppress: Attached
Core If:
Access If:
NVE If: nve1
RMAC: 0000.0000.0000
Core Vlan: 0
L2 VNI: 20202
L3 VNI: 0
VTEP IP: 22.22.22.22
Pseudoports:
GigabitEthernet1/0/1 service instance 202 (DF state: blocked) <--バックアップリンク
Routes: 0 MAC, 0 MAC/IP
ESI: 0000.0000.0000.0000.0001
Peers:
11.11.11.11
Routes: 1 MAC, 2 MAC/IP, 1 IMET, 0 EAD
33.33.33.33
Routes: 5 MAC, 5 MAC/IP, 1 IMET, 1 EAD
PE3_Multi#show l2vpn evpn evi detail
EVPN instance: 202 (VLAN Based)
RD: 3.3.3.3:202 (auto)
Import-RTs: 65001:202
Export-RTs: 65001:202
Per-EVI Label: none
State: Established
Replication Type: Ingress (global)
Encapsulation: vxlan
IP Local Learn: Enabled (global)
Adv. Def. Gateway: Enabled (global)
Re-originate RT5: Disabled
Adv. Multicast: Disabled (global)
AR Flood Suppress: Enabled (global)
Vlan: 202
Protected: False
Ethernet-Tag: 0
State: Established
Flood Suppress: Attached
Core If:
Access If:
NVE If: nve1
RMAC: 0000.0000.0000
Core Vlan: 0
L2 VNI: 20202
L3 VNI: 0
VTEP IP: 33.33.33.33
Pseudoports:
GigabitEthernet1/0/1 service instance 202 (DF state: forwarding) <--アクティブリンク
Routes: 5 MAC, 5 MAC/IP
ESI: 0000.0000.0000.0000.0001
Peers:
11.11.11.11
Routes: 1 MAC, 2 MAC/IP, 1 IMET, 0 EAD
22.22.22.22
Routes: 0 MAC, 0 MAC/IP, 1 IMET, 1 EAD
PE3でDFがforwardingになっているのでこちらがアクティブリンクとなっています。
DFとは指定フォワーダといい、自動で計算されて割り当てられます。
バックアップのインターフェイスとなった場合はblockedと記載されます。
続いて障害が起きたときの動作を見てみます。
CMLの性質上、対向がdownになっても自分のインターフェイスはdownにならず、UPのままになります。そのため使用している経路が使えなくなったことに気づかず、EVIはforwardingのままになってしまいます。
今回はforwardingとなっているPE3のインターフェイスをshutdownして疎通が途切れないか確認してみます。
host1からhost2へPingをしたままインターフェイスを落とします。
cisco@inserthostname-here:~$ ping 172.16.2.2
PING 172.16.2.2 (172.16.2.2) 56(84) bytes of data.
64 bytes from 172.16.2.2: icmp_seq=1 ttl=64 time=658 ms
64 bytes from 172.16.2.2: icmp_seq=2 ttl=64 time=660 ms
64 bytes from 172.16.2.2: icmp_seq=3 ttl=64 time=676 ms
64 bytes from 172.16.2.2: icmp_seq=4 ttl=64 time=633 ms
64 bytes from 172.16.2.2: icmp_seq=5 ttl=64 time=697 ms
64 bytes from 172.16.2.2: icmp_seq=12 ttl=64 time=672 ms
64 bytes from 172.16.2.2: icmp_seq=13 ttl=64 time=730 ms
64 bytes from 172.16.2.2: icmp_seq=14 ttl=64 time=555 ms
64 bytes from 172.16.2.2: icmp_seq=15 ttl=64 time=601 ms
icmp_seqを見ると7秒ほど疎通が止まりましたが、自動で経路が切り替わり、疎通は通っています。
この7秒はshutdownコマンドを入れてから実際にインターフェイスがdownするまでの時間によって起きたラグの7秒になります。
ルータのCLIにdownのログが出てすぐに疎通が再開されましたので、downを検知してすぐに経路は切り替わっていました。
もう一度EVIの状態を確認してみます。
PE2_Multi#show l2vpn evpn evi detail
--skip--
Pseudoports:
GigabitEthernet1/0/1 service instance 202 (DF state: forwarding)
Routes: 1 MAC, 0 MAC/IP
ESI: 0000.0000.0000.0000.0001
Peers:
11.11.11.11
Routes: 1 MAC, 2 MAC/IP, 1 IMET, 0 EAD
PE3_Multi#show l2vpn evpn evi detail
--skip--
Pseudoports:
none <--ESI等が見えなくなった
Peers:
11.11.11.11
Routes: 1 MAC, 2 MAC/IP, 1 IMET, 0 EAD
22.22.22.22
Routes: 2 MAC, 1 MAC/IP, 1 IMET, 1 EAD
するとPE2のDFがforwardingに切り替わっていました。
では最後に切り戻しをしてみます。
shutdownしたインターフェイスをno shutdownしてUPさせます。
切り戻しの時も数秒疎通が止まっていましたが、また疎通は再開されました。
こちらはコマンド投入後、インターフェイスが上がるまでのラグとDFを決めるための再計算が走ったからだと思われます。
cisco@inserthostname-here:~$ ping 172.16.2.2
PING 172.16.2.2 (172.16.2.2) 56(84) bytes of data.
64 bytes from 172.16.2.2: icmp_seq=1 ttl=64 time=951 ms
64 bytes from 172.16.2.2: icmp_seq=2 ttl=64 time=1089 ms
64 bytes from 172.16.2.2: icmp_seq=3 ttl=64 time=1078 ms
64 bytes from 172.16.2.2: icmp_seq=4 ttl=64 time=834 ms
64 bytes from 172.16.2.2: icmp_seq=5 ttl=64 time=1075 ms
64 bytes from 172.16.2.2: icmp_seq=6 ttl=64 time=1271 ms
64 bytes from 172.16.2.2: icmp_seq=11 ttl=64 time=886 ms <--5秒後再開
64 bytes from 172.16.2.2: icmp_seq=12 ttl=64 time=1453 ms
64 bytes from 172.16.2.2: icmp_seq=13 ttl=64 time=1007 ms
64 bytes from 172.16.2.2: icmp_seq=14 ttl=64 time=1123 ms
64 bytes from 172.16.2.2: icmp_seq=15 ttl=64 time=1100 ms
EVIの状態を見てみると、、、
PE2_Multi#show l2vpn evpn evi detail
---skip---
Pseudoports:
GigabitEthernet1/0/1 service instance 202 (DF state: blocked)
Routes: 0 MAC, 0 MAC/IP
ESI: 0000.0000.0000.0000.0001
Peers:
11.11.11.11
Routes: 1 MAC, 2 MAC/IP, 1 IMET, 0 EAD
33.33.33.33
Routes: 4 MAC, 3 MAC/IP, 1 IMET, 1 EAD
PE3_Multi#show l2vpn evpn evi detail
---skip---
Pseudoports:
GigabitEthernet1/0/1 service instance 202 (DF state: forwarding)
Routes: 3 MAC, 3 MAC/IP
ESI: 0000.0000.0000.0000.0001
Peers:
11.11.11.11
Routes: 1 MAC, 2 MAC/IP, 1 IMET, 0 EAD
22.22.22.22
Routes: 0 MAC, 0 MAC/IP, 1 IMET, 1 EAD
forwadingはPE3に戻っています。
うまいこと切り戻しもできました。
最後に
CMLでもEVPN-VXLANを作ることができました。
まだBETA版のCML の 9Kv ですが問題なく動いてくれてよかったです。
ただ、私の環境が少し重かったのかマルチの経路切り替えに少し時間がかかったのが残念でした、、
Cat9kをたくさん使うとなるとリソースがかなり必要なので注意してください...
いつか機材があれば実機で切り替えの部分を見てみたいです。
また入力の複製方式はVTEPの数だけBUMトラフィックを複製するのでスケールの問題が出てくることがあります。
そのためマルチキャストを使った方式だと効率よく配送できます。
今回はマルチキャストやL3VPNにまで手が伸びなかったため今後トライしてみたいと思います。
免責事項
本サイトおよび対応するコメントにおいて表明される意見は、投稿者本人の個人的意見であり、シスコの意見ではありません。本サイトの内容は、情報の提供のみを目的として掲載されており、シスコや他の関係者による推奨や表明を目的としたものではありません。各利用者は、本Webサイトへの掲載により、投稿、リンクその他の方法でアップロードした全ての情報の内容に対して全責任を負い、本Web サイトの利用に関するあらゆる責任からシスコを免責することに同意したものとします。
参考
Cisco IOS XE Bengaluru 17.6.x(Catalyst 9300 スイッチ)BGP EVPN VXLAN コンフィギュレーションガイド
https://www.cisco.com/c/ja_jp/td/docs/switches/lan/catalyst9300/software/release/17-6/configuration_guide/vxlan/b_176_bgp_evpn_vxlan_9300_cg.html