現在のネットワーク構成の中でトラフィック制御やアクセスコントロールなどの重要な部分を担う機器としてスイッチがあります。トラフィックが増大したネットワークでは,スイッチはとても重要です。CCNA試験でもルーティングと並ぶ比重で出題されるのがスイッチングです。今回はスイッチングの基礎とCiscoスイッチの基本的な設定を学習しましょう。
フォワーディングとフィルタリング
スイッチはレイヤ2で動作するネットワークデバイスです。レイヤ2で動作するデバイスとしてはブリッジもあります。ブリッジとスイッチの基本動作は同じです。ただし,ブリッジがソフトウエアで処理するのに対して,スイッチはASICによるハードウエアで高速に処理します。さらにポート密度(1つのデバイスに存在するポート数)が高く,ネットワークのトラフィックをより詳細に制御することができます。スイッチは2つの動作を行います。
- フォワーディング ・・・ 受信フレームを受信ポート以外の対応するポートへコピーして転送する
- フィルタリング ・・・ 受信フレームをルールに従って廃棄する
スイッチはこの2種の動作により,トラフィックを制御します。特に「どのポートにフレームを転送(フォワード)するか」という点が重要です。スイッチはブリッジ同様,MACアドレスを基に転送先を判断します。スイッチのフォワーディング動作は次の通りです(図1)。
- 受信フレームの送信元MACアドレスと受信ポートの対応を記録する
- 受信フレームのあて先MACアドレスに対応したポートからフレームを送出する
- 受信フレームのあて先MACアドレスに対応したポートが受信ポートだった場合,廃棄する
- 受信フレームのあて先MACアドレスに対応したポートがない場合,あるいはマルチキャストやブロードキャストの場合は,受信ポート以外の全ポートから送出する(フラッディング)
スイッチはアドレスとポートの対応表(アドレステーブル)を記録するために,CAM(Content Addressable Memory)と呼ばれるメモリを搭載しています。CAMは高速にアクセスできるメモリでフォワーディングの中核を担います。また,あて先がCAMにない,またはマルチキャストやブロードキャストの場合,受信ポート以外の全ポートに送出します。この動作はフラッディング(Flooding)と呼ばれます。
フレームの伝送モード
スイッチがフレームを受信して転送する動作には,主に3種類あります。- カットスルー
- ファストフォワード ・・・ フレームのうちあて先MACアドレスを読み込んだ時点で転送する
- フラグメントフリー ・・・ フレームのうち先頭64バイトを読み込んだ時点で転送する
- ストアアンドフォワード ・・・ フレーム全体を読み込んだ後に転送する
- アダプティブカットスルー ・・・ エラーフレーム数によってカットスルーとストアアンドフォワードを使い分ける
カットスルー(特にファストフォワード)は,フレームの全ビットを読み込む前に転送処理を開始しますので遅延(レイテンシ)が小さくてすみます,しかしフレームの最後のFCSを読み込まないため,エラーフレームも転送してしまいます。フラグメントフリーはエラーの中でも最も多いコリジョンフラグメント(コリジョンが原因で発生するエラーフレームでサイズが64バイト以下のもの。ショートフレームとも呼ばれる)を排除するために,先頭64バイトを読み込んだ後に転送します。
一方のストアアンドフォワードはフレームの全ビットを読み込んだ後に転送します。このため,遅延がカットスルーよりも大きくなりますが,FCSを読み込むためエラーをチェックでき,エラーフレームを転送することがなくなります(図2)。
アダプティブ(適応)カットスルーは,カットスルーとストアアンドフォワードの複合モードで,エラーフレームが一定数以上になるまではカットスルーで,一定数以上になった場合はストアアンドフォワードで動作します。
ただし,現在のスイッチ,特に100Mbps,1Gbpsなど高速なインタフェースとそれを処理できるASICを持つスイッチはほとんどがストアアンドフォワードです。高速なインタフェースやASICによりカットスルーやフラグメントフリーなどが持つ処理スピードとの差がなくなっているためです。
セグメンテーションと全2重通信
スイッチは不必要なフレームを廃棄するフィルタリングを行います。これは先ほどのフォワーディング動作とも関連しています。- 特定のルールに基づいて,受信フレームを廃棄する
- 受信フレームは,受信フレームのあて先MACアドレスに対応付けられたポートにのみ転送する
- 受信フレームのあて先MACアドレスに対応付けられたポートが受信ポートだった場合は,受信フレームを廃棄する
- 受信フレームがマルチキャストあるいはブロードキャストの場合,それぞれに対応付けられたポートにのみ転送する
4つ目のマルチキャストやブロードキャストのフィルタリングは,VLAN機能と呼ばれます。VLANについては先の回で説明します。
2つ目と3つ目の動作が重要です。これによりスイッチはレイヤ1デバイスであるハブとは異なり,コリジョンドメイン(コリジョンの影響範囲)を分割し,トラフィックを制御できます(図3)。
スイッチを使うと,ポート単位でコリジョンドメインが作られることになります。これをマイクロセグメンテーションと呼びます。
また,スイッチはフレームを一時的にバッファにためる機能を持っています。このバッファ機能とマイクロセグメンテーションにより,スイッチはそれぞれのポートで通信を独立して行うことができます。このためスイッチを使う環境では,コリジョンが発生しません(コリジョンフリー)。
イーサネットで使われるUTPや光ファイバは,送信と受信が別の信号線で送信されています。例えば,UTPの100BASE-TXの場合,1・2番ペアが送信,3・6番ペアが受信です。さらにスイッチとコンピュータを直接接続する場合には,コリジョンフリーになるため,イーサネットのCSMA/CDによる半2重通信ではなく,全2重通信が可能になります。
全2重通信が可能になることにより,理論値では送信100Mbps,受信100Mbpsの通信が同時に行えます。
ただし,全2重通信を行うためには,コンピュータのNICとスイッチがそれぞれ全2重通信に対応していなければなりません。また,全2重通信を使用するように設定しておく必要があります。もし,双方の設定が異なっていた場合(NICが半2重・スイッチが全2重など)はデータ転送ができなくなります。その場合,show interfacesコマンドで確認すると,line protocolがdownの状態になります(図4)。
図4の場合,FastEthernet0/1ポートの対向が全2重に設定してあるのに対し,FastEthernet0/1ポートを半2重(Half-Duplex)に設定してしまったため,line porotcolがダウンしている状態になっています。
また,この設定は自動化できます。これはオートネゴシエーションと呼ばれ,インタフェースがFLP(Fast Link Pulse)と呼ばれる信号を流し,この信号によって速度と通信モードを設定します。FLPには自身が設定可能な速度と通信モードの情報が入っており,この中で双方が使用可能な速度と通信モードが選ばれます。
スイッチの基本設定
IOS編ではCisco製デバイス(ルータ,スイッチ)の基本的な設定を説明しました。今回は,それを踏まえた上でスイッチを設定する場合に必要な覚えておくべきコマンドを説明します。
- # show flash ・・・ フラッシュメモリに保存されているファイルを確認する
ルータではフラッシュメモリは主にIOSの保存場所として使用されていますが,スイッチではIOSだけでなく,他にも重要なファイルがフラッシュメモリに保存されます(図5)。
- c2950-i6q4l2-mz.121-14.EA1a.bin ・・・ IOSファイル
- vlan.dat ・・・ VLAN設定ファイル
VLAN情報の設定ファイル(vlan.dat)はstartup-configとは別ファイルとしてフラッシュメモリに保存されています。つまり,スイッチの設定を初期化したい場合は,startup-configに加え,vlan.datも削除しないと,完全な初期化ができません。また,バックアップを取る際にもstartup-configだけでは不十分でこのvlan.datもバックアップを取ることを忘れないようにする必要があります。
- (config)# delete flash:vlan.dat ・・・ フラッシュメモリ内(flash:)のVLAN設定ファイルを削除する
また,スイッチに対してvty接続(telnet接続)する場合や,SNMPなどのTCP/IPアプリケーションを使いたい場合などには,スイッチがIPアドレスを持っている必要があります。スイッチには管理VLANと呼ばれるものがあり,このVLANにIPアドレスを設定すると,そのアドレスがスイッチのIPアドレスになります。デフォルトでは管理VLANはVLAN1になります(VLANの詳しい設定については先の回で解説します)。
- (config)# interface VLAN 1 ・・・ 管理VLANの設定モードに入る
- (config-if)# ip address [IPアドレス] [サブネットマスク]
- [IPアドレス] [サブネットマスク]
- スイッチに設定したいIPアドレス,サブネットマスク
- [IPアドレス] [サブネットマスク]
また,他サブネットへの接続のため,スイッチにデフォルトゲートウェイを設定することができます(図6)。注意してほしいのはあくまでの「スイッチの」デフォルトゲートウェイであり,スイッチからpingを他サブネットに実行したり,他サブネットからtelnet接続を行われる場合のためのデフォルトゲートウェイを設定する,ということです。決して,スイッチに接続しているホストのためのデフォルトゲートウェイではありません。
- (config)# ip default-gateway [IPアドレス]
インタフェースの設定として通信モード(全2重,半2重,オートネゴシエーション)や,速度(100Mbps,10Mbps,オートネゴシエーション)を設定することができます。設定はインタフェース設定モードで行います(図7,図8)。
- (config-if)# duplex [full | half | auto]
- [full | half | auto]
- 通信モードを設定する。全2重(full),半2重(harf),オートネゴシエーション(auto)
- [full | half | auto]
- (config-if)# speed [100 | 10 | auto]
- [100 | 10 | auto]
- 通信速度を設定する。100Mbps(100),10Mbps(10),オートネゴシエーション(auto)
- [100 | 10 | auto]
(改定履歴)
・「スイッチの基本設定」の部分を追加しました。(2008/7/24)
一部のブラウザで図2に図1が表示されていたのを、図2が表示されるように修正しました。お詫びして訂正します。 [2010/03/26 13:00]