O conjunto de documentação deste produto faz o possível para usar uma linguagem imparcial. Para os fins deste conjunto de documentação, a imparcialidade é definida como uma linguagem que não implica em discriminação baseada em idade, deficiência, gênero, identidade racial, identidade étnica, orientação sexual, status socioeconômico e interseccionalidade. Pode haver exceções na documentação devido à linguagem codificada nas interfaces de usuário do software do produto, linguagem usada com base na documentação de RFP ou linguagem usada por um produto de terceiros referenciado. Saiba mais sobre como a Cisco está usando a linguagem inclusiva.
A Cisco traduziu este documento com a ajuda de tecnologias de tradução automática e humana para oferecer conteúdo de suporte aos seus usuários no seu próprio idioma, independentemente da localização. Observe que mesmo a melhor tradução automática não será tão precisa quanto as realizadas por um tradutor profissional. A Cisco Systems, Inc. não se responsabiliza pela precisão destas traduções e recomenda que o documento original em inglês (link fornecido) seja sempre consultado.
Este documento descreve as causas e as soluções de descarte de entrada para o Cisco Nexus 9500-R EoR e o Nexus 3000-R ToR. Um descarte de entrada indica o número de pacotes descartados na fila de entrada devido ao congestionamento. Esse número inclui quedas causadas por queda traseira e Detecção Antecipada Aleatória Ponderada (WRED - Weighted Random Early Detection).
Se você tiver quedas aleatórias/esporádicas/históricas (ou seja, não ocorrendo mais), entre em contato com o TAC da Cisco para obter mais informações. Essa passagem é útil quando as devoluções de entrada são incrementadas com frequência.
O R-Series usa a arquitetura de ingresso VOQ. A arquitetura VOQ emula filas de saída no buffer de entrada com filas virtuais. Cada porta de saída tem oito filas para tráfego unicast e oito filas para tráfego multicast. O tráfego pode ser classificado em classes de tráfego com base no valor de Classe de Serviço (CoS - Class of Service) ou Ponto de Código de Serviços Diferenciados (DSCP - Differentiated Services Code Point) nos pacotes e enfileirado na fila virtual correspondente para essa classe de tráfego.
O R-Series usa um mecanismo de crédito distribuído para transferir o tráfego pela estrutura. Antes que um pacote seja agendado para sair do VOQ, o agendador de buffer de entrada solicita um crédito para a porta específica e a prioridade no buffer de saída. O crédito é solicitado a um agendador de crédito de entrada para a porta de destino e a prioridade. Se houver espaço de buffer disponível, o agendador de saída concederá acesso e enviará a concessão de crédito ao agendador de buffer de entrada. Se nenhum espaço de buffer estiver disponível no buffer de saída, a agenda de saída não concederá um crédito e o tráfego será colocado em buffer no VOQ até que o próximo crédito esteja disponível.
Abaixo está o Pipeline de Encaminhamento de Pacotes para a plataforma -R. Neste artigo, você se concentra no componente Ingress Traffic Manager. Mais detalhes sobre a arquitetura neste link
O gerenciador de tráfego de entrada (ITM) é um bloco no pipeline de entrada. Ele executa etapas relacionadas ao tráfego de fila no VOQ, agenda o tráfego para transmissão pela estrutura e gerencia créditos.
O bloco de buffer de VOQ de entrada gerencia o buffer no chip e o buffer de pacote fora do chip. Ambos os buffers usam arquitetura VOQ e o tráfego é enfileirado com base nas informações do IRPP (processador de pacote de receptor de entrada). Um total de 96.000 VOQs estão disponíveis para tráfego unicast e multicast.
Antes de um pacote ser transmitido do pipeline de entrada, o pacote precisa ser programado para transferência pela estrutura. O agendador de ingresso envia uma solicitação de crédito ao agendador de saída localizado no bloco gerenciador de tráfego de saída. Quando o gerenciador de tráfego de entrada recebe o crédito, ele começa a enviar tráfego para o processador de pacote de transmissão de entrada. Se o buffer de saída estiver cheio, o tráfego será colocado em buffer na fila dedicada representada pela porta de saída e pela classe de tráfego.
Geralmente, as devoluções de entrada podem ser vistas pelos seguintes motivos em vários hardwares Nexus
PID |
N9K-X9636C-R |
N9K-X9636Q-R |
N9K-X9636C-RX |
N9K-X96136YC-R |
N3K-C36180YC-R |
N3K-C3636C-R |
Em todo este artigo, o valor do contador de "descartes de entrada" e qualquer contador interno de HW que faça referência ao mesmo será alterado à medida que os erros forem aumentando enquanto os testes e os comandos relevantes devem ser capturados ao vivo.
Esta etapa será útil mais tarde.
No nosso caso, é Fila 7, a fila padrão - Há 8 filas no total na entrada:
Nexus-R# bcm-shell mod 1 "diag counters g" | /|\ | J E R I C H O N E T W O R K I N T E R F A C E | \|/ | +-------------------------------------------+-------------------------------------------+-------------------------------------------+-------------------------------------------+ | NBI | | RX_TOTAL_BYTE_COUNTER = 10,616,663,796 | TX_TOTAL_BYTE_COUNTER = 41,136 | | RX_TOTAL_PKT_COUNTER = 10,659,301 | TX_TOTAL_PKT_COUNTER = 606 | | RX_TOTAL_DROPPED_EOPS = 0 | | +-------------------------------------------+-------------------------------------------+-------------------------------------------+-------------------------------------------+ | IRE | EPNI | | CPU_PACKET_COUNTER = 606 | | | NIF_PACKET_COUNTER = 10,659,302 | EPE_BYTES_COUNTER = 41,136 | | OAMP_PACKET_COUNTER = 0 | EPE_PKT_COUNTER = 606 | | OLP_PACKET_COUNTER = 0 | EPE_DSCRD_PKT_CNT = 0 | | RCY_PACKET_COUNTER = 0 | | | IRE_FDT_INTRFACE_CNT = 0 | | +-------------------------------------------+-------------------------------------------+-------------------------------------------+-------------------------------------------+ | IDR | EGQ | | | | | MMU_IDR_PACKET_COUNTER = 10,659,302 | FQP_PACKET_COUNTER = 606 | | IDR_OCB_INTERFACE_COUNTER = 0 | PQP_UNICAST_PKT_CNT = 606 | | | PQP_DSCRD_UC_PKT_CNT = 0 | | | PQP_UC_BYTES_CNT = 48,408 | +-------------------------------------------+-------------------------------------------| PQP_MC_PKT_CNT = 0 | | IQM | PQP_DSCRD_MC_PKT_CNT = 0 | | | PQP_MC_BYTES_CNT = 0 | | ENQUEUE_PKT_CNT = 1,403,078 | EHP_UNICAST_PKT_CNT = 606 | | DEQUEUE_PKT_CNT = 1,403,078 | EHP_MC_HIGH_PKT_CNT = 0 | | DELETED_PKT_CNT = 0 | EHP_MC_LOW_PKT_CNT = 0 | | ENQ_DISCARDED_PACKET_COUNTER = 9,256,829 | DELETED_PKT_CNT = 0 | | Rejects: PORT_AND_PG_STATUS | | | | RQP_PKT_CNT = 606 | | | RQP_DSCRD_PKT_CNT = 0 | | | PRP_PKT_DSCRD_TDM_CNT = 0 | | | PRP_SOP_DSCRD_UC_CNT = 0 | | | PRP_SOP_DSCRD_MC_CNT = 0 | | | PRP_SOP_DSCRD_TDM_CNT = 0 | | | EHP_MC_HIGH_DSCRD_CNT = 0 | | | EHP_MC_LOW_DSCRD_CNT = 0 | | | ERPP_LAG_PRUNING_DSCRD_CNT = 0 | | | ERPP_PMF_DISCARDS_CNT = 0 | | | ERPP_VLAN_MBR_DSCRD_CNT = 0 | +-------------------------------------------+-------------------------------------------+-------------------------------------------+-------------------------------------------+ | | FDA | | | CELLS_IN_CNT_P1 = 0 | CELLS_OUT_CNT_P1 = 0 | | | CELLS_IN_CNT_P2 = 0 | CELLS_OUT_CNT_P2 = 0 | +-------------------------------------------+-------------------------------------------| CELLS_IN_CNT_P3 = 0 | CELLS_OUT_CNT_P3 = 0 | | IPT | CELLS_IN_TDM_CNT = 0 | CELLS_OUT_TDM_CNT = 0 | | | CELLS_IN_MESHMC_CNT = 0 | CELLS_OUT_MESHMC_CNT = 0 | | EGQ_PKT_CNT = 606 --> CELLS_IN_IPT_CNT = 606 | CELLS_OUT_IPT_CNT = 606 | | ENQ_PKT_CNT = 1,403,084 | EGQ_DROP_CNT = 0 | | FDT_PKT_CNT = 1,402,472 | EGQ_MESHMC_DROP_CNT = 0 | | CRC_ERROR_CNT = 0 | EGQ_TDM_OVF_DROP_CNT = 0 | | CFG_EVENT_CNT = 606 * | | | CFG_BYTE_CNT = 48,408 | | +-------------------------------------------+-------------------------------------------+-------------------------------------------+-------------------------------------------+ | FDT | FDR | | IPT_DESC_CELL_COUNTER = 5,609,892 | P1_CELL_IN_CNT = 0 | | IRE_DESC_CELL_COUNTER = 0 | P2_CELL_IN_CNT = 0 | | | P3_CELL_IN_CNT = 0 | | TRANSMITTED_DATA_CELLS_COUNTER = 5,609,892 | CELL_IN_CNT_TOTAL = 0 | +-------------------------------------------+-------------------------------------------+-------------------------------------------+-------------------------------------------+ | /|\ | J E R I C H O F A B R I C I N T E R F A C E | \|/ |
Um QUEUE_DELETED_PACKET_COUNTER maior que zero indica que os pacotes foram EXCLUÍDOS pelo IQM (Ingress Queueing Manager) após a fila. Isso se deve ao fato de uma fila ativa não receber nenhum crédito que sugeriria uma configuração incorreta do esquema de agendamento. Você deve verificar isso através do bcm-shell mod X "getReg IQM_QUEUE_DELETED_PACKET_COUNTER"
ENQ_DISCARDED_PACKET_COUNTER significa que os pacotes foram descartados ANTES de enfileirar. Você também pode ver este contador definido no BCM (o comando é limpo na leitura):
Você pode sempre observar isso rapidamente com o show hardware internal errors module X (comando limpa na leitura):
Exibindo Eth1/33 para este exemplo. Em uma rede real, você ainda não conhecerá a porta de saída congestionada.
Esse comando mostra detalhes de nós para o fluxo de entrada de VoQ para uma porta específica. Além disso, ele nos mostra o saldo de crédito atual do VoQ.
O VOQ da porta é derivado desta maneira:
LCs são baseados em 0 - Módulo 1 é 0, Módulo 2 é 1, etc
Há 256 IDs de porta de sistema por LC
ID = (LC * ID da porta do sistema) + número FP
Eth1/9 = (0 * 256) + 9 = 9
ID VOQ = 32 + (ID da porta do sistema * 8)
Eth1/9 = 32 + (9 * 8) = 104
Nosso VOQ para Eth1/9 será, portanto, 104 que corresponde à saída previamente coletada
Se a Fila for 303, lembre-se de que essas filas são na verdade um intervalo para que possam ser 303 + 7 ou 303-7 - A questão é: qual porta tem um VOQ que corresponda em um intervalo de 296-303 ou, alternativamente, 303-310?
Sabe-se que a Fila 7 em Eth1/9 está congestionada, então 303 é realmente a mais alta em seu intervalo, de modo que a faixa de 296-303 é uma estimativa bem instruída.
Exiba o mesmo para o ásico 0 - Não mostrado aqui para brevidade; você observaria na coluna Voq que seu intervalo de interesse não está nesse ASIC
Observe algumas coisas na saída acima:
Neste ponto, você encontrou a porta congestionada de saída - Determine se há algo que esteja se interrompendo incorretamente na rede, você configurou o SPAN e sua porta de destino é 1G enquanto está fornecendo uma ou mais interfaces 10G ou se esse é um problema de gargalo/projeto.
Eles são mais avançados - não são necessários para encontrar a porta do Congresso de Saída em cenários normais.
attach module X show hardware internal jer-usd tm_debug asic <slot> module <module> show hardware internal jer-usd info voq [ asic <instance> ] [ port <port> ] [ ] show hardware internal jer-usd info non-empty voq asic [ <instance> ] [ ] show hardware internal jer-usd info voq-profile { QueueThreshold drop_p <dp> | OCBThreshold } [ asic <instance> ] [ port<port> ] [ ] show hardware internal jer-usd info voq-connector front-port <port> [ ] show hardware internal jer-usd stats vsq { front-port <port> | inband asic <slot> | recycle-port <port> asic <slot> } show hardware internal jer-usd ingress-vsq buffer-occupancy front-port <port> show hardware internal jer-usd info IQM { counter | rate } asic <instance> dst-port <port> [ interval <int> ] [ ] show hardware internal jer-usd info SCH { counter | rate } asic <instance> dst-port <port> [ interval <int> ] [ ]
bcm-shell mod X
diag cosq print_flow_and_up dest_id=<flow_id>
diag cosq voq id=<voqid> detailed=1
diag cosq qpair e2e ps=<id>
cosq conn ing
cosq conn egr
dump IPS_CR_BAL_TABLE <voqID>
getReg IQM_QUEUE_MAXIMUM_OCCUPANCY_QUEUE_SIZE
Considere esta topologia em que o Gerador de Tráfego está enviando 2G de tráfego para cada Servidor:
Verifique rapidamente quais filas não estão vazias - Observe que há 4:
Determine a que interfaces essas filas pertencem - Verifique primeiro o ASIC 0 (ele demonstra apenas com uma interface):
Repita o mesmo processo para os outros três valores da Fila: 247, 303 e 351.
Definindo Eth1/33 como uma porta de destino de SPAN ao definir Eth1/9 como uma porta de origem de SPAN na direção RX
Envio de pacotes com SRC 10.10.10.10 e DEST 192.168.10.10 em que Eth1/9 está em 10.10.10.1/24 - Isso não resulta em um Input Discard; no entanto, você vê este contador:
Nexus-R# bcm-shell mod 1 "diag counters g" | /|\ | J E R I C H O N E T W O R K I N T E R F A C E | \|/ | +-------------------------------------------+-------------------------------------------+-------------------------------------------+-------------------------------------------+ _PACKET_COUNTER = 0 | DELETED_PKT_CNT = 12,027,201 | | | Discards: INVALID_OTM SRC_EQUAL_DEST +-------------------------------------------+-------------------------------------------+-------------------------------------------+-------------------------------------------+
Envie pacotes com SRC 10.10.10.10 e DEST 192.168.10.10 em que Eth1/9 está em 10.10.10.1/24 e Eth1/33 é uma porta L3 na sub-rede 172.16.0.1/30 - Sem contador de queda, sem descartes de entrada mesmo quando o destino é desconhecido .
Enviar pacotes em que Eth1/9 é apenas um tronco amplo (ou porta de acesso) - é registrado como um Descarte de entrada enquanto a porta passa para um estado de encaminhamento STP.
Nexus-R(config)# int e1/9
Nexus-R(config-if)# switchport mode trunk
Nexus-R# bcm-shell mod 1 "diag counters g" | i i --|IQM|ENQ_DISCARD|Rejects +-------------------------------------------+-------------------------------------------+-------------------------------------------+-------------------------------------------+ +-------------------------------------------+-------------------------------------------+-------------------------------------------+-------------------------------------------+ +-------------------------------------------+-------------------------------------------+-------------------------------------------+-------------------------------------------+ +-------------------------------------------+-------------------------------------------| PQP_MC_PKT_CNT = 1,678,949 | | IQM | PQP_DSCRD_MC_PKT_CNT = 11,369,033 | | ENQ_DISCARDED_PACKET_COUNTER = 1,289,182 | DELETED_PKT_CNT = 11,369,081 | | Rejects: QUEUE_NOT_VALID_STATUS | Discards: SRC_EQUAL_DEST | +-------------------------------------------+-------------------------------------------+-------------------------------------------+-------------------------------------------+
Nexus-R# show span int e1/9
Vlan Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
VLAN0001 Desg BLK 2 128.9 P2p
VLAN0010 Desg BLK 2 128.9 P2p
<snip>
QUEUE_NOT_VALID_STATUS é uma queda devido à decisão do Packet Processor (PP) de descartar ou um destino inválido recebido dos blocos do Packet Processor (PP).
Envia 10G+ para Eth1/9 resultaria em um tipo diferente de queda, já que você está maximizando Eth1/9 no primeiro lugar - Ainda conta como um Input Discard:
bcm-shell.0> diag counters g | /|\ | J E R I C H O N E T W O R K I N T E R F A C E | \|/ | +-------------------------------------------+-------------------------------------------+-------------------------------------------+-------------------------------------------+ | NBI | | RX_TOTAL_BYTE_COUNTER = 53,913,106,009 | TX_TOTAL_BYTE_COUNTER = 1,164,231 | | RX_TOTAL_PKT_COUNTER = 54,145,395 | TX_TOTAL_PKT_COUNTER = 17,029 | | RX_TOTAL_DROPPED_EOPS = 0 | | +-------------------------------------------+-------------------------------------------+-------------------------------------------+-------------------------------------------+ | IRE | EPNI | | CPU_PACKET_COUNTER = 17,010 | | | NIF_PACKET_COUNTER = 54,145,476 | EPE_BYTES_COUNTER = 5,721,307 | | OAMP_PACKET_COUNTER = 0 | EPE_PKT_COUNTER = 50,703 | | OLP_PACKET_COUNTER = 0 | EPE_DSCRD_PKT_CNT = 0 | | RCY_PACKET_COUNTER = 16,837 | | | IRE_FDT_INTRFACE_CNT = 0 | | +-------------------------------------------+-------------------------------------------+-------------------------------------------+-------------------------------------------+ | IDR | EGQ | | | | | MMU_IDR_PACKET_COUNTER = 54,128,577 | FQP_PACKET_COUNTER = 50,703 | | IDR_OCB_INTERFACE_COUNTER = 0 | PQP_UNICAST_PKT_CNT = 50,683 | | | PQP_DSCRD_UC_PKT_CNT = 0 | | | PQP_UC_BYTES_CNT = 5,216,716 | +-------------------------------------------+-------------------------------------------| PQP_MC_PKT_CNT = 20 | | IQM | PQP_DSCRD_MC_PKT_CNT = 20 | | | PQP_MC_BYTES_CNT = 2,079 | | ENQUEUE_PKT_CNT = 5,463,323 | EHP_UNICAST_PKT_CNT = 50,683 | | DEQUEUE_PKT_CNT = 5,594,400 | EHP_MC_HIGH_PKT_CNT = 20 | | DELETED_PKT_CNT = 0 | EHP_MC_LOW_PKT_CNT = 0 | | ENQ_DISCARDED_PACKET_COUNTER = 48,716,055 | DELETED_PKT_CNT = 40 | | Rejects: VOQ_MX_QSZ_STATUS | | <snip>