この製品のドキュメントセットは、偏向のない言語を使用するように配慮されています。このドキュメントセットでの偏向のない言語とは、年齢、障害、性別、人種的アイデンティティ、民族的アイデンティティ、性的指向、社会経済的地位、およびインターセクショナリティに基づく差別を意味しない言語として定義されています。製品ソフトウェアのユーザインターフェイスにハードコードされている言語、RFP のドキュメントに基づいて使用されている言語、または参照されているサードパーティ製品で使用されている言語によりドキュメントに例外が存在する場合があります。シスコのインクルーシブ ランゲージの取り組みの詳細は、こちらをご覧ください。
シスコは世界中のユーザにそれぞれの言語でサポート コンテンツを提供するために、機械と人による翻訳を組み合わせて、本ドキュメントを翻訳しています。ただし、最高度の機械翻訳であっても、専門家による翻訳のような正確性は確保されません。シスコは、これら翻訳の正確性について法的責任を負いません。原典である英語版(リンクからアクセス可能)もあわせて参照することを推奨します。
このドキュメントでは、Cisco Nexus 5600/6000 シリーズ スイッチでの入力廃棄のトラブルシューティング方法について説明します。
Cisco Nexus 6000シリーズの設定に関する基本的な知識があることが推奨されます。
このドキュメントの情報は、次のソフトウェアとハードウェアのバージョンに基づいています。
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、初期(デフォルト)設定の状態から起動しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
入力廃棄は、出力ポートのオーバーサブスクライブを示している可能性があります。また、そのポートのユニキャスト トラフィックがドロップしている可能性が高いことも示しています。この記事では、ユニキャストおよびマルチキャストトラフィックがこのプラットフォームでどのようにバッファリングされるか、および緩和手順とともに入力廃棄がどのように発生するかについて説明します。
ユニキャストトラフィックは、出力バッファプールで最初にキューイングされ、次に出力キューがいっぱいになった後の入力バッファにキューイングされます(図を参照)。
16MBの入力共有バッファと9MBの出力共有バッファがあります。バッファは、12 x 10 gigポートまたは3 x 40 gigポート間で共有されます。共有バッファはバーストの吸収に適しています。
図に示すように、参照用のメモリ割り当て(BigsurはASIC/Unified Port Controllerの名前)を視覚的に示します。
ほとんどの場合、出力ドロップは常にマルチキャスト/ブロードキャスト/不明なユニキャストトラフィックが原因です。
輻輳した出力ポートでは、最初に出力バッファがいっぱいになり、次に入力のバックプレッシャーが発生します。これは ユニキャスト トラフィックの場合のみです。入力バッファがいっぱいになると、入力でトラフィックがドロップされ、入力廃棄が発生する可能性があります。
この説明は非常に高いレベルで簡単に要約できますが、トラフィックやキューの異なるクラスを調べると、特に内容が少し多くなります。Nexusプラットフォームでよく使用される仮想出力キュー(VOQ)の概念があります。VOQは、出力ポートごとにIEEE 802.1pサービスクラス(CoS)ごとに入力バッファを割り当てます。そのため、出力ポートごとに 8 つの VOQ があります。
1つのCoS内の1つの出力ポートでの輻輳は、最終的には入力ポート上の対応するVOQの輻輳に陥ります。制限に達すると、トラフィックはドロップされます。ただし、他のCoSや他の出力インターフェイス宛てのトラフィックには影響しないため、HOLBが回避され、それ以外の場合は輻輳が広がります。入力ポートから出力ポートへのトラフィックフローと、再生されるさまざまなブロックは図に示すとおりです。
ラボのセットアップ:
ラインレートトラフィックが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
ここで示すシミュレートされた設定では、オーバーサブスクリプションの原因は分かっていますが、トラフィックプロファイルがバーストする実稼働設定では、これらのコマンドを使用して輻輳した出力ポートを特定することが困難です。
次に示す手順は、輻輳した出力ポートを特定するのに役立ちます。
ポート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)
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.
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
+----------+------------------------------+------------------------+-----------+
ラボのセットアップ:
すべてのポートは 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ポート番号です。
このシナリオを回避するには、VOQ(ユニキャストトラフィック専用)を設定しきい値で設定します。
nexus6001(config)# hard unicast voq-limit
設定後、非輻輳ポートへのフローは影響を受けません。
図に示すように、VOQ制限設定後のSpirent Traffic Generatorビュー。
この設定は、HOLBによるドロップを防止する明確な利点を示しています。これがデフォルト設定ではないのはなぜですか。
通常、実稼働環境のトラフィックは本質的にバーストする可能性があります。VOQしきい値を無効にすると、入力バッファがドロップすることなくトラフィックマイクロバーストを吸収できるようになります。
VOQ 制限を有効にする必要性が保証されないかぎり、これを無効にしたまま、デフォルトを使用することを推奨します。
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)