はじめに
本ドキュメントでは未解決のARPエントリに対するARPリトライ機能の内容と、問題点を記載いたします。
問題点については以下の製品が対象となります。
Catalyst 3560、Catalyst 3750 シリーズ
Catalyst 2960S、Catalyst2960X/XRシリーズ
これらの製品においては、15.0(2)のS/W VersionよりこのARPのリトライ機能が実装され、
デフォルトで有効となっております。
ARPのリトライ機能について
通常、L3機器は、宛先(ネクストホップ)が不明な通信が発生した場合、
ARP解決を行うためARPリクエストを送出します。
そのARPリクエストに対し、対向機器からのARPリプライを受け取れないと、
未解決なARP(ARP Incomplete)としてARPテーブル上にエントリされます。
Switch#show ip arp
Protocol Address Age (min) Hardware Addr Type Interface
Internet 172.1.1.1 0 Incomplete ARPA
Internet 172.1.1.2 0 Incomplete ARPA
Internet 172.1.1.3 0 Incomplete ARPA
Internet 172.1.1.4 0 Incomplete ARPA
Internet 172.1.1.5 0 Incomplete ARPA
Internet 172.1.254.254 - 0007.7d8b.28c2 ARPA GigabitEthernet1/0/6
Internet 192.168.1.254 - 0007.7d8b.28c1 ARPA GigabitEthernet1/0/5
ARPのリトライ機能は、この未解決となってしまったエントリに対して、
機器が一定期間、ARPリクエストの再送を実施する補助機能となります。
Switch#show ip arp incomplete
Maximum number of unresolved ipaddress: 5000
Maximum number of retry attempts: 20
Number of old entries in the tree: 0
Address Retry ClientName ClientID Trigger Interface
172.1.1.1 4 CEF 2 0 GigabitEthernet1/0/6
172.1.1.2 4 CEF 2 0 GigabitEthernet1/0/6
172.1.1.3 4 CEF 2 0 GigabitEthernet1/0/6
172.1.1.4 4 CEF 2 0 GigabitEthernet1/0/6
172.1.1.5 4 CEF 2 0 GigabitEthernet1/0/6
ARPリトライ機能により起こされる問題点
以下の製品が対象となります。
Catalyst 3560、Catalyst 3750 シリーズ
Catalyst 2960S、Catalyst2960X/XRシリーズ
対象製品において、このARP再送処理にはCPUの負荷が高く、再送対象が多い場合、
関連プロセス(HL3U bkgrd proce)によるCPU高騰するケースがあります。
Switch#show processes cpu sorted
CPU utilization for five seconds: 99%/0%; one minute: 87%; five minutes: 85%
PID Runtime(ms) Invoked uSecs 5Sec 1Min 5Min TTY Process
xxx 1250670384 61789958 20110 78.37% 62.93% 53.60% 0 HL3U bkgrd proce
--- snip ---
再送処理に伴いCPUの占有が長くなる場合は、以下のCPUHOGのログ出力も発生します。
%SYS-3-CPUHOG: Task is running for (2098)msecs, more than (2000)msecs (6/4),process = HL3U bkgrd process.
また、本機能による再送対象のエントリには、以下のTCAMのリソースを消費します。
Switch#show platform tcam utilization
CAM Utilization for ASIC# 0 Max Used
Masks/Values Masks/values
Unicast mac addresses: 6364/6364 2500/2500
IPv4 IGMP groups + multicast routes: 1072/1072 1/1
IPv4 unicast directly-connected routes: 6144/6144 6144/6144 <<<
--- snip ---
解決済みのARPエントリによって、IPv4 unicast directly-connected routesは消費されますが、
本機能による再送対象のエントリもこのエントリを消費します。
上記の表示のように使用がFullとなっている状態も、機器に対して負荷のかかる状況と言えます。
対処法
対処法をいくつか記載します。
・構成の改善
宛先不明の通信が起こる際、ARPは解決されないため、ARP Incompleteのエントリが作成されます。
構成上、想定以上にIPv4 unicast directly-connected routesの消費が行われている場合、
不要な通信がARP Incompleteのエントリを作成している可能性があります。
この場合、不要な通信を起こさせないことで問題を改善することができます。
・ 再送機能の変更
未解決なARPエントリに対するARPの再送機能が不要であれば、
以下コマンドで無効にすることができます。
(config)no ip arp incomplete enable
または、必要に応じてARP再送機能のエントリ数や再送時間などを変更することができます。
http://www.cisco.com/c/en/us/td/docs/ios-xml/ios/ipaddr/command/
ipaddr-cr-book/ip-arp-gratuitous-TO-ip-dhcp-ping-packets.html#wp3024676814
※本機能が無効であっても、ARPが未解決となった場合は、ARPテーブル上にはIncompleteとして
エントリされますが、再送処理のためのエントリは行われません。
そのため、未解決なARPエントリによるTCAMの消費も行われません。
ARPテーブル上のIncompleteのエントリは、約1分ほどでテーブル上から削除されます。
・SWの変更
問題は以下の製品が対象となります。
Catalyst 3560、Catalyst 3750 シリーズ、
Catalyst 2960S、Catalyst2960X/XRシリーズ
※他Catalyst製品においても実装されている製品がありますが、機器固有の性能により、
上記の機器においてこの問題が起こります。
これらの製品については、以下のS/Wバージョン以降この機能自体が取り除かれていますので、
S/Wの変更により本機能による影響は無くなります。
Catalyst 3560、Catalyst 3750 シリーズ、Catalyst 2960S : Ver15.0(2)SE6、Ver15.2トレイン
Catalyst2960X/XRシリーズ : Ver15.2トレイン
補足
再送対象となる未解決なARPのエントリは、ルーティングを要す通信により作成されたものとなります。
スイッチ自身から発信する通信(自発パケット)においても、
宛先が不明の場合は同様に未解決のARPエントリとなりますが、これは再送対象とはなりません。
再送対象となるエントリは「show ip arp incomplete」で確認ができます。