L2SWで学ぶMACアドレステーブルとARPの違い
L2スイッチ運用の要となる「MACアドレステーブル」と「ARPテーブル」は、似て非なる役割を持ちます。
MACアドレステーブルはレイヤ2スイッチング時にMACアドレスと物理ポートを紐付ける一方、ARPテーブルはIP→MACの解決を行うキャッシュです。
それぞれの構造・学習・確認コマンド・設定方法・トラブル対処をマスターし、運用上の使い分けポイントを押さえることで、ネットワークの効率化と安定性向上が図れます。
1. MACアドレステーブルの基礎
1-1. MACアドレステーブルとは何か?
MACアドレステーブルは、ネットワークスイッチが通信を効率的に行うために使用する「MACアドレスと物理ポートの対応表」です。
スイッチは受信したフレームの送信元MACアドレスを学習し、そのアドレスと受信ポートをテーブルに記録することで、宛先MACアドレスから正しい送出ポートを特定します。
これにより、不要なブロードキャストを減らし、レイヤ2ネットワークのパフォーマンスを最適化します。
1-2. L2スイッチにおけるMACアドレス学習の仕組み
スイッチ起動時はMACテーブルが空ですが、フレームを受信するたびに送信元MACを「動的(Dynamic)」エントリとして登録します。
エントリには一定期間(機器デフォルトでは300秒など)アクセスがないと自動的に削除される「エージングタイム」が設定され、ネットワーク構成変更に柔軟に追従します。
また、管理者が手動で指定する「静的(Static)」エントリを設定することで、特定MACを常に特定ポートへ転送させる運用も可能です。
1-3. MACテーブルの確認コマンドと出力例
Cisco IOSでは以下のコマンドでMACテーブルを表示できます:
Switch# show mac address‐table
出力例にはVLAN、MACアドレス、タイプ(DYNAMIC/STATIC)、ポートが一覧表示され、学習状況の把握や未登録端末の特定に活用できます。
他ベンダーでも同様のコマンドが用意されているため、マニュアルを参照してください。
2. ARPテーブルの基礎
2-1. ARPテーブルとは何か?
ARP(Address Resolution Protocol)テーブルは、IP通信を行う機器が「IPアドレスとMACアドレスの対応関係」をキャッシュする仕組みです。
IPスタックが宛先MACを知らない段階でARPリクエストを送信し、得られたARPリプライの情報を保持することで、以降のフレーム送信を高速化します。
2-2. ARPリクエスト/リプライの動作フロー
ARPは「ARPリクエスト→ARPリプライ」の2段階で機能します。
まず、送信元はブロードキャストで「192.168.1.10のMACを教えてください」と全端末へ投げかけます。
該当IPを持つ機器だけが自分のMACを回答し、送信元テーブルにキャッシュされます。
この仕組みでIP→MAC解決が実現します。
2-3. ARPテーブルの確認とタイムアウト設定
Ciscoルータ/L3スイッチでは以下コマンドでARPテーブルを確認できます:
Router# show arp
出力にはプロトコル、IPアドレス、MACアドレス、インターフェイスが表示され、ARPエントリの有効期限(Age)も確認可能です。
ARPタイムアウト値は以下で調整でき、頻繁に行われるリクエストを抑制したり、短時間キャッシュを維持したりできます。
3. 両テーブルの違いを比較
3-1. 機能面での違い
MACアドレステーブルはレイヤ2スイッチング専用で、MAC→ポートを保持します。
一方ARPテーブルはレイヤ3のIP通信を処理する全端末(PC/サーバ/L3機器)が持つキャッシュです。
3-2. 保持される情報の差異
MACテーブルにはVLAN情報や学習元ポートが含まれますが、ARPテーブルには送信元IP/MACと対応インターフェイスのみが記録されます。
目的と対象レイヤが異なるため、情報項目は重複しません。
3-3. 運用上の使い分けポイント
L2SW運用時はMACテーブルを常に監視し、動的学習エントリの増減でポート障害やループを検知します。
ARPテーブルはIP到達性トラブル時にキャッシュ不整合がないかを確認し、必要ならクリアやタイムアウト調整を行います。
4. L2SW運用時の注意点
4-1. ARPテーブル非保持時の対策
多くのL2SWはARPテーブルを持ちませんが、管理機能付き(スマート/Catalyst系)では保持する場合があります 。
ARP機能が不要ならIPを割り当てず、管理VLANを分けることで誤学習リスクを低減できます。
4-2. スタティックエントリ設定方法
重要機器やプリンタなど、MAC/IPが固定の端末は静的エントリを活用しましょう。
Ciscoでは以下のように設定します:
Switch(config)# mac address-table static 0011.2233.4455 vlan 10 interface GigabitEthernet0/1
静的登録により学習漏れや誤転送を防ぎます。
5. トラブルシューティング事例
5-1. MACフラッディング発生時の対処
大量の宛先なしフレームが発生しMACテーブルが飽和すると、フラッディング(全ポートへ転送)が起こりネットワークが逼迫します。
ポートセキュリティやBPDUガードで送信元数を制限し、異常検知後に該当ポートを遮断するのが有効です。
5-2. ARPキャッシュの不整合修正
ARPキャッシュに古いエントリが残ると誤通信が発生します。
Ciscoではclear arp-cache
コマンドや、インターフェイスのshutdown→no shutdownでキャッシュをクリアできます。
また、タイムアウト値を短く設定することも併用しましょう。
6. 設定例とベストプラクティス
6-1. Cisco IOSでの設定サンプル
- MACテーブル静的登録:
Switch(config)# mac address-table static 00AA.BBCC.DDEE vlan 20 interface Fa0/2
- ARPタイムアウト変更:
Switch(config)# interface GigabitEthernet0/0 Switch(config-if)# arp timeout 1200 ``` citeturn0search4turn0search5
6-2. Juniper Junosでの設定サンプル
Junosでも同様に、set ethernet-switching-options secure-access mac-table static-mac
などで静的エントリ、set system arp aging-timer
でARPタイムアウト設定が可能です。
7. まとめと今後の運用ポイント
本記事では、L2スイッチのMACアドレステーブルとIP通信を支えるARPテーブルの違いを詳細に解説しました。
MACテーブルはレイヤ2スイッチングの心臓部、ARPテーブルはIPアドレス解決の要です。
両者を適切に監視・設定・運用することで、ネットワークの信頼性とパフォーマンスが飛躍的に向上します。
定期的なテーブル確認、自動生成エントリの管理、静的エントリの活用、トラブル時のクリア手順をマスターし、安定稼働を実現してください。