Introduction
Este documento descreve como verificar Índices de Filas Virtuais (VQIs) e atribuí-los corretamente no Cisco Express Forwarding (CEF) em um Roteador de Serviços Agregados 9000 (ASR9K).
Informações de Apoio
Para que os pacotes sejam encaminhados de uma interface para outra em um ASR9K, os pacotes devem atravessar a estrutura. Não há switching local em um ASR9K. Porém, como um pacote vai de uma interface a outra? Isso é feito com o uso de VQIs que são atribuídos a cada interface. Dessa forma, a estrutura sabe qual placa de linha (LC) e processador de rede (NP) rotear o pacote.
Às vezes, no entanto, como no caso de CSCvc83681 , um VQI incorreto pode ser atribuído e o tráfego pode ser bloqueado dentro do roteador.
Verificar atribuições de VQI
Consulte esta seção para verificar as atribuições de VQI.
Primeiro, identifique as interfaces de entrada e saída do fluxo, do endereço IP (Internet Protocol) de origem e de destino, com o comando show cef <prefix> detail.
Isso ajuda a identificar quais LCs precisam ser examinadas para as atribuições de VQI.
Aqui está o endereço de origem:
RP/0/RSP0/CPU0:ASR9006-H#show cef 123.29.62.12 detail
Tue May 1 10:54:50.356 EDT
123.29.62.12/32, version 325561, internal 0x1000001 0x0 (ptr 0x76a07a40) [1], 0x0 (0x73ffbf50), 0xa28 (0x75e3133c)
Updated May 1 10:26:51.592
remote adjacency to TenGigE0/1/0/5
Prefix Len 32, traffic index 0, precedence n/a, priority 1
gateway array (0x74bff484) reference count 3, flags 0x68, source lsd (5), 1 backups
[2 type 5 flags 0x8401 (0x7216f3d0) ext 0x0 (0x0)]
LW-LDI[type=5, refc=3, ptr=0x73ffbf50, sh-ldi=0x7216f3d0]
gateway array update type-time 1 May 1 10:26:51.592
LDI Update time May 1 10:26:51.592
LW-LDI-TS May 1 10:26:51.592
via 10.94.1.182/32, TenGigE0/1/0/5, 6 dependencies, weight 0, class 0 [flags 0x0]
path-idx 0 NHID 0x0 [0x7181cfc4 0x0]
next hop 10.94.1.182/32
remote adjacency
local label 24088 labels imposed {86}
via 10.94.1.150/32, TenGigE0/1/0/7, 6 dependencies, weight 0, class 0 [flags 0x0]
path-idx 1 NHID 0x0 [0x7181d018 0x0]
next hop 10.94.1.150/32
remote adjacency
local label 24088 labels imposed {86}
Load distribution: 0 1 (refcount 2)
Hash OK Interface Address
0 Y TenGigE0/1/0/5 remote
1 Y TenGigE0/1/0/7 remote
Aqui está o endereço destino:
RP/0/RSP0/CPU0:ASR9006-H#show cef 123.29.62.1 detail
Tue May 1 10:53:14.531 EDT
123.29.62.1/32, version 334286, internal 0x1000001 0x0 (ptr 0x74bf1a04) [1], 0x0 (0x73ffbeb0), 0xa20 (0x75e310d4)
Updated May 1 10:53:12.459
remote adjacency to TenGigE0/0/0/2
Prefix Len 32, traffic index 0, precedence n/a, priority 1
gateway array (0x74c025ec) reference count 27, flags 0x68, source lsd (5), 1 backups
[19 type 4 flags 0x8401 (0x7216f390) ext 0x0 (0x0)]
LW-LDI[type=1, refc=1, ptr=0x73ffbeb0, sh-ldi=0x7216f390]
gateway array update type-time 1 Apr 30 17:03:05.246
LDI Update time Apr 30 17:03:05.246
LW-LDI-TS Apr 30 17:03:05.247
via 10.94.0.10/32, TenGigE0/0/0/2, 4 dependencies, weight 0, class 0 [flags 0x0]
path-idx 0 NHID 0x0 [0x7181ce20 0x7181d06c]
next hop 10.94.0.10/32
remote adjacency
local label 24012 labels imposed {ImplNull}
via 10.94.2.9/32, TenGigE0/0/0/3, 4 dependencies, weight 0, class 0 [flags 0x0]
path-idx 1 NHID 0x0 [0x7181ce74 0x7181d0c0]
next hop 10.94.2.9/32
remote adjacency
local label 24012 labels imposed {ImplNull}
Load distribution: 0 1 (refcount 19)
Hash OK Interface Address
0 Y TenGigE0/0/0/2 remote
1 Y TenGigE0/0/0/3 remote
A partir dessas saídas, você verá que LC 1 é o LC de entrada e LC 0 é o LC de saída, ambos têm duas portas para fazer o balanceamento de carga do tráfego.
Em seguida, você precisa identificar quantos NPs estão no LC de entrada e saída com o comando show controller np ports all loc <LC>.
O LC de entrada tem 8 NPs:
RP/0/RSP0/CPU0:ASR9006-H#show controller np ports all loc 0/1/CPU0
Tue May 1 10:56:57.996 EDT
Node: 0/1/CPU0:
----------------------------------------------------------------
NP Bridge Fia Ports
-- ------ --- ---------------------------------------------------
0 -- 0 TenGigE0/1/0/0 - TenGigE0/1/0/2
1 -- 0 TenGigE0/1/0/3 - TenGigE0/1/0/5
2 -- 1 TenGigE0/1/0/6 - TenGigE0/1/0/8
3 -- 1 TenGigE0/1/0/9 - TenGigE0/1/0/11
4 -- 2 TenGigE0/1/0/12 - TenGigE0/1/0/14
5 -- 2 TenGigE0/1/0/15 - TenGigE0/1/0/17
6 -- 3 TenGigE0/1/0/18 - TenGigE0/1/0/20
7 -- 3 TenGigE0/1/0/21 - TenGigE0/1/0/23
O LC de saída tem 2 NPs:
RP/0/RSP0/CPU0:ASR9006-H#show controller np ports all loc 0/0/cPU0
Tue May 1 10:55:27.661 EDT
Node: 0/0/CPU0:
----------------------------------------------------------------
NP Bridge Fia Ports
-- ------ --- ---------------------------------------------------
0 -- 0 TenGigE0/0/0/0 - TenGigE0/0/0/3
1 -- 1 TenGigE0/0/1/0 - TenGigE0/0/1/3
Em seguida, verifique o LC de ingresso com o comando show cef <destination prefix> hardware ingress detail loc <ingress lc> | O comando I vqi e o LC de saída com o comando show cef <dst prefix> hardware egress detail loc <egress lc> I vqi.
Essas informações nos fornecem informações sobre como cada NP é programado para acessar as interfaces de saída. Nesse caso, como há oito NPs no LC de ingresso e dois enlaces ECMP (Equal Cost Multi-Path) no LC de saída, há 16 entradas. As primeiras oito entradas são para o primeiro link ECMP e as próximas oito entradas são para o segundo link ECMP. Cada conjunto de oito deve coincidir, e isso significa que cada NP está programado para fazer o mesmo. Cada conjunto deve ser diferente, embora haja duas interfaces separadas. Se eles forem iguais, você pode estar tendo um problema de má programação VQI CEF.
RP/0/RSP0/CPU0:ASR9006-H#show cef 123.29.62.1 hardware ingress loc 0/1/CPU0 | i vqi
Tue May 1 10:56:27.064 EDT
sfp/vqi : 0x58
sfp/vqi : 0x58
sfp/vqi : 0x58
sfp/vqi : 0x58
sfp/vqi : 0x58
sfp/vqi : 0x58
sfp/vqi : 0x58
sfp/vqi : 0x58
sfp/vqi : 0x59
sfp/vqi : 0x59
sfp/vqi : 0x59
sfp/vqi : 0x59
sfp/vqi : 0x59
sfp/vqi : 0x59
sfp/vqi : 0x59
sfp/vqi : 0x59
Verifique o LC de saída para garantir que ele esteja programado corretamente. Nesse caso, há dois NPs e dois links ECMP, portanto, há dois conjuntos de dois VQIs que precisam ser programados.
RP/0/RSP0/CPU0:ASR9006-H#show cef 123.29.62.1 hardware egress loc 0/0/CPU0 | i vqi
Tue May 1 10:57:29.221 EDT
out_lbl_invalid: 0 match: 0 vqi/lag-id: 0x0
out_lbl_invalid: 0 match: 0 vqi/lag-id: 0x0
sfp/vqi : 0x58
sfp/vqi : 0x58
out_lbl_invalid: 0 match: 0 vqi/lag-id: 0x0
out_lbl_invalid: 0 match: 0 vqi/lag-id: 0x0
sfp/vqi : 0x59
sfp/vqi : 0x59
A última coisa a verificar é a atribuição de VQI nas interfaces.
Aqui, você pode verificar a variável switch_fabric_port e converter de decimal para hexadecimal. 88 sendo 58 e 89 sendo 59, esses valores correspondem às atribuições de VQI desses comandos, o que significa que o CEF está programado corretamente para o transporte de VQI no ASR9K.
RP/0/RSP0/CPU0:ASR9006-H#show controller pm interface ten 0/0/0/2
Tue May 1 10:58:52.024 EDT
Ifname(1): TenGigE0_0_0_2, ifh: 0x4000140 :
iftype 0x1e
egress_uidb_index 0x7, 0x7
ingress_uidb_index 0x7, 0x7
port_num 0x2
subslot_num 0x0
ifsubinst 0x0
ifsubinst port 0x2
phy_port_num 0x2
channel_id 0x0
channel_map 0x0
lag_id 0x0
virtual_port_id 0x0
switch_fabric_port 88
in_tm_qid_fid0 0x20002
in_tm_qid_fid1 0xffffffff
in_qos_drop_base 0x690001
out_tm_qid_fid0 0x20022
out_tm_qid_fid1 0xffffffff
np_port 0x6
out_qos_drop_base 0x6900a1
bandwidth 10000000 kbps
ing_stats_ptrs 0x53016a, 0x0
egr_stats_ptrs 0x53017b, 0x0
l2_transport 0x0
ac_count 0x0
parent_ifh 0x0
parent_bundle_ifh 0x0
L2 protocols bmap 0x1000000
Cluster interface 0
RP/0/RSP0/CPU0:ASR9006-H#show controller pm interface ten 0/0/0/3
Tue May 1 10:59:08.886 EDT
Ifname(1): TenGigE0_0_0_3, ifh: 0x4000180 :
iftype 0x1e
egress_uidb_index 0x8, 0x8
ingress_uidb_index 0x8, 0x8
port_num 0x3
subslot_num 0x0
ifsubinst 0x0
ifsubinst port 0x3
phy_port_num 0x3
channel_id 0x0
channel_map 0x0
lag_id 0x0
virtual_port_id 0x0
switch_fabric_port 89
in_tm_qid_fid0 0x30002
in_tm_qid_fid1 0xffffffff
in_qos_drop_base 0x6e0001
out_tm_qid_fid0 0x30022
out_tm_qid_fid1 0xffffffff
np_port 0x7
out_qos_drop_base 0x6e00a1
bandwidth 10000000 kbps
ing_stats_ptrs 0x530183, 0x0
egr_stats_ptrs 0x530194, 0x0
l2_transport 0x0
ac_count 0x0
parent_ifh 0x0
parent_bundle_ifh 0x0
L2 protocols bmap 0x1000000
Cluster interface 0