【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秒」に変更している。
この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秒」に変更している。