3. STPとEthernetChannelの設定
3.1. STPの設定
3.1.1. STPの設定と確認
STPの概要確認
スイッチはアドレス学習機能/フィルタリング機能などたくさんの機能やポートがあることから、演算を行うためのハードウェア要素が複雑であるため壊れやすい。実際に耐久年数は1年程度と言われている。 そのためスイッチは基本的には冗長化される。その手法の1つがSTPとなる。
STP(スパニングツリープロトコル)はIEEE802.1Dとして規定されたL2スイッチで冗長化構成を組んだ際のブロードキャストストーム(L2通信のループ)を防ぐためのプロトコル。 具体的にはネットワークの耐障害性向上のために冗長化を行った際にブロードキャスト通信がループしてネットワークリソースを圧迫するのを防ぐのに使用される。ARP要求などがそのブロードキャストにあたる。
STPの設定と確認
スパニングツリーはCisco製品の場合デフォルトでは有効になっているため設定は不要となっている。
なお確認はshow spannig-tree
で可能。
STPの動作確認
STPに限らずルータの動作確認にはdebug
コマンドを使用するがCPUに負荷がかかるため必要なときのみ行うようにする。
STPの動作確認の開始/停止は以下コマンドで行える。
3.1.2. トポロジ変更に関するオプション
STPはデフォルトではどのスイッチがルートブリッジになるかわからない。 場合によっては特定のスイッチをルートブリッジにしたいケースなどもある。 そうしたケースの場合はSTP関連設定を変更しSTPトポロジを変化させて、ネットワーク管理者が意図する構成にする。 そのためのコマンドはいくつかある。
ブリッジプライオリティの変更
ルートブリッジにしたいスイッチではプライオリティをデフォルトより小さい値にしておくのが一般的。 プライオリティを変更するには以下コマンドを実行する。
PVST+の場合はVLAN毎にプライオリティを指定可能なためVLAN番号に対象VLANを指定する。 またPVST+ではブリッジプライオリティの一部をVLANとして試用している関係上、プライオリティは4096の倍数を指定する必要がある。
また他の手法としてはダイナミックに直接ルートブリッジを指定する方法があり以下コマンドで実行できる。
上記コマンドの実行により指定したVLAN上でルートブリッジに選出されているスイッチのプライオリティを自動チェックし、スイッチのブリッジプライオリティより小さい値が自動設定され、自身がルートブリッジに選出される。
バスコストの変更
ポートの役割はバスコストを変更することで変えることができる。 ポートのバスコストは以下コマンドで変更可能
バスコストのデフォルト値の変更
バスコスト値のデフォルト値はショート法かロング法の2種類のいずれかで決定される。 デフォルトではショート法になっているが切り替えることも可能で、以下コマンドで変更できる。
ポートプライオリティの変更
ポートプライオリティは以下コマンドで変更できる。
3.1.3. PortFastの設定と確認
PortFastはコンバージェンスを早くする機能の1つで、この設定でポートを即座にフォワーディングに遷移させられる。 なおループの危険性があるためハブやスイッチ間リンクでは設定してはならない。
PorrtFastの設定
PortFastは以下コマンドで実行でき、基本的にはアクセスポートに設定する。 つまりPortFastの設定ポートはPC、サーバなどを接続することを前提としている。
PorrtFastの確認
以下コマンドで表示されるtype項目がPsp Edge
となれば、そのポートはPortFastとなる。
3.1.4. BPDUガードの設定と確認
BPDUガードは、PortFastが設定されているスイッチポートでBPDUを受信した時、そのポートをerror-disabled
にする機能。
この機能によりスイッチがPortFastが設定されたポートに接続した場合でも、ポートを error-disabled にして不正接続を防止でき、さらに想定しないスイッチ機器の接続を防止することから、Layer2ループの発生を防ぐことができる。
BPDUガードの有効化
BPDUガードを有効化/無効化するには2種類のコマンドがある。
以下コマンドではPortFastの設定が行われるすべてのポートでBPDUガードを有効化/無効化できる。
(config)#spanning-tree portfast bpdguard default
(config)#no spanning-tree portfast bpdguard default
また以下コマンドではPortFastの設定の否かに関係なくそのインターフェイスのみで有効/無効にできる。
BPDUガードの設定と確認
BPDUガードでBPDUを受信してerror-diabled
になったポートを手動で復旧させる場合はポートを再起動させる必要がある。
3.1.5. ルートガードの設定と確認
ルートガードの設定を行うと既存のルートブリッジより小さなブリッジIDのスイッチが接続されても、STPトポロジの変更を防げる。
ルートガードの有効化
ルートガードの設定と確認
ルートガードの設定後に既存のルートブリッジより小さなブリッジIDを持つスイッチを追加した場合、show spanning-tree vlan <VLAN番号>
実行後のSts項目にBKN*
と表示される。またType項目には*Root_inc
と表示されルート不整合を意味する。
ルート不整合状態では復旧コマンドは不要で、上位BPDUが送られなければ元に戻る。
3.1.6. RSTPの設定と確認
STPではコンバージェンスに最大約50秒かかる。そのため早期に復旧すべき環境では数秒で切り替わるRSTPを設定する。
RSTPへの設定
RSTPはSTPと互換性があるためネットワーク内で混在環境を設定できるが、RSTPの効能を最大限発揮して動作させるためにはすべてのスイッチの動作モードをRSTPに変更する必要がある。
STPからRSTPへ動作モードを変更するには以下コマンドで行え、RSTPの場合にパラメータはrapid-pvst
を指定する。
pvstの指定でPVST+でrapid-pvstでRapid-PVST+となる。 デフォルトではpvst(STP)となる。
RSTPの確認
以下コマンドで表示される項目中にSpanning tree enabled protocol rstp
とあれば、RSTPに変更されている。
3.2. EthernetChannelの設定
EthernetChannelはリンクアグリゲーション(LAG)とも呼ばれ、リンク間通信の耐障害性と負荷分散を実現できる。
3.2.1. EthernetChannelの基本コマンド
EthernetChannelの設定はケーブルを外した状態で行う。これは片側スイッチのみでEthernetChannelを形成すると対向スイッチで戻ってきてループが発生する恐れがあるためである。
EthernetChannelの形成
EthernetChannelの形成は以下コマンドで行える。
グループ番号はチャンネルグループを指定し、バンドルさせたいポートでは同じ番号にする。 なおグループ番号は対向スイッチと合わせる必要はない。
モードはネゴシエーションプロトコルをLACPかPAgPにする、または手動で合わせるかどうかに従って合わせる必要がある。
種類 | モード | 動作 |
---|---|---|
手動 | on | 強制的に有効化 |
自動PAgP | desirable | 自分からPAgPネゴシエーションする(相手から受信して合わせる) |
自動PAgP | auto | 自分からPAgPネゴシエーションしない(相手から受信して合わせる) |
自動LACP | active | 自分からLACPネゴシエーションする(自分から送信する) |
自動LACP | passive | 自分からLACPネゴシエーションしない(相手から受信して合わせる) |
ネゴシエーションプロトコルの指定
ネゴシエーションプロトコルを指定する場合には以下コマンドで実行できる。 ただEthernetChannelを形成した際に自動でネゴシエーションプロトコルは決まるため必ず設定をする必要はない。
ただしEthernetChannel形成前に実行すると、形成する際に間違ったモードを選択した際にメッセージを出してくれるメリットがある。
負荷分散方法の指定
EthernetChannelの負荷分散させる方法の変更には以下コマンドを使用する。
負荷分散手法のオプションは以下より
オプション | 負荷分散動作 |
---|---|
src-mac | 送信元MACアドレスを基に負荷分散 |
dst-mac | 宛先MACアドレスを基に負荷分散 |
src-dst-mac | 送信元MACアドレス/宛先MACアドレスを基に負荷分散 |
src-ip | 送信元IPアドレスを基に負荷分散 |
dst-jp | 宛先IPアドレスを基に負荷分散 |
src-dst-ip | 送信元IPアドレス/宛先IPアドレスを基に負荷分散 |
src-port | 送信元ポート番号を基に負荷分散 |
dst-port | 宛先ポート番号を基に負荷分散 |
src-dst-port | 送信元ポート番号/宛先ポート番号を基に負荷分散 |
rangeコマンドを使ったインターフェイスの指定
ポートそれぞれで設定をするとコマンドの打ち間違いなどでポート設定がずれる場合がある。 そこで複数のポートをまとめて設定する方法がある。
インターフェイスの区切り方はFa0/1,Fa0/3
のように区切る、もしくはFa0/1 -12
のように範囲指定することができる。
3.3.3. L2-EthernetChannelの設定
EthernetChannelの設定例
(config)#interface range Fa0/1,Fa0/4
(config-if)#switchport mode trunk
(config-if)#channel-group 1 mode on
EthernetChannelの確認
detailを指定すると設定されたモードまで閲覧可能となる。
STPの確認
show spanning-tree
を実行するとEthernetChannelでバンドルしたインターフェイスはPo1
などと表示される。
running-configの確認
show running-config
で確認すると一覧にPort-channelN
(Nは数字)でPort-channelインターフェイスが記載されることになる。
負荷分散方法の確認
EthernetChannelでどの負荷分散方法が設定されているかは以下コマンドで確認できる。
PAgP、LACP設定時の隣接ポートの確認
隣接するスイッチのポートの各情報を確認するには以下コマンドでできる。
3.3.4. L3-EthernetChannelの設定
L3スイッチではポートをルーテッドポートに設定することでL3-EthernetChannelを形成できる。 L2-EthernetChannelとの違いはIPアドレスの設定をPortChannelインターフェイスで行う必要がある点である。
L3-EthernetChannelの設定例
L3-EthernetChannelの設定ではバンドルする物流インターフェイスをあらかじめno switchport
でルーテッドポートに変更を行う。
なおバンドルされている個々の物理ポートではIPアドレスの設定の必要はない。
(config)#interface range fastEthernet 0/1 - 3
(config-if-range)#no switchport
(config-if-range)#channel-group 1 mode active
Creating a port-channel interface Port-channel 1
(config-if-range)#exit
(config)#interfase Port-channel 1
(config-if)#ip address 192.168.1.1 255.255.255.0
(config-if)#exit
L3-EthernetChannelの確認
方法はL2-EthernetChannelと同じ。
detailを指定すると設定されたモードまで閲覧可能となる。
なおPort-channel項目に(Ru)
と表示されていればL3でEthernetChannelが形成されていることが確認できる。
3.3.5. EthernetChannelのトラブルシューティング
EthernetChannelでトラブルが発生した際の確認事項をそれぞれ記載する。
EthernetChannelの不形成
show etherchannel <summary | detail>
実行時にPort-channel項目に(SD)
と表示されている場合はdownしており、EthernetChannelは形成されていない。その場合はプロトコルの不一致やモードの組み合わせに問題があることが疑われる。
一部のポートがバンドルされていない
show etherchannel <summary | detail>
実行時にPorts項目にFa0/1(s)
などと表示されている場合はポートが使用できない。
この場合suspended
を意味し、他ポートと設定がずれている可能性がある。
アクセスポートの場合はVLANの一致。
トランクポートの場合はカプセル化、通過許可VLAN、IEEE802.1Qの場合はネイティブVLANの一致、通信モード(半二重/全二重)/速度が一致している必要があるため、show running-config
なども組み合わせて適宜調査する必要がある。