Cisco IOS ARP IP競合 トラブルシューティング セキュリティ

あわせて読みたい関連記事

ARPテーブルとは?確認方法と基本的な見方

CiscoスイッチではARPテーブルを参照することで、接続端末や通信経路の状況を把握できます。「特定の端末だけ通信できない」「IPアドレスが競合しているかもしれない」「不審な端末が接続されていないか確認したい」こういった場面でARPテーブルの確認が大きな武器になります。

本記事では、ARPの基本的な役割・テーブルの確認コマンド・フィルタ検索・静的ARP設定、そして通信トラブルやIP競合・ARPスプーフィングの調査手順まで、現場目線で体系的に解説します。

👷 現場での体験談

特定の端末だけ急に通信できなくなったという問い合わせを受けたとき、その端末のIPをpingしても応答なし、スイッチのポートはリンクアップしている。「なんで?」という状況でした。

L3スイッチでshow arpを確認すると、問題の端末のIPアドレスに全く別のMACアドレスが登録されていました。調べると、同じIPアドレスを別のPCに手動設定してしまっていたことが原因でした。IPアドレス競合です。ARPテーブルを見るだけで数分で原因が特定できました。ルーティングやVLANを疑い始める前に、まずARPを確認する習慣が大切だと実感した案件です。

ARPテーブル動作構成図
ARP動作フロー:Request(ブロードキャスト)→ Reply(ユニキャスト)→ テーブル登録の流れ

ARPの役割と重要性

ARP(Address Resolution Protocol)は、IPアドレスからMACアドレスを解決するためのプロトコルです。ネットワーク通信では最終的にL2フレームでデータを送受信するため、宛先のMACアドレスが必要になります。ARPはこの「IPアドレス→MACアドレス」の変換を担っています。

図1:ARPの動作の流れ
PC-A
IP:192.168.1.10
ARP要求(ブロードキャスト)
「192.168.1.20のMACアドレスを教えてください」
全端末
PC-B
IP:192.168.1.20
ARP応答(ユニキャスト)
「私です。MACはaabb.ccdd.ee14です」
PC-A
PC-AのARPテーブルに「192.168.1.20 → aabb.ccdd.ee14」が登録される
🔗
IP→MAC変換
IPアドレスからMACアドレスを解決し、L2フレームの転送を可能にする
🗂️
テーブルにキャッシュ
一度解決したIP-MAC対応はARPテーブルにキャッシュされ、一定時間(デフォルト240分)保持される
⚠️
誤情報で通信障害
ARP情報が正しくないと通信不達・誤送信・セキュリティインシデントの原因になる
ℹ show arpコマンドはL3スイッチで使用 show arpコマンドおよびARPテーブルの確認は、L3スイッチ(SVI:スイッチ仮想インターフェースが設定されている)で実行できます。L2専用スイッチではSVIがなくARPテーブルを持たないため、このコマンドは使用できません。拠点のアクセススイッチを調査する場合は、上位のL3スイッチやルータで確認してください。

ARPテーブルの確認コマンド

Switch# show arp

Protocol  Address          Age (min)  Hardware Addr   Type   Interface
Internet  192.168.10.1            -   aabb.ccdd.ee01  ARPA   Vlan10
Internet  192.168.10.20           2   aabb.ccdd.ee14  ARPA   Vlan10
Internet  192.168.10.30           0   aabb.ccdd.ee25  ARPA   Vlan10

各フィールドの意味を正確に理解しておくことが、トラブル調査の精度を上げます。

フィールド意味確認ポイント
AddressIPアドレス調査したい端末のIPが存在するか確認
Hardware AddrMACアドレス台帳のMACと一致しているか確認。違えば競合やなりすましの可能性
Age (min)最終更新からの経過時間(分)「-」はスタティックエントリ。「0」は直近で更新されたばかり
TypeARPエントリの種別通常はARPA(標準Ethernet ARP)
InterfaceARP情報を取得したインターフェースどのVLAN・インターフェース経由で学習したかを示す

Age(エージング)の読み方

Ageフィールドは調査の際に特に重要です。

Age表示意味判断
-(ダッシュ)スタティック(手動設定)エントリエージングせず永続。意図した設定かどうか確認する
0直近で更新された動的エントリ最近通信があった。アクティブな端末
数十〜200程度しばらく通信していない動的エントリエージングタイム(デフォルト240分)が来たら自動削除
エントリ自体がないARP解決がされていない状態端末が応答していない・ネットワーク未到達・電源OFF等

特定IPやMACの検索

ARPテーブルのエントリが多い環境では、パイプ(|)を使ってフィルタリングすると素早く調査できます。

! 特定IPアドレスを検索
Switch# show arp | include 192.168.10.20

! 特定MACアドレスを検索
Switch# show arp | include aabb.ccdd.ee14

! 特定VLANのエントリを抽出
Switch# show arp | include Vlan10

! 動的エントリのみ表示(スタティックを除外)
Switch# show arp | exclude  -
調査シナリオコマンド例
「このPCのMACが登録されているか確認したい」show arp | include [IPアドレス]
「このMACのIPアドレスを調べたい」show arp | include [MACの一部]
「VLAN10のARPエントリ一覧を見たい」show arp | include Vlan10
「全エントリ数だけ確認したい」show arp summary(ルータ系のみ対応機種あり)
show arp | count

静的ARPエントリの設定と削除

固定IPを使う重要なサーバや機器に対して、ARPエントリを手動で固定(スタティック設定)することができます。ARPスプーフィング対策や通信の安定性確保が目的です。

! スタティックARPエントリの追加
Switch(config)# arp 192.168.10.50 aabb.ccdd.ee99 ARPA

! スタティックARPエントリの削除
Switch(config)# no arp 192.168.10.50 aabb.ccdd.ee99 ARPA
⚠ スタティックARP設定の3つの注意点
  • 端末のNIC交換・PC入れ替えで通信障害になる:MACアドレスが変わるとARPエントリと一致しなくなる
  • スイッチ再起動で消えることがある:running-configに反映されているか確認し、startup-configへ保存を忘れずに
  • 管理の手間が増える:台帳と一致して管理できる環境でのみ有効。不用意に設定しない

トラブルシューティング:ARPテーブルで原因を特定する

図2:ARPテーブルで発見できるトラブルの種類(現場経験ベース)

ケース1:IPアドレス競合

同じIPアドレスに対して、時間が経つたびに異なるMACアドレスが記録される場合、IPアドレスの競合が発生しています。

! 1回目の確認
Internet  192.168.10.20    2   aabb.ccdd.ee14   ARPA   Vlan10

! しばらく後の2回目の確認
Internet  192.168.10.20    0   1122.3344.5566   ARPA   Vlan10
                               ↑ MACアドレスが変わっている → 競合の可能性
対処の流れ内容
①ARPで競合しているMACを特定どのMACアドレスが交互に記録されているかを確認
②MACからスイッチポートを特定show mac address-table address [MAC]
③問題の端末を特定して修正誤ったIP設定を変更してIPが重複しない状態にする
④ARPをクリアして再確認clear arp-cache

ケース2:通信不可(エントリなし)

調査したIPアドレスのARPエントリがまったく存在しない場合、以下の原因が考えられます。

端末の電源がOFF
端末が起動していないためARP応答ができない
ケーブル未接続・リンクダウン
物理的に接続されていないためARP到達不可
VLAN設定の誤り
端末が別のVLANに接続されているためARPブロードキャストが届かない
IPアドレスの誤設定
調査したIPアドレスを端末が持っていない

ケース3:ARPスプーフィング(なりすまし)

台帳に登録されているMACアドレスと異なるMACがARP応答している場合、ARPスプーフィング攻撃の可能性があります。攻撃者が偽のARP応答を送り込み、通信を盗聴・改ざんする手法です。

! 台帳:192.168.10.1(デフォルトGW)のMACは aa:bb:cc:dd:ee:01 のはず

! ARPテーブルを確認すると
Internet  192.168.10.1    -   aabb.ccdd.ee01   ARPA   Vlan10  ← 正常
Internet  192.168.10.1    0   1122.3344.5566   ARPA   Vlan10  ← ❌ 別MACが記録
                                               ↑ ARPスプーフィングの疑い
🚨 ARPスプーフィング検知時の対応
  1. 不審なMACのポートを特定(show mac address-table address)して即時遮断
  2. 該当ポートをシャットダウン(shutdown
  3. セキュリティインシデントとして記録・報告
  4. 再発防止にDynamic ARP Inspection(DAI)の導入を検討する

ARPキャッシュのクリアと再確認

問題を修正した後や、最新のARP状態を強制的に再学習させたいときはARPキャッシュをクリアします。

! ARPキャッシュ全体をクリア(動的エントリのみ)
Switch# clear arp-cache

! 特定IPのARPエントリのみクリア
Switch# clear arp 192.168.10.20
⚠ clear arp-cacheは業務時間帯に実施しない ARPキャッシュをクリアすると、すべての動的エントリが消えて再学習が必要になります。再学習が完了するまでの短い間、通信が一時中断する場合があります。業務時間帯を避けるか、影響範囲を限定して実施してください。

運用上の注意点

注意点内容
調査は即時実施動的エントリはエージングタイム(デフォルト240分)で自動削除される。トラブル発生後すぐに確認する
スタティックARPは慎重に端末変更・NIC交換時に通信障害の原因になる。設定したら台帳に必ず記録する
不審なMAC変化は即対応定期的にARPテーブルを確認し、台帳と異なるMACが記録されていたらセキュリティインシデントとして扱う
DAI(Dynamic ARP Inspection)を検討DHCPスヌーピングテーブルと照合してARPスプーフィングを自動防止できる機能。セキュリティ要件が高い環境では有効

まとめ

ARPテーブルは、Ciscoスイッチでの障害切り分けやセキュリティ調査に欠かせない情報源です。

  • show arpはL3スイッチ(SVI設定済み)で使用できる。L2スイッチでは上位のL3機器で確認する
  • Ageが「-」はスタティック、数字は動的エントリ。エントリがなければ端末が応答していないサイン
  • IP競合はARPテーブルのMACアドレスが変化することで検出できる
  • 台帳と異なるMACが記録されていたらARPスプーフィングを疑い、即時対応する
  • スタティックARP設定は慎重に。端末変更で通信障害になるリスクがある
  • 動的エントリはエージングで消えるため、トラブル後すぐに確認する習慣をつける

定期的なARP監視と台帳との突き合わせを行い、ネットワークの安定性と安全性を確保しましょう。

よくある質問(FAQ)

Q. CiscoでARPテーブルを確認するコマンドは?

show arp または show ip arp でARPテーブルを表示できます。特定インターフェースに絞るには show arp interface [インターフェース名] を使います。clear arp-cache でARPテーブルをクリアし、再学習させることも可能です。

Q. WindowsでARPテーブルを確認するには?

コマンドプロンプトで arp -a を実行するとARPテーブルが表示されます。arp -d * で全エントリをクリアできます。同じIPアドレスに対してMACアドレスが頻繁に変わる場合はIPアドレスの重複が疑われます。

Q. ARPテーブルでIPアドレス重複を検出する方法は?

show arp の結果で同じIPアドレスに異なるMACアドレスが表示されている場合、IPアドレスの重複が発生しています。また、show arp で同じMACアドレスに複数のIPが紐付いている場合は正常です(1つのNICに複数IPを設定しているケース)。Windowsでは「IPアドレスの競合が検出されました」のポップアップでも検知できます。