이 샘플 컨피그레이션에서는 낮은 대역폭 임대 회선 컨피그레이션에 대해 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 기술 팁 표기 규칙을 참조하십시오.
이 섹션에서는 PPP를 통한 VoIP 임대 회선(저속 링크에 중점을 두고)을 구성하는 설계 지침을 제공합니다. 우수한 음성 품질을 위한 두 가지 기본 요구 사항이 있습니다.
최소 엔드 투 엔드 지연 및 지터 회피(지연 변화).
링크 대역폭 요구 사항을 최적화하고 올바르게 엔지니어링합니다.
위의 요구 사항을 보장하려면 몇 가지 중요한 지침을 따라야 합니다.
지침 | 설명 |
---|---|
음성 트래픽의 엄격한 우선순위(IP RTP 우선순위 또는 LLQ) | 음성 트래픽에 엄격한 우선 순위를 제공하는 방법입니다. |
LFI(Link Fragmentation and Interleaving) | 저속 링크의 필수 요구 사항일 수 있습니다. |
RTP 압축 | 우수한 음성 품질을 제공할 필요는 없지만 통화 대역폭 소비를 줄입니다.RTP 압축에 대한 일반적인 조언은 음성 품질이 우수한 작업 컨피그레이션을 적용한 후에 적용하는 것입니다(문제 해결 간소화). |
통화 허용 제어(CAC) | 이 문서에서는 다루지 않습니다.CAC는 링크를 통해 설정할 수 있는 통화 수를 제어하는 데 사용됩니다.예를 들어 두 게이트웨이 간의 WAN 링크에 두 개의 VoIP 통화를 전달하는 대역폭이 있는 경우 세 번째 통화를 허용하면 세 번째 통화의 음질이 모두 저하될 수 있습니다.자세한 내용은 다음을 참조하십시오.VoIP 통화 허용 제어. |
요약하자면, 라우터/게이트웨이가 있는 저속 PPP 링크를 음성 트래픽의 소스로만 사용하려면 두 가지 기능이 필요합니다.
음성 트래픽의 엄격한 우선 순위
Cisco IOS Software 릴리스 12.2부터는 음성 트래픽에 엄격한 우선 순위를 제공하기 위한 두 가지 기본 방법이 있습니다.
IP RTP 우선순위(PQ/WFQ라고도 함):우선순위 대기열/가중치 공정 대기열)
짧은 대기 시간 대기열(PQ/CBWFQ라고도 함):우선순위 대기열/클래스 기반 가중 공정 대기열).
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(Low Latency Queuing) | IP RTP 우선순위 |
---|---|
다음을 기반으로 음성 트래픽 일치:
|
다음을 기반으로 음성 트래픽 일치:
|
지침
|
대기 방법의 상관관계 및 차이에 대한 자세한 내용은 혼잡 관리 개요를 참조하십시오.
다음 지침에 따라 LLQ를 구성합니다.
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 패킷을 표시하고 일치시키는 확장 가능한 방법을 사용할 수 있습니다.
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(구성 가능)
정책 맵을 만들고 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 서비스 정책의 대역폭 및 우선순위 명령 비교를 참조하십시오.
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 우선순위를 구성하려면 다음 지침을 사용합니다.
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
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 문제를 격리하여 문제 해결 시간을 절약할 수 있습니다.
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 헤더 압축 통계를 표시합니다.
알려진 문제:
CSCds43465:"LLQ, Policer, Shaper Should Take CRTP Compression Feedback" 릴리스 정보를 보려면 Bug ToolKit(등록된 고객만 해당)를 참조하십시오.
지침:
다음은 ppp 링크가 작동 및 실행되면(MLPPP, Fragmentation, Interleaving) 몇 가지 기본적인 문제 해결 단계입니다.
show call active voice - DSP 레벨에서 손실된 패킷을 확인하는 데 사용합니다.
show interface - 일반 직렬 회선 또는 인터페이스 문제를 확인하는 데 사용합니다.인터페이스의 삭제는 아직 문제를 의미하지는 않지만, 인터페이스 대기열에 도달하기 전에 우선 순위가 낮은 큐에서 패킷을 삭제하는 것이 좋습니다.
show policy-map interface - LLQ 삭제 및 대기열 컨피그레이션을 확인하는 데 사용합니다.정책을 위반하는 삭제는 보고하지 않아야 합니다.
show ip rtp header-compression - cRTP 관련 문제를 확인하는 데 사용합니다.
!----------------------------------------------- !----------------------------------------------- !---- 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 |