소개
이 문서에서는 Cisco 라우터의 QoS(Quality of Service) 설정에서 DSCP(Differentiated Services Code Point) 값을 설정하는 방법에 대해 설명합니다.
사전 요구 사항
요구 사항
IP 헤더 및 Cisco IOS® CLI의 필드에 대해 잘 알고 있어야 합니다.
사용되는 구성 요소
이 문서는 특정 소프트웨어 및 하드웨어 버전으로 한정되지 않습니다.
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우 모든 명령의 잠재적인 영향을 미리 숙지하시기 바랍니다.
표기 규칙
문서 규칙에 대한 자세한 내용은 Cisco 기술 팁 표기 규칙을 참조하십시오.
배경 정보
DiffServ(Differentiated Services)는 트래픽이 ToS(Type of Services) 필드 기반의 상대적 우선순위를 갖는 중간 시스템에서 처리되는 새로운 모델입니다. RFC 2474 및 RFC 2475에서 정의되는 DiffServ 표준은 원래 사양을 대체하여 RFC 791에 설명된 패킷 우선순위를 정의합니다. DiffServ는 IP 패킷의 비트를 재할당하여 우선순위를 표시할 때 정의할 수 있는 우선순위 레벨의 수를 늘립니다.
DiffServ 아키텍처는 DiffServ(DS) 필드를 정의합니다. 이 필드는 IPv4의 ToS 필드를 대체하여 패킷 분류 및 트래픽 조절 기능(예: 미터링, 마킹, 셰이핑, 폴리싱)에 대한 PHB(per-hop behavior) 결정을 내립니다.
RFC는 PHB를 구현하는 방법을 지시하지 않습니다. 이는 공급업체의 책임입니다. Cisco는 패킷의 IP 헤더에 있는 IP 우선순위 또는 DSCP 값을 기반으로 PHB를 적용할 수 있는 대기열 처리 기술을 구현합니다. DSCP 또는 IP 우선순위에 따라 특정 서비스 클래스에 트래픽을 배치할 수 있습니다. 서비스 클래스 내의 패킷은 동일한 방식으로 처리됩니다.
Differentiated Services Code Point
DiffServ 필드의 최상위 6비트를 DSCP라고 합니다. DiffServ 필드의 마지막 CU(Currently Unused) 비트 2개가 DiffServ 필드 아키텍처 내에서 정의되지 않았습니다. 이제 ECN(Explicit Congestion Notification) 비트로 사용됩니다. 네트워크 엣지의 라우터는 패킷을 분류하고 Diffserv 네트워크의 IP 우선순위 또는 DSCP 값을 표시합니다. Diffserv를 지원하는 코어의 다른 네트워크 디바이스는 IP 헤더의 DSCP 값을 사용하여 패킷에 대한 PHB 동작을 선택하고 적절한 QoS 처리를 제공합니다.
이 섹션의 다이어그램은 RFC 791에 정의된 ToS 바이트와 DiffServ 필드를 비교한 것입니다.
ToS 바이트
P2 |
P1 |
P0 |
T2. |
T1 |
T0 |
CU1 |
CU0 |
DiffServ 필드
DS5 |
DS4 |
DS3 |
DS2 |
DS1 |
DS0 |
ECN |
ECN |
-
DSCP - 6비트(DS5~DS0)
-
ECN - 2비트
패킷의 표준화된 DiffServ 필드는 각 네트워크 노드에서 패킷이 특정 전달 처리 또는 PHB를 수신하도록 값으로 표시됩니다.
기본 DSCP는 000 000입니다. 클래스 선택기 DSCP는 이전 버전의 IP 우선 순위와 호환되는 값입니다. IP 우선 순위와 DSCP 간에 변환할 때 가장 중요한 세 비트를 일치시킵니다. 요약하면,
IP Prec 5 (101) maps to IP DSCP 101 000
ToS 바이트
DiffServ 필드
DiffServ 표준은 우선순위 설정을 위해 동일한 우선순위 비트(가장 중요한 비트, DS5, DS4 및 DS3)를 사용하지만, 정의를 더욱 명확하게 합니다. 이는 DSCP에서 다음 세 비트를 사용하여 더 세분화된 정보를 제공합니다. DiffServ는 우선순위 레벨(DSCP의 최상위 비트 3개로 정의됨)을 다음 범주로 재구성하고 이름을 변경합니다(레벨에 대해서는 이 문서에서 자세히 설명함).
우선순위 레벨 |
설명 |
7 |
동일하게 유지(링크 레이어 및 라우팅 프로토콜 활성 상태 유지) |
6 |
동일하게 유지(IP 라우팅 프로토콜에 사용됨) |
5 |
EF(Express Forwarding) |
4 |
Class 4 |
3 |
Class 3 |
2 |
Class 2 |
1 |
Class 1 |
0 |
최선형 |
이 시스템에서는 디바이스가 먼저 클래스별로 우선순위를 지정합니다. 그런 다음 동일한 클래스 트래픽을 차별화하고 우선 순위를 지정하며 삭제 확률을 고려합니다.
DiffServ 표준에서는 "낮음", "중간" 및 "높음" 삭제 가능성의 정확한 정의를 지정하지 않습니다. 모든 디바이스가 DiffServ(DS2 및 DS1) 설정을 인식하는 것은 아닙니다. 이러한 설정이 인식되더라도 각 네트워크 노드에서 동일한 PHB 포워딩 작업을 트리거할 필요는 없습니다. 각 노드는 설정된 방식에 따라 고유한 응답을 구현합니다.
Assured Forwarding
RFC 2597은 AF(Assured Forwarding) PHB를 정의하며, 공급자 DS 도메인이 클라이언트 DS 도메인에서 수신한 IP 패킷에 대해 다른 수준의 포워딩 보증을 제공하는 수단이라고 설명합니다. Assured Forwarding PHB는 AF 클래스에 대해 일정량의 대역폭을 보장하며, 가능한 경우 추가 대역폭에 대한 액세스를 허용합니다. AF1x부터 AF4x까지 4개의 AF 클래스가 있습니다. 각 클래스에는 3개의 삭제 확률이 있습니다. 지정된 네트워크 정책에 따라 필요한 처리량, 지연, 지터, 손실 또는 네트워크 서비스 액세스 우선 순위에 따라 PHB에 대해 패킷을 선택할 수 있습니다.
클래스 1~4를 AF 클래스라고 합니다. 이 표에서는 AF 클래스를 확률로 지정하는 DSCP 코드를 보여줍니다. 비트 DS5, DS4 및 DS3은 클래스를 정의하고, 비트 DS2 및 DS1은 삭제 확률을 지정합니다. 비트 DS0은 항상 0입니다.
삭제 |
Class 1 |
Class 2 |
Class 3 |
Class 4 |
낮음 |
001010 AF11 DSCP 10 |
010010 AF21 DSCP 18 |
011010 AF31 DSCP 26 |
100010 AF41 DSCP 34 |
중간 |
001100 AF12 DSCP 12 |
010100 AF 22 DSCP 20 |
011100 AF32 DSCP 28 |
100100 AF42 DSCP 36 |
높음 |
001110 AF13 DSCP 14 |
010110 AF23 DSCP 22 |
011110 AF33 DSCP 30 |
100110 AF43 DSCP 38 |
Expedited Forwarding
RFC 2598은 EF(Expedited Forwarding) PHB를 정의합니다. "EF PHB는 DS(Diffserv) 도메인을 통해 저손실, 저지연, 저지터, 보장된 대역폭, 엔드 투 엔드 서비스를 구축하는 데 사용할 수 있습니다. 이러한 서비스는 포인트-투-포인트 연결 또는 "가상 임대 회선"과 같은 엔드포인트에 나타납니다. 이 서비스는 Premium 서비스로도 설명되었습니다. 코드포인트 101110은 EF PHB에 권장되며, DSCP 값 46에 해당합니다.
이러한 PHB를 구현하려면 벤더별 메커니즘이 설정되어야 합니다. EF PHB에 대한 자세한 내용은 RFC 2598을 참조하십시오.
DSCP 필드 사용
다음과 같은 3가지 방법으로 DSCP 필드를 사용할 수 있습니다.
-
분류자 - 패킷 헤더 일부의 내용을 기반으로 패킷을 선택하고 DSCP 값으로 정의된 서비스 특성을 기반으로 PHB를 적용합니다.
-
마커 - 트래픽 프로필을 기반으로 DSCP 필드를 설정합니다.
-
Metering
- 쉐이퍼 또는 드로퍼 기능으로 트래픽 프로필에 대한 규정 준수를 확인합니다.
Cisco IOS Software는 WFQ(Weighted Fair Queuing), WRED(Weighted Random Early Detection) 또는 WRR(Weighted Round Robin)에서 대기된 트래픽이 있을 경우 ToS 필드의 우선 순위 비트를 고려합니다. 우선순위 비트는 정책 라우팅, PQ(Priority Queuing), CQ(Custom Queuing) 또는 CBWFQ(Class Based Weighted Fair Queuing)가 설정된 경우 고려되지 않습니다 자세한 내용은 CBWFQ(클래스 기반 가중 공정 대기열)를 참조하십시오.
패킷 분류
패킷 분류에는 트래픽 설명자를 사용하여 특정 그룹 내의 패킷을 분류하고 네트워크에서 관리하는 QoS에 대해 패킷에 액세스할 수 있도록 하는 작업이 포함됩니다. 패킷 분류를 사용할 때 네트워크 트래픽을 여러 우선순위 레벨 또는 CoS(Class of Service)로 분할할 수 있습니다.
액세스 목록(ACL) 또는 모듈형 QoS CLI의 match 명령을 사용하여 DSCP 값을 일치시킬 수 있습니다. Cisco IOS Software 릴리스 12.1(5)T에는 match 명령에서 DSCP 값을 선택하는 기능이 도입되었습니다.
Router1(config)#access-list 101 permit ip any any ?
dscp Match packets with given dscp value
fragments Check non-initial fragments
log Log matches against this entry
log-input Log matches against this entry, including input interface
precedence Match packets with given precedence value
time-range Specify a time-range
tos Match packets with given TOS value
class map 명령에서 ip dscp 값을 지정하면 결과는 다음과 같습니다.
Router(config)#class-map match-all VOIP
1751-uut1(config-cmap)#match ip dscp ?
<0-63> Differentiated services codepoint value
af11 Match packets with AF11 dscp (001010)
af12 Match packets with AF12 dscp (001100)
af13 Match packets with AF13 dscp (001110)
af21 Match packets with AF21 dscp (010010)
af22 Match packets with AF22 dscp (010100)
af23 Match packets with AF23 dscp (010110)
af31 Match packets with AF31 dscp (011010)
af32 Match packets with AF32 dscp (011100)
af33 Match packets with AF33 dscp (011110)
af41 Match packets with AF41 dscp (100010)
af42 Match packets with AF42 dscp (100100)
af43 Match packets with AF43 dscp (100110)
cs1 Match packets with CS1(precedence 1) dscp (001000)
cs2 Match packets with CS2(precedence 2) dscp (010000)
cs3 Match packets with CS3(precedence 3) dscp (011000)
cs4 Match packets with CS4(precedence 4) dscp (100000)
cs5 Match packets with CS5(precedence 5) dscp (101000)
cs6 Match packets with CS6(precedence 6) dscp (110000)
cs7 Match packets with CS7(precedence 7) dscp (111000)
default Match packets with default dscp (000000)
ef Match packets with EF dscp (101110)
Router1(config-cmap)#match ip dscp af31
마킹
DSCP는 코어 장치가 패킷 분류 섹션에 표시된 대로 패킷을 쉽게 분류하고 적절한 서비스 수준을 제공할 수 있도록 네트워크 에지에서 원하는 값으로 설정할 수 있습니다.클래스 기반 패킷 마킹을 사용하여 다음과 같이 DSCP 값을 설정할 수 있습니다.
policy-map pack-multimedia-5M
!--- Creates a policy map named pack-multimedia-5M.
class management
!--- Specifies the policy to be created for the !--- traffic classified by class management.
bandwidth 50
set ip dscp 8
!--- Sets the DSCP value of the packets matching !--- class management to 8.
class C1
priority 1248
set ip dscp 40
class voice-signalling
bandwidth 120
set ip dscp 24
커밋된 액세스 속도 또는 클래스 기반 정책 사용
Committed Access Rate 및 클래스 기반 폴리싱은 합의된 서비스 매개변수를 준수하도록 트래픽 흐름을 조절하는 데 사용되는 트래픽 조절 메커니즘입니다. DSCP와 함께 이러한 메커니즘은 이 섹션에 나와 있는 것처럼 DSCP 값을 적절하게 수정할 때 트래픽에 부합하지 않고 부합하지 않는 다양한 서비스 레벨을 제공하는 데 사용할 수 있습니다.
자세한 내용은 Configuring
트래픽 Policing
및 클래스 기반 정책 및 커밋된 액세스 속도 비교를 참조하십시오.
interface Serial1/0.1 point-to-point
bandwidth 5000
ip address 192.168.126.134 255.255.255.252
rate-limit output access-group 150 8000 1500 2000 conform-action
set-dscp-transmit 10 exceed-action set-dscp-transmit 20
!--- For traffic matching access list 150, sets the DSCP value of conforming traffic !--– to 10 and that of non-conforming traffic to 20.
rate-limit output access-group 152 8000 1500 2000 conform-action
set-dscp-transmit 15 exceed-action set-dscp-transmit 25
rate-limit output access-group 154 8000 1500 2000 conform-action
set-dscp-transmit 18 exceed-action set-dscp-transmit 28
frame-relay interface-dlci 17
class shaper-multimedia-5M
DSCP 준수 WRED
WRED(Weighted Random Early Detection)는 인터페이스가 혼잡해지기 시작할 때 우선순위가 낮은 트래픽을 선택적으로 폐기합니다. WRED는 서로 다른 CoS에 대해 차별화된 성능 특성을 제공할 수 있습니다. 이 차별화 서비스는 다음과 같이 DSCP를 기반으로 할 수 있습니다.
class C2
bandwidth 1750
random-detect dscp-based
!--- Enable dscp-based WRED as drop policy.
random-detect exponential-weighting-constant 7
!--- Specifies the exponential weight factor for the !--- average queue size calculation for the queue.
random-detect dscp 16 48 145 10
!--- Specifies the minimum and maximum queue thresholds !--- for each DSCP value.
random-detect dscp 32 145 435 10
자세한 내용은 혼잡 방지 개요의 DiffServ 준수 WRED 섹션을 참조하십시오.
Cisco IOS 소프트웨어12.2 릴리스 트레인의 알려진 문제
등록된 Cisco 클라이언트에서만 버그 툴 및 정보에 액세스할 수 있습니다.
버그 검색 도구를 사용하여 이러한 버그를 검색할 수 있습니다.
-
Cisco 버그 ID CSCdt63295 — Cisco IOS Software Release 12.2.2T에서 다이얼 피어(0으로 설정)의 새 DSCP 마킹 명령으로 ToS 바이트를 설정하지 못하면 패킷을 표시할 수 없으며 0으로 설정된 ToS로 유지할 수 있습니다.
-
Cisco 버그 ID CSCdt74738 — Cisco 7200 라우터의 set ip dscp 명령 및 멀티캐스트 패킷의 하위 엔드 플랫폼에 대한 지원은 Cisco IOS Software 릴리스 12.2(3.6) 이상에서 사용할 수 있어야 합니다.
관련 정보