3.スイッチング

L2/L3スイッチやスイッチングハブの動作のキホン

3.1. スイッチング

3.2. VLAN

VLAN(仮想LAN)はスイッチ内部でネットワークを仮想的に分割する技術を指す。

VLAN

VLANを使用すると1台の物理的なスイッチで仮想的に複数のネットワークを作成できる。つまるところ1台の物理的スイッチにそれぞれ分割したネットワークの数だけ仮想的なスイッチが構成されるイメージとなる。

VLANのメリットは以下の通り。

  • 端末の物理的配置に依存しないネットワークの構成が可能
  • ブロードキャストドメインの分割が可能
  • セキュリティ対策となる

3.2.1. VLANのポート

VLANのポートはどのVLANに属するかによってアクセスポートトランクポートに分かれる。

3.2.1.1. アクセスポート

アクセスポートは1つのVLANに属しているポートを指す。 またアクセスポートは通常PCやサーバといった機器が接続されるポートとなる。(デフォルトはVLAN1)

またアクセスポートに接続されたリンクはアクセスリンクと呼ばれる。

スイッチのポートにVLANを割り当てるには2つの方法があり、1つが手動で割り当てるポートベースVLAN(スタティックVLAN)、もう1つが自動で割り当てるダイナミックVLANという。

3.2.1.2. トランクポート

トランクポートは複数のVLANに属しているポートとなる。

トランクポート

トランクポートにつながっていて複数のVLANが通過するリンクはトランクリンクと呼ばれる。 またトランクポートに接続されるポートは通常、複数のVLANの通信が通過するスイッチ間ポートやルータと接続されているポートとなる。

3.2.2. トランキングプロトコル

トランクポートでは複数のVLANの通信が通過するため、通信を識別する必要はある。そのためトランクリンクではフレームにVLANを識別するための情報としてタグが付加される。方法にはCISCO社独自手法のISLIEEE802.1Qの2つのプロトコルがある。

3.2.2.1. ISL

ISLはCISCO社独自定義のプロトコル。 イーサネットフレームの前にISLヘッダを付加し、新しくFCSを再計算し末尾に負荷する構成となる。

ISL

ISLでは通常のイーサネットフレームの最大長の1518ByteにISLヘッダとISL FCSを合わせた30Byteを足して1548Byteの大きさとなる。

ISLでは通信対象の機器もCISCO製品である必要がある。

3.2.2.2. IEEE802.1Q

IEEE802.1Qはイーサネットフレームの送信元MACアドレスとタイプ間にVLANタグを挿入するタギングプロトコル、と呼ばれる。 IEEE802.1Qでは通常のイーサネットフレームの最大長に4Byteを足した1522Byteとなる。

IEEE802.1Q

IEEE802.1QにはNativeVLAN(ネイティブLAN)と呼ばれる機能がある。 これはトランクポートに1つずつ選択でき、ネイティブVLANには指定したVLANからの通信にはタグをつけずに送信し、受信した際にネイティブVLANからの通信と判断する構造となっている。 つまり両スイッチそれぞれでトランクリンクのNativeVLANを合わせておく必要がある。

またIEEE802.1Qのようにフレームにタグフィールドを付加することによって、対向の機器がフレームのVLAN番号を識別できるようにする技術はVLANタギングと呼ばれる。

3.2.3. ベビージャイアントフレームとポートのネゴシエーション

3.2.3.1. ベビージャイアントフレーム

ISLでは最大サイズが1548Byte、IEEE802.1Qでは最大サイズが1522Byteとなるが、このように通常のイーサネットフレームの最大長より少し大きなフレームサイズはヘビージャイアントフレームと呼ばれる。

1600Byteまでのフレームサイズがこう呼ばれ、それ以上大きいものはジャンボフレームと呼ばれる。

3.2.3.2. ポートのネゴシエーション

VLANのポートを自動でアクセスポートかトランクポートを決定するネゴシエーションを行うプロトコルにはCISCO独自定義のDTP(Dynamic Trunking Protocol)がある。

DTP有効下ではデフォルトで30秒ごとにマルチキャストアドレス宛てにDTPフレームを送信し、カプセル化/トランクポートにするかどうかネゴシエーションをします。

ポートの動作モードは以下の通り。

モード動作
trunkトランクポートとして動作
accessアクセスポートとして動作。DTPフレームは自身から送信しない
dynamic desirableDTPフレームを送信しネゴシエーションを行う。対向機器が了承した場合自身もトランクポートとして動作
dynamic auto自身からDTPフレームを送信しない。対向機器からネゴシエーションが行われたときにトランクポートとして動作

DTPによるネゴシエーションはVLANの情報を同期させるためのプロトコルのVTPのVTPドメイン名が一致しているときに利用可能

3.2.4. 音声VLAN

VLANはIPテレフォニー(音声データをデジタル変換してIPパケットに格納しIPネットワークで音声通信を可能にする技術)でも使用されている。

IP電話の通信フレームと通常IPデータ通信のフレームを識別するためにVLANが使用される。 データ用のVLANと音声データ用のVLANを用意し通信を分ける機能は音声VLANと呼ばれる。 なおタグ中にはVLAN番号を以外を示す部分にCoSというフレーム優先度を表す値が格納できるようになっている。

パケットに優先順位をつけて通信品質と速度を保証する技術はQoSと呼ばれ、そのためにVLANは使用される技術である。

音声VLAN

トラフィック使用するVLAN
データトラフィックNative VLANを使用して伝送
ボイストラフィックVoice VLANを使用して伝送

3.2.5. VTP

VTP(VLAN Trunking Protocol)はCISCO社独自定義のプロトコルでVLANが複数のスイッチにまたがった環境でVLANの管理を簡素化できるというもの。

VTPのバージョンは1,2,3あり、VTPの使用にはバージョンを合わせる必要がある。

3.2.5.1. VLAN情報の同期

VTPを使用すると、あるL2スイッチでVLANの作成/設定を行うとVLANの情報がトランクリンクを通じマルチキャストで他のL2スイッチに伝搬する。その際にVLANの情報はL2スイッチのデータベースに保存される。

しかしスイッチのデータベースに保存されるのは標準範囲(VLAN 1~1005)までなため、CISCO社製のスイッチではvlan.datというファイル上でフラッシュメモリ上に保存される。

なお情報の同期はスイッチが自動で行うが、その際の最新更新情報の判断にはリビジョン番号が使用される。 これはデータベースに付けられる番号で、VLANの作成/更新/削除を行うと可算されていく。 これにより同期後の変更回数を確認できるためこれを基準に、もっとも大きいリビジョン番号を持つスイッチがを基準に他スイッチが同期をとる。

3.2.5.2. VTPドメイン

VTPではドメイン単位でスイッチを管理しVLAN間の情報は同じドメインに所属するスイッチ間でしか行わない。 これはVTPドメイン名で判断が可能。 つまり情報の同期を行いたいスイッチでは同じVTPドメインを指定する必要がある。

3.2.5.3. VTPの動作モード

リビジョン番号、VTPドメインのほかにVLAN情報の同期の設定を行うものとしては動作モードがある。

モード説明
サーバモードVLANの作成/更新/削除が可能なデフォルトのモード。自身のVLAN情報を他スイッチにアドバタイズする。また他のスイッチに送る情報はVTPアドバタイズメントと呼ばれる。
クライアントモードVLANの作成/変更/削除を行えない。サーバモードから送られたVLAN情報を同期し他のルータにそれを送る。
トランスペアレントモードVLANの作成/更新/削除が可能だが他のスイッチにVLAN情報をアドバタイズしない。また他ルータから情報を受け取っても同期せず他のスイッチにそれを転送する。このモードでは常にリビジョン番号が0となり、VLAN情報はvlan.dat以外にrunning-configにも保存される。拡張範囲LAN(1006~4095)を利用する場合必ずこのモードを使用する必要がある。

また動作モードの挙動は以下の表のようになる。

モードVLANの作成/更新/削除VLAN情報同期アドバタイズメント
サーバできる同期する送信する/転送する
クライアントできない同期する 送信しない/転送する
トランスペアレントできる同期しない送信しない/転送する

3.2.5.4. VTPプルーニング

VTPプルーニング(VTP Pruning)はブロードキャストの宛先VLANが存在しない(使われていない)スイッチへはフレームを送らないようにする技術のことを指す。

VTPプルーニングを有効にすることで、不要なトラフィックを減らす事が出来る。

3.2.6. VLAN間ルーティング

VLAN間ルーティングは異なるVLAN間での通信を許可する仕組みをいう。 VLAN間ルーティングはL2スイッチのみではできない、そのためルータ/L3スイッチが必要となる。

3.2.6.1. VLAN間ルーティング構成

下記の構成はルータオンスタティックと呼ばれる。

ルータオンスタティック

この構成ではルータ-スイッチ間の物理インターフェイスを仮想的に複数に分ける必要がある。 その方法としてサブインターフェイスを作成する。

3.2.6.2. サブインターフェイスの作成

サブインターフェイスの作成順序は以下の通り。

  1. サブインターフェイスのカプセル化をISLかIEE802.1Qのどれかに指定する
  2. サブインターフェイスとして扱う物理インターフェイスを2つに分割する

なおルータとL2スイッチ間はトランクリンクにする必要がある。

3.2.6.3. VLAN間ルーティングのルータ側の設定

ルータオンスティックによるVLAN間ルーティング用のルータに必要な設定は以下の通り。

  1. VLANごとのサブインターフェースを作成
  2. VLANカプセル化方式の指定とVLAN IDの指定
  3. サブインターフェースにIPアドレスを設定

3.2.6.3. L3スイッチを使用したVLAN間ルーティング

L3スイッチを使用してVLAN間ルーティングを行うには以下3つの設定が必要となる。

  • ルーティングの有効化
  • SVIの作成
  • 物理インターフェースへのVLAN割り当て

またL3スイッチ-L2スイッチ間でVLANルーティングではIPアドレスを設定する必要がある。 L3スイッチにはSVIルーテッドポートの2つのIPアドレスを設定可能なポートがある。

ポート説明
SVIスイッチ内部の仮想インターフェイス
ルーテッドポートVLAN可能なスイッチポートの設定変更を行いL3インターフェイスにしたもの。VLANの割り当ては行えない。

3.2.7. VLANの作成

新しいVLANを導入する際の手順は以下の通り。

  1. VLANを作成する
  2. VLANに名前を設定する
  3. VLANをポートに割り当てる

3.3. STP

STP(スパニングツリープロトコル)はIEEE802.1Dとして規定されたL2スイッチで冗長化構成を組んだ際のブロードキャストストーム(L2通信のループ)を防ぐためのプロトコル。 具体的にはネットワークの耐障害性向上のために冗長化を行った際にブロードキャスト通信がループしてネットワークリソースを圧迫するのを防ぐのに使用される。ARP要求などがそのブロードキャストにあたる。

3.3.1. STPの仕組み

STPでは冗長化構成の場合すべてのポートを使用せず一部のポートの通信を行わない状態にする。 ネットワークをツリー構造として考えることでループが発生しないため、ツリー構造となるようにブロックするポートを決定する。

ツリー構造にするにはツリーの起点となる中心スイッチを決定する必要がある。 中心スイッチはルートスイッチと呼ばれている。 STPではルートブリッジから最も遠いポートをブロックする。

ルートスイッチを決定するためにブリッジIDの値を比較し優劣を決定する。 ブリッジIDはブリッジプライオリティMACアドレスから決定される。 スパニングツリーが有効なスイッチドネットワークでは最小のブリッジIDを持つスイッチがルートブリッジに選出される

なお比較の際はブリッジプライオリティ(デフォルトで32768)のほうが比較に優先される。

ポートの役割

STPではポートの役割はルートポート指定ポート非指定ポートとなる。

選出順序/選出対象特徴選出方法
1.ルートブリッジL2ネットワークに1つ最小ブリッジID
2.ルートポート(RP)ルートブリッジ以外の各スイッチに1つ最小ルートバスコスト(ポート)→最小送信元BD→最小ポートID
3.指定ポート(DP)各セグメントごとに1つ最小ルートバスコスト(スイッチ)→最小送信元BD→最小ポートID
4.非指定ポートL2ループごとに1つRP,DPにならなかったすべてのポート

L2スイッチ間の情報交換

STPではスイッチ間で情報交換するのにBPDUという管理用フレームを用いる。 BPDUは0180.C200.0000というアドレスがマルチキャストアドレスとして使用される。 STPが動作するスイッチはBPDUを送受信して、ルートブリッジや各ポートの役割を決定する。

なおパケット構造でいうとBPDUはL2ヘッダの後ろに格納される。

ルートブリッジ決定の仕組み

L2スイッチは電源投入後にBPDUを2秒間隔で送信する。 決定プロセスは以下図より。

ルートブリッジ選出

ルートポートは以下基準で算出される。

  1. 累計のルートパスコストが最小のポート
  2. 送信元ブリッジIDが最小のBPDUを受けったポート
  3. 送信元ポートIDが最小のBPDUを受け取ったポート

ポートIDは**ポートプライオリティ(デフォルト値128)ポート番号(インターフェス番号)**の組み合わせで表される。

またSTPでは以下のポートをルートブリッジが決定すると決定する。

  • ルートポート … ルートブリッジまでの最短パスコストを持つポート
  • 指定ポート … スイッチ間セグメントで最上位のBPDUを送信するポート
  • 非指定ポート … 役割が決まらなかったポート(通称: ブロッキングポート)

指定ポートは以下基準で算出される。

  1. ルートバスコストが最小のBPDUを送信するポート
  2. 送信元ブリッジIDが最小のBPDUを送信するポート
  3. 送信元ポートが最小のBPDUを送信するポート

非指定ポートは役割の決定することがなかったポート。 動作としてはユーザからのフレームは送信せず、MACアドレスの学習は行わないがBPDUは受信する。

STPの動作順序はまとめると以下のようになる。

  1. ルートブリッジの決定
  2. ルートポートの決定
  3. 指定ポートの決定
  4. 非指定ポートの決定

3.3.2. ポートのステータス

ルートポートや指定ポートが決定するとユーザのフレームの転送が可能となる。 各ポートの種類が決定してもすぐに転送は行われず、ポートは状態を遷移しながら転送可能な状態となる。 状態遷移はタイマーを用いて管理され、ポートの状態はステータスで表される。

ステータス意味MACアドレスデータフレーム
Disabledシャットダウン/障害が発生している状態学習しない転送しない
BlockingBPSDの受信を行い、データフレームは転送しない。初期/非指定ポートはこの状態学習しない転送しない
ListeningBPSDを送受信し、各ポートの役割決定を行う状態学習しない転送しない
LearningBPSDを送受信し、MACアドレステーブルの学習をしている状態学習する転送しない
Forwardingデータ転送が可能な状態。ルートポート/指定ポートは最終的にこの状態となる学習する学習する

ポートの状態遷移

ポート状態遷移

上記の図の遷移が行われすべてのポートの役割が決定する状態はコンバージェンスと呼ばれる。

STPタイマーの種類

STPのタイマーには種類がある。なおこのタイマー設定の変更は非推奨となっている。 下記表よりコンバージェンスまで最大50秒ほどかかわる計算となる。

タイマーデフォルト値説明
Hello Time2秒スイッチのBPDUの送信間隔
Max Age20秒ルートブリッジからのBPDUを受信しなくなり障害発生と見なすまでの時間。この20秒間にBPDUを受信しないとSTPの再計算が開始する。
Forward Delay15秒リスニング状態、ラーニング状態にとどまる時間

3.3.4. STPの関連機能

3.3.4.1. PortFast

PortFastは通常のSTP状態遷移を経由せずにすぐにFowarding Delayの状態となり通信可能となる機能。 具体的にはBlocking状態からForwardingに状態を省略できる。

これはCis co社が独自に高速化する方法として考案し、ポートの状態がListenning, Learingの状態のときにデータを転送しないために通信できない期間を短縮するためのものとなっている。

なおPortFastはPCが接続されFowardingとなるポートで設定を行う必要があり、L2スイッチ間リンクではループの原因となるため設定してはならない

3.3.4.2. BPDUガード

BPDUガードはBPDUを受け取るべきではないPortFastの設定がされているポートがBPDUを受け取らないための仕組み。 PortFastの設定ポートがBPDUを受け取ってしまうと意図したスイッチがルートスイッチではなくなりルートが想定どおりに通らなくなってしまう。それを防ぐための機能といえる。

なおBPDUガードはデフォルトで有効化されていないためネットワーク管理者が自動で有効化する必要がある。 BPDUガードが設定されているポートではBPDUを受け取るとErr-Disable状態となりポートはシャットダウンされデータを送受信できなくなる。 なおポートの復旧にはL2スイッチにアクセスしてコマンドを入力する必要がある。

3.3.4.3. ルートガード

ルートガードは既存環境よりもブリッジプライオリティの小さいスイッチが勝手に接続された際に既存のSTPトポロジの変更を防ぐ仕組み。この機能もBPDUガードと同様に既存のSTPトポロジの保護ができる機能となる。

ルートガードを設定ポートにルートブリッジよりも上位のBPDUが送信されるとポートをroot-inconsistent(ルート不整合)状態にする。そうすると通信がブロックされる。 BPDUガードと異なり、上位のBPDUが送られなくなると通常の状態遷移をするようになる。

3.3.5. RSTP

RSTP(ラピッドスパニングツリープロトコル)はSTPを改良したIEEE802.1wで規定されたプロトコル。 このプロトコルはPortFastと異なり、CISCO社製以外のスイッチでも使用することができSTPと互換性があるため併用が可能となっている。

RSTPはSTPの上位互換機能であるため大部分のネットワークで使用されている。 機能としてはコンバージェンスまでの時間が数秒までに短縮されている特徴がある。

ポートの役割

RSTPではSTPのポートの役割(ルートポート、指定ポート、非指定ポート)に加え、非指定ポートをさらに2つに分割している。 その2つのポートが代替ポートバックアップポートとなる。

代替ポートはルートポートの予備ポートであり障害が起きてルートポートの通信トポロジが崩れた際にルートポートになる。 バックアップポートは指定ポートの予備のポートとなる。 そのためコンバージェンスまでの時間が短縮される構造となっている。

ポート説明
ルートポート各スイッチごとにルートブリッジへの最適パスコストを持つポート
指定ポート各セグメントごとにルートブリッジへの最適なパスコストを持つポート
代替ポートルートポートの代替ポート
バックアップポート指定ポートの代替ポート

ポートのステータス

STPには5つのステータス(Disabled, Blocking, Listening, Learning, Forwarding)がある。 RSTPではDisabled, Blocking, Listeningの機能は同じことからDiscardingというステータスに統一される。

ステータス意味MACアドレスデータフレーム
DiscardingBPSDを送受信し、各ポートの役割決定を行う状態学習しない転送しない
LearningBPSDを送受信し、MACアドレステーブルの学習をしている状態学習する転送しない
Forwardingデータ転送が可能な状態。ルートポート/指定ポートは最終的にこの状態となる学習する学習する

RSTPのBPDUのやり取り

RSTPではタイマーにより管理を行わずスイッチ間で直接やり取りしてポートの役割を決定する仕組みを採用している。 仕組みとしてはそれぞれのスイッチでBPDUを作成し下流のスイッチに転送している。 トポロジ変更の検知も上記と同様に行われる。 スイッチ間の生存確認を直接行うためBPDUを3回受け取らなかったら障害発生とみなすようになっている。

なおルートを切り替える場合等はスイッチ間でプロポーサルアグリーメントとよばれる種類のBPDUをやり取りすることで役割をすぐに決定するようになっている。

エッジポート

RSTPではPC、ルータ等のデバイスが接続されるポートはエッジポートとして扱う。 Cisco社製のスイッチの場合PortFast設定を行ったポートがエッジポートとして扱われる。 またL2スイッチを接続しているポートは非エッジポートとなる。

シェアードリンクとポイントツーポイントリンク

RSTPではスイッチ間の接続をシェアードリンクポイントツーポイントリンクの2つに分類している。

シェア&ポイント

種類特徴
シェアードリンクスイッチ間にハブが入っている状態、またはスイッチのポートが半二重に設定されている場合、STPタイマーを使った収束を行う
ポイントツーポイントリンクスイッチのポートが全二重に設定され、スイッチが1対1で接続されている場合、STPタイマーに依存しない高速収束を行う

3.3.5. VLANとSTPの組み合わせ

3.3.5.1. VLAN共通のスパニングツリー

STPとVLANは標準化された時期が異なるため構成を考える際に工夫する必要がある。 その手法にはCSTがあり、具体的にはVLANが各スイッチにどのように分散されているか関係なくルートブリッジの位置を決定しツリー構成を考える手法となる。

CSTの特徴は以下の通り。

  • 複数のVLANを1つのSTPインスタンスで管理するため所属LANによって通信効率が悪いルートを通る場合がある
  • STP構成が1種類なためユーザトラフィックが特定リンクに集中してしまう
  • STPインスタンスは1つだけの記憶で済むためメモリ負担は小さくなる
  • BPDUが1種類で済むためスイッチ間トラフィック量が少なくなる

3.3.5.2. VLANごとのスパニングツリー

CSTの状況を避けるために**PVST+**という独自手法がCISCO製品では使用される。 これはPVSTを改良したものとなる。

PVST+ではプライオリティが拡張システムID(12bit)というものを追加して拡張されている。 PVST+のプライオリティの特徴としてはプライオリティ値は4bit、4096の倍数で指定するなどがある。

特徴としては以下の通り。

  • 複数のVLANごとにSTPインスタンスを管理するため各VLANの通信が最適ルートを通ることができる
  • VLANごとにSTP構成が異なるためユーザトラフィックが分散される
  • STPインスタンスを複数記憶する必要があるためメモリ負荷はCSTより大きくなる
  • BPDUがVLANごとに作られるためスイッチ間トラフィックが増加する

なおPVST+以外の似た手法にIEEE802.1sMSTPと呼ばれるプロトコルがある。

3.3.6. STPの分類とまとめ

分類

3.4. EthernetChannel(LAG)

EthernetChannel(Link Aggregation Group: LAG)は複数の物理リンクを1つの論理的なリンクとみなして複数のリンクを効率よく利用する技術のこと。 これは既存の環境で使用しているスイッチ間の帯域幅を増やしたい場合に使用できる。

EthernetChannel

3.4.1. EthernetChannelの特徴

EthernetChannelでは最大8本のリンクを1つの論理リンクとして扱うことができる。 複数のリンクを1つの論理リンクとしてまとめることはバンドルと呼ばれ、論理化したポートはPort-channelと呼ばれる。

EthenetChannelを使用するメリットは以下の通り。

  • 帯域幅を増やせる
  • トラフィック分散(ロードバランシング)が可能
  • 耐障害性の向上

3.4.2. EthernetChannel設定の注意/留意点

EthenetChannelはどのポートでもバンドルできない。 条件は以下の通り。

  • ポートの通信モードが同じ
  • ポートの速度が同じ
  • ポートがすべて同一のLAN
  • VLANの設定をすべてのポートで同じにする必要がある

また負荷分散方法の設定を適切に行うと通信を複数リンクに効率分散させられる。

EthernetChannelのネゴシエーション

EthernetChannelの利用のためにはバンドルするポートを合わせてそれぞれのポート設定をまず合わせる。 一方で手動で強制的にEthernetChannelを形成する方法がある。

EthernetChannelではPAgP(CISCO独自定義プロトコル)とLACP(IEEE802.3adで規定)と呼ばれる2つのプロトコルを利用して速度/VLAN設定をネゴシエーションを行いEthernetChannelを形成できるか決定することができる。

種類モード動作
手動on強制的に有効化
自動PAgPdesirable自分からPAgPネゴシエーションする(相手から受信して合わせる)
自動PAgPauto自分からPAgPネゴシエーションしない(相手から受信して合わせる)
自動LACPactive自分からLACPネゴシエーションする(自分から送信する)
自動LACPpassive自分からLACPネゴシエーションしない(相手から受信して合わせる)

対応表

またEthernetChannelはポートセキュリティ/IEEE802.1Xの設定がされているポートでは設定ができない。

3.5. CDP/LLDP

隣接する機器の情報を取得するためのプロトコルとしてCDPLLDPがある。

3.5.1. CDP

CDPはCISCO社独自定義プロトコルでデータリンク層で動作する。 CDPではデフォルトで60秒ごとに機器の情報をマルチキャストで送信し、受信した情報はデフォルトで180秒の間キャッシュされる。

3.5.2. LLDP

LLDPはIEEE802.1ABとして標準化されたデータリンク層で動作するプロトコル。 異なるベンダーのネットワーク機器間でも使用することが可能

LLDPは通常デフォルトで30秒ごとに情報をマルチキャストで送信し、120秒間更新がなければ取得した情報を削除する構造となっている。 なおLLDPではCDPでは伝えなかったトポロジの変更情報を伝える

最終更新 2025.01.19: Added ss command (683d062)