출력 스케줄링은 초과 서브스크립션이 많을 경우 중요한 트래픽이 삭제되지 않도록 합니다.이 문서에서는 Catalyst OS(CatOS) 시스템 소프트웨어를 실행하는 Cisco Catalyst 6500/6000 Series 스위치의 출력 스케줄링과 관련된 모든 기술과 알고리즘에 대해 설명합니다.이 문서에서는 Catalyst 6500/6000 스위치의 대기열 기능 및 출력 예약의 여러 매개변수를 구성하는 방법에 대한 간략한 개요를 제공합니다.
참고: Catalyst 6500/6000에서 Cisco IOS® Software를 실행하는 경우 자세한 내용은 Cisco IOS System 소프트웨어를 실행하는 Catalyst 6500/6000 Series 스위치의 QoS 출력 스케줄링을 참조하십시오.
이 문서에 대한 특정 요건이 없습니다.
이 문서의 예는 Supervisor Engine 1A와 PFC(Policy Feature Card)가 있는 Catalyst 6000에서 작성되었습니다. 그러나 이 예제는 PFC2가 있는 Supervisor Engine 2 또는 PFC3이 있는 Supervisor Engine 720에도 유효합니다.
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다.이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다.현재 네트워크가 작동 중인 경우, 모든 명령어의 잠재적인 영향을 미리 숙지하시기 바랍니다.
문서 규칙에 대한 자세한 내용은 Cisco 기술 팁 표기 규칙을 참고하십시오.
출력 삭제는 혼잡한 인터페이스로 인해 발생합니다.이러한 문제의 일반적인 원인은 낮은 대역폭 링크로 전환되는 높은 대역폭 링크의 트래픽 또는 단일 아웃바운드 링크로 전환되는 여러 인바운드 링크의 트래픽일 수 있습니다.
예를 들어, 기가비트 인터페이스에서 많은 양의 버스트 트래픽이 들어오고 100Mbps 인터페이스로 전환되면 100Mbps 인터페이스에서 출력이 감소할 수 있습니다.수신 및 발신 대역폭 간의 속도 불일치로 인해 해당 인터페이스의 출력 대기열이 초과 트래픽에 의해 압도되기 때문입니다.발신 인터페이스의 트래픽 속도는 전송해야 하는 모든 패킷을 수락할 수 없습니다.
이 문제를 해결하는 궁극적인 방법은 회신 속도를 높이는 것입니다.그러나 회선 속도를 높이지 않으려는 경우 출력 삭제를 방지, 감소 또는 제어할 수 있는 방법이 있습니다.출력 삭제가 짧은 데이터 버스트의 결과인 경우에만 이 문제를 방지할 수 있습니다.높은 비율의 지속적인 플로우로 인해 출력 삭제가 발생하는 경우에는 이러한 삭제를 방지할 수 없습니다.그러나 이 문제를 제어할 수는 있습니다.
꼬리 드롭은 기본 혼잡 방지 메커니즘입니다.테일 드롭(tail drop)은 모든 트래픽을 동일하게 처리하며, 정체 기간 동안 큐가 채워지기 시작할 때 CoSs(Class of Service)를 구분하지 않습니다.출력 대기열이 가득 차고 tail 삭제가 적용되는 경우 혼잡이 제거되고 대기열이 더 이상 꽉 차지 않을 때까지 패킷이 삭제됩니다.tail drop은 혼잡 방지를 위한 가장 기본적인 유형이며 QoS 매개변수를 고려하지 않습니다.
Catalyst 6000은 특정 비율의 버퍼 채우기에 도달하면 특정 CoS가 포함된 모든 패킷을 삭제하는 고급 테일 삭제 혼잡 방지를 구현했습니다.가중치가 적용된 테일 드롭을 사용하여 임계값 집합을 정의하고 각 임계값에 CoS를 연결할 수 있습니다.이 섹션의 예에서는 4개의 가능한 임계값이 있습니다.각 임계값의 정의는 다음과 같습니다.
버퍼의 50%가 채워지면 임계값 1에 도달합니다.CoS 0 및 1이 이 임계값에 할당됩니다.
버퍼의 60%가 채워지면 임계값 2에 도달합니다.이 임계값에 CoS 2 및 3이 할당됩니다.
버퍼의 80%가 채워지면 임계값 3에 도달합니다.CoS 4 및 5가 이 임계값에 할당됩니다.
버퍼의 100%가 채워지면 임계값 4에 도달합니다.이 임계값에 CoS 6 및 7이 할당됩니다.
그림 1의 다이어그램에서 버퍼가 50% 채워진 경우 CoS가 0 또는 1인 모든 패킷이 삭제됩니다.버퍼가 60% 채워진 경우 CoS가 0, 1, 2 또는 3인 모든 패킷이 삭제됩니다.버퍼가 완전히 채워지면 CoS가 6 또는 7인 패킷이 삭제됩니다.
그림 1
참고: 버퍼 채우기가 특정 임계값 아래로 떨어지는 즉시 연결된 CoS가 포함된 패킷은 더 이상 삭제되지 않습니다.
WRED(Weighted Random Early Detection)는 버퍼가 정의된 충전 임계값에 도달할 때 특정 IP 우선 순위를 가진 패킷을 임의로 삭제하는 혼잡 회피 메커니즘입니다.WRED는 다음 두 가지 기능의 조합입니다.
꼬리 드롭
임의 조기 탐지(RED)
RED는 우선 순위 인식 또는 CoS 인식 기능이 아닙니다.RED는 버퍼에 대한 임계값이 채워질 때 단일 임계값 중 하나를 사용합니다.RED는 최대(최대) 임계값에 도달할 때까지 패킷(tail drop과 같이 일부 패킷은 아님)을 무작위로 삭제하기 시작합니다.최대 임계값에 도달하면 모든 패킷이 삭제됩니다.패킷이 삭제될 가능성은 버퍼 채우기가 임계값을 초과하여 증가하면서 선형으로 증가합니다.그림 2의 다이어그램은 패킷 삭제 가능성을 보여줍니다.
그림 2 - 패킷 폐기 확률
참고: 이 다이어그램의 표시 가능성은 빨간색으로 조정할 수 있습니다. 즉, 선형 드롭 확률의 기울기를 조정할 수 있습니다.
RED 및 WRED는 TCP 기반 트래픽에 매우 유용한 혼잡 방지 메커니즘입니다.다른 트래픽 유형에서는 RED가 그다지 효율적이지 않습니다.이는 RED가 TCP가 혼잡을 관리하기 위해 사용하는 윈도우 메커니즘을 활용하기 때문입니다.RED는 여러 TCP 세션이 동일한 라우터 포트를 통과할 때 라우터에서 발생하는 일반적인 혼잡을 방지합니다.이 메커니즘을 전역 네트워크 동기화라고 합니다.그림 3의 다이어그램은 RED가 부하에 매끄럽게하는 효과를 나타낸 것입니다.
그림 3 - 혼잡 방지를 위한 RED
RED가 혼잡을 줄이고 라우터를 통한 트래픽을 원활하게 하는 방법에 대한 자세한 내용은 Congestion Byption Overview(혼잡 방지 개요) 문서의 How the Router Interact with TCP(라우터가 TCP와 상호 작용하는 방식) 섹션을 참조하십시오.
WRED는 둘 다 몇 가지 최소(최소) 임계값을 정의하며, 최소 임계값에 도달하면 패킷이 무작위로 삭제된다는 점에서 RED와 유사합니다.또한 WRED는 특정 최대 임계값을 정의하고, 해당 최대 임계값에 도달하면 모든 패킷이 삭제됩니다.WRED는 CoS 인식(CoS aware)이며, 이는 하나 이상의 CoS 값이 각 최소 임계값/최대 임계값 쌍에 추가됨을 의미합니다.min-threshold를 초과하면 할당된 CoS와 함께 패킷이 임의로 삭제됩니다.대기열에 두 개의 임계값이 있는 이 예를 고려하십시오.
CoS 0 및 1은 최소 임계값 1과 최대 임계값 1에 할당됩니다. 최소 임계값 1은 버퍼 채우기의 50%로 설정되고 최대 임계값 1은 80%로 설정됩니다.
CoS 2와 3은 최소 임계값 2와 최대 임계값 2에 할당됩니다. 최소 임계값 2는 버퍼 채우기의 70%로 설정되고 최대 임계값 2는 100%로 설정됩니다.
버퍼가 최소 임계값 1(50%)을 초과하면 CoS 0 및 1의 패킷이 임의로 삭제됩니다.버퍼 사용률이 증가함에 따라 더 많은 패킷이 삭제됩니다.최소 임계값 2(70%)에 도달하면 CoS 2 및 3의 패킷이 무작위로 삭제되기 시작합니다.
참고: 이 단계에서 CoS 0 및 1이 포함된 패킷의 삭제 가능성은 CoS 2 또는 CoS 3이 포함된 패킷의 삭제 확률보다 훨씬 높습니다.
최대 임계값 2에 도달할 때마다 CoS 0 및 1의 패킷이 모두 삭제되고 CoS 2 및 3의 패킷은 계속 무작위로 삭제됩니다.마지막으로, 100%에 도달하면(최대 임계값 2) CoS 2 및 3의 모든 패킷이 삭제됩니다.
그림 4 및 그림 5의 다이어그램은 이러한 임계값의 예를 보여줍니다.
그림 4 - 최소 임계값 및 최대 임계값 세트 2개가 있는 WRED(서비스 2개)그림 5 - 2개의 서비스 세트가 있는 WRED, 두 최소 임계값은 0입니다.
WRED의 초기 CatOS 구현에서는 최대 임계값만 설정하고 최소 임계값은 0%로 하드 코딩되었습니다.그림 5의 다이어그램의 하단 부분에서 결과 동작이 강조 표시됩니다.
참고: 패킷의 삭제 가능성은 항상 최소 임계값을 초과하므로 항상 null이 아닙니다.이 동작은 소프트웨어 버전 6.2 이상에서 수정되었습니다.
WRR(Weighted round-robin)은 Catalyst 6000에서 출력 스케줄링하기 위한 또 다른 메커니즘입니다.WRR은 둘 이상의 큐 사이에서 작동합니다.WRR의 대기열은 라운드 로빈 방식으로 비우고 각 대기열의 가중치를 구성할 수 있습니다.기본적으로 포트는 Catalyst 6000에 2개의 WRR 대기열을 가집니다.기본값은 다음과 같습니다.
우선 순위가 높은 WRR 대기열을 70%까지 지원하려면
우선 순위가 낮은 WRR 대기열을 30% 활용하려면
그림 6의 다이어그램은 WRR 방식으로 제공되는 세 개의 대기열을 가진 WRR을 보여줍니다.우선 순위가 높은 대기열(빨간색 패킷)은 다른 두 대기열보다 많은 패킷을 전송합니다.
그림 6 - 출력 스케줄링:경고
참고: 6500 라인 카드 대부분은 대역폭당 WRR을 구현합니다.이러한 대역폭당 WRR 구현은 스케줄러가 패킷을 전송할 수 있도록 허용할 때마다 특정 바이트 수를 전송할 수 있음을 의미합니다.이 바이트 수는 둘 이상의 패킷을 나타낼 수 있습니다.예를 들어 한 번에 5120바이트를 전송하는 경우 총 4554바이트에 대해 3개의 1518바이트 패킷을 전송할 수 있습니다.초과된 바이트는 손실됩니다(5120 - 4554 = 566바이트). 따라서 일부 극한의 가중치(대기열 1의 경우 1%, 대기열 2의 경우 99% 등)로 정확히 구성된 가중치에 도달하지 못할 수 있습니다.이 경우 정확한 가중치에 도달하지 못할 경우 대규모 패킷의 경우가 많습니다.
6548-RJ-45와 같은 일부 신세대 라인 카드는 적자 DWRR(Weighted Round-Robin)을 구현하여 이러한 한계를 극복합니다.DWRR은 큐에서 전송하지만 우선순위가 낮은 대기열은 제외시키지 않습니다.DWRR은 전송 중인 우선순위가 낮은 대기열을 추적하여 다음 라운드에서 보완합니다.
엄격한 우선 순위 큐인 Catalyst 6000의 다른 유형의 큐는 항상 먼저 비워집니다.엄격한 우선순위 대기열에 패킷이 있는 즉시 패킷이 전송됩니다.
WRR 또는 WRED 대기열은 엄격한 우선순위 대기열을 비운 후에만 선택됩니다.각 패킷이 WRR 대기열 또는 WRED 대기열에서 전송된 후, 필요한 경우 엄격한 우선 순위 큐를 확인하고 비웁니다.
참고: 대기열 유형이 1p2q1t, 1p3q8t 및 1p7q8t인 모든 라인 카드는 DWRR을 사용합니다.다른 라인 카드는 표준 WRR을 사용합니다.
포트의 큐잉 기능에 대해 잘 모르는 경우 show port capabilities 명령을 실행할 수 있습니다.다음은 WS-X6408-GBIC 라인 카드에서 명령 출력입니다.
Model WS-X6408-GBIC Port 4/1 Type No GBIC Speed 1000 Duplex full Trunk encap type 802.1Q,ISL Trunk mode on,off,desirable,auto,nonegotiate Channe yes Broadcast suppression percentage(0-100) Flow control receive-(off,on,desired),send-(off,on,desired) Security yes MembershIP static,dynamic Fast start yes QOS scheduling rx-(1q4t),tx-(2q2t) CoS rewrite yes ToS rewrite DSCP UDLD yes SPAN source,destination COPS port group none
이 포트에는 2q2t라는 대기열 출력 유형이 있습니다.
Catalyst 6500/6000 스위치에는 여러 유형의 큐가 있습니다.새 라인 카드가 릴리스되면 이 섹션의 테이블이 불완전합니다.새 라인 카드는 새로운 대기열 조합을 만들 수 있습니다.Catalyst 6500/6000 스위치 모듈에 사용할 수 있는 모든 대기열에 대한 현재 설명은 Catalyst 6500 Series 소프트웨어 설명서의 CatOS 버전에 대한 QoS 구성 섹션을 참조하십시오.
참고: CMM(Cisco Communication Media Module)은 모든 QoS 기능을 지원하지 않습니다.지원되는 기능을 확인하려면 해당 소프트웨어 릴리스의 릴리스 정보를 확인하십시오.
다음 표에서는 포트 QoS 아키텍처의 표기법에 대해 설명합니다.
Tx1/Rx2 ide | 대기열 표기법 | 큐 수 | 우선 순위 대기열 | WRR 큐 수 | WRR 대기열에 대한 임계값 및 유형 |
---|---|---|---|---|---|
Tx | 2q2t | 2 | — | 2 | 구성 가능한 tail 삭제 2개 |
Tx | 1p2q2t | 3 | 1 | 2 | 구성 가능한 WRED 2개 |
Tx | 1p3q1t | 4 | 1 | 3 | 구성 가능한 WRED 1개 |
Tx | 1p2q1t | 3 | 1 | 2 | 구성 가능한 WRED 1개 |
Rx | 1q4t | 1 | — | 1 | 구성 가능한 tail 드롭 4개 |
Rx | 1p1q4t | 2 | 1 | 1 | 구성 가능한 tail 드롭 4개 |
Rx | 1p1q0t | 2 | 1 | 1 | 구성할 수 없음 |
Rx | 1p1q8t | 2 | 1 | 1 | 구성 가능한 WRED 8개 |
1 Tx = 전송
2 Rx = 수신
다음 표에는 인터페이스 또는 포트의 Rx 및 Tx 측에 있는 모든 모듈과 대기열 유형이 나열되어 있습니다.
모듈 | Rx 큐 | Tx 큐 |
---|---|---|
WS-X6K-S2-PFC2 | 1p1q4t | 1p2q2t |
WS-X6K-SUP1A-2GE | 1p1q4t | 1p2q2t |
WS-X6K-SUP1-2GE | 1q4t | 2q2t |
WS-X6501-10GEX4 | 1p1q8t | 1p2q1t |
WS-X6502-10GE | 1p1q8t | 1p2q1t |
WS-X6516-GBIC | 1p1q4t | 1p2q2t |
WS-X6516-GE-TX | 1p1q4t | 1p2q2t |
WS-X6416-GBIC | 1p1q4t | 1p2q2t |
WS-X6416-GE-MT | 1p1q4t | 1p2q2t |
WS-X6316-GE-TX | 1p1q4t | 1p2q2t |
WS-X6408A-GBIC | 1p1q4t | 1p2q2t |
WS-X6408-GBIC | 1q4t | 2q2t |
WS-X6524-100FX-MM | 1p1q0t | 1p3q1t |
WS-X6324-100FX-SM | 1q4t | 2q2t |
WS-X6324-100FX-MM | 1q4t | 2q2t |
WS-X6224-100FX-MT | 1q4t | 2q2t |
WS-X6548-RJ-21 | 1p1q0t | 1p3q1t |
WS-X6548-RJ-45 | 1p1q0t | 1p3q1t |
WS-X6348-RJ-21 | 1q4t | 2q2t |
WS-X6348-RJ21V | 1q4t | 2q2t |
WS-X6348-RJ-45 | 1q4t | 2q2t |
WS-X6348-RJ-45V | 1q4t | 2q2t |
WS-X6148-RJ-45V | 1q4t | 2q2t |
WS-X6148-RJ21V | 1q4t | 2q2t |
WS-X6248-RJ-45 | 1q4t | 2q2t |
WS-X6248A-TEL | 1q4t | 2q2t |
WS-X6248-TEL | 1q4t | 2q2t |
WS-X6024-10FL-MT | 1q4t | 2q2t |
Catalyst 6500/6000의 세 필드를 사용하여 QoS를 만듭니다.
IP 우선 순위 - IP 헤더에 있는 ToS(Type of Service) 필드의 처음 3비트
DSCP(Differentiated Services Code Point) - IP 헤더에 있는 ToS 필드의 처음 6비트입니다.
CoS - 레이어 2(L2) 레벨에서 사용되는 3비트
이 세 비트는 ISL(Inter-Switch Link) 헤더의 일부이거나 IEEE 802.1Q(dot1q) 태그 내부에 있습니다.태그가 지정되지 않은 이더넷 패킷 내부에 CoS가 없습니다.
데이터 버스에서 전송될 프레임을 전송하면 패킷의 CoS만 고려됩니다.그러면 패킷이 스케줄러를 통해 이동하며, 스케줄러는 패킷이 배치될 대기열을 선택합니다.따라서 출력 일정 및 이 문서에서 설명하는 모든 메커니즘은 CoS 인식만 합니다.
MSFC(Multilayer Switch Feature Card)가 있는 Catalyst 6500/6000은 내부 DSCP를 사용하여 패킷을 분류합니다.QoS가 활성화된 Catalyst 6500/6000은 PFC 레벨에서 전달 결정을 내릴 때 DSCP 값을 할당합니다.이 DSCP는 비 IP 패킷을 포함하는 모든 패킷에 할당되며 출력 예약을 활성화하기 위해 CoS에 매핑됩니다.Catalyst 6500/6000에서 DSCP에서 CoS 값으로 매핑을 구성할 수 있습니다. 기본값을 그대로 두면 DSCP에서 CoS를 파생시킬 수 있습니다.공식은 다음과 같습니다.
DSCP_value / 8
또한 패킷이 ISL 또는 dot1q(네이티브 VLAN 아님) 태그가 지정된 IP 패킷인 경우 DSCP 값은 나가는 패킷의 CoS에 매핑됩니다.DSCP 값은 IP 헤더의 ToS 필드 내에 기록됩니다.
그림 7의 다이어그램은 1p2q2t 큐를 보여줍니다.WRR 스케줄러를 사용하면 WRR 대기열이 비워집니다.또한 엄격한 우선 순위 대기열에 어떤 것이 있는지 확인하기 위해 WRR 대기열의 각 패킷 간에 검사하는 중재자가 있습니다.
그림 7
ToS 필드는 IP 헤더 및 802.1p/ISL CoS 필드에 재작성됩니다.
스케줄링 대기열 및 임계값은 구성 가능한 맵을 통해 CoS를 기준으로 선택됩니다.
각 대기열에는 구성 가능한 크기와 임계값이 있으며, 일부 대기열에는 WRED가 있습니다.
대기열에서 제거는 두 큐 사이에 WRR을 사용합니다.
발신 캡슐화는 dot1q, ISL 또는 none일 수 있습니다.
이 섹션에서는 Catalyst 6500/6000의 기본 QoS 컨피그레이션의 샘플 출력과 이러한 값의 의미와 조정 방법에 대한 정보를 제공합니다.
이 명령을 실행하면 QoS가 기본적으로 비활성화됩니다.
set qos disable
이 목록의 명령은 2q2t 포트의 각 CoS에 대한 기본 할당을 표시합니다.대기열 1에는 첫 번째 임계값에 CoS 0 및 1이 할당되어 있으며 CoS 2와 3이 두 번째 임계값에 할당됩니다.대기열 2에는 첫 번째 임계값에 CoS 4와 5가 할당되어 있으며 두 번째 임계값에 CoS 6과 7이 할당됩니다.
set qos map 2q2t tx 1 1 cos 0 set qos map 2q2t tx 1 1 cos 1 set qos map 2q2t tx 1 2 cos 2 set qos map 2q2t tx 1 2 cos 3 set qos map 2q2t tx 2 1 cos 4 set qos map 2q2t tx 2 1 cos 5 set qos map 2q2t tx 2 2 cos 6 set qos map 2q2t tx 2 2 cos 7
다음 명령은 각 대기열의 2q2t 포트에서 기본적으로 임계값 수준을 표시합니다.
set qos drop-threshold 2q2t tx queue 1 80 100 set qos drop-threshold 2q2t tx queue 2 80 100
각 WRR 대기열에 기본 가중치를 할당할 수 있습니다.대기열 1 및 대기열 2의 기본 가중치를 할당하려면 이 명령을 실행합니다.
참고: 낮은 우선순위 대기열은 시간의 5/260%에 제공되고 높은 우선순위 대기열은 그 시간의 255/260%에 제공됩니다.
set qos wrr 2q2t 5 255
총 버퍼 가용성은 두 개의 큐 간에 분할됩니다.우선 순위가 낮은 대기열은 사용 가능한 버퍼의 80%에 올바르게 할당됩니다. 이 대기열은 패킷이 버퍼링되고 일정 시간 동안 대기할 가능성이 가장 높은 대기열이기 때문입니다.가용성을 정의하려면 다음 명령을 실행합니다.
set qos txq-ratio 2q2t 80 20
이 컨피그레이션에서 1p2q2t 포트에 대한 유사한 설정을 볼 수 있습니다.
set qos map 1p2q2t tx 1 1 cos 0 set qos map 1p2q2t tx 1 1 cos 1 set qos map 1p2q2t tx 1 2 cos 2 set qos map 1p2q2t tx 1 2 cos 3 set qos map 1p2q2t tx 2 1 cos 4 set qos map 1p2q2t tx 3 1 cos 5 set qos map 1p2q2t tx 2 1 cos 6 set qos map 1p2q2t tx 2 2 cos 7 set qos wrr 1p2q2t 5 255 set qos txq-ratio 1p2q2t 70 15 15 set qos wred 1p2q2t tx queue 1 80 100 set qos wred 1p2q2t tx queue 2 80 100
참고: 기본적으로 CoS 5(음성 트래픽)는 엄격한 우선순위 대기열에 할당됩니다.
첫 번째 컨피그레이션 단계는 QoS를 활성화하는 것입니다.QoS는 기본적으로 비활성화되어 있습니다.QoS가 비활성화되면 CoS 매핑은 관련이 없습니다.FIFO로 사용되는 단일 대기열이 있으며 모든 패킷이 여기에 삭제됩니다.
bratan> (enable) set qos enable QoS is enabled bratan> (enable) show qos status QoS is enabled on this switch
CoS 값은 모든 대기열 유형의 대기열 또는 임계값에 할당되어야 합니다.2q2t 포트 유형에 대해 정의된 매핑은 1p2q2t 포트에 적용되지 않습니다.또한 2q2t에 대해 작성된 매핑은 2q2t 큐잉 메커니즘이 있는 모든 포트에 적용됩니다.다음 명령을 실행합니다.
set qos map queue_type tx Q_number threshold_number cos value
참고: 대기열은 항상 가능한 가장 낮은 우선 순위 대기열로 시작하고 사용 가능한 엄격한 우선 순위 대기열로 끝나야 합니다.예를 들면 다음과 같습니다.
대기열 1은 낮은 우선 순위 WRR 대기열입니다.
대기열 2는 우선 순위가 높은 WRR 대기열입니다.
대기열 3은 엄격한 우선 순위 대기열입니다.
모든 유형의 대기열에 대해 이 작업을 반복해야 합니다.그렇지 않으면 기본 CoS 할당을 유지합니다.다음은 1p2q2t의 예입니다.
set qos map 1p2q2t tx 1 1 cos 0 !--- This is the low-priority WRR queue threshold 1, CoS 0 and 1. set qos map 1p2q2t tx 1 1 cos 1 and 1 set qos map 1p2q2t tx 1 2 cos 2 !--- This is the low-priority WRR queue threshold 2, CoS 2 and 3. set qos map 1p2q2t tx 1 2 cos 3 and 3 set qos map 1p2q2t tx 2 1 cos 4 !--- This is the high-priority WRR queue threshold 1, CoS 4. set qos map 1p2q2t tx 3 1 cos 5 !--- This is the strict priority queue, CoS 5. set qos map 1p2q2t tx 2 1 cos 6 !--- This is the high-priority WRR queue threshold 2, CoS 6. set qos map 1p2q2t tx 2 2 cos 7 and 7
tamer (enable) set qos map 1p2q2t tx 1 1 cos 0 QoS tx priority queue and threshold mapped to cos successfully
두 WRR 대기열에 대한 WRR 가중치를 구성해야 합니다.다음 명령을 실행합니다.
set qos wrr Q_type weight_1 weight_2
Weight_1은 우선 순위가 낮은 WRR 대기열이어야 하는 대기열 1과 관련이 있습니다.Weight_1은 항상 weight_2보다 작아야 합니다. 가중치는 1에서 255 사이의 값을 사용할 수 있습니다. 다음 공식으로 퍼센트를 지정할 수 있습니다.
대기열 1:
weight_1 / (weight_1 + weight_2)
대기열 2:
weight_2 / (weight_1 + weight_2)
또한 다양한 유형의 대기열에 대한 가중치를 정의해야 합니다.무게는 같을 필요가 없다.예를 들어 대기열 1이 시간의 30%에 제공되고 대기열 2가 시간의 70%에 제공되는 2q2t의 경우 가중치를 정의하기 위해 이 명령을 실행할 수 있습니다.
set qos wrr 2q2t 30 70 !--- This ensures that the high-priority WRR queue is served 70 percent of the time !--- and that the low-priority WRR queue is served 30 percent of the time.
tamer (enable) set qos wrr 2q2t 30 70 QoS wrr ratio is set successfully
또한 전송 대기열 비율을 정의해야 합니다. 이는 버퍼가 서로 다른 대기열 간에 분할되는 방식을 가리킵니다.다음 명령을 실행합니다.
set qos txq-ratio port_type queuel_val queue2_val ... queueN_val
참고: 3개의 대기열(1p2q2t)이 있는 경우 하드웨어 이유로 높은 우선 순위 WRR 대기열과 엄격한 우선 순위 대기열을 같은 수준으로 설정해야 합니다.
set qos txq-ratio 1p2q2t 70 15 15 !--- This gives 70 percent of the buffer of all 1p2q2t ports to the low-priority WRR !--- queue and gives 15 percent to each of the other two queues. set qos txq-ratio 2q2t 80 20 !--- This gives 80 percent of the buffer to the low-priority queue, !--- and gives 20 percent of the buffer to the high-priority queue.
tamer (enable) set qos txq-ratio 1p2q2t 70 15 20 Queue ratio values must be in range of 1-99 and add up to 100 Example: set qos txq-ratio 2q2t 20 80 tamer (enable) set qos txq-ratio 1p2q2t 70 30 30 Queue ratio values must be in range of 1-99 and add up to 100 Example: set qos txq-ratio 2q2t 20 80 tamer (enable) set qos txq-ratio 1p2q2t 80 10 10 QoS txq-ratio is set successfully
이 콘솔 출력에 나와 있는 것처럼 큐 값의 합계는 100이어야 합니다. 이 큐에는 버퍼링이 가장 많이 필요하므로 우선 순위가 낮은 WRR 큐에 대한 버퍼의 가장 큰 부분을 남겨 두십시오.다른 대기열은 우선 순위가 더 높습니다.
마지막 단계는 WRED 대기열 또는 테일 드롭 대기열에 대한 임계값 레벨을 구성하는 것입니다.다음 명령을 실행합니다.
set qos wred port_type [tx] queue q_num thr1 thr2 ... thrn set qos drop-threshold port_type tx queue q_num thr1 ... thr2
set qos drop-threshold 2q2t tx queue 1 50 80 !--- For low-priority queues in the 2q2t port, the first threshold is defined at 50 !--- percent and the second threshold is defined at 80 percent of buffer filling. set qos drop-threshold 2q2t tx queue 2 40 80 !--- For high-priority queues in the 2q2t port, the first threshold is defined at 40 !--- percent and the second threshold is defined at 80 percent of buffer filling. set qos wred 1p2q2t tx queue 1 50 90 !--- The commands for the 1p2q2t port are identical. set qos wred 1p2q2t tx queue 2 40 80
tamer (enable) set qos drop-threshold 2q2t tx queue 1 50 80 Transmit drop thresholds for queue 1 set at 50% 80% tamer (enable) set qos drop-threshold 2q2t tx queue 2 40 80 Transmit drop thresholds for queue 2 set at 40% 80% tamer (enable) set qos wred 1p2q2t tx queue 1 50 90 WRED thresholds for queue 1 set to 50 and 90 on all WRED-capable 1p2q2t ports tamer (enable) set qos wred 1p2q2t tx queue 2 40 80 WRED thresholds for queue 2 set to 40 and 80 on all WRED-capable 1p2q2t ports
set qos wred 1p2q2t tx queue 2 40 80 명령은 임계값 매핑을 위해 CoS와 함께 작동합니다.예를 들어, 아래 목록에서 명령을 실행할 때 CoS 0, 1, 2 및 3이 포함된 패킷이 전송 방향의 1p2q2t 포트에서 첫 번째 대기열(낮은 WRR 대기열)에 전송되도록 해야 합니다. 해당 대기열의 버퍼가 50%이면 WRED는 CoS 0 및 1의 패킷을 삭제하기 시작합니다. CoS 2 및 3의 패킷은 대기열의 버퍼가 90%인 경우에만 삭제됩니다.
set qos map 1p2q2t tx 1 1 cos 0 set qos map 1p2q2t tx 1 1 cos 1 set qos map 1p2q2t tx 1 2 cos 2 set qos map 1p2q2t tx 1 2 cos 3 set qos wred 1p2q2t tx queue 1 50 90
포트의 출력 스케줄링에 대한 현재 런타임 컨피그레이션을 확인하기 위해 사용할 간단한 명령은 show qos info runtime mod/port입니다.이 명령은 다음 정보를 표시합니다.
포트의 대기 유형
다른 대기열 및 임계값에 CoS 매핑
버퍼 공유
WRR 가중치
이 예에서 값은 대기열 1의 경우 20% WRR, 대기열 2의 경우 80% WRR입니다.
tamer (enable) show qos info runtime 1/1 Run time setting of QoS: QoS is enabled Policy Source of port 1/1: Local Tx port type of port 1/1 : 1p2q2t Rx port type of port 1/1 : 1p1q4t Interface type: port-based ACL attached: The qos trust type is set to untrusted Default CoS = 0 Queue and Threshold Mapping for 1p2q2t (tx): Queue Threshold CoS ----- --------- ------- 1 1 0 1 1 2 2 3 2 1 4 6 2 2 7 3 1 5 Queue and Threshold Mapping for 1p1q4t (rx): All packets are mapped to a single queue Rx drop thresholds: Rx drop thresholds are disabled Tx drop thresholds: Tx drop-thresholds feature is not supported for this port type Tx WRED thresholds: Queue # Thresholds - percentage (* abs values) ------- ------------------------------------------ 1 80% (249088 bytes) 100% (311168 bytes) 2 80% (52480 bytes) 100% (61440 bytes) Queue Sizes: Queue # Sizes - percentage (* abs values) ------- ------------------------------------- 1 70% (311296 bytes) 2 15% (65536 bytes) 3 15% (65536 bytes) WRR Configuration of ports with speed 1000Mbps: Queue # Ratios (* abs values) ------- ------------------------------------- 1 20 (5120 bytes) 2 80 (20480 bytes) (*) Runtime information may differ from user configured setting due to hardware granularity. tamer (enable)
다음 예에서는 WRR 가중치가 기본값인 1이 아닙니다. 가중치는 큐 1의 경우 20, 큐 2의 경우 80으로 설정되었습니다. 이 예에서는 트래픽 생성기를 사용하여 2Gb 트래픽을 Catalyst 6000으로 전송합니다.이 2Gb 트래픽은 포트 1/1을 통해 종료되어야 합니다. 포트 1/1이 오버서브스크립션되므로 많은 패킷이 삭제됩니다(1Gbps). show mac 명령은 많은 출력 드롭이 있음을 보여줍니다.
tamer (enable) show mac 1/1 Port Rcv-Unicast Rcv-Multicast Rcv-Broadcast -------- -------------------- -------------------- -------------------- 1/1 0 1239 0 Port Xmit-Unicast Xmit-Multicast Xmit-Broadcast -------- -------------------- -------------------- -------------------- 1/1 73193601 421 0 Port Rcv-Octet Xmit-Octet -------- -------------------- -------------------- 1/1 761993 100650803690 MAC Dely-Exced MTU-Exced In-Discard Out-Discard -------- -------------- ---------------- --------------- ----------------- 1/1 0 - 0 120065264 Last-Time-Cleared -------------------------- Fri Jan 12 2001, 17:37:43
삭제된 패킷을 고려하십시오.제안된 트래픽 패턴은 다음과 같이 분할됩니다.
IP 우선 순위가 0인 1Gb 트래픽
250Mb의 트래픽(IP 우선 순위 4)
250Mb의 트래픽(IP 우선 순위 5)
250Mb의 트래픽(IP 우선 순위 6)
250Mb의 트래픽(IP 우선 순위 7)
CoS 매핑에 따르면 이 트래픽은 다음과 같이 전송됩니다.
대기열 1 임계값 1에 대한 1Gb 트래픽
대기열 1 임계값 2에 대한 0MB 트래픽
대기열 2 임계값 1에 대한 500Mb 트래픽
대기열 2 임계값 2에 250Mb 트래픽
대기열 3에 250Mb 트래픽(엄격한 우선 순위 대기열)
스위치에서 수신 트래픽을 신뢰해야 수신 IP 우선 순위가 스위치에 유지되며 출력 스케줄링을 위해 CoS 값에 매핑됩니다.
참고: CoS 매핑에 대한 기본 IP 우선 순위는 IP 우선 순위는 CoS와 같습니다.
삭제된 패킷과 대략적인 비율을 확인하려면 show qos stat 1/1 명령을 실행합니다.
이 시점에서는 큐 3(CoS 5)에서 삭제된 패킷이 없습니다.
삭제된 패킷의 91.85%는 큐 1의 CoS 0 패킷입니다.
삭제된 패킷의 8%는 CoS 4 및 6(대기열 2, 임계값 1)입니다.
삭제된 패킷의 0.15%는 대기열 2, 임계값 2의 CoS 7입니다.
이 출력은 명령 사용을 보여줍니다.
tamer (enable) show qos stat 1/1 Tx port type of port 1/1 : 1p2q2t Q3T1 statistics are covered by Q2T2. Q # Threshold #:Packets dropped --- ------------------------------- 1 1:110249298 pkts, 2:0 pkts 2 1:9752805 pkts, 2:297134 pkts 3 1:0 pkts Rx port type of port 1/1 : 1p1q4t Rx drop threshold counters are disabled for untrusted ports Q # Threshold #:Packets dropped --- --------------------------------- 1 1:0 pkts, 2:0 pkts, 3:0 pkts, 4:0 pkts 2 1:0 pkts
카운터가 지워진 후 WRR 가중치를 다시 기본값으로 변경하면 이전에 나타난 8% 대신 삭제된 패킷의 1%만 대기열 2에서 발생합니다.
참고: 기본값은 대기열 1의 경우 5이고 대기열 2의 경우 255입니다.
tamer (enable) show qos stat 1/1 TX port type of port 1/1 : 1p2q2t Q3T1 statistics are covered by Q2T2 Q # Threshold #:Packets dropped --- ---------------------------------- 1 1:2733942 pkts, 2:0 pkts 2 1:28890 pkts, 2:6503 pkts 3 1:0 pkts Rx port type of port 1/1 : 1p1q4t Rx drop threshold counters are disabled for untrusted ports Q # Threshold #:Packets dropped --- ------------------------------------ 1 1:0 pkts, 2:0 pkts, 3:0 pkts, 4:0 pkts 2 1:0 pkts
Monitor Output Scheduling and Verify the Configuration 섹션의 예는 출력 포트의 오버서브스크립션 시 VoIP 또는 미션 크리티컬 트래픽이 삭제되는 것을 방지하는 출력 스케줄링 구현의 이점을 보여줍니다.초과 서브스크립션은 일반 네트워크, 특히 기가비트 링크에서 드물게 발생합니다.일반적으로 초과 서브스크립션은 피크 트래픽 시간 또는 매우 짧은 시간 내에 트래픽이 폭주하는 동안에만 발생합니다.
오버서브스크립션 없이 QoS가 엔드 투 엔드 방식으로 구현되는 네트워크에서는 출력 스케줄링이 매우 도움이 될 수 있습니다.출력 스케줄링은 지연 및 지터를 줄이는 데 도움이 됩니다.이 섹션에서는 출력 스케줄링을 통해 지연 및 지터를 줄이는 방법에 대한 예를 제공합니다.
전송을 기다리는 동안 각 스위치의 버퍼에서 "손실" 시간이 발생하여 패킷의 지연이 증가합니다.예를 들어 CoS가 5인 작은 음성 패킷은 대규모 백업 또는 파일 전송 중에 포트에서 전송됩니다.출력 포트에 대한 QoS가 없는 경우 1500바이트 패킷이 큰 10개 이후에 스몰 음성 패킷이 대기열에 있다고 가정할 경우 10개의 큰 패킷을 전송하는 데 필요한 기가비트 속도 시간을 쉽게 계산할 수 있습니다.
(10 × 1500 × 8) = 120,000 bits that are transmitted in 120 microseconds
이 패킷이 네트워크를 통과하는 동안 8~9개의 스위치를 통과해야 하는 경우 약 1ms의 지연이 발생할 수 있습니다.이 금액은 네트워크에서 교차하는 스위치의 출력 대기열에서 지연되는 경우에만 계산됩니다.
참고: 10Mbps 인터페이스에서 동일한 10개의 대용량 패킷을 대기시켜야 하는 경우(예: IP 전화와 PC가 연결된 경우), 추가된 지연은 다음과 같습니다.
(10 × 1500 × 8) = 120,000 bits that are transmitted in 12 ms
출력 스케줄링 구현은 CoS가 5인 음성 패킷이 엄격한 우선순위 대기열에 배치되도록 합니다.이러한 배치를 통해 CoS가 5보다 작은 패킷보다 먼저 이러한 패킷을 전송하므로 지연이 줄어듭니다.
출력 스케줄링 구현의 또 다른 중요한 이점은 지터를 줄이는 것입니다.지터는 동일한 흐름 내의 패킷에 대해 관찰되는 지연 변수입니다.그림 8의 다이어그램은 출력 스케줄링이 지터를 줄일 수 있는 방법의 예를 보여줍니다.
그림 8
이 시나리오에서는 단일 출력 포트가 전송해야 하는 2개의 스트림이 있습니다.
10Mbps 이더넷 포트에서 수신되는 음성 스트림 1개
1Gbps 이더넷 업링크에서 들어오는 FTP 스트림 1개
두 스트림 모두 동일한 출력 포트를 통해 스위치를 종료합니다.이 예에서는 출력 예약을 사용하지 않고 발생할 수 있는 상황을 보여 줍니다.모든 대용량 데이터 패킷은 두 음성 패킷 간에 인터리빙될 수 있으며, 이 경우 동일한 스트림에서 음성 패킷의 수신에 지터가 생성됩니다.스위치가 대용량 데이터 패킷을 전송하면 패킷 n과 패킷 n+1 수신 사이에 더 큰 지연이 발생합니다.그러나 n+1에서 n+2 사이의 지연은 무시해도 됩니다.이로 인해 음성 트래픽 스트림에서 잡음이 발생합니다.엄격한 우선 순위 큐를 사용하면 이 문제를 쉽게 방지할 수 있습니다.음성 패킷의 CoS 값이 엄격한 우선순위 대기열에 매핑되는지 확인합니다.