danishnetのブログ

「あるネットワークエンジニアの生活。」

catalyst2960スタック(StackWise)構成の作り方

Cisco Catalyst2960xをスイッチのスタック構成について作り方や確認・設定方法をまとめておく。

 

正式にはStackWise、物理的に複数台のスイッチを仮想的に1台のスイッチとして動かす。これにより冗長化や管理性の向上が期待できるが、その概念や実装はそれほど複雑ではない印象がある。

前提としてスタック対応の機種である事、Ciscoのページでちゃんとスタック対応機種であるか事前確認が必要である。例えばLAN-Liteシリーズは低廉価モデルであるため非対応である。またスタックモジュールがスイッチの本体価格と比較して意外と高く、スイッチ1台に対してスタックモジュール1台必要なので、導入時はこれらも含めて検討が必要なので価格で盲点とならないように事前確認が必要です。

■スタックの基本的な構成概念
スタック は「マスター」と「メンバー」で構成する。スタック マスターの役割は設定を制御し、スタックを一元管理すること。例えばVLAN VTP、DTP、CDP、LLDPやSNMPなど管理トラフィックもマスターに転送される。設定が変更された場合、スタック マスターは設定のコピーをすべてのメンバに送信しすべてのメンバに、保存された設定のコピーが提供される

スタックを組んでいるすべてのメンバに、稼働状態にあるFlexStackリンク(Stackモジュール間のStackケーブル)がそれぞれ 2 本ずつ接続されていれば完全冗長モードで動作。2筐体間を1本繋ぐだけでは非冗長モードで動作し。冗長性は確保できない。このスタックでは、可能な帯域幅の半分しかメンバ間に提供されておらず、冗長接続性はない。


■スタックに必要なパーツ - FlexStack モジュール
冒頭に書いたが、スイッチ シャーシにスタックケーブルを接続するためのFlexStack モジュールを差し込む必要がある。搭載時はネジは指で締める以上にきつく締めない様注意すること。
スタックモジュール、スタックケーブルを接続するときの手順は以下の通りになる。

  1. 1台目(マスター)にスタックモジュールを差して電源投入

起動後に状態確認

switch1#sh switch
Switch/Stack Mac Address : xxxx.xxxx.xxxx
                                           H/W   Current
Switch#  Role   Mac Address     Priority Version  State
----------------------------------------------------------
*1       Master xxxx.xxxx.xxxx     1      4       Ready

switch1#
switch1#show switch stack-ports
  Switch #    Port 1       Port 2
  --------    ------       ------
    1          Down         Down

switch1#
switch1#show switch neighbors
  Switch #    Port 1       Port 2
  --------    ------       ------
      1        None          None

(確認) Role:Master で Current State:Readyになっているため、マスタとしての状態は問題なし。現状はマスタがスタンドアロンで機能している状態

  2. 2台目  スタックモジュールを差して、スタックケーブルを2本さしてから電源投入。さしてから電源投入すること。

2台目起動中の1台目で出力したコンソールログ

Oct 10 12:03:03.674: %STACKMGR-4-STACK_LINK_CHANGE: Stack Port 1 Switch 1 has changed to state UP
Oct 10 12:03:48.728: %STACKMGR-4-SWITCH_ADDED: Switch 2 has been ADDED to the stack
Oct 10 12:03:58.312: %STACKMGR-5-SWITCH_READY:Switch 2 is READY
Oct 10 12:03:58.312: %STACKMGR-4-STACK_LINK_CHANGE: Stack Port 1 Switch 2 has changed to state UP
Oct 10 12:03:58.312: %STACKMGR-4-STACK_LINK_CHANGE: Stack Port 2 Switch 2 has changed to state UP
Oct 10 12:03:58.246: %STACKMGR-5-MASTER_READY: Master Switch 1 is READY (switch1-2)
Oct 10 12:03:03.674: %STACKMGR-4-STACK_LINK_CHANGE: Stack Port 2 Switch 1 has changed to state UP
Oct 10 12:03:58.822: %STACKMGR-5-SWITCH_READY: Switch 2 is READY (switch1-2)
Oct 10 12:04:03.859: %CFGMGR-4-SLAVE_WRITING_STARTUP_CFG: only master can do that (switch1-2)
Oct 10 12:04:03.859: %CFGMGR-4-SLAVE_WRITING_STARTUP_CFG: only master can do that (switch1-2)

起動後に状態確認。show switchではメンバの数、マスターであるメンバ、すべてのメンバの状況などが確認できる。

switch1#sh switch
Switch/Stack Mac Address : xxxx.xxxx.xxxx
                                           H/W   Current
Switch#  Role   Mac Address     Priority Version  State
----------------------------------------------------------
*1       Master xxxx.xxxx.xxxx     1      4       Ready
 2       Member yyyy.yyyy.yyyy     1      4       Ready


(確認) Role:MemberでCurrentState:Readyとなっているためスタックメンバーとして参加したことがわかる。
(メモ) スタックメンバのCurrent Stateは「Ready」以外に、次のいずれかの状態を取る
   「progressing」:ブート中
   「mismatch」   :ハードウェアまたはソフトウェアの不一致によりメンバが参加不可の状態
   「provisioned」:メンバ設定済みであるが1度もスタック参加実績がない
   「removed」    :現在電源が投入されていないスタック メンバ、またはスタックから削除されたスタック メンバ

switch1#sh switch neighbors
  Switch #    Port 1       Port 2
  --------    ------       ------
      1         2             2
      2         1             1

switch1#sh switch stack-ports
  Switch #    Port 1       Port 2
  --------    ------       ------
    1           Ok           Ok
    2           Ok           Ok

(メモ) ここで注意ですがswitch2にはコンフィグ投入して、確かにwrite memoryしてからスタックへメンバー参加させたのですが、スタック後の「各ポートのコンフィグ」が消えてました。スタックにすればポート番号に筐体番号が付加されるからかと思いますが、何か引き継ぐ様な手順や反映ルールがないかは要調査です。実際に使用する現場でのコンフィグ投入するというのが無難かも知れません。

今度は2台目の電源を落としてみる。

Oct 10 12:11:58.675: %STACKMGR-4-STACK_LINK_CHANGE: Stack Port 1 Switch 1 has changed to state DOWN
Oct 10 12:11:58.675: %STACKMGR-4-STACK_LINK_CHANGE: Stack Port 2 Switch 1 has changed to state DOWN
Oct 10 12:12:00.426: %STACKMGR-4-SWITCH_REMOVED: Switch 2 has been REMOVED from the stack

switch1#show switch neighbors
  Switch #    Port 1       Port 2
  --------    ------       ------
      1        None          None

switch1#sh switch stack-ports
  Switch #    Port 1       Port 2
  --------    ------       ------
    1          Down         Down


switch1#sh switch
Switch/Stack Mac Address : xxxx.xxxx.xxxx
                                           H/W   Current
Switch#  Role   Mac Address     Priority Version  State
----------------------------------------------------------
*1       Master xxxx.xxxx.xxxx     1      4       Ready
 2       Member 0000.0000.0000     0      0       Removed

メンバーはRemovedになり、stack-portはDown状態となる。

■FlexStack LED の動作
筐体前面にある LED でもスタック動作を確認できます。複数の Cisco Catalyst 2960 スイッチを 1スタックした場合、スタック マスターの「MSTR」LED のみが緑に点灯します。同じスタックグループの他のメンバの LED は点灯しません

■FlexStack のスタック台数の上限
「sシリーズ FlexStack」4台までスタック可能。「xシリーズ FlexStack-Plus」8台までスタック可能。混在すると4台まで(sシリーズに引きずられる)。

■FlexStack の運用
マスターの MAC アドレスが、論理スタックの MAC アドレスとして使用される。特定のスイッチをスタック マスターにする方法としては、下記リンクに記載がある通り。
http://www.cisco.com/web/JP/product/hs/switches/cat2960x/prodlit/white_paper_c11-728327.html
----------------------------------------------------------------------------------------
FlexStack でマスターの選択に使用される選択ルールは、次の順序で適用されます。

1.現在マスターであるスイッチ
2.最高の優先度を持つスイッチ
3.設定ファイルを保持するスイッチ
4.稼働時間が最も長いスイッチ
5.MAC アドレス ブロックが最小のスイッチ
----------------------------------------------------------------------------------------
詳細は該当ページを参照する。

■マスターの設定
マスタの故障したときに、別のスイッチにマスターが入れ替わるようなバックアップとして意識して設定するとよい。プライマリ マスターの優先度が14、他のすべてのメンバの優先度が1に設定されているとき、例えばあるメンバの優先度を5の様に、1よりも大きく、14よりも小さい値に設定すればマスターが故障した時にその優先と5のメンバがセカンダリ マスターになる。