スイッチは受信フレームの送信元MACをVLAN単位で学習し、宛先MACがテーブルにあれば該当ポートだけへ転送します。未学習の宛先MACは、受信ポートを除く同一VLAN内へfloodingします。学習と転送を分けると動作を説明できます。
この記事はネットワークエンジニアの仕事内容の各論です。工程の全体像から確認したい場合はそちらへ。
MACアドレステーブルはどう作られる?
先に答えると、スイッチは受信フレームの送信元MACをVLAN単位で学習し、宛先MACがテーブルにあれば該当ポートだけへ転送します。未学習の宛先MACは、受信ポートを除く同一VLAN内へfloodingします。学習と転送を分けると動作を説明できます。
floodingはどのポートへ送られる?
それぞれの役割と、実務で見るところを次の表に整理します。
| 項目 | 仕組み・役割 | 実務での判断 |
|---|---|---|
| 学習 | 受信フレームの送信元MAC | VLANとingress ポートを記録 |
| known unicast | 宛先MACがテーブル内 | 1 ポートへ転送 |
| unknown unicast | 宛先MACが未学習 | 同一VLANへflood |
| broadcast | FF:FF:FF:FF:FF:FF | 同一VLANへflood |
dst MAC=B
②Bをテーブルで検索
dst MAC=A
スイッチは受信フレームの送信元MACを学習します。宛先MACが未学習なら受信ポートを除く同一VLANへ転送し、PC-Bの返信を受けるとBの場所も学習します。以後のAとBの通信は該当ポートだけへunicast転送できます。
Ciscoで学習状態をどう確認する?
確認は「対象VLANとMACを特定」から始め、「対向・ループ・NIC交換履歴と照合」まで進めます。「移動が正常か異常か」を確認できれば完了です。
| STEP | 実施内容 | 確認する結果 |
|---|---|---|
| 1 | 対象VLANとMACを特定 | 表記ゆれをそろえる |
| 2 | MACテーブルのポートと種別を確認 | 動的/スタティック/secure |
| 3 | インターフェースカウンターとリンク状態を確認 | フレームが入っているか |
| 4 | 対向・ループ・NIC交換履歴と照合 | 移動が正常か異常か |
show mac address-table address 0011.2233.4455
show mac address-table dynamic vlan 20
show interfaces counters errors
show logging | include MACFLAP
Vlan Mac Address Type Ports
---- ----------- -------- -----
20 0011.2233.4455 DYNAMIC Gi1/0/12
MAC未学習・flappingをどう分ける?
症状ごとの原因候補と、次に確認することを次の表にまとめます。正常時の出力と並べて差を見ます。
| 症状・誤り | 主な原因候補 | 次に確認すること |
|---|---|---|
| MACがない | 端末からフレーム未受信・別VLAN | ARP生成、ポート VLAN、リンク |
| 複数ポートを往復 | ループ・NIC team・誤配線 | MACFLAP ログとSTP |
| テーブルにあるが通信不可 | L3/ACL/ホスト側 | ARPとgateway以降 |
| 大量flood | テーブル容量・aging・一方向トラフィック | 件数、CPU、SPAN キャプチャ |
変更後に何を再確認する?
clear mac アドレス-テーブルを最初に実行すると、原因の証跡を消し、一時的にfloodingを増やします。取得時刻、VLAN、MAC、ポート、対向を保存してから、必要性と影響を承認者と判断します。
- 対象機器・インターフェース・VRF/VLAN
- 取得日時・タイムゾーン・ソフトウェアバージョン
- 変更前後の同一コマンド出力
- 期待値・実測値・判定者
- 異常時の停止条件と切り戻し結果
この内容は、設計構築チャンネルの動画でも解説しています。
関連する記事
まとめ:送信元MAC学習と宛先MAC転送を分けて追う
要点は、送信元MAC学習と宛先MAC転送を分けて追うことです。学習済みか未学習かを、取得時刻の違う2つの出力で示します。
