内容

概要

前提条件

要件

使用するコンポーネント

背景説明

ユニキャスト トラフィック フローとバッファリング

マルチキャスト トラフィック フローとバッファリング

何が原因で入力廃棄が発生しますか。

トラブルシューティングのシナリオ

シナリオ1.入力廃棄

ステップ1：入力廃棄のあるポートの特定

ステップ2:ASICの識別

ステップ3：出力の輻輳ポートの特定

シナリオ2. HOLBによる入力廃棄

HOLB の軽減：VOQ 制限の有効化

HOLB の軽減：トラフィックの分類

関連情報

概要

このドキュメントでは、Cisco Nexus 5600/6000 シリーズ スイッチでの入力廃棄のトラブルシューティング方法について説明します。

前提条件

要件

Cisco Nexus 6000シリーズの設定に関する基本的な知識があることが推奨されます。

使用するコンポーネント

このドキュメントの情報は、次のソフトウェアとハードウェアのバージョンに基づいています。

- Cisco Nexus 6001

- 7.1(3)N1(1)

このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、初期（デフォルト）設定の状態から起動しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。

背景説明

入力廃棄は、出力ポートのオーバーサブスクライブを示している可能性があります。また、そのポートのユニキャスト トラフィックがドロップしている可能性が高いことも示しています。この記事では、ユニキャストおよびマルチキャストトラフィックがこのプラットフォームでどのようにバッファリングされるか、および緩和手順とともに入力廃棄がどのように発生するかについて説明します。

ユニキャスト トラフィック フローとバッファリング

ユニキャストトラフィックは、出力バッファプールで最初にキューイングされ、次に出力キューがいっぱいになった後の入力バッファにキューイングされます（図を参照）。

16MBの入力共有バッファと9MBの出力共有バッファがあります。バッファは、12 x 10 gigポートまたは3 x 40 gigポート間で共有されます。共有バッファはバーストの吸収に適しています。

図に示すように、参照用のメモリ割り当て（BigsurはASIC/Unified Port Controllerの名前）を視覚的に示します。

マルチキャスト トラフィック フローとバッファリング

- マルチキャスト パケットは出力バッファに格納され、廃棄されます

- Head of Line Blocking(HOLB)を回避するために、輻輳ポイントの近くにマルチキャストパケットをドロップします

- 図に示すように、ユニキャストのロスレスファブリックを維持します。

ほとんどの場合、出力ドロップは常にマルチキャスト/ブロードキャスト/不明なユニキャストトラフィックが原因です。

何が原因で入力廃棄が発生しますか。

輻輳した出力ポートでは、最初に出力バッファがいっぱいになり、次に入力のバックプレッシャーが発生します。これは ユニキャスト トラフィックの場合のみです。入力バッファがいっぱいになると、入力でトラフィックがドロップされ、入力廃棄が発生する可能性があります。

この説明は非常に高いレベルで簡単に要約できますが、トラフィックやキューの異なるクラスを調べると、特に内容が少し多くなります。Nexusプラットフォームでよく使用される仮想出力キュー(VOQ)の概念があります。VOQは、出力ポートごとにIEEE 802.1pサービスクラス(CoS)ごとに入力バッファを割り当てます。そのため、出力ポートごとに 8 つの VOQ があります。

1つのCoS内の1つの出力ポートでの輻輳は、最終的には入力ポート上の対応するVOQの輻輳に陥ります。制限に達すると、トラフィックはドロップされます。ただし、他のCoSや他の出力インターフェイス宛てのトラフィックには影響しないため、HOLBが回避され、それ以外の場合は輻輳が広がります。入力ポートから出力ポートへのトラフィックフローと、再生されるさまざまなブロックは図に示すとおりです。

トラブルシューティングのシナリオ

シナリオ1.入力廃棄

ラボのセットアップ：

ラインレートトラフィックがe1/3と可能なオーバーサブスクリプション：

nexus6001# sh int e1/3

Ethernet1/3 is up

Dedicated Interface

Hardware: 1000/10000 Ethernet, address: 002a.6a56.7a8a (bia 002a.6a56.7a8a)

Description: spirent 4/11

MTU 1500 bytes, BW 1000000 Kbit,, BW 1000000 Kbit, DLY 10 usec

reliability 255/255, txload 251/255, rxload 25/255

Encapsulation ARPA, medium is broadcast

Port mode is trunk

full-duplex, 1000 Mb/s

Beacon is turned off

Input flow-control is off, output flow-control is off

Switchport monitor is off

EtherType is 0x8100

Last link flapped 11:39:20

Last clearing of "show interface" counters 00:00:15

0 interface resets

30 seconds input rate 98683696 bits/sec, 8223 packets/sec

30 seconds output rate 986853640 bits/sec, 82019 packets/sec

Load-Interval #2: 5 minute (300 seconds)

input rate 98.68 Mbps, 8.22 Kpps; output rate 986.85 Mbps, 82.01 Kpps

RX

124003 unicast packets  0 multicast packets  0 broadcast packets

124003 input packets  186004500 bytes

0 jumbo packets  0 storm suppression bytes

0 runts  0 giants  0 CRC  0 no buffer

0 input error  0 short frame  0 overrun   0 underrun  0 ignored

0 watchdog  0 bad etype drop  0 bad proto drop  0 if down drop

0 input with dribble  0 input discard

0 Rx pause

TX

1236745 unicast packets  9 multicast packets  0 broadcast packets

1236754 output packets  1860065401 bytes

0 jumbo packets

0 output error  0 collision  0 deferred  0 late collision

0 lost carrier  0 no carrier  0 babble 0 output discard

0 Tx pause

nexus6001# sh int e1/4

Ethernet1/4 is up

Dedicated Interface

Hardware: 1000/10000 Ethernet, address: 002a.6a56.7a8b (bia 002a.6a56.7a8b)

Description: spirent 4/12

MTU 1500 bytes, BW 1000000 Kbit,, BW 1000000 Kbit, DLY 10 usec

reliability 255/255, txload 25/255, rxload 251/255

Encapsulation ARPA, medium is broadcast

Port mode is access

full-duplex, 1000 Mb/s

Beacon is turned off

Input flow-control is off, output flow-control is off

Switchport monitor is off

EtherType is 0x8100

Last link flapped 10:53:31

Last clearing of "show interface" counters 00:00:04

0 interface resets

30 seconds input rate 986840376 bits/sec, 82236 packets/sec

30 seconds output rate 98421072 bits/sec, 8223 packets/sec

Load-Interval #2: 5 minute (300 seconds)

input rate 986.84 Mbps, 82.23 Kpps; output rate 98.42 Mbps, 8.22 Kpps

RX

326332 unicast packets  0 multicast packets  0 broadcast packets

326332 input packets  489496500 bytes

0 jumbo packets  0 storm suppression bytes

0 runts  0 giants  0 CRC  0 no buffer

0 input error  0 short frame  0 overrun   0 underrun  0 ignored

0 watchdog  0 bad etype drop  0 bad proto drop  0 if down drop

0 input with dribble  863 input discard >>>>>>

0 Rx pause

TX

32633 unicast packets  2 multicast packets  0 broadcast packets

32635 output packets  48819096 bytes

0 jumbo packets

0 output error  0 collision  0 deferred  0 late collision

0 lost carrier  0 no carrier  0 babble 0 output discard

0 Tx pause

ここで示すシミュレートされた設定では、オーバーサブスクリプションの原因は分かっていますが、トラフィックプロファイルがバーストする実稼働設定では、これらのコマンドを使用して輻輳した出力ポートを特定することが困難です。

次に示す手順は、輻輳した出力ポートを特定するのに役立ちます。

ステップ1：入力廃棄のあるポートの特定

ポートe1/4での入力廃棄：

nexus6001# sh int e1/4 | in i disc

0 input with dribble  3024 input discard

0 lost carrier  0 no carrier  0 babble 0 output discard

nexus6001# sh queuing int e1/4

Ethernet1/4 queuing information:

TX Queuing

qos-group  sched-type  oper-bandwidth

0       WRR            100

RX Queuing

qos-group 0 >>>> Drops in QOS 0

q-size: 100160, q-size-40g: 100160, HW MTU: 1500 (1500 configured)

drop-type: drop, xon: 0, xoff: 0

Statistics:

Pkts received over the port             : 9612480

Ucast pkts sent to the cross-bar        : 9587016

Mcast pkts sent to the cross-bar        : 0

Ucast pkts received from the cross-bar  : 961249

Pkts sent to the port                   : 961261

Pkts discarded on ingress               : 3024 >>>>>>

Per-priority-pause status               : Rx (Inactive), Tx (Inactive)

ステップ2:ASICの識別

- この出力から、インターフェイスを内部ASIC(UPC)番号にマッピングします。

- ドロップに気付いた入力ポートIDから入力ASIC IDを調べます。

nexus6001# sh hard internal bigsur all-ports

Bigsur Port Info:

Port     |asic|inst|inst|

name     |idx |slot|asic|eport|logi|flag|adm|opr|if_index|diag|ucVer

---------+----+----+----+-----+----+----+---+---+--------+----+-----

sup1     |0   |0   |0   | 0 - |48  |b3  |en |dn |15010000|pass| 0.00

sup0     |0   |0   |0   | 1 - |49  |b3  |en |dn |15020000|pass| 0.00

1gb1/1   |1   |0   |1   | 2 - |0   |b3  |en |up |1a000000|pass| 0.00

1gb1/2   |1   |0   |1   | 3 - |1   |b3  |en |up |1a001000|pass| 0.00

1gb1/3   |1   |0   |1   | 0 - |2   |b3  |en |up |1a002000|pass| 0.00

1gb1/4   |1** |0   |1   | 1 - |3   |b3  |en |up |1a003000|pass| 0.00 >>>>** is the asic number

1gb1/5   |1   |0   |1   | 6 - |4   |b3  |en |up |1a004000|pass| 0.00

1gb1/6   |1   |0   |1   | 7 - |5   |b3  |en |up |1a005000|pass| 0.00

1gb1/7   |1   |0   |1   | 4 - |6   |b3  |en |up |1a006000|pass| 0.00

1gb1/8   |1   |0   |1   | 5 - |7   |b3  |en |up |1a007000|pass| 0.00

1gb1/9   |1   |0   |1   |10 - |8   |b3  |en |up |1a008000|pass| 0.00

1gb1/10  |1   |0   |1   |11 - |9   |b3  |en |up |1a009000|pass| 0.00

1gb1/11  |1   |0   |1   | 8 - |10  |b3  |en |up |1a00a000|pass| 0.00

xgb1/12  |1   |0   |1   | 9 - |11  |b3  |en |dn |1a00b000|pass| 0.00

xgb1/13  |2   |0   |2   | 2 - |12  |b3  |en |dn |1a00c000|pass| 0.00

xgb1/14  |2   |0   |2   | 3 - |13  |b3  |en |dn |1a00d000|pass| 0.00

xgb1/15  |2   |0   |2   | 0 - |14  |b3  |en |dn |1a00e000|pass| 0.00

xgb1/16  |2   |0   |2   | 1 - |15  |b3  |en |dn |1a00f000|pass| 0.00

xgb1/17  |2   |0   |2   | 6 - |16  |b3  |en |dn |1a010000|pass| 0.00

xgb1/18  |2   |0   |2   | 7 - |17  |b3  |en |dn |1a011000|pass| 0.00

xgb1/19  |2   |0   |2   | 4 - |18  |b3  |en |dn |1a012000|pass| 0.00

xgb1/20  |2   |0   |2   | 5 - |19  |b3  |en |dn |1a013000|pass| 0.00

xgb1/21  |2   |0   |2   |10 - |20  |b3  |en |dn |1a014000|pass| 0.00

xgb1/22  |2   |0   |2   |11 - |21  |b3  |en |dn |1a015000|pass| 0.00

xgb1/23  |2   |0   |2   | 8 - |22  |b3  |en |dn |1a016000|pass| 0.00

xgb1/24  |2   |0   |2   | 9 - |23  |b3  |en |dn |1a017000|pass| 0.00

xgb1/25  |3   |0   |3   | 2 - |24  |b3  |en |dn |1a018000|pass| 0.00

xgb1/26  |3   |0   |3   | 3 - |25  |b3  |en |dn |1a019000|pass| 0.00

xgb1/27  |3   |0   |3   | 0 - |26  |b3  |en |dn |1a01a000|pass| 0.00

xgb1/28  |3   |0   |3   | 1 - |27  |b3  |en |dn |1a01b000|pass| 0.00

xgb1/29  |3   |0   |3   | 6 - |28  |b3  |en |dn |1a01c000|pass| 0.00

xgb1/30  |3   |0   |3   | 7 - |29  |b3  |en |dn |1a01d000|pass| 0.00

xgb1/31  |3   |0   |3   | 4 - |30  |b3  |en |dn |1a01e000|pass| 0.00

xgb1/32  |3   |0   |3   | 5 - |31  |b3  |en |dn |1a01f000|pass| 0.00

xgb1/33  |3   |0   |3   |10 - |32  |b3  |en |dn |1a020000|pass| 0.00

xgb1/34  |3   |0   |3   |11 - |33  |b3  |en |dn |1a021000|pass| 0.00

xgb1/35  |3   |0   |3   | 8 - |34  |b3  |en |dn |1a022000|pass| 0.00

xgb1/36  |3   |0   |3   | 9 - |35  |b3  |en |dn |1a023000|pass| 0.00

xgb1/37  |4   |0   |4   | 2 - |36  |b3  |en |dn |1a024000|pass| 0.00

xgb1/38  |4   |0   |4   | 3 - |37  |b3  |en |dn |1a025000|pass| 0.00

xgb1/39  |4   |0   |4   | 0 - |38  |b3  |en |dn |1a026000|pass| 0.00

xgb1/40  |4   |0   |4   | 1 - |39  |b3  |en |dn |1a027000|pass| 0.00

xgb1/41  |4   |0   |4   | 6 - |40  |b3  |en |dn |1a028000|pass| 0.00

xgb1/42  |4   |0   |4   | 7 - |41  |b3  |en |dn |1a029000|pass| 0.00

xgb1/43  |4   |0   |4   | 4 - |42  |b3  |en |dn |1a02a000|pass| 0.00

xgb1/44  |4   |0   |4   | 5 - |43  |b3  |en |dn |1a02b000|pass| 0.00

xgb1/45  |4   |0   |4   |10 - |44  |b3  |en |dn |1a02c000|pass| 0.00

xgb1/46  |4   |0   |4   |11 - |45  |b3  |en |dn |1a02d000|pass| 0.00

xgb1/47  |4   |0   |4   | 8 - |46  |b3  |en |dn |1a02e000|pass| 0.00

xgb1/48  |4   |0   |4   | 9 - |47  |b3  |en |dn |1a02f000|pass| 0.00

40gb2/1  |5   |1   |0   | 2 - |0   |b3  |dis|dn |1a0f0000|pass| 0.00

40gb2/2  |5   |1   |0   | 1 - |1   |b3  |dis|dn |1a0f1000|pass| 0.00

40gb2/3  |6   |1   |1   | 2 - |2   |b3  |dis|dn |1a0f2000|pass| 0.00

40gb2/4  |6   |1   |1   | 1 - |3   |b3  |dis|dn |1a0f3000|pass| 0.00

Done.

ステップ3：出力の輻輳ポートの特定

- VOQカウンタを使用して、輻輳した出力ポートを特定します。

- どの出力ポートがドロップに寄与するかを調べるには、カウンタvoq asic-numのASIC番号を使用します。

nexus6001# sh plat soft qd info counters voq asic-num 1

+----------+------------------------------+------------------------+-----------+

|      port|                      TRANSMIT|               TAIL DROP|  HEAD DROP|

+----------+------------------------------+------------------------+-----------+

Eth1/3

QUEUE-3                       3222876464                  8545008           0

Eth1/4

QUEUE-3                        323451170                        0           0

Eth1/6

QUEUE-3                           871362                        0           0

SUP_HI

QUEUE-0                             2041                        0           0

+----------+------------------------------+------------------------+-----------+

シナリオ2. HOLBによる入力廃棄

ラボのセットアップ：

すべてのポートは vlan 100 内です。

e1/4とe1/1の両方で入力廃棄を確認できます。これは、wardse1/3に対する入力インターフェイスのトラフィックレートによって異なります。

nexus6001# sh int e1/4 | in discard|rate

30 seconds input rate 592103840 bits/sec, 49341 packets/sec

30 seconds output rate 166412120 bits/sec, 13863 packets/sec

input rate 592.10 Mbps, 49.34 Kpps; output rate 834.82 Mbps, 69.55 Kpps

0 input with dribble  15245 input discard

0 lost carrier  0 no carrier  0 babble 0 output discard

nexus6001# sh int e1/1 | in discard|rate

30 seconds input rate 986839872 bits/sec, 82236 packets/sec

30 seconds output rate 99790992 bits/sec, 8310 packets/sec

input rate 986.84 Mbps, 82.23 Kpps; output rate 500.88 Mbps, 41.73 Kpps

0 input with dribble  110632 input discard

0 lost carrier  0 no carrier  0 babble 0 output discard

Scenerio 1のドキュメントと同じプロセスを使用して、出力の輻輳ポートを見つけることができます。

nexus6001# sh plat so qd info counters voq asic-num 1 <snip>

+----------+------------------------------+------------------------+-----------+

|      port|                      TRANSMIT|               TAIL DROP|  HEAD DROP|

+----------+------------------------------+------------------------+-----------+

Eth1/3

QUEUE-3                       3893719464                164782171           0

影響を受ける必要があるフローは10.10.10.50に向かいます。10.10.10.101と10.10.10.102の間のフローはクリーンである必要があります。

しかしこれはそうではありません。出力ポートがスタックまたは低速になると、出力ポートにトラフィックを送信する1つ以上の入力ポート上のすべてのバッファが枯渇し、これらの入力ポート上のすべてのトラフィックに影響が及ぶ可能性があります。これは標準的なHOLBの問題です。

Spirentトラフィックジェネレータは、フローがドロップされたことを示します。図に示すように、ポート番号はSpirentポート番号です。

HOLB の軽減：VOQ 制限の有効化

このシナリオを回避するには、VOQ（ユニキャストトラフィック専用）を設定しきい値で設定します。

nexus6001(config)# hard unicast voq-limit

設定後、非輻輳ポートへのフローは影響を受けません。

図に示すように、VOQ制限設定後のSpirent Traffic Generatorビュー。

この設定は、HOLBによるドロップを防止する明確な利点を示しています。これがデフォルト設定ではないのはなぜですか。

通常、実稼働環境のトラフィックは本質的にバーストする可能性があります。VOQしきい値を無効にすると、入力バッファがドロップすることなくトラフィックマイクロバーストを吸収できるようになります。

VOQ 制限を有効にする必要性が保証されないかぎり、これを無効にしたまま、デフォルトを使用することを推奨します。

HOLB の軽減：トラフィックの分類

QoS設定を使用してHOLBを軽減する別の方法があります。入力廃棄は特定のVOQにのみ影響し、特定のQOSクラスが適用されるため、影響を受けるトラフィックを輻輳していないポートに別のQOSグループにマッピングできます。この出力から、入力廃棄はQOSグループ0クラスに影響します。

nexus6001# sh queuing int e1/4

Ethernet1/4 queuing information:

TX Queuing

qos-group  sched-type  oper-bandwidth

0       WRR            100

RX Queuing

qos-group 0 >>>> Drops in QOS 0

q-size: 100160, q-size-40g: 100160, HW MTU: 1500 (1500 configured)

drop-type: drop, xon: 0, xoff: 0

Statistics:

Pkts received over the port             : 9612480

Ucast pkts sent to the cross-bar        : 9587016

Mcast pkts sent to the cross-bar        : 0

Ucast pkts received from the cross-bar  : 961249

Pkts sent to the port                   : 961261

Pkts discarded on ingress               : 3024 >>>>>>

Per-priority-pause status               : Rx (Inactive), Tx (Inactive)

この設定は、重要なトラフィックをQoSグループ2にマッピングします。

1.ドロップしてはならないトラフィックのACLを定義します。目的は、このトラフィックを異なる QOS グループに分類し、影響を受けないようにすることです。

ip access-list SINGLEFLOW

statistics per-entry

10 permit ip 10.10.10.101/32 10.10.10.102/32

2. QoS分類：

class-map type qos match-all FIX_AFFECTED_FLOW

match access-group name SINGLEFLOW

policy-map type qos QOS_POLICY_FIX_AFFECTED_FLOW

class FIX_AFFECTED_FLOW

set qos-group 2

3.ネットワークQoS設定：

class-map type network-qos QOSGRP2

match qos-group 2

policy-map type network-qos NQOS-GRP2

class type network-qos QOSGRP2

class type network-qos class-default

4.さまざまなポリシーを適用します。ネットワーク QoS はシステム全体に、一方分類ポリシーは 1 つのインターフェイスに適用できます。

system qos

service-policy type network-qos NQOS-GRP2

interface Ethernet1/1

service-policy type qos input QOS_POLICY_FIX_AFFECTED_FLOW

5. QoSグループ2クラスに対してドロップが表示されません。

nexus6001(config-if)# sh queuing int e1/1

Ethernet1/1 queuing information:

TX Queuing

qos-group  sched-type  oper-bandwidth

0       WRR            100

2       WRR              0

RX Queuing

qos-group 0

q-size: 100160, q-size-40g: 100160, HW MTU: 1500 (1500 configured)

drop-type: drop, xon: 0, xoff: 0

Statistics:

Pkts received over the port             : 525111

Ucast pkts sent to the cross-bar        : 327510

Mcast pkts sent to the cross-bar        : 0

Ucast pkts received from the cross-bar  : 0

Pkts sent to the port                   : 0

Pkts discarded on ingress               : 197868 >>>>

Per-priority-pause status               : Rx (Inactive), Tx (Inactive)

qos-group 2

q-size: 100160, q-size-40g: 100160, HW MTU: 1500 (1500 configured)

drop-type: drop, xon: 0, xoff: 0

Statistics:

Pkts received over the port             : 131413

Ucast pkts sent to the cross-bar        : 132096

Mcast pkts sent to the cross-bar        : 0

Ucast pkts received from the cross-bar  : 0

Pkts sent to the port                   : 0

Pkts discarded on ingress               : 0 >>> No Drops

Per-priority-pause status               : Rx (Inactive), Tx (Inactive)

関連情報

- Nexus 6000 シリーズ スイッチ QoS 設定例

- テクニカル サポートとドキュメント – Cisco Systems