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
    ``` citeturn0search4turn0search5
    

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アドレス解決の要です。

両者を適切に監視・設定・運用することで、ネットワークの信頼性とパフォーマンスが飛躍的に向上します。

定期的なテーブル確認、自動生成エントリの管理、静的エントリの活用、トラブル時のクリア手順をマスターし、安定稼働を実現してください。

コメントを残す