🚀

スイッチとは何者なのか?

2024/11/30に公開

はじめに

ネットワークを学ぶ際に必ず目にするスイッチというものについて、どれだけ理解していますか?
ぼんやりとしたイメージしか持っていなかったため、調べてまとめてみました。
なお、今回はCisco製品のサイトから情報まとめているため、他メーカー製のものとは一部異なる情報を含みます。

また、スイッチやルータについて明確な定義を見つけることができなかったため、ご存じの方はやさしくご指摘ただけると幸いです。

L2スイッチ(SW)とは?

ネットワークスイッチは、多くのローカルエリアネットワーク(LAN)において重要な役割を果たしている。LANスイッチは、複数のハードワェアを相互接続してLANグループを形成するために使用される、パケットを蓄積して転送する装置である。

By Wikipedia(Stallings, William (2016). Foundations of modern networking : SDN, NFV, QoE, IoT, and Cloud. Florence Agboma, Sofiene Jelassi. Indianapolis, Indiana. ISBN 978-0-13-417547-8. OCLC 927715441)
https://ja.wikipedia.org/wiki/スイッチングハブ

L2スイッチの基本動作

かんたんに

スイッチは受信したフレームを自身が保持しているMACアドレステーブルに従って転送を行う装置です。

少し詳細に

スイッチは、受信したフレームのMACアドレスを確認して、MACアドレステーブルに登録されているMACアドレスとVLANIDが同一か判断して転送を行う機器です。
MACアドレステーブルはメモリ上に保存されているため、起動した直後でデータの送受信を行っていないスイッチは、MACアドレステーブルには何も情報がありません。そのため、スイッチはフレームを受信すると受信したフレームから受信したポートとMACアドレスをMACアドレステーブルに保存します。その後、宛先を探すために受信ポートを除く全てのポートにフレームを転送するを行います。このようにして、スイッチはMACアドレステーブルの学習を行っていきます。ですが、スイッチは、一定時間通信が発生しなかった場合にテーブルの情報を削除します。

また、宛先MACアドレスが不明な場合にスイッチが受信ポートを除く全てのポートにフレームを転送する動作をフラッディングといい、一定時間ごとに削除する動作をエージングといいます。

参考(詳細の用語説明)

以下について、説明します。

  • フレームとは
  • MACアドレステーブルの中身
  • MACアドレステーブルの保存先

フレームとは

フレームとは、イーサネット通信に使用するデータのフォーマットです。パケットは、L3(ネットワーク層)で使用される通信フォーマットですが、フレームはL2(データリンク層)で使用されるフォーマットになります。

フレーム構造については、以下のリンクを参照ください。
https://fujikura-solutions.co.jp/technology/105/

MACアドレステーブルの中身

MACアドレステーブルには、VLAN、MACアドレス、Type、Portsの4つの項目で構成されています。

  • VLAN:所属しているVLANID
  • MACアドレス:接続先端末のMACアドレス
  • Type:登録方法(static(手動) / dynamic(自動))
  • Ports:スイッチ自身が接続されているポート

また、以下のコマンドでMACアドレステーブルの確認、追加、削除を行うことができます。

## 確認
# show mac address-table
## 追加
##フォーマット
# mac address-table static macアドレス vlan 所属するVLANID interface インターフェイスID
##例
(config)# mac address-table static macアドレス vlan 所属するVLANID interface インターフェイスID
(config)# mac address-table static 00-00-5E-00-53-00 vlan 100 interface Fa0/1
## 削除
# clear mac address-table [dynamic | static]

参考:https://www.cisco.com/c/ja_jp/td/docs/sw/dcswt/nex5000swt/cg/057/b_5600_Layer2_Config_7x/b_5600_Layer2_Config_7x_chapter_01010.pdf

MACアドレステーブルの保存先

MACアドレステーブルは、スイッチにより異なりますが、CAMまたはTCAMと呼ばれるメモリに保存されています。メモリ(RAM)ですので、電源のオンオフにより内容は失われます。

参考:
https://community.cisco.com/t5/switching/where-is-arp-table-and-mac-table-and-vlan-info-located/td-p/2150471

https://community.cisco.com/t5/networking-knowledge-base/cam-content-addressable-memory-vs-tcam-ternary-content/ta-p/3107938

CAM(Content Address Memory)

メモリ内に格納されている内容を高速に検索するための機能を持ったメモリで、ビットが完全一致する内容で検索する用途で使用されます。ASIC(Applicateion Specific Integrated Circuit:特定用途向け集積回路)によって検索することで転送ポートの決定を高速化しています。

TCAM(Ternary Content Address Memory)

CAMと同様に高速に検索するためのメモリですが、CAMが完全一致のものを検索するのに対して、TCAMは部分一致のものを検索する用途として使用されます。例えば、ACLなどのワイルドカードマスクやサブネットマスクなどの検索が該当します。
※Catalystスイッチの場合、MACアドレステーブルのことをCAMテーブルと呼ぶ場合もあります。


Todo:CAMやTCAMが容量の上限を超えた場合、どんな動作をするのか調べる
MACアドレステーブルに新規エントリが追加されなくなる or 古いエントリが削除される or オーバーフローする。


参考:

https://www.infraexpert.com/

おわり

中途半端ですが、気力が尽きました。
思い出したら、追記します。
トピックのswitchって任天堂のスイッチになるんですね。びっくり

Discussion