概要
このドキュメントでは、hardware ip glean throttle機能が例でどのように動作するのか、およびこの機能の目的について説明します。
前提条件
要件
Nexus 7000シリーズスイッチの設定に関する基本的な知識があることが推奨されます。
使用するコンポーネント
このドキュメントの情報は、次のソフトウェアとハードウェアのバージョンに基づいています。
- リリース6.2.x以降が稼働するNexus 7000
- F2eシリーズラインカード
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、初期(デフォルト)設定の状態から起動しています。対象のネットワークが実稼働中である場合には、どのようなコマンドについても、その潜在的な影響について確実に理解しておく必要があります。
背景説明
ラインカードで着信IPパケットを転送するときに、ネクストホップのAddress Resolution Protocol(ARP;アドレス解決プロトコル)要求が解決されない場合、ラインカードはARP要求を生成するためにパケットをスーパーバイザに転送します。ARP要求がスーパーバイザに応答すると、ネクストホップのMACアドレスが解決され、ハードウェアがプログラムされます。
スーパーバイザがARPエントリを解決できない場合、ラインカードはそのアドレス宛てのすべてのパケットをスーパーバイザに送信します。スーパーバイザは、ARPエントリが解決されるまで、ARP要求を無期限に生成します。スーパーバイザのプロセッサ(CPU)を過剰なトラフィックから保護するために、gleanと呼ばれるハードウェアレートリミッタが配置されています。
メンテナンスあるいはハードウェア問題が原因で単一の IP がネットワークからドロップされると、その IP を宛先とするすべてのトラフィックが一気に CPU に送信されるという問題が発生することが考えられます。 レートリミッタが設定されているため、CPUが高くなることはありませんが、この単一の宛先IPがレートリミッタ全体を消費し、他の正当なIPがCPUにアクセスできなくなります。このシナリオでは、hardware ip glean throttleが作成されています。
hardware ip glean throttle設定では、不明な宛先IPごとにルーティングされたトラフィックは、ARP解決のためにCPUポストHardware Rate Limiter(HWRL)アクションに到達します。到達不能な宛先では、ハードウェアで/32ドロップ隣接関係が作成されます。これにより、同じネクストホップIPアドレスへの追加パケットがスーパーバイザに転送されなくなります。このドロップ隣接関係が追加されている間、後続のパケットはドロップされますが、スーパーバイザはネクストホップが解決されるまでARP要求を生成し続けます。ドロップ隣接関係は、短期間だけインストールされます。この期間は設定可能です。タイマーが時間切れになると、1つのパケットがCPUに再度送信され、プロセスが繰り返されます。この方法でインストールされるエントリの数は、デフォルトでは1000に制限されていますが、必要なエントリの数を増やすように設定できます。エントリ数を設定する目的は、ルーティング情報ベース(RIB)テーブル サイズへの影響を制限することです。
ラボ テスト
この場合、サーバ172.28.191.200が存在します。このサーバはハードウェア障害のためにダウンしており、現在はトラフィックを処理できません。
注:ホストの ARP エントリはなく、隣接関係は作成されていません。
N7K# show ip route vrf VRF_ABC 172.28.191.200
IP Route Table for VRF "VRF_ABC"
'*' denotes best ucast next-hop
'**' denotes best mcast next-hop
'[x/y]' denotes [preference/metric]
'%<string>' in via output denotes VRF <string>
172.28.191.192/28, ubest/mbest: 1/0, attached >>> There is no /32 entry
*via 172.28.191.195, Vlan1601, [0/0], 02:01:17, direct
トラフィックは、ARP要求を生成するためにスーパーバイザに送信されます。
N7K# show system internal forwarding vrf VRF_ABC ipv4 route 172.28.191.200 detail
slot 1
=======
RPF Flags legend:
S - Directly attached route (S_Star)
V - RPF valid
M - SMAC IP check enabled
G - SGT valid
E - RPF External table valid
172.28.191.192/28 , sup-eth2
Dev: 0 , Idx: 0x65fb , Prio: 0x8487 , RPF Flags: VS , DGT: 0 , VPN: 9
RPF_Intf_5: Vlan1601 (0x19 )
AdjIdx: 0x5a , LIFB: 0 , LIF: sup-eth2 (0x1fe1 ), DI: 0xc01
DMAC: 0000.0000.0000 SMAC: 0000.0000.0000
172.28.191.192/28 , sup-eth2
Dev: 1 , Idx: 0x65fb , Prio: 0x8487 , RPF Flags: VS , DGT: 0 , VPN: 9
RPF_Intf_5: Vlan1601 (0x19 )
AdjIdx: 0x5a , LIFB: 0 , LIF: sup-eth2 (0x1fe1 ), DI: 0xc01
DMAC: 0000.0000.0000 SMAC: 0000.0000.0000
172.28.191.192/28 , sup-eth2
Dev: 2 , Idx: 0x65fb , Prio: 0x8487 , RPF Flags: VS , DGT: 0 , VPN: 9
RPF_Intf_5: Vlan1601 (0x19 )
AdjIdx: 0x5a , LIFB: 0 , LIF: sup-eth2 (0x1fe1 ), DI: 0xc01
DMAC: 0000.0000.0000 SMAC: 0000.0000.0000
172.28.191.192/28 , sup-eth2
Dev: 5 , Idx: 0x65f1 , Prio: 0x84f2 , RPF Flags: VS , DGT: 0 , VPN: 9
RPF_Intf_5: Vlan1601 (0x19 )
AdjIdx: 0x5a , LIFB: 0 , LIF: sup-eth2 (0x1fe1 ), DI: 0xc01
DMAC: 0000.0000.0000 SMAC: 0000.0000.0000
特定のモジュール用のグリーンレートリミッタは、モジュールあたり100パケット/秒にトラフィックをスロットリングします。一部のパケットがドロップされていることがわかります。
N7K# show hardware rate-limiter
Units for Config: packets per second
Allowed, Dropped & Total: aggregated since last clear counters
rl-1: STP and Fabricpath-ISIS
rl-2: L3-ISIS and OTV-ISIS
rl-3: UDLD, LACP, CDP and LLDP
rl-4: Q-in-Q and ARP request
rl-5: IGMP, NTP, DHCP-Snoop, Port-Security, Mgmt and Copy traffic
Module: 1
R-L Class Config Allowed Dropped Total
+------------------+--------+---------------+---------------+-----------------+
L3 mtu 500 0 0 0
L3 ttl 500 0 0 0
L3 control 10000 0 0 0
L3 glean 100 3326 3190 6516
L3 mcast dirconn 3000 0 0 0
L3 mcast loc-grp 3000 0 0 0
L3 mcast rpf-leak 500 0 0 0
L2 storm-ctrl Disable
access-list-log 100 0 0 0
copy 30000 1877 0 1877
receive 30000 318 0 318
hardware ip glean throttleコマンドが設定されている場合:
N7K(config)#hardware ip glean throttle
隣接関係がRIBにインストールされます。
N7K# show ip route 172.28.191.200 vrf VRF-ABC
IP Route Table for VRF "VRF-ABC"
'*' denotes best ucast next-hop
'**' denotes best mcast next-hop
'[x/y]' denotes [preference/metric]
'%<string>' in via output denotes VRF <string>
172.28.191.200/32, ubest/mbest: 1/0, attached
*via 172.28.191.200, Vlan1601, [250/0], 00:01:37, am
ハードウェアプログラミングを見ると、ドロップインデックスがインストールされています。
N7K# show system internal forwarding vrf VRF_ABC ipv4 route 172.28.191.200 detail
slot 1
=======
RPF Flags legend:
S - Directly attached route (S_Star)
V - RPF valid
M - SMAC IP check enabled
G - SGT valid
E - RPF External table valid
172.28.191.200/32 , Drop
Dev: 0 , Idx: 0x1a5 , Prio: 0x8b61 , RPF Flags: VS , DGT: 0 , VPN: 9
RPF_Intf_5: Vlan1601 (0x19 )
AdjIdx: 0x8913 , LIFB: 0 , LIF: Drop (0x0 ), DI: 0x0
DMAC: 0000.0000.0000 SMAC: 0000.0000.0000
172.28.191.200/32 , Drop
Dev: 1 , Idx: 0x1a5 , Prio: 0x8b61 , RPF Flags: VS , DGT: 0 , VPN: 9
RPF_Intf_5: Vlan1601 (0x19 )
AdjIdx: 0x8913 , LIFB: 0 , LIF: Drop (0x0 ), DI: 0x0
DMAC: 0000.0000.0000 SMAC: 0000.0000.0000
172.28.191.200/32 , Drop
Dev: 2 , Idx: 0x1a5 , Prio: 0x8b61 , RPF Flags: VS , DGT: 0 , VPN: 9
RPF_Intf_5: Vlan1601 (0x19 )
AdjIdx: 0x8913 , LIFB: 0 , LIF: Drop (0x0 ), DI: 0x0
DMAC: 0000.0000.0000 SMAC: 0000.0000.0000
172.28.191.200/32 , Drop
Dev: 5 , Idx: 0x1e1 , Prio: 0x88ee , RPF Flags: VS , DGT: 0 , VPN: 9
RPF_Intf_5: Vlan1601 (0x19 )
AdjIdx: 0x8914 , LIFB: 0 , LIF: Drop (0x0 ), DI: 0x0
DMAC: 0000.0000.0000 SMAC: 0000.0000.0000
ハードウェアレートリミッタで廃棄が検出されないことがわかります。
N7K# show hardware rate-limiter
Units for Config: packets per second
Allowed, Dropped & Total: aggregated since last clear counters
rl-1: STP and Fabricpath-ISIS
rl-2: L3-ISIS and OTV-ISIS
rl-3: UDLD, LACP, CDP and LLDP
rl-4: Q-in-Q and ARP request
rl-5: IGMP, NTP, DHCP-Snoop, Port-Security, Mgmt and Copy traffic
Module: 1
R-L Class Config Allowed Dropped Total
+------------------+--------+---------------+---------------+-----------------+
L3 mtu 500 0 0 0
L3 ttl 500 0 0 0
L3 control 10000 0 0 0
L3 glean 100 0 0 0
L3 mcast dirconn 3000 0 0 0
L3 mcast loc-grp 3000 0 0 0
L3 mcast rpf-leak 500 0 0 0
L2 storm-ctrl Disable
access-list-log 100 0 0 0
copy 30000 1877 0 1877
receive 30000 318 0 318
関連情報