Introduction
Ce document décrit comment la fonctionnalité hardware ip glean throttle fonctionne avec des exemples et l'intention de cette fonctionnalité.
Conditions préalables
Conditions requises
Cisco recommande que vous ayez des connaissances de base sur la configuration des commutateurs de la gamme Nexus 7000.
Components Used
Les informations contenues dans ce document sont basées sur les versions de matériel et de logiciel suivantes :
- Nexus 7000 avec version 6.2.x et ultérieure
- carte de ligne F2e
The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. If your network is live, make sure that you understand the potential impact of any command.
Informations générales
Lorsque vous transférez un paquet IP entrant dans une carte de ligne, si la demande ARP (Address Resolution Protocol) pour le tronçon suivant n'est pas résolue, la carte de ligne transfère les paquets au superviseur afin de générer une demande ARP. Une fois que la requête ARP répond au superviseur, elle résout l'adresse MAC pour le tronçon suivant et programme le matériel.
Si le superviseur ne peut pas résoudre l'entrée ARP, la carte de ligne envoie tous les paquets destinés à cette adresse au superviseur. Le superviseur génère des requêtes ARP indéfiniment jusqu'à ce que l'entrée ARP soit résolue. Un limiteur de débit matériel appelé glean est placé afin de protéger le processeur du superviseur (CPU) contre un trafic excessif.
Un problème qui peut se poser est qu'une seule adresse IP de destination abandonne le réseau en raison d'un problème de maintenance ou d'un problème matériel, et soudainement tout le trafic qui lui est destiné est envoyé au processeur. Comme le limiteur de débit est en place, le processeur ne devient pas élevé, mais cette adresse IP de destination unique peut consommer le limiteur de débit entier et ne pas donner aux autres adresses IP légitimes accès au processeur. C'est pour ce scénario que hardware ip glean throttle a été créé.
Avec la configuration matérielle ip glean throttle, le trafic routé pour chaque adresse IP de destination inconnue atteint l'action CPU post Hardware Rate Limiter (HWRL) pour la résolution ARP. Une destination inaccessible entraînera la création d'une contiguïté d'abandon /32 dans le matériel. Cela empêche que des paquets supplémentaires vers la même adresse IP de tronçon suivant soient transférés au superviseur. Pendant que cette contiguïté de suppression est ajoutée, les paquets suivants sont abandonnés, mais le superviseur continue à générer des requêtes ARP jusqu'à ce que le tronçon suivant soit résolu. La contiguïté de suppression est installée pendant une courte période, ce qui est configurable. Une fois que le compteur expire, un paquet est de nouveau envoyé au processeur et le processus se répète. Le nombre d'entrées installées de cette manière est limité à 1000 par défaut, mais peut être configuré pour un plus grand nombre d'entrées souhaitées. Ceci permet de limiter l'impact sur la taille de la table RIB (Routing Information Base).
Test de laboratoire
Dans ce cas, vous disposez d'un serveur, 172.28.191.200, qui est en panne en raison d'une défaillance matérielle et qui n'est actuellement pas disponible pour gérer le trafic.
Note: Il n'y a pas d'entrée ARP pour l'hôte et aucune contiguïté n'est créée.
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
Le trafic est envoyé au superviseur afin de générer une requête 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
Le limiteur de débit de glean pour le module spécifique limite le trafic à 100 paquets par seconde, par module. Vous pouvez voir que certains paquets sont abandonnés.
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
Lorsque la commande hardware ip glean throttle est configurée :
N7K(config)#hardware ip glean throttle
Une contiguïté est installée dans le 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
Lorsque vous examinez la programmation matérielle, un drop index est installé :
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
Vous pouvez maintenant voir que le limiteur de débit matériel ne voit aucune baisse.
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
Informations connexes