Einleitung
In diesem Dokument wird beschrieben, wie Sie Virtual Queue Indexes (VQIs) überprüfen und sie in Cisco Express Forwarding (CEF) auf einem Aggregation Services Router 9000 (ASR9K) korrekt zuweisen.
Hintergrundinformationen
Damit Pakete in einem ASR9K von einer Schnittstelle an eine andere weitergeleitet werden, müssen sie die Fabric durchlaufen. In einem ASR9K gibt es kein lokales Switching. Wie gelangt ein Paket jedoch von einer Schnittstelle zu einer anderen? Dies wird durch die Verwendung von VQIs erreicht, die jeder Schnittstelle zugewiesen werden. Auf diese Weise weiß die Fabric, über welche Linecard (LC) und welchen Netzwerkprozessor (NP) das Paket geroutet wird.
Manchmal jedoch, wie im Fall von CSCvc83681 kann ein falscher VQI zugewiesen werden, und der Datenverkehr kann im Router durch Blackholes blockiert werden.
Überprüfen von VQI-Zuweisungen
In diesem Abschnitt finden Sie Informationen zur Verifizierung von VQI-Zuweisungen.
Identifizieren Sie zuerst die Eingangs- und Ausgangsschnittstellen für die Datenstrom-, Quell- und Ziel-IP-Adresse (Internet Protocol) mit dem Befehl show cef <prefix> detail.
So können Sie leichter erkennen, welche LCs für die VQI-Zuweisungen untersucht werden müssen.
Die Quelladresse lautet:
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
Hier ist die Zieladresse:
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
Aus diesen Ausgängen wird deutlich, dass LC 1 der Eingangs-LC und LC 0 der Ausgangs-LC ist. Beide haben zwei Ports, um den Datenverkehr auszugleichen.
Als Nächstes müssen Sie mithilfe des Befehls show controller np ports all loc <LC> feststellen, wie viele NPs sich auf dem Eingangs- und Ausgangs-LC befinden.
Der Eingangs-LC hat 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
Der Egress-LC verfügt über 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
Überprüfen Sie anschließend den Eingangs-LC mit dem Befehl show cef <Zielpräfix> hardware ingress detail loc <ingress lc> | I vqi-Befehl und der Egress-LC mit dem Befehl show cef <dst prefix> hardware egress detail loc <egress lc> I vqi aus.
Diese Informationen liefern uns Informationen darüber, wie die einzelnen NPs programmiert sind, um die Ausgangsschnittstellen zu erreichen. In diesem Fall gibt es 16 Einträge, da sich acht NPs auf dem Eingangs-LC und zwei Equal Cost Multi-Path (ECMP)-Verbindungen auf dem Ausgangs-LC befinden. Die ersten acht Einträge beziehen sich auf die erste ECMP-Verbindung und die nächsten acht Einträge auf die zweite ECMP-Verbindung. Jede Gruppe von acht Einheiten sollte übereinstimmen, und das bedeutet, dass jeder NP so programmiert ist, dass er dasselbe tut. Jeder Satz sollte anders sein, obwohl es zwei separate Schnittstellen gibt. Wenn sie identisch sind, dann können Sie ein VQI CEF-Problem bei der Fehlprogrammierung haben.
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
Überprüfen Sie den Egress-LC, um sicherzustellen, dass er richtig programmiert ist. In diesem Fall gibt es zwei NPs und zwei ECMP-Verbindungen. Daher müssen zwei Sätze von zwei VQIs programmiert werden.
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
Zuletzt muss die VQI-Zuordnung der Schnittstellen überprüft werden.
Hier können Sie die Variable switch_fabric_port überprüfen und von decimal in hex konvertieren. Da 88 58 und 89 59 ist, stimmen diese Werte mit den VQI-Zuweisungen dieser Befehle überein, was bedeutet, dass CEF für den VQI-Transport im ASR9K richtig programmiert ist.
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