목차

소개

배경 정보

VQI 할당 확인

소개

이 문서에서는 ASR9K(Aggregation Services Router 9000)의 CEF(Cisco Express Forwarding)에서 VQI(Virtual Queue Index)를 확인하고 적절하게 할당하는 방법에 대해 설명합니다.

배경 정보

패킷이 ASR9K에서 한 인터페이스에서 다른 인터페이스로 전달되려면 패킷이 패브릭을 통과해야 합니다. ASR9K에는 로컬 스위칭이 없습니다. 하지만 패킷이 한 인터페이스에서 다른 인터페이스로 어떻게 전달됩니까? 이는 각 인터페이스에 할당된 VQI를 사용하여 수행됩니다. 이렇게 하면 패브릭에서 패킷을 라우팅할 LC(Linecard) 및 NP(Network Processor)를 알 수 있습니다.

CSCvc의 경우처럼 가끔 발생합니다83681 따라서 잘못된 VQI가 할당되고 라우터 내에서 트래픽이 블랙홀링될 수 있습니다.

VQI 할당 확인

VQI 할당을 확인하려면 이 섹션을 참조하십시오.

먼저 show cef <prefix> detail 명령을 사용하여 흐름, 소스 및 대상 IP(인터넷 프로토콜) 주소에 대한 인그레스 및 이그레스 인터페이스를 식별합니다.

이는 VQI 할당을 위해 살펴봐야 할 LC를 식별하는 데 도움이 됩니다.

소스 주소는 다음과 같습니다.

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

대상 주소는 다음과 같습니다.

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

이러한 출력에서 LC 1은 인그레스 LC이고 LC 0은 이그레스 LC이며, 트래픽 로드 밸런싱을 위해 두 개의 포트가 있습니다.

다음으로, show controller np ports all loc <LC> 명령을 사용하여 인그레스 및 이그레스 LC에 있는 NP의 수를 파악해야 합니다.

인그레스 LC에는 8개의 NP가 있습니다.

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

이그레스 LC에는 2개의 NP가 있습니다.

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

다음으로, show cef <destination prefix> 하드웨어 인그레스 세부 정보 loc <ingress lc>를 사용하여 인그레스 LC를 확인합니다 | I vqi 명령 및 show cef <dst prefix> hardware egress detail loc <egress lc> I vqi 명령이 있는 이그레스 LC

이 정보는 각 NP가 이그레스 인터페이스에 도달하도록 프로그래밍되는 방법에 대한 정보를 제공합니다. 이 경우 인그레스 LC에 8개의 NP가 있고 이그레스 LC에 2개의 ECMP(Equal Cost Multi-Path) 링크가 있으므로 16개의 항목이 있습니다. 처음 8개의 항목은 첫 번째 ECMP 링크에 대한 것이고 다음 8개의 항목은 두 번째 ECMP 링크에 대한 것이다. 각 8개의 집합은 일치해야 하며, 각 NP가 동일하게 되도록 프로그래밍되었음을 의미합니다. 두 개의 개별 인터페이스가 있지만 각 세트는 서로 달라야 합니다. 만약 그것들이 동일하다면, 당신은 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

이그레스 LC가 제대로 프로그래밍되었는지 확인합니다. 이 경우 2개의 NP와 2개의 ECMP 링크가 있으므로 프로그래밍해야 하는 2개의 VQI 세트가 있습니다.

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

마지막으로 확인할 사항은 인터페이스의 VQI 할당입니다.

여기서 switch_fabric_port 변수를 확인하여 10진수에서 16진수로 변환할 수 있습니다. 88은 58이고 89는 59이며, 이러한 값은 CEF가 ASR9K에서 VQI 전송을 위해 적절히 프로그래밍되었음을 의미하는 이 명령의 VQI 할당과 일치합니다.

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