목차

소개

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

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

사전 요구 사항

요구 사항

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

사용되는 구성 요소

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

표기 규칙

문서 규칙에 대한 자세한 내용은 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 우선순위

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 우선 순위의 작업을 보여줍니다.

pq-wfq.gif

참고: 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의 레거시 우선순위 그룹 기능인 낮은 우선순위 큐의 허물어짐 문제를 방지하기 위해 초과 트래픽이 삭제됩니다.

llq.gif

이 방법은 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 우선순위를 구성하려면 다음 지침을 사용합니다.

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 작동을 보여 줍니다.

lfi.gif

표 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를 구성하려면 인터페이스 레벨에서 이 명령을 사용합니다.

압축 프로세스는 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 헤더를 압축하려면 다음 명령을 사용합니다.

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

기타 대역폭 절감 팁

네트워크 다이어그램

mlppp.gif

구성

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 섹션을 참조하십시오.

인터페이스 명령:

LFI 명령:

LLQ/IP RTP 우선순위 명령:

기타 명령/참조:

알려진 문제:

지침:

다음은 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


관련 정보