Mímisbrunnr知恵の泉

← コンピュータネットワーク 一覧

🎓 レベル:標準 | 重要度:A(必須) 📎 前提:イーサネットとMACアドレス

要点(BLUF)

学習と転送の3ステップ

スイッチの動作は驚くほど単純な3つのルールでできています。

  1. 学習(learn):フレームを受けたら、送信元MAC入ってきたポートの対を表に記録(更新)。
  2. 転送/フラッディング(forward/flood)宛先MACを表で引く。
    • ヒット → そのポートだけへ転送(ユニキャスト転送)。
    • ミス(unknown unicast)またはブロードキャスト/マルチキャスト → 受信ポート以外の全ポートへフラッディング
  3. エージング(age):一定時間(既定300秒)更新されないエントリは削除。端末が移動しても追従できます。
graph TD
  R["フレーム受信"]
  L["送信元MACとポートを学習"]
  Q["宛先MACはテーブルにある?"]
  U["該当ポートだけへ転送"]
  FL["受信ポート以外の全ポートへフラッディング"]
  R --> L --> Q
  Q -->|"はい"| U
  Q -->|"いいえ/ブロードキャスト"| FL

例:空のテーブルから埋まるまで

PC-A(ポートGi0/1)が初めてPC-B(ポートGi0/2)へ送る流れ。

  1. A→B のフレーム到着。スイッチは「A は Gi0/1」と学習。Bの位置は未知 → 全ポートへフラッディング。
  2. B が応答 B→A。スイッチは「B は Gi0/2」と学習。A は既知 → Gi0/1 だけへ転送。
  3. 以後 A↔B は両者とも既知で、フラッディングは起きません。

「最初の1往復で両者を学習し、それ以降はピンポイント転送」が核心です。

実機での確認(Cisco IOS)

学習結果は MAC アドレステーブルで見られます。

Switch# show mac address-table
          Mac Address Table
-------------------------------------------
Vlan    Mac Address       Type        Ports
----    -----------       --------    -----
   1    001a.2b3c.4d5e    DYNAMIC     Gi0/1
   1    001a.2b3c.9999    DYNAMIC     Gi0/2

エージング時間の変更や全消去:

Switch(config)# mac address-table aging-time 600
Switch# clear mac address-table dynamic

他層との関係

スイッチはL2だけを見るので、VLANをまたぐ通信やインターネット向けの通信はできません。それはルータ(L3)の仕事です。ただし学習・転送の単純さゆえに**ワイヤスピード(回線速度そのまま)**で動けるのがスイッチの強みです。VLANで論理分割すると、MACテーブルはVLANごとに分かれて管理されます(次トピック)。

なぜフラッディングするのか(設計の直観)

「宛先が分からないなら捨てる」のではなく「とりあえず全員に配る」のは、送れば必ず誰かが応答し、その応答で位置を学習できるからです。最初だけ無駄打ちしても、すぐに学習が済んでピンポイント転送に収束します。スイッチが事前設定なしに「つなぐだけで動く(プラグアンドプレイ)」のは、この自己学習のおかげです。

⚠️ よくある誤解

対応 lab

関連