소개
이 문서에서는 ASR920/RSP2 라우터에서 QoS 우선순위를 처리하는 방법 및 이를 구성하는 방법에 대해 설명합니다.
사전 요구 사항
요구 사항
다음 주제에 대한 지식을 보유하고 있으면 유용합니다.
- ASR 920 series 라우터
- QoS 정책
사용되는 구성 요소
이 문서의 정보는 소프트웨어 버전 16.x~17.x를 실행하는 ASR 9xx(RSP2 라우터 포함)를 기반으로 합니다.
트래픽 생성기는 우선순위 패킷을 처리하는 기능을 테스트하는 데 사용됩니다.
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우 모든 명령의 잠재적인 영향을 미리 숙지하시기 바랍니다.
문제
이 문서에서는 ASR 920 및 RSP2 기반 라우터와 관련된 다음과 같은 문제를 다룹니다.
- RSP2의 ASIC 제한으로 인해 최선형 패킷의 이점을 활용하여 삭제된 우선순위 패킷
- 클래스에서 제공할 대역폭 비율을 계산하는 방법
Best Effort Packets를 활용하여 삭제된 우선순위 패킷
테스트 중에 우선순위 패킷이 최선형(best-effort) 패킷을 활용하여 삭제될 수 있는 것으로 확인되었습니다. 이는 수신 트래픽이 이그레스 인터페이스보다 빠른 속도로 인터페이스를 통해 도착하여 출력 방향으로 초과 서브스크립션을 일으킬 때 분명합니다. 예를 들어 5Gbps 트래픽이 수신되어 1Gbps 인터페이스를 통해 전달되어야 하는 경우.
이는 쉐이퍼로 구성된 이그레스 인터페이스에서도 마찬가지입니다. 이그레스 우선순위에서 인그레스 속도가 구성된 CIR보다 높은 경우, BE(Best Effort) 패킷의 이점에서도 패킷이 삭제될 수 있습니다.
참고: 우선 순위가 아닌 상위 항목에 우선 순위가 있는 하위 항목을 포함할 수 없는 ASIC 제한이 있습니다.
대기열이 신속 처리로 구성되어 있고 해당 상위 하위 채널이 구성되어 있지 않은 경우 하위 채널 수준의 중재 지연으로 인해 우선순위 대기열에 지터가 발생합니다.
솔루션
- EFP 구성
- 물리적 시스템에 쉐이퍼 적용
- EFP에 원하는 QoS 적용
- BDI 인터페이스에 IP 연결 적용
예:
configuration with issue
-------------------------
interface GigabitEthernet0/0/0
description this is my egress interface
service-policy output PM-1G-Out
configuration without issue
---------------------------
interface GigabitEthernet0/0/0
description this is egress interface
service-policy output POL-PRIO-MAIN-1G ==> shaper, useful to allow internal priority like BDF
service instance 200 ethernet
encapsulation dot1q 200
rewrite ingress tag pop 1 symmetric
service-policy output PM-1G-Out ==> the original QoS previously applied in the physical interface
bridge-domain 200
!
interface BDI200 ==> BDI must match the bridge-domain defined under the service-instance
description this is L3 egress
ip address 10.20.2.45 255.255.255.0
ip mtu 9000
==> no QoS applied under the BDI, all QoS are in the service-instance with a backpressure of the shaper in the physical
이 컨피그레이션에서는 모든 우선순위 패킷의 우선순위가 올바르게 지정되었지만 Best Effort 패킷의 이점에서는 삭제되지 않았으므로 올바르게 할당된 대역폭을 계산해야 합니다.
클래스에서 제공할 대역폭 퍼센트를 계산하는 방법
RSP2 플랫폼에서의 대역폭 할당은 또한 특정 동작을 가진다. 다른 플랫폼과 마찬가지로 QoS가 구성된 동안 여러 번 드롭이 발생합니다.
예를 들어, ASR1K 라우터에서 2Mbps의 쉐이퍼로 QoS를 구성하는 경우 2Mbps에 도달하기 전에 삭제되거나 클래스의 패킷을 대기시키지 않습니다. 그러나 이는 RSP2에서 발생합니다.
많은 경우, 드롭 다운이 이미 볼 때 제공 된 속도는 심지어 최대 허용 한도에 도달 하지 않습니다.
이는 RSP2에서 확인할 수 있는 일반적인 예이지만, 다른 플랫폼에 적용된 동일한 트래픽에 대한 동일한 값이 어떠한 드롭도 표시하지 않습니다.
ASR903#show ethernet service instance policy-map | s EXP-5
Class-map: EXP-5 (match-all)
58803127 packets, 5488269944 bytes
5 minute offered rate 279000 bps, drop rate 35000 bps
Match: mpls experimental topmost 5
Priority: 3% (297 kbps), burst bytes 37000, b/w exceed drops: 60373
Priority Level: 1
이 문제는 하드웨어에서 트래픽을 처리하는 방식 때문입니다. 기본적으로 RSP2 하드웨어 구현에서는 레이어 3뿐만 아니라 전체 프레임을 고려하지 않으며, 이는 모든 헤더가 고려됨을 의미한다.
RSP2 QoS 우선 순위 테스트
이 경우 CEM 트래픽은 우선순위 동작을 테스트하는 데 사용됩니다.
이는 best-effort의 이점을 활용하여 드롭(drop)을 방지하고 대역폭 할당을 조정하도록 우선순위를 구성하는 방법을 보여주는 예입니다.
설정
policy-map POL-PRIO-MAIN-1G
class class-default
shape average 8650000
!
policy-map PM-MPLS-1G-Out
class EXP-5
priority level 1 percent 4
class EXP-4
priority level 2 percent 24
class EXP-6
bandwidth percent 2
queue-limit 25000 us
class EXP-3
bandwidth percent 2
queue-limit 10000 us
class EXP-2
bandwidth percent 2
queue-limit 50000 us
class EXP-1
bandwidth percent 2
queue-limit 20000 us
class class-default
bandwidth percent 1
queue-limit 40000 us
!
interface GigabitEthernet0/0/0
no ip address
negotiation auto
service-policy output POL-PRIO-MAIN-1G
service instance 200 ethernet
encapsulation dot1q 200
rewrite ingress tag pop 1 symmetric
service-policy output PM-MPLS-1G-Out
bridge-domain 200
!
interface CEM0/1/8
no ip address
cem 0
service-policy input PM-CEM-in
payload-size 128
dejitter-buffer 20
!
interface CEM0/1/9
no ip address
cem 0
service-policy input PM-CEM-in
payload-size 64
dejitter-buffer 16
!
interface BDI200
description path for qos stress
ip address 10.20.2.45 255.255.255.0
ip mtu 9000
ip router isis
carrier-delay msec 0
cdp enable
mpls traffic-eng tunnels
bfd template BFD-1hop-5ms
isis circuit-type level-2-only
isis network point-to-point
isis metric 15 level-1
isis metric 15 level-2
ip rsvp bandwidth percent 90
ip rsvp signalling hello graceful-restart
트래픽
CEM0/1/8은 빨간색으로, CEM0/1/9는 녹색으로 2개의 트래픽 스트림이 생성됩니다.
다른 패킷 크기의 동작을 확인할 수 있습니다. CEM0/1/9는 128바이트로 구성된 CEM0/1/8보다 2배 많은 패킷을 전송합니다.
일반적으로 RP의 QoS 설정은 CEM의 페이로드만 고려하며, RSP2는 대신 전체 프레임을 고려합니다.
프레임 예
CEM에 구성된 원래 페이로드에 30바이트가 추가되어 있습니다. 이는 다음과 같이 설명할 수 있습니다.
Ethernet header = 14 Bytes
Dot1q header = 4 Bytes
Mpls header = 4 Bytes
PW Header = 4 Bytes
CEM trailer = 4 Bytes
Total = 30 Bytes
하드웨어에서 필요한 대역폭을 계산할 때 프레임을 고려해야 함을 다시 한번 상기시켜 줍니다.
CEM 0/1/8 125 Packet/sec, size 128bytes ==> 125*128*8 = 128000 bps
CEM 0/1/9 250 Packet/sec, size 64bytes ==> 250*64*8 = 128000 bps
on each frame we need an extra 30bytes ==> 375*30*8 = 90000 bps
Total = 346000 bps
bps를 8650000 구성된 인터페이스에서 쉐이퍼의 동작과 정확성을 확인하기 위해 우선순위 클래스에 대해 정확히 4%를 지정합니다.
계산: 346000.0000/8650000.0000 = 0.04 = 4%.
위 컨피그레이션에 표시되는 내용은 다음과 같습니다. 그 결과를 통해 구성과 계산이 정확함을 확인할 수 있습니다.
정책 출력:
ASR903#show ethernet service instance policy-map | s EXP-5
Class-map: EXP-5 (match-all)
3063745 packets, 285949512 bytes
5 minute offered rate 279000 bps, drop rate 0000 bps
Match: mpls experimental topmost 5
Priority: 4% (346 kbps), burst bytes 8650, b/w exceed drops: 0
Priority Level: 1
플랫폼에 독립적인 346Kbps는 L3보다 훨씬 더 많지만 정확히 L2 트래픽입니다.
트래픽 생성기로 테스트
정책이 적용되는 트래픽 생성기 —> TenGig 인터페이스 —> Asr9xx RSP2 —> 출력 1G입니다.
ASR903#show clock
22:54:40.976 CET Wed Nov 30 2022
ASR903#show ethernet service instance policy-map | inc Class-map:|drop rate
Class-map: EXP-5 (match-all)
5 minute offered rate 279000 bps, drop rate 0000 bps
Class-map: EXP-4 (match-all)
5 minute offered rate 0000 bps, drop rate 0000 bps
Class-map: EXP-6 (match-any)
5 minute offered rate 0000 bps, drop rate 0000 bps
Class-map: EXP-3 (match-any)
5 minute offered rate 0000 bps, drop rate 0000 bps
Class-map: EXP-2 (match-all)
5 minute offered rate 0000 bps, drop rate 0000 bps
Class-map: EXP-1 (match-any)
5 minute offered rate 0000 bps, drop rate 0000 bps
Class-map: class-default (match-any)
5 minute offered rate 762348000 bps, drop rate 756024000 bps
ASR903#show clock
17:41:16.110 CET Thu Dec 1 2022
ASR903#show ethernet service instance policy-map | inc Class-map:|drop rate
Class-map: EXP-5 (match-all)
5 minute offered rate 279000 bps, drop rate 0000 bps
Class-map: EXP-4 (match-all)
5 minute offered rate 0000 bps, drop rate 0000 bps
Class-map: EXP-6 (match-any)
5 minute offered rate 0000 bps, drop rate 0000 bps
Class-map: EXP-3 (match-any)
5 minute offered rate 0000 bps, drop rate 0000 bps
Class-map: EXP-2 (match-all)
5 minute offered rate 0000 bps, drop rate 0000 bps
Class-map: EXP-1 (match-any)
5 minute offered rate 0000 bps, drop rate 0000 bps
Class-map: class-default (match-any)
5 minute offered rate 762400000 bps, drop rate 756077000 bps
약 18시간 후에는 우선순위가 한 번 떨어지지 않았지만, shaper 제한의 CIR로 인해 class-default의 떨어짐 비율에서 볼 수 있듯이 많이 떨어졌습니다.
기본 queue-limit이 사용되었습니다. 대역폭을 조정하여 전체 l2 프레임 크기를 지원하려면 큐를 조정할 필요가 없습니다.
음성 판정법
CEM 트레일러의 4바이트를 생략하고 작은 삭제의 발생 여부를 확인하는 것이 정확한지 확인하기 위한 또 다른 테스트입니다.
ASR903#show ethernet service instance policy-map | s EXP-5
Class-map: EXP-5 (match-all)
352466 packets, 32896848 bytes
5 minute offered rate 279000 bps, drop rate 5000 bps
Match: mpls experimental topmost 5
Priority: 4% (334 kbps), burst bytes 8350, b/w exceed drops: 271
Priority Level: 1
보시다시피, 해당 프레임의 일부를 생략하면 드롭이 발생합니다.
결론
CEM 트래픽을 사용한 이 테스트에서는 전체 L2 프레임이 대역폭 계산을 위해 고려되어야 함을 확인합니다.
한 가지 방법은 대기열 제한을 늘리는 것이지만 L2 프레임을 올바르게 계산하면 플랫폼에서 사용하는 메모리 리소스에 대한 부담이 줄어듭니다.
가변 패킷 크기를 사용하는 전송과 같이 모든 시점에서 모든 트래픽을 예측할 수 있는 것은 아닙니다. 정확한 컨피그레이션을 유지하려면 평균 패킷 크기에 대한 이더넷, dot1q(s), MPLS 태그 헤더 및 패킷 속도를 고려해야 합니다.
RSP2의 ASIC를 통과하는 트래픽의 경우, 플랫폼 외부로 전송된 프레임에 포함된 모든 단일 바이트를 알고 있어야 합니다(CRC는 포함되지 않음).