今回はそろそろメジャー(?)になりつつある、MerakiにおけるCatalyst9300をCloud Native IOS-XEで利用した時のStackの動作についてまとめておきます。
Stackを構成する設定は過去にMSにてまとめており、そちらは何ら変更ありませんのでそちらを参考にしてください。
確認した時の構成
今回はCloud Native IOS-XE Version 17.15.3がインストールされたCatalyst9300Mを2台用意し、Meraki Dashboardで正しくオンラインと表示されたところから開始します。

それぞれ2台のCatalystのMAC Address下4桁は、
Cat93M#01 : b280
Cat93M#02 : 9b80
となります。下4桁よりも上は2台とも同じものとなっています。
Cloud CLIでStackのステータスの確認
Meraki DashboardのCloud CLIを使ってCat93M#01へアクセスを行います。
「show switch」コマンドでStackのステータスを確認します。
Stackとして利用されるMACアドレスは"9b80"となっていることが確認できます。
そしてStackのIDとして1番が"9b80"となっているので、Cat93M#02が、2番が"b280"となっているのでCat93M#01であることが確認できます。
今回はCat93M#01のCLIを見ていますので、自分には"*"のマークがされています。

StackにおけるSwitchの番号は少なくとも最も小さいMac Addressを持ったSwitchが#1となるようです。
Meraki Documentには詳細は書かれていないようですが、何度か実機で試してみたところ同じ結果となりましたので間違いないと思います。
Active or Standby
では、どのようにして2台のSwtichのどちらがStackのActive機となりもう一台がStandby機となるのでしょうか?
これは単純に一番最初に起動したSwitchがActive機となるようです。
ですので、Active機が仮に電源断や再起動が発生し、Stackから外れた際にはStandby機がActive機へ昇格することになります。
Meraki Dashboard上でStack Statusの確認
Meraki DashboardでStackのステータスを確認してみます。
Cloud CLIでかくにんした通り、Cat93#01がStackのActive機として機能していることが確認できます。

Stack構成とLAG接続
Stackした2台のCatalyst9300MとLACPでLAG接続したSwitchで「show lacp neighbor detail」を見てみたいと思います。


Stackとして認識されている Mac AddressはStackとしてのID#1であるCat93M#02の"9b80"となっていることが確認できます。
StackのActive機としてはCat93M#01となりますので、Mac AddressはActive機のものを利用するのではなく、あくまでもStack ID#1の物を使い続けることが分かるかと思います。
これにより、Active機に障害が発生した際に、Standby機がActive機に昇格したとしてもMac Addressは変わらないということになりますので、LACPとしては無停止で通信が継続されるということにもなります。
Port番号としては、StackのIDとInterface番号を組み合わせたものになるようです。
対向のSwitchがStack ID#1でGigabit1/0/2であった場合、Port番号は、
0x103
となっていますので、Interface番号に1を加えたものがPort番号となるようです。
まとめ
今回検証したCatalyst9300はCloud Native IOS-XE Version 17.15.3となり、挙動としては当たり前ではありますが、これまでのIOS-XEでの物と同じになるように見えます。
唯一異なるところは、純粋なIOS-XEにおいては、管理者によってStack IDを手動で設定することが可能だっと思いますが、Cloud Native IOS-XEにおいてはそのような設定を行うことはできませんので、Macアドレスによって決まってくるということだけを理解しておけば良いのかもしれません。