【L2スイッチの動作について】

                  このHPはL2スイッチの動作についてまとめたものです。




1ー1 L2スイッチの動作について

L2スイッチは、データリンク層で動作するデバイス。L2スイッチは、各ポートのポート番号と、その先に接続されているホストのMACアドレスを、L2スイッチの内部の「MACアドレステーブル」に学習する。

L2スイッチは、フレームの単位でデータを扱い、データリンク層で付加されるヘッダの内容を解釈し、フレームのエラーチェックも行う。
受け取ったイーサネットフレームの「送信元MACアドレス」から「MACアドレステーブル」を作成し、フレームの送信先MACアドレスとMACアドレステーブルを照らし合わせて転送すべきポートにだけフレームを転送する。






■MACアドレス学習の流れ

@電源投入時、L2スイッチはMACアドレステーブルに何も学習していない。
ここで、「ホストA」から「ホストC」にデータを送信する場合を考えてみる。










AMACアドレス「0000.0000.1111」の「ホストA」が、MACアドレス「0000.0000.3333」の「ホストC」宛のフレームを送信する。L2スイッチは、フレームの送信元MACアドレス「0000.0000.1111」がMACアドレステーブルに学習されているか確認する。
学習されていない場合は、「受信したポート」と「送信元MACアドレス」をMACアドレステーブルに学習する。













BL2スイッチは、送信先MACアドレス「0000.0000.3333」がMACアドレステーブルに学習されているか確認する。
この場合は、一致するアドレスはまだ学習されてないので、MACアドレステーブルには無し。すなわち、「Unknownユニキャストフレーム」
MACアドレステーブルに学習されていないMACアドレスが宛先になっているイーサネットフレーム「Unknownユニキャストフレーム」という。

「Unknownユニキャスト」フレームは、受信したポート以外の全てのポートに同じフレームを転送する。この動作を「フラッディング」と呼ぶ。

「ホストC」は、フレームを受信して処理するが、「ホストB」、「ホストD」は自分宛のフレームではないため、破棄をする。
















C他のホストも同様の動作で、A〜Bを繰り返しMACアドレステーブルにMACアドレスを学習する。その後、再度「ホストA」から「ホストC」へデータを送信したとする。

L2スイッチは、先ほどと同様に送信先MACアドレスと、MACアドレステーブルを調べ、「ホストC」はポート3に接続されているのがわかる。

その場合L2スイッチは、フレームは対応するポートのみに転送し、他のポートには転送しない。これを「フィルタリング」という。
※また、「ブロードキャストあてのフレーム」を送信した場合、MACアドレステーブルには、ブロードキャストのMACアドレスエントリ無いので、この場合も、フレームはフラッディングされる。




















1-2 MACアドレステーブルの表示


Catalystスイッチでは、MACアドレステーブルがCAMというメモリに格納されているので、「CAMテーブル」と呼ぶ場合もある。

L2スイッチの現在のMACアドレステーブルの情報を表示するには、ユーザーモードか特権モード「show mac-address-table」か、「showmacaddress-table」コマンドを使用する。


【MACアドレステーブルの確認】(ユーザーモード/特権モード)
#show mac-address-table  または # show mac address-table

MACアドレステーブルには、以下の情報が記録され、ポート間でフレーム転送を行う。







L2スイッチは、受信したフレームの宛先MACアドレスとMACアドレステーブルに登録されているMACアドレスが完全一致するものを検索し、該当のMACアドレスが見つかれば、「Ports」で指定されているポートにフレームを転送するが、VLAN番号が異なる場合は転送しない。





■L2スイッチに登録されるMACアドレスの種類

MACアドレステーブルに学習されるアドレスには、以下の2種類がある。


・ダイナミックアドレス
・スタティックアドレス


「ダイナミックアドレス」は、L2スイッチが自動で学習するアドレスタイプ。一定期間使用されないときはエージアウトし、消去されるMACアドレス。

「スタティックアドレス」は、管理者が静的に定義したアドレスタイプ。スタティックアドレスは永続的に記録され、エージングアウトされない。

MACアドレスをスタティックに登録するには、グローバルコンフィギュレーションモードで「mac address-static」コマンドを実行する。


【スタティックMACアドレスの登録】(グローバルコンフィグレーションモード)
#mac address-table static <mac-address> vlan <vlan-id> interface <interface>




また、L2スイッチが動的に学習したダイナミックアドレスを消去するには「clear mac address-table dynamic」コマンドを使用する。

【ダイナミックアドレスの消去】(特権モード)
#clear mac address-table dynamic [ address <mac-address>/interface<interface>/ vlan<vlan-id>]







■エージングタイム

動的に登録されたMACアドレスは、一定時間の通信が発生しない場合、自動的に消去される。
自動で登録されたMACアドレスが削除されるまでの時間を「エージングタイム」といい、Catayst2960ではデフォルトで「300秒」に設定されている。

現在のエージングタイムを確認するには、特権モードで「show mac address-table aging-time」コマンドを入力する。

【エージングタイムの確認】(特権モード)
#show mac address-table aging-time




また、現在のMACアドレステーブルのエージングタイムを変更するには、グローバルコンフィギュレーションモードで、「mac address-table aging-time」コマンドを入力する。「0」を指定するとエージングが無効になる。

また、オプションとして<VLAN番号>を指定し、対象のVLANだけ、エージングタイムを変更することもできる。


【エージングタイムの変更】(グローバルコンフィギュレーションモード)
#mac address-table aging-time <秒数> [vlan <VLAN番号>]


下記では、エージングタイムを「900秒」に変更している。