목차

소개

사전 요구 사항

요구 사항

사용되는 구성 요소

표기 규칙

VoIP over PPP 링크에 대한 QoS 설계 지침

음성 트래픽의 엄격한 우선순위(IP RTP 우선순위 또는 LLQ)

LLQ 컨피그레이션 지침

IP RTP 우선순위 컨피그레이션 지침

LFI(Link Fragmentation and Interleaving):멀티링크 PPP

압축된 실시간 프로토콜(cRTP)

기타 대역폭 절감 팁

네트워크 다이어그램

구성

확인 및 문제 해결 명령

샘플 show 및 debug 출력

관련 정보

소개

이 샘플 컨피그레이션에서는 낮은 대역폭 임대 회선 컨피그레이션에 대해 PPP(Point to Point Protocol)가 포함된 VoIP를 연구합니다.이 문서에는 구성된 기능, 설계 지침, 기본 확인 및 문제 해결 전략에 대한 배경 기술 정보가 포함되어 있습니다.

참고: 아래 컨피그레이션에서는 두 라우터가 임대 회선을 통해 다시 연결됩니다.그러나 대부분의 토폴로지에서는 음성 지원 라우터가 어디에나 존재할 수 있습니다.일반적으로 음성 라우터는 WAN에 연결된 다른 라우터에 LAN 연결을 사용합니다(즉, PPP 임대 회선). 음성 라우터가 임대 회선을 통해 PPP를 통해 직접 연결되지 않은 경우, 아래 컨피그레이션에 표시된 것처럼 음성 라우터가 아니라 WAN에 연결된 라우터에서 모든 WAN 컨피그레이션 명령을 구성해야 하기 때문에 중요합니다.

사전 요구 사항

요구 사항

이 문서에 대한 특정 요건이 없습니다.

사용되는 구성 요소

이 문서에 제시된 컨피그레이션은 다음 장비와 함께 테스트되었습니다.

- Cisco IOS® Software 릴리스 12.2.6a(IP Plus)가 포함된 Cisco 3640 2개

- IP RTP Priority는 Cisco IOS Release 12.0(5)T에 도입되었습니다.

- LLQ는 Cisco IOS Release 12.0(7)T에 도입되었습니다.

- LFI는 Cisco IOS Release 11.3에서 도입되었습니다.

- 12.0.5T를 초과하는 Cisco IOS 릴리스에는 cRTP의 성능이 크게 향상되었습니다.

표기 규칙

문서 규칙에 대한 자세한 내용은 Cisco 기술 팁 표기 규칙을 참조하십시오.

VoIP over PPP 링크에 대한 QoS 설계 지침

이 섹션에서는 PPP를 통한 VoIP 임대 회선(저속 링크에 중점을 두고)을 구성하는 설계 지침을 제공합니다. 우수한 음성 품질을 위한 두 가지 기본 요구 사항이 있습니다.

- 최소 엔드 투 엔드 지연 및 지터 회피(지연 변화).

- 링크 대역폭 요구 사항을 최적화하고 올바르게 엔지니어링합니다.

위의 요구 사항을 보장하려면 몇 가지 중요한 지침을 따라야 합니다.

지침

설명

음성 트래픽의 엄격한 우선순위(IP RTP 우선순위 또는 LLQ)

음성 트래픽에 엄격한 우선 순위를 제공하는 방법입니다.

LFI(Link Fragmentation and Interleaving)

저속 링크의 필수 요구 사항일 수 있습니다.

RTP 압축

우수한 음성 품질을 제공할 필요는 없지만 통화 대역폭 소비를 줄입니다.RTP 압축에 대한 일반적인 조언은 음성 품질이 우수한 작업 컨피그레이션을 적용한 후에 적용하는 것입니다(문제 해결 간소화).

통화 허용 제어(CAC)

이 문서에서는 다루지 않습니다.CAC는 링크를 통해 설정할 수 있는 통화 수를 제어하는 데 사용됩니다.예를 들어 두 게이트웨이 간의 WAN 링크에 두 개의 VoIP 통화를 전달하는 대역폭이 있는 경우 세 번째 통화를 허용하면 세 번째 통화의 음질이 모두 저하될 수 있습니다.자세한 내용은 다음을 참조하십시오.VoIP 통화 허용 제어.

요약하자면, 라우터/게이트웨이가 있는 저속 PPP 링크를 음성 트래픽의 소스로만 사용하려면 두 가지 기능이 필요합니다.

1. 음성 트래픽의 엄격한 우선 순위

2. LFI(Link Fragmentation and Interleaving)

음성 트래픽의 엄격한 우선순위(IP RTP 우선순위 또는 LLQ)

Cisco IOS Software 릴리스 12.2부터는 음성 트래픽에 엄격한 우선 순위를 제공하기 위한 두 가지 기본 방법이 있습니다.

- IP RTP 우선순위(PQ/WFQ라고도 함):우선순위 대기열/가중치 공정 대기열)

- 짧은 대기 시간 대기열(PQ/CBWFQ라고도 함):우선순위 대기열/클래스 기반 가중 공정 대기열).

IP RTP 우선순위

IP RTP Priority는 UDP(User Datagram Protocol) 대상 포트 범위에 속하는 RTP 패킷 흐름 집합에 대해 엄격한 우선순위 큐를 생성합니다.사용되는 실제 포트는 최종 디바이스 또는 게이트웨이 간에 동적으로 협상되지만, 모든 Cisco VoIP 제품은 동일한 UDP 포트 범위(16384-32767)를 사용합니다. 라우터가 VoIP 트래픽을 인식하면 엄격한 우선 순위 대기열에 배치합니다.우선순위 대기열이 비어 있으면 다른 대기열은 표준 WFQ(Weighted Fair Queuing)에 따라 처리됩니다.IP RTP Priority(IP RTP 우선순위)는 인터페이스에 혼잡이 있을 때까지 활성화되지 않습니다.이 이미지는 IP RTP 우선 순위의 작업을 보여줍니다.

참고: IP RTP Priority는 기본 대기열(WFQ)에 사용 가능한 대역폭이 있는 경우 PQ(Priority Queue)를 버스트할 수 있지만 인터페이스에 정체 현상이 있을 경우 우선 순위 대기열 내용을 엄격하게 제한합니다.

짧은 대기 시간 대기

LLQ는 CBWFQ(Class-Based Weighted Fair Queuing)에 엄격한 PQ를 제공하는 기능입니다.LLQ는 CBWFQ 내에서 클래스 레벨에서 하나의 엄격한 PQ를 활성화합니다.LLQ에서는 지연에 민감한 데이터(PQ에서)가 대기열에서 제거되고 먼저 전송됩니다.LLQ 구현이 가능한 VoIP에서는 엄격한 PQ에 음성 트래픽이 배치됩니다.

PQ는 공정한 대기열에 대역폭이 부족하지 않도록 폴리싱됩니다.PQ를 구성할 때 PQ에 사용할 수 있는 최대 대역폭 양을 Kbps로 지정합니다.인터페이스가 혼잡할 경우 로드가 우선순위 문에서 구성된 Kbps 값에 도달할 때까지 PQ가 처리됩니다.그런 다음 Cisco의 레거시 우선순위 그룹 기능인 낮은 우선순위 큐의 허물어짐 문제를 방지하기 위해 초과 트래픽이 삭제됩니다.

이 방법은 IP RTP Priority보다 더 복잡하고 유연합니다.이 방법 중에서 선택할 수 있는 방법은 실제 네트워크의 트래픽 패턴과 실제 요구 사항을 기반으로 해야 합니다.

LLQ와 IP RTP 우선순위 비교

이 표에서는 LLQ와 IP RTP 우선순위 간의 주요 차이점을 요약하고 각 방법을 사용할 시기에 대한 몇 가지 지침을 제공합니다.

LLQ(Low Latency Queuing)

IP RTP 우선순위

다음을 기반으로 음성 트래픽 일치:

- 액세스 목록(UDP 포트 범위, 호스트 주소, IP 헤더 ToS 필드:IP 우선 순위, DSCP 등)

- IP RTP 포트 범위

- IP ToS(서비스 유형) 필드:DCSP 및/또는 IP 우선 순위

- 프로토콜 및 입력 인터페이스

- CBWFQ에 사용된 모든 유효한 일치 기준

장점:

- 트래픽을 매칭하고 엄격한 PQ 및 CBWFQ로 전달하는 방법에 대한 유연성 향상

- 다음과 같은 다른 트래픽의 대역폭을 보장하도록 추가 클래스를 구성할 수 있습니다.VoIP 신호 및 비디오.

단점:

- 복잡한 구성

다음을 기반으로 음성 트래픽 일치:

- RTP UDP 포트 범위 기반:16384-32767

장점:

- 간단한 구성

단점:

- WFQ 대기열에 제공된 RTCP 트래픽(VoIP 신호)
참고: RTP 프로토콜은 RTCP(Real Time Control Protocol)를 사용하여 RTP 패킷 전달을 제어합니다.RTP 포트는 짝수를 사용하지만, RTCP 포트는 16384-32767 범위의 홀수 번호를 사용합니다. IP RTP 우선순위는 RTP 포트를 PQ에 배치하는 반면 RTCP 포트는 기본 가중치 공정 대기열에서 사용됩니다.

- PQ에서 VoIP 트래픽을 서비스하지만, 우선 처리 및 대역폭 보장을 필요로 하는 기타 모든 트래픽은 WFQ에서 제공됩니다.WFQ는 가중치(IP 우선 순위 기준)로 플로우를 구별할 수 있지만, 어떤 플로우에 대해서도 대역폭 보장을 보장할 수 없습니다.

지침

- 이 두 가지 선택은 실제 네트워크의 트래픽 패턴과 실제 요구 사항에 따라 선택해야 합니다.

- 음성 트래픽에 엄격한 우선 순위를 제공해야 하고 다른 트래픽을 단일 유형(데이터)으로 처리할 수 있는 경우 IP RTP 우선 순위는 간단한 컨피그레이션으로 네트워크에 적합한 작업을 수행합니다.

- UDP 포트(예: DiffServ PHB) 이외의 기준을 기준으로 음성 트래픽의 우선 순위를 정하려는 경우 LLQ가 필요합니다.

대기 방법의 상관관계 및 차이에 대한 자세한 내용은 혼잡 관리 개요를 참조하십시오.

LLQ 컨피그레이션 지침

다음 지침에 따라 LLQ를 구성합니다.

1. VoIP 트래픽용 클래스 맵 생성 및 일치 기준 정의

다음 명령은 이 작업을 완료하는 방법에 대해 설명합니다.

maui-voip-sj(config)#class-map ?

WORD  class-map name

match-all  Logical-AND all matching statements under this classmap

match-any  Logical-OR all matching statements under this classmap

maui-voip-sj(config)#class-map match-all voice-traffic

!-- Choose a descriptive class_name.

maui-voip-sj(config-cmap)#match ?

access-group         Access group

any                  Any packets

class-map            Class map

cos                  IEEE 802.1Q/ISL class of service/user priority values

destination-address  Destination address

input-interface      Select an input interface to match

ip                   IP specific values

mpls                 Multi Protocol Label Switching specific values

not                  Negate this match result

protocol             Protocol

qos-group            Qos-group

source-address       Source address

!-- In this example, the access-group matching option is used for its !-- flexibility (it uses an access-list)

maui-voip-sj(config-cmap)#match access-group ?

<1-2699>  Access list index  name      Named Access List

maui-voip-sj(config-cmap)#match access-group 102

!-- Now, create the access-list to match the class-map access-group:

maui-voip-sj(config)#access-list 102 permit udp any any range 16384 32776

!-- Safest and easiest way is to match with UDP port range 16384-32767 !-- This is the port range Cisco IOS H.323 products utilize to transmit !-- VoIP packets.

이러한 액세스 목록을 사용하여 음성 트래픽을 match access-group 명령과 일치시킬 수도 있습니다.

access-list 102 permit udp any any precedence critical

!-- This list filters traffic based on the IP packet TOS: Precedence field.

!-- Note: Ensure that other non-voice traffic does NOT uses the

!-- same precedence value.

access-list 102 permit udp any any dscp ef

!-- In order for this list to work, ensure that VoIP packets are tagged with

!-- the dscp ef code before they exit on the LLQ WAN interface.

!-- For more information on DSCP refer to:

!-- Implementing Quality of Service Policies with DSCP

!-- Note: If endpoints are not trusted on their packet marking, you can mark

!-- incoming traffic by applying an inbound service policy on an inbound

!-- interface. This procedure is out of the scope of this doc.

Access-list 102 permit udp host 192.10.1.1 host 192.20.1.1

!-- This access-list can be used in cases where the VoIP devices cannot !-- do precedence or dscp marking and you cannot determine the !-- VoIP UDP port range.

다음은 액세스 그룹 대신 사용할 수 있는 다른 일치 방법입니다.

- Cisco IOS 릴리스 12.1.2.T부터 LLQ에 대해 IP RTP 우선순위 기능이 구현됩니다.이 기능은 구성된 UDP 포트를 보는 우선 순위 클래스 내용과 일치하며 PQ에서 포트만 제공하는 것에 제한이 있습니다.

class-map voice

match ip rtp 16384 16383

- 이 두 방법은 아웃바운드 LLQ 작업을 적용하기 전에 VoIP 패킷이 원래 호스트에 표시되거나 라우터에 매칭되고 표시된다고 가정합니다.

class-map voice

match ip precedence 5

또는

class-map voice

match ip dscp ef

참고: IOS 릴리스 12.2.2T부터 VoIP 다이얼 피어는 LLQ 작업 전에 음성 전달자 및 신호 패킷을 표시할 수 있습니다.이를 통해 LLQ에 대한 DSCP 코드 값을 통해 VoIP 패킷을 표시하고 일치시키는 확장 가능한 방법을 사용할 수 있습니다.

2. VoIP 신호 처리를 위한 클래스 맵 생성 및 일치 기준 정의(선택 사항)

다음 명령은 이 작업을 완료하는 방법에 대해 설명합니다.

class-map voice-signaling

match access-group 103

!

access-list 103 permit tcp any eq 1720 any

access-list 103 permit tcp any any eq 1720

참고: VoIP 통화는 H.323, SIP, MGCP 또는 Skinny(Cisco Call Manager에서 사용하는 전용 프로토콜)를 사용하여 설정할 수 있습니다. 위의 예에서는 H.323 Fast Connect로 가정했습니다.이 목록은 VoIP Signaling/Control Channel에서 사용하는 포트에 대한 참조 역할을 합니다.

- H.323/H.225 = TCP 1720

- H.323/H.245 = TCP 11xxx(표준 연결)

- H.323/H.245 = TCP 1720(Fast Connect)

- H.323/H.225 RAS = TCP 1719

- Skinny = TCP 2000-2002(CM Encore)

- ICCP = TCP 8001-8002(CM Encore)

- MGCP = UDP 2427, TCP 2428(CM Encore)

- SIP= UDP 5060, TCP 5060(구성 가능)

3. 정책 맵을 만들고 VoIP 클래스 맵에 연결

정책 맵의 목적은 링크 리소스가 서로 다른 맵 클래스에 공유되거나 할당되는 방법을 정의하는 것입니다.다음 명령은 이 작업을 완료하는 방법에 대해 설명합니다.

maui-voip-sj(config)#policy-map VOICE-POLICY

!-- Choose a descriptive policy_map_name.

maui-voip-sj(config-pmap)#class voice-traffic

maui-voip-sj(config-pmap-c)#priority ?

<8-2000000>  Kilo Bits per second

!-- Configure the voice-traffic class to the strict priority !-- Queue (priority command) and assign the bandwidth.

maui-voip-sj(config-pmap)#class voice-signaling

maui-voip-sj(config-pmap-c)#bandwidth 8

!-- Assign 8 Kbps to the voice-signaling class

maui-voip-sj(config-pmap)#class class-default

maui-voip-sj(config-pmap-c)#fair-queue

!-- The remaining data traffic is treated as Weighted Fair Queue

참고: 다양한 유형의 실시간 트래픽을 PQ로 대기시킬 수는 있지만 음성 트래픽만 PQ에 전달하는 것이 좋습니다.비디오와 같은 실시간 트래픽이 지연될 수 있습니다(PQ는 FIFO - First In First Out - queue). 음성 트래픽은 지터를 방지하기 위해 지연이 변형이 되지 않아야 합니다.

참고: 우선순위 및 대역폭 문의 값의 합계는 링크 대역폭의 75%보다 작거나 같아야 합니다.그렇지 않으면 서비스 정책을 링크에 할당할 수 없습니다(오류 메시지를 보려면 콘솔 액세스에 로깅 콘솔이 활성화되고 터미널 모니터가 텔넷 액세스에 활성화되어 있는지 확인하십시오).

참고: 두 음성 통화를 지원하도록 64Kbps 링크를 통해 VoIP를 구성할 때 일반적으로 PQ에 링크 대역폭의 75%(48Kbps) 이상을 할당하는 것이 일반적입니다.이 경우 max-reserved-bandwidth 80 명령을 사용하여 사용 가능한 대역폭을 80%(51Kbps)로 높일 수 있습니다.

대역폭 및 우선순위 명령에 대한 자세한 내용은 QoS 서비스 정책의 대역폭 및 우선순위 명령 비교를 참조하십시오.

4. LLQ 사용:아웃바운드 WAN 인터페이스에 정책 맵 적용

다음 명령은 이 작업을 완료하는 방법에 대해 설명합니다.

maui-voip-sj(config)#interface multilink 1

maui-voip-sj(config-if)#service-policy output VOICE-POLICY

!-- In this scenario (MLPPP LFI), the service policy is applied to !-- the Multilink interface.

IP RTP 우선순위 컨피그레이션 지침

IP RTP 우선순위를 구성하려면 다음 지침을 사용합니다.

- Router(config-if)#ip rtp priority starting-rtp-port-#port-#-rangebandwidth

명령

설명

starting-rtp-port-number

UDP 포트의 하한값입니다.패킷이 전송되는 가장 낮은 포트 번호입니다.VoIP의 경우 이 값을 16384로 설정합니다.

port-number-range

UDP 대상 포트의 범위.starting-rtp-port-number에 추가된 번호는 가장 높은 UDP 포트 번호를 산출합니다.VoIP의 경우 이 값을 16383(32767 - 16384 = 16383)으로 설정합니다.

bandwidth

우선 순위 큐에서 허용되는 최대 대역폭(kbps)입니다.시스템이 지원하는 동시 통화 수에 따라 이 번호를 설정합니다.

샘플 구성:

interface Multilink1

!--- Some output omitted

bandwidth 64

ip address 172.22.130.2 255.255.255.252

ip tcp header-compression

fair-queue

no cdp enable

ppp multilink

ppp multilink fragment-delay 10

ppp multilink interleave

multilink-group 1

ip rtp header-compression iphc-format

ip rtp priority 16384 16383 45

LFI(Link Fragmentation and Interleaving):멀티링크 PPP

1500바이트는 데이터 패킷의 일반 크기인 반면, 일반적인 VoIP 패킷(G.729 음성 프레임 전달)은 약 66바이트(20바이트 음성 페이로드, 6바이트 레이어 2 헤더, 20바이트 RTP & UDP 헤더 및 20바이트 IP 헤더)일 수 있습니다.

이제 음성과 데이터 트래픽이 공존하는 56Kbps 임대 회선 링크를 상상해 보십시오.데이터 패킷이 링크를 통해 전송되기 시작할 때 음성 패킷을 직렬화할 준비가 된 경우 문제가 발생합니다.지연에 민감한 음성 패킷은 전송되기 전에 214msec을 기다려야 합니다(56Kbps 링크를 통해 1500바이트 패킷을 직렬화하는 데 214msec이 소요됨).

보시다시피 대용량 데이터 패킷은 작은 음성 패킷의 전달을 불리하게 지연시켜 음성 품질을 줄일 수 있습니다.이러한 대용량 데이터 패킷을 더 작은 패킷으로 조각화하고 프래그먼트들 간에 음성 패킷을 인터리빙하면 지터와 지연이 줄어듭니다.Cisco IOS Link Fragmentation and Interleaving(LFI) 기능은 VoIP의 실시간 제공 요구 사항을 충족하는 데 도움이 됩니다.이 그림에서는 LFI 작동을 보여 줍니다.

표 1에 나와 있는 것처럼, 대상 엔드 투 엔드 단방향 지연이 150ms를 초과해서는 안 된다는 점을 고려하여 저속 WAN 링크에 도입된 직렬화 지연(실제 인터페이스에 비트를 배치하는 데 걸리는 시간)은 상당할 수 있습니다.(ITU-T G.114 권장 사항은 최대 150ms의 단방향 엔드 투 엔드 방식을 지정합니다.)

표 1. 저속 링크의 다양한 프레임 크기에 대한 직렬화 지연 직렬화 지연 = 프레임 크기(비트)/링크 대역폭(bps)

1바이트

64바이트

128바이트

256바이트

512바이트

1024바이트

1500바이트

56kbps

143 미국

9밀리초

18밀리초

36밀리초

72밀리초

144밀리초

214밀리초

64kbps

125 미국

8밀리초

16밀리초

32밀리초

64밀리초

126밀리초

187밀리초

128kbps

62.5 미국

4밀리초

8밀리초

16밀리초

32밀리초

64밀리초

93밀리초

256kbps

31 미국

2밀리초

4밀리초

8밀리초

16밀리초

32밀리초

46밀리초

512kbps

15.5 미국

1밀리초

2밀리초

4밀리초

8밀리초

16밀리초

32밀리초

768kbps

10 미국

640 미국

1.28밀리초

2.56밀리초

5.12밀리초

10.24밀리초

15밀리초

1,536kbps

5개

320 미국

640 미국

1.28밀리초

2.56밀리초

5.12밀리초

7.5밀리초

참고: 음성 애플리케이션의 경우 권장되는 직렬화 지연(홉별)은 10ms이며 20ms를 초과할 수 없습니다.

링크 프래그먼트 크기는 ppp multilink fragment-delay 명령을 사용하여 밀리초(msec) 시간 측정으로 구성할 수 있습니다.LFI를 사용하려면 ppp multilink가 설정된 인터페이스에 ppp multilink를 구성해야 합니다.LFI 구성에 대한 자세한 내용은 이 문서의 섹션을 참조하십시오.

참고: 전용 절반 이상의 T1 연결(768Kbps)이 있는 경우에는 조각화 기능이 필요하지 않습니다.그러나 LLQ 또는 IP RTP 우선 순위 같은 QoS 메커니즘이 여전히 필요합니다. T1의 절반에는 지연 문제 없이 음성 패킷이 큐에 들어가고 대기할 수 있는 충분한 대역폭이 제공됩니다.또한 T1의 절반인 경우 IP RTP 헤더를 압축하여 대역폭을 절약하는 데 도움이 되는 cRTP(Real-time Protocol)용 압축이 필요하지 않을 수도 있습니다.

압축된 실시간 프로토콜(cRTP)

참고: 음성 품질이 우수하려면 cRTP가 필요하지 않습니다.대역폭 소비를 줄이는 기능입니다.기타 모든 조건이 충족되고 음성 품질이 양호한 후 cRTP를 구성합니다.이 절차에서는 잠재적인 cRTP 문제를 격리하여 문제 해결 시간을 절약할 수 있습니다.

RFC 2508에 따라 RTP 헤더 압축 기능은 IP/UDP/RTP 헤더를 40바이트에서 2 또는 4바이트로 압축하여 불필요한 대역폭 소비를 줄입니다.hop-by-hop 압축 체계입니다.따라서 패시브 옵션을 구성하지 않는 한 링크의 양쪽 끝에서 cRTP를 구성해야 합니다. cRTP를 구성하려면 인터페이스 레벨에서 이 명령을 사용합니다.

- Router(config-if)#ip rtp header-compression [passive]

압축 프로세스는 CPU 집약적일 수 있으므로 IOS의 12.0.(7)T 릴리스로 고속 스위칭 및 CEF 스위칭 경로에서 RTP 헤더 압축이 구현됩니다.이러한 구현이 손상되는 경우가 있으며, 그 다음 작동하는 유일한 방법이 스위칭됩니다.Cisco에서는 라우터가 낮은 CPU 사용률로 실행되고 있지 않는 한, 768Kbps 미만의 링크와 함께 cRTP만 사용하는 것이 좋습니다.라우터의 CPU 사용률을 모니터링하고 75% 이상인 경우 cRTP를 비활성화합니다.

참고: 명령 ip rtp header-compression을 구성할 때 라우터는 기본적으로 ip tcp header-compression 명령을 컨피그레이션에 추가합니다.이는 헤더의 TCP/IP 패킷을 압축하는 데 사용됩니다.헤더 압축은 많은 텔넷 연결을 지원하는 네트워크와 같이 소규모 패킷이 많은 네트워크에서 특히 유용합니다.RFC 1144에 완전히 설명된 TCP 헤더 압축 기술은 HDLC 또는 PPP 캡슐화를 사용하는 직렬 회선에서 지원됩니다.

cRTP를 활성화하지 않고 TCP 헤더를 압축하려면 다음 명령을 사용합니다.

- Router(config-if)#ip tcp header-compression [passive]

자세한 내용:압축된 실시간 전송 프로토콜

기타 대역폭 절감 팁

- VoIP 통화 레그에 낮은 비트 속도 코드/디코더(codec) 사용;G.729(8Kbps)가 권장됩니다.VoIP 다이얼 피어의 기본 코덱입니다. 서로 다른 코덱을 구성하려면 원하는 voip dial-peer 아래에서 router(config-dial-peer)#codec 명령을 사용합니다.

- G.711과 같은 높은 비트 속도 음성 코덱을 사용할 때 DTMF(Dual Tone Multifrequency)가 일반적으로 정확하게 전송되지만, 낮은 비트 속도 코덱은 음성 패턴에 매우 최적화되어 있으며 DTMF 신호음을 왜곡하는 경향이 있습니다.이러한 접근 방식을 사용하면 IVR(Interactive Voice Response) 시스템에 액세스하는 데 문제가 발생할 수 있습니다.dtmf relay 명령은 DTMF 신호음을 "대역 외" 또는 인코딩된 음성 스트림에서 분리하여 DTMF 왜곡의 문제를 해결합니다.저비트 속도 코덱을 사용하는 경우(G.729, G.723) VoIP 다이얼 피어 아래에서 dtmf 릴레이를 켜십시오.

- 일반적인 대화에는 35-50% 침묵이 있을 수 있습니다.VAD(Voice Activity Detection)를 사용하면 무음 패킷이 억제됩니다.VoIP 대역폭 계획의 경우 VAD가 대역폭을 35% 줄인다고 가정합니다.VAD는 VoIP 다이얼 피어에서 기본적으로 구성됩니다.VAD를 활성화하거나 비활성화하려면 원하는 voip 다이얼 피어 아래에서 router(config-dial-peer)#vad 및 router(config-dial-peer)# no vad 명령을 사용합니다.

네트워크 다이어그램

구성

maui-voip-sj(Cisco 3640)

version 12.2service timestamps debug datetime msec

!-- < Some output omitted >

!

hostname maui-voip-sj

!

ip subnet-zero

!

no ip domain-lookup

!

!-- Definition of the voice signaling and traffic class maps !-- "voice-traffic" class uses access-list 102 for its matching criteria. !-- "voice-signaling" class uses access-list 103 for its matching criteria.

Class-map match-all voice-signaling

match access-group 103

class-map match-all voice-traffic

match access-group 102

!

!-- The policy-map defines how the link resources are assigned !-- to the different map classes. In this configuration, strict priority !-- queue is assigned to "voice-traffic" class with (based on ACL in !-- class voice) with max bandwidth = 45 Kbps.

policy-map VOICE-POLICY

class voice-traffic

priority 48

class voice-signaling

bandwidth 8

!-- Assigns a queue for "voice-signaling" traffic that ensures 8 Kbps. !-- Note that this is optional and has nothing to do with good voice !-- quality, but rather a way to secure signaling.

class class-default

fair-queue

!-- The class-default class is used to classify traffic that does !-- not fall into one of the defined classes. !-- The fair-queue command associates the default class WFQ queueing.

!

call rsvp-sync

!

!-- Note that MLPPP is strictly an LFI mechanism. It does not !-- bundle multiple serial interfaces to the same virtual interface as !-- the name stands (This bundling is done for data and NOT recommended !-- for voice). The end result may manifest itself as jitter and no audio.

interface Multilink1

ip address 172.22.130.1 255.255.255.252

ip tcp header-compression iphc-format

service-policy output VOICE-POLICY

!-- LLQ is an outbound operation and applied to the outbound WAN !-- interface.

no cdp enable

ppp multilink

ppp multilink fragment-delay 10

!-- The configured value of 10 sets the fragment size such that !-- all fragments have a 10 ms maximum serialization delay.

ppp multilink interleave

multilink-group 1

ip rtp header-compression iphc-format

!

interface Ethernet0/0

ip address 172.22.113.3 255.255.255.0

no keepalive

half-duplex

!

interface Serial0/0

bandwidth 128

!-- the bandwidth command needs to be set correctly for the !-- right fragment size to be calculated.

no ip address

encapsulation ppp

clockrate 128000

ppp multilink

multilink-group 1

!-- This command links the multilink interface to the physical !-- serial interface.

!

router eigrp 69

network 172.22.0.0

auto-summary

no eigrp log-neighbor-changes

!

!-- access-list 102 matches VoIP traffic based on the UDP port range. !-- Both odd and even ports are put into the PQ. !-- access-list 103 is used to match VoIP signaling protocol. In this !-- case, H.323 V2 with fast start feature is used.

access-list 102 permit udp any any range 16384 32767

access-list 103 permit tcp any eq 1720 any

access-list 103 permit tcp any any eq 1720

!

voice-port 1/0/0

!

voice-port 1/0/1

!

voice-port 1/1/0

!

voice-port 1/1/1

!

dial-peer cor custom

!

dial-peer voice 1 pots

destination-pattern 5000

port 1/0/0

!

dial-peer voice 2 voip

destination-pattern 6000

session target ipv4:172.22.130.2

maui-voip-austin(Cisco 3640)

version 12.2

service timestamps debug datetime msec

!

hostname maui-voip-austin

!

boot system flash slot1:c3640-is-mz.122-6a.bin

!

ip subnet-zero

!

class-map match-all voice-signaling

match access-group 103

class-map match-all voice-traffic

match access-group 102

!

policy-map voice-policy

class voice-signaling

bandwidth 8

class voice-traffic

priority 48

class class-default

fair-queue

!

interface Multilink1

bandwidth 128

ip address 172.22.130.2 255.255.255.252

ip tcp header-compression iphc-format

service-policy output voice-policy

no cdp enable

ppp multilink

ppp multilink fragment-delay 10

ppp multilink interleave

multilink-group 1

ip rtp header-compression iphc-format

!-- Configure cRTP after you have a working configuration. !-- This helps isolate potential cRTP issues.

!

Interface Ethernet0/0

ip address 172.22.112.3 255.255.255.0

no keepalive

half-duplex

!

interface Serial0/0

bandwidth 128

no ip address

encapsulation ppp

no ip mroute-cache

ppp multilink

multilink-group 1

!

router eigrp 69

network 172.22.0.0

auto-summary

no eigrp log-neighbor-changes

!

access-list 102 permit udp any any range 16384 32767

access-list 103 permit tcp any eq 1720 any

access-list 103 permit tcp any any eq 1720

!

voice-port 1/0/0

!

voice-port 1/0/1

!

voice-port 1/1/0

!

voice-port 1/1/1

!

dial-peer cor custom

!

dial-peer voice 1 pots

destination-pattern 6000

port 1/0/0

!

dial-peer voice 2 voip

destination-pattern 5000

session target ipv4:172.22.130.1

확인 및 문제 해결 명령

디버그 명령을 시도하기 전에 디버그 명령에 대한 중요 정보를 참조하십시오.여기에 나열된 명령에 대한 자세한 내용은 이 문서의 샘플 show and debug Output 섹션을 참조하십시오.

인터페이스 명령:

- show interface [serial] | multilink]—이 명령을 사용하여 직렬 인터페이스의 상태를 확인합니다.직렬 및 멀티링크 인터페이스가 작동 및 열려 있는지 확인합니다.

- 직렬 회선 문제 해결

LFI 명령:

- show ppp multilink - 이 명령은 Multilink PPP 번들에 대한 번들 정보를 표시합니다.

- debug ppp multilink fragments—이 debug 명령은 개별 멀티링크 프래그먼트 및 인터리빙 이벤트에 대한 정보를 표시합니다.이 명령 출력은 패킷의 시퀀스 번호와 프래그먼트 크기를 식별합니다.

LLQ/IP RTP 우선순위 명령:

- show policy-map interface multilink interface#—이 명령은 LLQ 작업을 확인하고 PQ에서 드롭을 확인하는 데 매우 유용합니다.이 명령의 다양한 필드에 대한 자세한 내용은 show policy-map interface Output의 Understanding Packet Counters를 참조하십시오.

- show policy-map policy_map_name—이 명령은 policy-map 컨피그레이션에 대한 정보를 표시합니다.

- show queue interface-type interface-number—이 명령은 특정 인터페이스에 대한 공정한 대기열 구성 및 통계를 나열합니다.

- Debug priority—이 debug 명령은 우선 순위 대기열 이벤트를 표시하고 이 큐에서 삭제 발생 여부를 표시합니다.또한 우선순위 대기열을 사용하여 출력 삭제 문제 해결을 참조하십시오.

- show class-map class_name—이 명령은 class-map 컨피그레이션에 대한 정보를 표시합니다.

- show call active voice - 이 명령은 DSP 레벨에서 손실된 패킷을 확인하는 데 유용합니다.

기타 명령/참조:

- show ip rtp header-compression - 이 명령은 RTP 헤더 압축 통계를 표시합니다.

- VoIP 통화 기본 문제 해결 및 디버깅

- VoIP 디버그 명령

알려진 문제:

- CSCds43465:"LLQ, Policer, Shaper Should Take CRTP Compression Feedback" 릴리스 정보를 보려면 Bug ToolKit(등록된 고객만 해당)를 참조하십시오.

지침:

다음은 ppp 링크가 작동 및 실행되면(MLPPP, Fragmentation, Interleaving) 몇 가지 기본적인 문제 해결 단계입니다.

1. show call active voice - DSP 레벨에서 손실된 패킷을 확인하는 데 사용합니다.

2. show interface - 일반 직렬 회선 또는 인터페이스 문제를 확인하는 데 사용합니다.인터페이스의 삭제는 아직 문제를 의미하지는 않지만, 인터페이스 대기열에 도달하기 전에 우선 순위가 낮은 큐에서 패킷을 삭제하는 것이 좋습니다.

3. show policy-map interface - LLQ 삭제 및 대기열 컨피그레이션을 확인하는 데 사용합니다.정책을 위반하는 삭제는 보고하지 않아야 합니다.

4. show ip rtp header-compression - cRTP 관련 문제를 확인하는 데 사용합니다.

샘플 show 및 debug 출력

!----------------------------------------------- !-----------------------------------------------  !---- To capture sections of this output, the LLQ PQ bandwidth !---- was lowered and large data traffic was placed !---- on the link to force some packets drops. !----------------------------------------------- !----------------------------------------------- !---- Packet Drop Verification (During an Active Call) !--- Assuming your ppp link is up and running, the first step of voice !--- quality problems verification is to check for lost packets !--- at the DSP. Note: Use the show call active voice command !--- NOT show call active voice brief

maui-voip-austin#show call active voice

Total call-legs: 2

!--- Indicates that the connection is established and both legs exist

GENERIC:

SetupTime=155218260 ms

Index=1

PeerAddress=5000

PeerSubAddress=

PeerId=2

PeerIfIndex=13

LogicalIfIndex=0

ConnectTime=155218364

CallDuration=00:00:27

CallState=4

!--- indicates that it is the active call !--- (#define D_callActiveCallState_active 4).

CallOrigin=2

ChargedUnits=0

InfoType=2

TransmitPackets=365

TransmitBytes=7300

ReceivePackets=229

ReceiveBytes=4580

VOIP:

!--- For this call, this was the terminating gateway. !--- At this gateway, the call started at the VoIP leg.

ConnectionId[0x18872BEB 0x1A8911CC 0x808CBE60 0x6D946FC6]

IncomingConnectionId[0x18872BEB 0x1A8911CC 0x808CBE60 0x6D946FC6]

RemoteIPAddress=172.22.130.1

!--- Indicates from which IP address the RTP stream is originating.

RemoteUDPPort=18778

RemoteSignallingIPAddress=172.22.130.1

!--- Indicates from which IP address signaling messages are coming.

RemoteSignallingPort=11010

RemoteMediaIPAddress=172.22.130.1

RemoteMediaPort=18778

RoundTripDelay=50 ms

SelectedQoS=best-effort

tx_DtmfRelay=inband-voice

FastConnect=TRUE

Separate H245 Connection=FALSE

H245 Tunneling=FALSE

SessionProtocol=cisco

SessionTarget=

OnTimeRvPlayout=4570

GapFillWithSilence=20 ms

GapFillWithPrediction=1840 ms

GapFillWithInterpolation=0 ms

GapFillWithRedundancy=0 ms

HiWaterPlayoutDelay=70 ms

LoWaterPlayoutDelay=51 ms

ReceiveDelay=51 ms

LostPackets=90

EarlyPackets=1

LatePackets=0

!--- Indicates the precense of jitter, lost packets, or !--- corrupted packets.

VAD = enabled

CoderTypeRate=g729r8

CodecBytes=20

GENERIC:

SetupTime=155218260 ms

Index=2

PeerAddress=6000

PeerSubAddress=

PeerId=1

PeerIfIndex=12

LogicalIfIndex=6

ConnectTime=155218364

CallDuration=00:00:34

CallState=4

CallOrigin=1

ChargedUnits=0

InfoType=2

TransmitPackets=229

TransmitBytes=4580

ReceivePackets=365

ReceiveBytes=7300

TELE:

ConnectionId=[0x18872BEB 0x1A8911CC 0x808CBE60 0x6D946FC6]

IncomingConnectionId=[0x18872BEB 0x1A8911CC 0x808CBE60 0x6D946FC6]

TxDuration=35360 ms

VoiceTxDuration=730 ms

FaxTxDuration=0 ms

CoderTypeRate=g729r8

NoiseLevel=-46

ACOMLevel=2

OutSignalLevel=-58

InSignalLevel=-42

InfoActivity=2

ERLLevel=7

SessionTarget=

ImgPages=0Total call-legs: 2

!---------------------------------------------------------- !--- Interface Verification !--- Make sure you see this: !--- LCP Open, multilink Open: Link control protocol (LCP) open statement !--- indicates that the connection is establish. !--- Open:IPCP. Indicates that IP traffic can be transmitted via the PPP link.

maui-voip-sj#show interface multilink 1

Multilink1 is up, line protocol is up

Hardware is multilink group interface

Internet address is 172.22.130.1/30

MTU 1500 bytes, BW 128 Kbit, DLY 100000 usec,

reliability 255/255, txload 1/255, rxload 1/255

Encapsulation PPP, loopback not set

Keepalive set (10 sec)

DTR is pulsed for 2 seconds on reset

LCP Open, multilink Open

Open: IPCP

Last input 00:00:01, output never, output hang never

Last clearing of "show interface" counters 00:25:20

Input queue: 0/75/0/0 (size/max/drops/flushes); Total output drops: 91

Queueing strategy: weighted fair

Output queue: 0/1000/64/37/383 (size/max total/threshold/drops/interleaves)

Conversations  0/3/32 (active/max active/max total)

Reserved Conversations 1/1 (allocated/max allocated)

Available Bandwidth 38 kilobits/sec

5 minute input rate 0 bits/sec, 0 packets/sec

5 minute output rate 0 bits/sec, 0 packets/sec

8217 packets input, 967680 bytes, 0 no buffer

Received 0 broadcasts, 0 runts, 0 giants, 0 throttles

0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort

13091 packets output, 1254194 bytes, 0 underruns

0 output errors, 0 collisions, 0 interface resets

0 output buffer failures, 0 output buffers swapped out

0 carrier transitions

----------------------------------------------------------------

!-- Note: There are no drops at the interface level. !-- All traffic that is dropped due to policing, is !-- dropped before it gets to the interface queue.

maui-voip-austin#show interface

serial 0/0Serial0/0 is up, line protocol is up

Hardware is QUICC Serial

MTU 1500 bytes, BW 128 Kbit, DLY 20000 usec,

reliability 255/255, txload 49/255, rxload 47/255

Encapsulation PPP, loopback not set

Keepalive set (10 sec)

LCP Open, multilink Open

Last input 00:00:00, output 00:00:00, output hang never

Last clearing of "show interface" counters 00:22:08

Input queue: 0/75/0/0 (size/max/drops/flushes); Total output drops: 0

Queueing strategy: weighted fair  [suspended, using FIFO]

FIFO output queue 0/40, 0 drops

5 minute input rate 24000 bits/sec, 20 packets/sec

5 minute output rate 25000 bits/sec, 20 packets/sec     4851 packets input, 668983 bytes, 0 no buffer

Received 0 broadcasts, 0 runts, 0 giants, 0 throttles

0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort

4586 packets output, 657902 bytes, 0 underruns

0 output errors, 0 collisions, 0 interface resets

0 output buffer failures, 0 output buffers swapped out

0 carrier transitions

DCD=up  DSR=up  DTR=up  RTS=up  CTS=up

!----------------------------------- !--- LLQ Verification

maui-voip-austin#show policy-map int multilink 1

Multilink1

Service-policy output: voice-policy

Class-map: voice-signaling (match-all)

!--- This is the class for the voice signaling traffic.

10 packets, 744 bytes

5 minute offered rate 0 BPS, drop rate 0 BPS

Match: access-group 103

Weighted Fair Queueing

Output Queue: Conversation 42

Bandwidth 8 (kbps) Max Threshold 64 (packets)

(pkts matched/bytes matched) 10/744

(depth/total drops/no-buffer drops) 0/0/0

Class-map: voice-traffic (match-all)

!--- This is PQ class for the voice traffic.

458 packets, 32064 bytes

5 minute offered rate 0 BPS, drop rate 0 BPS

Match: access-group 102

Weighted Fair Queueing

Strict Priority

Output Queue: Conversation 40

Bandwidth 15 (kbps) Burst 375 (Bytes)

!--- Notice that the PQ bandwidth was lowered to force packet drops.

(pkts matched/bytes matched) 458/29647

(total drops/bytes drops) 91/5890

!--- Some packets were dropped. In a well designed link,

!--- there should be no (or few) drops of the PQ class.

Class-map: class-default (match-any)

814 packets, 731341 bytes

5 minute offered rate 27000 BPS, drop rate 0 BPSMatch: any

Weighted Fair Queueing

Flow Based Fair Queueing

Maximum Number of Hashed Queues 32

(total queued/total drops/no-buffer drops) 0/0/0

!---------------------------------------------

!--- Verify the class-map configuration

maui-voip-austin#show class-map

Class Map match-all voice-signaling (id 2)

Match access-group  103

Class Map match-any class-default (id 0)

Match any

Class Map match-all voice-traffic(id 3)

Match access-group 102

!--- Verify the access-lists of the class-maps

maui-voip-austin#show access-lists

Extended IP access list 102

permit udp any any range 16384 32767 (34947 matches)

Extended IP access list 103

permit tcp any eq 1720 any (187 matches)

permit tcp any any eq 1720 (86 matches)

!--- Verify the policy-pap configuration

maui-voip-austin#show policy-map voice-policy

Policy Map voice-policy

Class voice-signaling

Weighted Fair Queueing

Bandwidth 8 (kbps) Max Threshold 64 (packets)

Class voice-traffic

Weighted Fair Queueing

Strict Priority

Bandwidth 50 (kbps) Burst 1250 (Bytes)

Class class-default

Weighted Fair Queueing

Flow based Fair Queueing Max Threshold 64 (packets)

---------------------------

!--- Debug priority command provides immediate feedback in case !--- of VoIP packet drops. !--- The output below shows the error message when VoIP packets !--- are being dropped from the strict priority queue.

maui-voip-sj#debug priority

priority output queueing debugging is on

maui-voip-sj#

Mar 17 19:47:09.947: WFQ: dropping a packet from the priority queue 0

Mar 17 19:47:09.967: WFQ: dropping a packet from the priority queue 0

Mar 17 19:47:09.987: WFQ: dropping a packet from the priority queue 0

-------------------------------------------------------------------

!--- Link Fragmentation and Interleaving (LFI) Verification

maui-voip-sj#show ppp multilink

!--- Verify the fragmentation size and multilink

Multilink1, bundle name is maui-voip-austin

Bundle up for 00:08:04

0 lost fragments, 0 reordered, 0 unassigned

0 discarded, 0 lost received, 1/255 load

0x6D received sequence, 0x6E sent sequence

Member links: 1 active, 0 inactive (max not set, min not set)

Serial0/0, since 00:08:09, last rcvd seq 00006C 160 weight

!--- Notice the fragmentation size is 160 Bytes. The link is configured with a !--- bandwidth of 128 kbps and a serialization delay of 10 msec. !--- Fragment Size (in bits) = bandwidth * serialization delay. !--- Note: There are 8 bits in one byte.

-------------------------------------------------------

!--- Link Fragmentation and Interleaving (LFI) Verification !--- Testing Multilink PPP Link LFI !--- This output displays fragmentation and interleaving information !--- when the the 128kbps PPP link is loaded with big data and VoIP packets.

maui-voip-sj#debug ppp multilink fragments

Multilink fragments debugging is on

1w3d: Se0/0 MLP: O frag 800004CF size 160

1w3d: Se0/0 MLP: O frag 000004D0 size 160

1w3d: Se0/0 MLP: I ppp IP (0021) size 64 direct

1w3d: Mu1 MLP: Packet interleaved from queue 40

1w3d: Se0/0 MLP: O ppp IP (0021) size 64

1w3d: Se0/0 MLP: I ppp IP (0021) size 64 direct

1w3d: Se0/0 MLP: O frag 400004D1 size 106

1w3d: Se0/0 MLP: O ppp IP (0021) size 64

1w3d: Se0/0 MLP: I ppp IP (0021) size 64 direct

1w3d: Se0/0 MLP: O ppp IP (0021) size 64 direct

1w3d: Se0/0 MLP: I frag 800004E0 size 160 direct

1w3d: Se0/0 MLP: I frag 000004E1 size 160 direct

1w3d: Se0/0 MLP: I ppp IP (0021) size 64 direct

-------------------------------------------------------------------

!--- Sample output of show ip rtp header-compression command

maui-voip-sj#show ip tcp header-compression

TCP/IP header compression statistics:  Interface Multilink1:

Rcvd:    10 total, 6 compressed, 0 errors

0 dropped, 0 buffer copies, 0 buffer failures

Sent:    10 total, 7 compressed,

230 bytes saved, 99 bytes sent

3.32 efficiency improvement factor

Connect: 16 rx slots, 16 tx slots,

2 long searches, 1 misses 0 collisions, 0 negative cache hits

90% hit ratio, five minute miss rate 0 misses/sec, 0 max

----------------------------------------------------------------------

!--- This command displays information of the voip dial-peers command.

maui-voip-sj#show dial-peer voice 2

VoiceOverIpPeer2

information type = voice,

tag = 2, destination-pattern = `6000',

answer-address = `', preference=0,

group = 2, Admin state is up, Operation state is up,

incoming called-number = `', connections/maximum = 0/unlimited,

application associated:

type = voip, session-tMarget = `ipv4:172.22.130.2',

technology prefix:

ip precedence = 0, UDP checksum = disabled,

session-protocol = cisco, req-qos = best-effort,

acc-qos = best-effort,

fax-rate = voice,   payload size =  20 bytes

codec = g729r8,   payload size =  20 bytes,

Expect factor = 10, Icpif = 30,signaling-type = cas,

VAD = enabled, Poor QOV Trap = disabled,

Connect Time = 283, Charged Units = 0,

Successful Calls = 1, Failed Calls = 0,

Accepted Calls = 1, Refused Calls = 0,

Last Disconnect Cause is "10  ",

Last Disconnect Text is "normal call clearing.",

Last Setup Time = 93793451.

-------------------------------------------------------------------------

!---The CPU utilization of the router should not exceed the 50-60 percent !--- during any five-minute interval.

maui-voip-austin#show processes cpu

CPU utilization for five seconds: 12%/8%; one minute: 11%; five minutes: 9%

PID Runtime(ms)   Invoked      uSecs   5Sec   1Min   5Min TTY Process

1         148    310794          0  0.00%  0.00%  0.00%   0 Load Meter

2          76        23       3304  0.81%  0.07%  0.01%   0 Exec

관련 정보

- 낮은 레이턴시 대기열 처리

- 혼잡 관리 개요

- QoS(Quality of Service) 구현

- VoIP(Voice over IP) - 통화당 대역폭 소비

- VoIP를 위한 QoS(Quality of Service)

- VoIP 구성

- 음성 기술 지원

- 음성 및 IP 커뮤니케이션 제품 지원

- Cisco IP 텔레포니 문제 해결

- Technical Support - Cisco Systems