【STP⑦】STP設計 一般的な構成とおすすめ設計

stp-part7

STPについては大体分かってきたね。それじゃ具体的な構成や設計も考えて見ようかな。

チャーチルさん

ポン先生

良いね。実際は注意するポイントは毎回似通っているし一般的な内容を押さえた上で設計すると良いと思うよ!

STPの設定項目はかなりの数になります。どの項目をどう設定すれば良いんだ!と思うことは無いですか?でも大丈夫です。一般的な構成であれば検討する設定や注意するポイントはある程度決まっているのでこの記事では良くある項目に絞って説明します。この記事の内容を理解できれば既存環境(設定)の理解や新環境の設計を概ねできるようになるでしょう。

物理構成

この章の項目
  • 一般的な物理構成 → 3台でのループ構成
  • ディストリビューションスイッチの扱い → 複雑に見えても分解して考える

一般的な物理構成 → 3台でのループ構成

まずは結論です。一般的な物理構成としては下記のような、コアスイッチ×2+エッジスイッチ×1の3台でループ構成を作る事が多いです。

一般的な物理構成

まず、ここでの「一般的な構成」の前提として冗長構成とします。どの機器まで冗長するかと言うのはありますが、コアスイッチ=冗長、エッジスイッチ=シングルのパターンが一般的です。STP観点でもスイッチ3台でのループ構成は一般的ですし分かりやすいです。

因みにエッジスイッチが1台増えた場合は4台でループ構成になる?と思うかもしれませんが実際には3台1ループのセットが2つになるだけです。ユーザ数が多い場合、単純にエッジスイッチは増えていきますが、その度にSTPの設計が変わってしまっては大変ですよね?しかしこのようにしておけば設計は変わらず、単純にセット数が増えるだけで済むので増設もしやすいという訳です。

エッジスイッチの増設

ポン先生

3台の構成図の形から「逆三角形の構成」と言えば分かる人には分かるねぇ。

ディストリビューションスイッチの扱い → 複雑に見えても分解して考える

上記構成を見て、あれ?ディストリは?と思うかもしれません。もちろんディストリビューションスイッチ有りのパターンもありますがそれはかなり大規模な構成になります。大抵の規模であればコア+エッジの2階層で済んでしまいます。

あわせて読む

コア、ディストリビューション、エッジスイッチの基本

【拠点ネットワーク】拠点LANの構成ざっくり解説 | Pingカレッジ (pingcollege.com)

ディストリビューションスイッチが入ると大体は5台構成になります。一見複雑に見えますが、前述のようにループ単位で紐解く事ができます。
※構成によってはたすき掛け(C-SW⇔D-SW間の斜めの線)の有無等違いはありますが何れにしてもループ単位で確認するというのが鉄則です!

3階層でのSTP構成

STPプロトコル

この章の項目
  • Per VLAN STPを使う(CSTは使わない)
  • RSTPがスタンダード
  • MSTPはどうか? → 極稀

Per VLAN STPを使う(CSTは使わない)

STPのトポロジーとしては以下2種類があります。

トポロジーの種類
  • Per VLAN STP:VLAN毎にトポロジーを構成
  • CST:VLANに関係無く一つのトポロジーを構成

設計の柔軟性の観点でCSTはオススメできません。基本的にはPer VLAN STP推奨です。例えばトラフィック量が増えてきたので、VLAN毎にルートブリッジを変えて負荷分散させるといった事はCSTの場合はできません。構築時に要件がなかったとしても後々設計変更があった場合に備えCSTはやめておいた方が無難です。

とは言え、最近の機器であればわざわざCSTを設定するという事も無いでしょうから、あまり気にする必要も無いかもしれません。例えばCisco Catalystの場合、デフォルトでPVST+(Per-VLAN Spanning Tree Plus)が動作しておりそもそもCSTの設定はありません。

ただし、デフォルトであるが故にあまり理解せずに設定を進めている事もあるので、「デフォルト設定がどのような動作なのか」という点は最低限押さえておきましょう。

RSTPがスタンダード

プロトコルについて、通常はRSTPを利用します。収束速度が遅いSTPをわざわざ選ぶ理由は基本無いです。
※稀に古い機器やマイナーメーカの機器でRSTP非対応(STPのみ)というケースもありますがそういった特殊ケースを除いてはRSTPで良いでしょう。

因みに新規で構築するRSTPネットワークと既存のSTPネットワークを接続する場合、残念ながら接続後のネットワーク全体としてはSTPで動作します。つまり障害時の切り替わりは30~50秒かかりRSTPのメリットは享受できません。

STP⇔RSTPは互換性がありトポロジーの形成はできますが、切り替わり時の仕組みが異なるため、遅い方のSTPに合わせる必要があります。

RSTPとSTPの接続

MSTPはどうか? → 極稀

MSTPはどうなのか?と思う人はいるかも知れません。たしかにMSTPはトポロジーをグルーピングしBPDUの送受信量を押さえるメリットはありますが、設定が少し複雑になりあまり好まれない傾向にあります。

最近はスイッチのスペックも向上しておりBPDUのトラフィック量が問題ななることもあまりないので、実際の所RSTPで十分だったりします。

ポン先生

もちろんMSTPも全く使われないという訳では無いよ。ただし
「本気でMSTP導入の検討が必要≠一般的な拠点ネットワーク」
なのでこの記事の前提からは外れる環境の方が多いかな。

ルートブリッジ・各パラメータ周り

この章の項目
  • ルートブリッジとブリッジプライオリティ → セカンダリまで考える
  • 他のSTPパラメータの設定は? → 基本はデフォでOK
  • VLAN毎の負荷分散について → ケース・バイ・ケース

ルートブリッジとブリッジプライオリティ → セカンダリまで考える

セカンダリルートブリッジ

そのネットワークで2番目にブリッジIDが小さいスイッチをセカンダリルートブリッジと言います。これはSTPのステータス的にセカンダリというモノがあると言うよりは設計者が事前に設定しておくという意味合いです。

もしルートブリッジが故障した場合、別のスイッチがルートブリッジになります。その時にどこぞの馬の骨エッジスイッチがルートブリッジになってしまうと、意図していない経路になったり、ボトルネックになってしまうため、ルートブリッジ故障時に次にルートブリッジになるスイッチを予め設定しておくという訳です。

セカンダリルートブリッジ

ブリッジプライオリティ

ではセカンダリルートブリッジはどのように決めるかと言うと、上記の通り2番目にブリッジIDを小さくすればOKです。現実的にはブリッジID≒ブリッジプライオリティなので、ルートブリッジの次にブリッジプライオリティ値を小さくします。

具体的な値としては以下パターンが多いです。

ブリッジプライオリティの値
  • パターン①

    • ルートブリッジ(C-SW#1):0

    • セカンダリルートブリッジ(C-SW#2):4096

    • その他スイッチ:32768(デフォルト)

  • パターン②

    • ルートブリッジ(C-SW#1):4096

    • セカンダリルートブリッジ(C-SW#2):8192

    • その他スイッチ:32768(デフォルト)

特に動作が変わる訳では無いですが、どちらのパターンにするかは殆ど好みです。ただし、既存環境が既にあり新しいフロアを増床するといった場合には既存機器の設定に合わせておいた方が良いでしょう。
※後で見た時にフロアによって値が違うのは何故だ?となってしまうので。

ポン先生

逆にコアスイッチのブリッジプライオリティが一切設定されていない(デフォルトの32768のまま)なんて事があったら要注意だよ!恐らく構築時にSTPのことは一切考えずに設計しているので別のスイッチがルートブリッジになっているなんてこともあり得るね。。。

他のSTPパラメータの設定は? → 基本はデフォでOK

結論としては、この記事の構成でブリッジプライオリティをしっかり設定しておけばSTPとしては動作します。これでも十分なSTP設計です。その他のパラメータ、例えばポートのパスコスト値、ポートプライオリティ値、xxタイマーの時間等々項目としては多岐に渡りますが基本的にはデフォルトのままでOKです。

これらは物理構成が特殊、機器が特殊等々何かしらの事情があればカスタマイズすることがあります。しかしこれらを弄り始めると、構築時は良いのですが後々見ると「なんでこの設定なんだっけ?」となるのはあるあるです。最悪は設定そのものに気づかない事もあり何かしらの作業時に事故が起きる可能性もあります(*_*)

よって極力は「良くある構成+最低限の設定のみ」のパターンの方がシンプルで後々別の担当者が見ても分かりやすいためオススメです。

それ以上にシンプルであることのメリットは障害発生時に感じられます。複雑に作り込まれた構成は障害時の切り分けが難しくなりますし、復旧まで時間がかかります。想定通りに切り替われば良いですが、うまく行かなかった場合は人間が目視でステータスを確認する必要があります。そういった意味でもSTP設計は極力シンプルで実績のある構成にしておくほうがオススメです。

VLAN毎の負荷分散について → ケース・バイ・ケース

Per VLAN STPで動作させる事でVLAN毎にルートブリッジを変更(=ブロッキングポートを変更)する事ができます。これに関しては個人的にはやってもやらなくてもどっちでも良いかな、といった所です。

STP構成(PVST)

トラフィック量がかなり多い、スイッチのスペックが極端に低い等々事情があるなら全然やっても良いですが一般的なオフィスのPCトラフィックであれば、最近のスイッチのスペックで十分捌けるので必須か?というとそこまででもないです。

一方VLAN毎に設定を変える場合、運用上のルール決めが重要です。具体的には「VLAN追加があった場合にどっちのスイッチをルートブリッジにするのか」というルールを予め決めておきましょうという事です。例えば以下は一例です。

  • VLANの追加順番に従って交互に追加していく
  • 奇数VLANと偶数VLANで分ける
  • VLANの用途と予想トラフィック量を都度検討して決定する

要はその時の担当者の考えだけで勝手に判断し、どちらかのスイッチにトラフィックが偏ることのないようにしておこう~という事だね!

チャーチルさん

その他小技設定

この章の項目
  • Portfast → すぐにForwarding
  • BPDUガード → BPDU来たらerror-disable
  • BPDUフィルタ → BPDU送信ストップ

Portfast → すぐにForwarding

STPが有効になっているスイッチではどのポートでループが発生するか分からないので全ポートでループに備えて待ち構えています。具体的な言うとリンクアップしたらBPDUの交換をして互いの状態を確認してから通信OK or NGのステータスを決定します。

エッジポートでは接続するのはPCやサーバ等STP非対応の機器です。待てど暮らせどPCからBPDUはやって来ません。ここでスイッチは接続機器がSTP非対応で有ることをようやく察して、Forwardingに変更し通信できるようになります。

Portfastなしの場合

しかし、これはPCを接続する度に毎回30秒全く通信できないと言ったレベルなのでユーザの利便性はかなり下がります。そのため、「ここはエッジポートでループしません。リンクアップしたら速攻でForwardingにせよ。」な印を付けておきます。この設定をPortfastと言います。

基本的にエッジポートにはPortfastを設定しておきます。これにより接続後すぐに通信可能になります。

Portfast有りの場合

BPDUガード → BPDU来たらerror-disable

Portfastはかなり一般的で基本的にエッジポートには設定します。一方、作業ミスでPortfastポートに別のスイッチを接続した際にブロードキャストストームが発生してしまう可能性があります。

そんな事態を防ぐ機能がBPDUガードです。BPDUガード設定後にBPDUを受信するとそのポートはerror-disableになります。error-disableになると一切通信できなくなるため万が一ブロードキャストストームが発生しても防いでくれます。

BPDUガードとerror-disable

ポン先生

因みにerror-disableポートはshutdown→no shutdownで復旧できるよ。

BPDUフィルタ → BPDU送信ストップ

Portfastはあくまでデバイスを接続した際にすぐForwardingにする設定であり、スイッチ→デバイスへのBPDUは送信しています。PC等のデバイスにBPDUを送信しても無駄なので送信そのものを止める事ができます。これをBPDUフィルタと言います。

BPDUフィルタ

ただ、BPDUフィルタに関しては無駄を無くす程度の設定なので、劇的に何かが改善する訳ではありません。もし設定されていれば、気の利いた設計だなと言う感じです。


BPDUガードとBPDUフィルタ、どっちがどっちだか分からなくなるから良く復習しないと(@_@)

チャーチルさん

まとめ

ポイント
  • 物理構成
    • 一般的なSTP物理構成 → 3台での逆三角形

    • スイッチが増えてもループのセット数が増えるだけ

    • ディストリスイッチが増えてもループ単位で見よう

  • プロトコル
    • Per VLAN STPを使う(最近の機器であれば満たしてる)

    • RSTPがスタンダード(STPは使わない、MSTPは稀)

  • ブリッジプライオリティ値

    • ルートブリッジ:セカンダリルートブリッジ=0:4096 or 4096:8192

    • 他のパタメータはデフォルトで基本はOK

    • VLAN毎の負荷分散は特別要件なければ不要

  • その他
    • Portfast:必須

    • BPDUガード:推奨

    • BPDUフィルタ:どちらでも

この記事ではSTP設計のポイントについてオーソドクスな内容をまとめました。マニアックな設定や特殊な構成の話は一旦置いておき、良くある構成であればこの記事の内容で概ねカバーできます。実際、物理構成が似ていればSTPの設計も同じになることが多いので、一番良くある設計内容を理解しておけば汎用的に使い回せるので是非ポイントを押さえておきましょう。