MACアドレステーブルは、Ciscoスイッチが学習した端末や機器の物理アドレスと、対応するポート情報を保持する表です。これを確認することで、ポート接続状況の把握・不正端末の検出・ネットワークループの特定など、運用上の重要な判断が可能になります。
本記事では、MACアドレステーブルの仕組みと確認コマンド・フィルタ表示・クリア操作から、障害対応やセキュリティ調査への実践的な活用方法まで、現場で役立つ内容を体系的に解説します。
あるフロアのPCが突然通信できなくなったという報告を受けた際、まずshow mac address-tableを確認すると、問題のPCのMACアドレスが2つの異なるポートに同時に記録されていました。
調査すると、そのフロアの別席にHUBが無断増設されており、ループが発生していたことが判明。MACフラッピングのログも上がっていました。MACアドレステーブルを起点に調査を始めたことで、原因特定まで15分で完了できました。台帳や物理確認より先にテーブルを確認する習慣がいかに重要かを実感した案件です。

MACアドレステーブルの役割と仕組み
スイッチはL2(データリンク層)でフレームの転送を制御します。その際に使われるのがMACアドレステーブル(CAM:Content Addressable Memory)です。スイッチは受信したフレームの送信元MACアドレスを自動的に学習し、「このMACアドレスはこのポートにいる」という対応関係を記録します。
宛先MACアドレスがテーブルにある場合は該当ポートだけに転送(ユニキャスト)し、テーブルにない場合は全ポートにフラッディングします。これがスイッチとHUBの根本的な違いです。
基本確認コマンド
全エントリの表示
Switch# show mac address-table Mac Address Table
-------------------------------------------
Vlan Mac Address Type Ports
---- ----------- -------- -----
10 aabb.ccdd.ee01 DYNAMIC Gi0/1
10 aabb.ccdd.ee14 DYNAMIC Gi0/2
20 aabb.ccdd.ee25 STATIC Gi0/10
10 aabb.ccdd.ee99 DYNAMIC Gi0/1 ← 同ポートに複数端末(HUB経由)| フィールド | 意味 | 着目ポイント |
|---|---|---|
| Vlan | VLAN ID | 意図しないVLANに端末がいないか確認 |
| Mac Address | 端末のMACアドレス | 台帳と照合して未登録MACがあれば不正接続を疑う |
| Type | DYNAMIC / STATIC | 想定外のSTATICエントリがあれば設定を確認 |
| Ports | 接続ポート | 同一ポートに多数のMACがある場合はHUB経由または不審 |
エントリ数の確認
テーブル全体を表示する前に、まずエントリ数だけ確認したい場合はcountオプションが便利です。
Switch# show mac address-table count
Mac Entries for Vlan 10:
Dynamic Address Count: 48
Static Address Count: 2
Total Mac Addresses: 50特定MACやVLANでのフィルタ表示
テーブルのエントリが多い場合、絞り込み検索が調査効率を大きく上げます。現場でよく使うフィルタ表示を整理します。
! 特定MACアドレスを検索(端末がどのポートにいるか)
Switch# show mac address-table address aabb.ccdd.ee14
! 特定VLANのエントリのみ表示
Switch# show mac address-table vlan 20
! 特定ポートに接続された端末を調べる
Switch# show mac address-table interface GigabitEthernet0/1
! 動的エントリのみ表示
Switch# show mac address-table dynamic
! 静的エントリのみ表示
Switch# show mac address-table static| 調査シナリオ | 使うコマンド |
|---|---|
| 「このPCはどのポートに接続されているか」 | show mac address-table address [MAC] |
| 「このポートにはどんな端末が接続されているか」 | show mac address-table interface [IF名] |
| 「このVLANに接続されている端末一覧」 | show mac address-table vlan [VLAN ID] |
| 「手動設定されているエントリはどれか」 | show mac address-table static |
動的と静的MACエントリの違い
- 通信時に自動学習される
- エージングタイム(デフォルト300秒)経過後に自動削除
- スイッチ再起動でリセット
- 通常の端末接続はこちら
- 管理者が手動で設定
- エージングせず常に有効
- スイッチ再起動でも保持される
- ポートセキュリティやスティッキーMACで生成される場合も
エージングタイムの確認と変更
DYNAMICエントリが自動削除されるまでの時間(エージングタイム)を確認・変更できます。デフォルトは300秒(5分)です。
! エージングタイムの確認
Switch# show mac address-table aging-time
Global Aging Time: 300
! エージングタイムの変更(VLAN指定可能)
Switch(config)# mac address-table aging-time 600
Switch(config)# mac address-table aging-time 600 vlan 10MACフラッピングの検出と対応
MACフラッピングとは、同じMACアドレスが短時間で異なるポートに出現する現象です。ネットワークループや二重接続(同じ端末が複数ポートに接続)が原因として疑われます。
%SW_MATM-4-MACFLAP_NOTIF: Host aabb.ccdd.ee14 in vlan 10 is flapping between port Gi0/1 and port Gi0/2MACフラッピング発生時の調査手順
Switch# show logging | include MACFLAPSwitch# show mac address-table address aabb.ccdd.ee14Switch# show spanning-tree vlan 10テーブルのクリアと再学習
調査のために動的エントリを消去して再学習させたり、特定の条件でエントリを削除することができます。
! 全ての動的エントリを削除
Switch# clear mac address-table dynamic
! 特定VLANの動的エントリのみ削除
Switch# clear mac address-table dynamic vlan 10
! 特定MACアドレスのエントリを削除
Switch# clear mac address-table dynamic address aabb.ccdd.ee14
! 特定ポートのエントリを削除
Switch# clear mac address-table dynamic interface GigabitEthernet0/1clear mac address-table dynamicを実行するとその時点の学習情報がすべて消えます。調査の証跡として、クリア前にshow mac address-tableの出力をログとして保存してからクリアを実施してください。セキュリティ調査への活用
不正端末の検出フロー
MACアドレステーブルは、管理台帳との突き合わせによって不正端末を発見できます。
| 確認内容 | 疑われる事象 | 対処 |
|---|---|---|
| 台帳未登録のMACアドレスが存在 | 不正端末・無断持ち込みPC・個人スマートフォン | ポートの物理確認・ポートセキュリティで遮断 |
| 同一ポートに多数のMACが存在 | HUBの無断増設、または不正スイッチの接続 | 物理確認・BPDU Guardの設定検討 |
| 登録済みMACが別ポートから出現 | 端末の無断移動・MACスプーフィング攻撃 | 前後のログ確認・監視強化 |
| 想定外のVLANにMACが存在 | VLAN設定ミス・VLANホッピング攻撃の可能性 | VLAN設定の確認・ポートのアクセスVLAN確認 |
ポートセキュリティとの組み合わせ
MACアドレステーブルの監視に加えて、ポートセキュリティを設定することで不正端末を自動遮断できます。
! ポートセキュリティの設定例(1ポートに最大1台まで許可)
Switch(config)# interface GigabitEthernet0/1
Switch(config-if)# switchport mode access
Switch(config-if)# switchport port-security
Switch(config-if)# switchport port-security maximum 1
Switch(config-if)# switchport port-security violation restrict
Switch(config-if)# switchport port-security mac-address sticky
! ポートセキュリティの状態確認
Switch# show port-security interface GigabitEthernet0/1運用上の注意点まとめ
| 注意点 | 内容 |
|---|---|
| 調査は即時実施 | エージングタイム(デフォルト300秒)で動的エントリが消える。障害検知後すぐに確認する |
| 再起動でリセット | スイッチ再起動でDYNAMICエントリはすべて消える。調査前に出力を保存しておく |
| リンク切断でも変化 | ポートダウン時に対応するMACエントリが削除される。ポートを抜く前に確認する |
| ポートセキュリティと併用 | 不正端末を自動遮断するならポートセキュリティをセットで設定する |
| MACフラッピング即対応 | フラッピングログを確認したら物理配線とトポロジを即座に確認する |
まとめ
MACアドレステーブルは、Ciscoスイッチでの接続状況確認・端末特定・セキュリティ調査に欠かせない情報源です。
show mac address-tableで全エントリを確認。address/vlan/interfaceで絞り込める- DYNAMICは自動学習・エージング削除、STATICは手動設定で常時保持
- MACフラッピングはループや二重接続のサイン。
show logging | include MACFLAPで確認 clear mac address-table dynamicで再学習。クリア前に出力を保存すること- 不正端末検出にはポートセキュリティとの組み合わせが有効
- 調査はエージングタイム内に実施。障害検知後すぐにテーブルを確認する習慣をつける
障害対応やセキュリティ調査でMACアドレステーブルを起点にすることで、原因特定までの時間を大幅に短縮できます。



