問題の概要
IOS-XR が動作するルータ上で、input error が断続的にカウントアップする場合は
一般に、controller 上の CRC や symbol error 等もカウントアップされ
Optics やポート、ケーブル等の物理的な不良を示唆していることが考えられます。
しかし、input error がカウントアップしているにも関わらず
symbol error 等の物理層の問題を示すカウントアップがないケースがあるため、紹介します。
Log の確認
show interface 上では input drop のカウントアップが確認できますが
show controller 上の stats では、一切エラーがカウントされてい無いことが確認できます。
RP/0/RP0/CPU0:IOS-XR#show interfaces TenGigE 0/0/0/0
Thu Oct 19 17:21:59.249 JST
TenGigE0/0/0/0 is up, line protocol is up
Interface state transitions: 5
Hardware is TenGigE, address is 008a.9645.60a0 (bia 008a.9645.60a0)
- snip -
8512284271 packets input, 4574437786688 bytes, 0 total input drops
12 drops for unrecognized upper-level protocol
Received 12320 broadcast packets, 5128026 multicast packets
0 runts, 0 giants, 0 throttles, 0 parity
9 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort <<<<< input error がカウントアップしている
6095520308709 packets output, 1378295369412677 bytes, 0 total output drops
Output 2149 broadcast packets, 4811448 multicast packets
0 output errors, 0 underruns, 0 applique, 0 resets
0 output buffer failures, 0 output buffers swapped out
0 carrier transitions
RP/0/RP0/CPU0:IOS-XR#show controllers TenGigE 0/0/0/0 all
Thu Oct 19 17:21:59.592 JST
- snip -
Statistics for interface TenGigE0/0/0/0 (cached values):
Ingress:
Input total bytes = 4574437786688
Input good bytes = 4574437786688
Input total packets = 8512284271
Input 802.1Q frames = 0
Input pause frames = 0
Input pkts 64 bytes = 4333400
Input pkts 65-127 bytes = 2479137248
- snip -
Input drop overrun = 0
Input drop abort = 0
Input drop invalid VLAN = 0
Input drop invalid DMAC = 0
Input drop invalid encap = 0
Input drop other = 0
Input error giant = 0
Input error runt = 0
Input error jabbers = 0
Input error fragments = 0
Input error CRC = 0 <<<< controller 上では CRC や symbol のカウントアップがない
Input error collisions = 0
Input error symbol = 0
Input error other = 0
Input MIB giant = 0
Input MIB jabber = 0
Input MIB CRC = 0
- snip -
LPTS による Look-up library failure による drop
このような場合に、LPTS 上の Look-up library failure による drop が
input error として集計されている場合があります。
RP/0/RP0/CPU0:IOS-XR#show lpts pifib brief statistics location 0/0/CPU0
Fri Oct 20 10:42:11.826 JST
Packets into Pre-IFIB: 19301443
Packets input via soutput: 134
Lookups: 19301443
Post-lookup error drops:
Look-up library failure: 9 <<<<
Packets delivered locally: 1336696
Packets delivered remotely: 17964730
また、Look-up library failure が記録されている場合は
show netio drops でも、input error のカウントアップが見られます。
RP/0/RP0/CPU0:IOS-XR#show netio drops location 0/0/CPU0
Fri Oct 20 10:42:53.706 JST
Drops for interfaces on node 0/0/CPU0
--------------------------------------------------------------------------------
Interface: TenGigE0/0/0/0 (0x000002b0)
--------------------------------------------------------------------------------
Interface input drops: 0 pkts
Interface input errors: 9 pkts <<<<
Interface input unknown proto: 12 pkts
Interface output drops: 0 pkts
Interface output errors: 0 pkts
Look-up library failure は、受信パケットが CPU (本件では LC CPU) へ punt される際に
期待されないプロトコルパケットを受信している場合にカウントされるものです。
H/W 起因の drop ではないため、ユーザ通信への影響は想定されず、物理コンポーネントの交換の必要性もありません。
Look-up library failure がカウントアップする理由としては
joinしていない multicast group に対する multicast ping や
malformed packet、適切に fragment されていないパケットなど多岐にわたります。
drop したパケットの特定方法
以下の debug を input error 発生時に有効にしておくことで
drop したパケットについて、情報が収集できます。
debug が機能した場合、1 drop につき 1 メッセージ出力となり
drop した際にしか出力されませんので、基本的に通信影響はありませんが
バースト的に drop が発生すると大量の debug メッセージ出力による影響が発生する可能性もあります。
debug lpts packet slow-path drops location <LC>
ただ以下の出力例の通り、packet 全体の dump などは行いませんので、確認できる内容には限度があり
完全にどういったパケットであるかを確認するためにはキャプチャの取得が必要となります。
LC/0/1/CPU0:Apr 19 19:32:19.373 : netio[277]: lpts pifib [0xddc78280/124 Te0/0/0/0 VRF 0x60000000 IP4 192.168.80.2 -> 224.0.0.3 ICMP 8 0] unable to perform look-up: 'pre-ifib' detected the 'fatal' condition 'no such entry', dropping
LC/0/1/CPU0:Apr 19 19:32:20.373 : netio[277]: lpts pifib [0xddc78280/124 Te0/0/0/0 VRF 0x60000000 IP4 192.168.80.2 -> 224.0.0.3 ICMP 8 0] unable to perform look-up: 'pre-ifib' detected the 'fatal' condition 'no such entry', dropping
LC/0/1/CPU0:Apr 19 19:32:21.373 : netio[277]: lpts pifib [0xddc78280/124 Te0/0/0/0 VRF 0x60000000 IP4 192.168.80.2 -> 224.0.0.3 ICMP 8 0] unable to perform look-up: 'pre-ifib' detected the 'fatal' condition 'no such entry', dropping
LC/0/1/CPU0:Apr 19 19:32:22.373 : netio[277]: lpts pifib [0xddc78280/124 Te0/0/0/0 VRF 0x60000000 IP4 192.168.80.2 -> 224.0.0.3 ICMP 8 0] unable to perform look-up: 'pre-ifib' detected the 'fatal' condition 'no such entry', dropping
LC/0/1/CPU0:Apr 19 19:32:23.373 : netio[277]: lpts pifib [0xddc78280/124 Te0/0/0/0 VRF 0x60000000 IP4 192.168.80.2 -> 224.0.0.3 ICMP 8 0] unable to perform look-up: 'pre-ifib' detected the 'fatal' condition 'no such entry', dropping