Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

RTSP ALG

실시간 스트리밍 프로토콜(RTSP)은 오디오 및 비디오와 같은 실시간 속성을 통해 데이터 전달을 제어합니다. 미디어는 동일한 RTSP 제어 스트림에서 전송될 수 있습니다. 이것은 HTTP와 유사한 텍스트 기반 프로토콜이지만 클라이언트와 서버는 세션 정보를 유지합니다. 설정 메시지를 사용하여 세션이 설정되고 TEARDOWN 메시지를 사용하여 종료됩니다. 전송(미디어 프로토콜, 주소 및 포트 번호)은 설정 및 설정 응답에서 협상됩니다.

스테이트풀 방화벽 및 NAT 서비스를 지원하려면 TCP 포트 554에 대한 RTSP ALG를 구성해야 합니다. ALG는 제어 연결을 모니터링하고, 미디어(RTP/RTSP) 스트림에 대해 동적으로 플로우를 열고 NAT 주소와 포트 재작성을 수행합니다.

RTSP ALG 이해하기

개요

RTSP(실시간 스트리밍 프로토콜)는 실시간 속성을 통해 데이터 전달을 제어하는 애플리케이션 레이어 프로토콜입니다. 구문과 작동에서 HTTP/1.1과 유사합니다. SIP 및 H.323과 달리 RTSP의 목적은 네트워크를 통해 기존 미디어 파일에 액세스하고 미디어 재생을 제어하는 것입니다. 일반적인 커뮤니케이션은 클라이언트(예: RealPlayer 실행)와 스트리밍 미디어 서버 간의 통신입니다. 명령에는 원격 서버에서 미디어 파일을 일시 중지하고 재생하는 기능이 포함됩니다.

RTSP는 미디어 클라이언트와 미디어 서버 간의 제어 채널 프로토콜입니다. 데이터 채널은 다른 프로토콜(일반적으로 RTP(Real-Time Transport Protocol) 또는 RTCP(RTP Control Protocol)를 사용합니다.

RTSP 표준 모드에서 클라이언트는 UDP를 통해 RTP를 사용하여 미디어 데이터가 전달될 때 RTSP 서버로 세 개의 네트워크 채널을 설정합니다.

RTSP는 TCP를 통해 실행됩니다. RTP 및 RTCP는 UDP를 통해 실행됩니다. RTP 및 RTCP 패킷의 포트는 RTSP를 사용하여 클라이언트와 서버가 동적으로 협상합니다. RTP 및 RTCP 포트는 동적이기 때문에 이러한 포트는 정적 정책에 의해 허용될 수 없습니다. 방화벽에 RTSP ALG를 도입하는 주요 목적은 RTP 및 RTCP 트래픽이 통과할 수 있도록 클라이언트/서버 협상 결과에 따라 동적 정책(핀홀)을 생성하는 것입니다.

클라이언트와 서버가 서로 다른 영역에 있을 때 피어가 제공하는 RTP 또는 RTCP 오퍼의 주소로 라우팅하는 방법을 결정하지 못할 수 있습니다. 이 경우 ALG는 RTP 또는 RTCP 제안 주소에 대한 변환 작업을 수행하여 페이로드에서 수정해야 합니다.

연결이 설정된 후 RTSP ALG는 클라이언트와 서버 간에 교환된 메시지를 모니터링하고, 대화 상자의 상태 변경을 추적하며, 대화 상자가 완료되거나 실패한 후 RTSP 대화 상자를 지원하기 위해 얻은 모든 리소스를 다시 시스템으로 반환합니다.

RTSP 모드

표준 모드

RTSP 표준 모드에서 클라이언트는 UDP를 통해 RTP를 사용하여 미디어 데이터가 전달될 때 RTSP 서버로 세 개의 네트워크 채널을 설정합니다.

전이중 TCP 연결은 제어 및 협상에 사용됩니다. 전이중 UDP 채널은 RTP 패킷 형식을 사용한 미디어 데이터 제공에 사용됩니다. 대부분의 경우, RTP는 서버에서 시작됩니다. RTCP라는 전이중 UDP 채널은 클라이언트에 동기화 정보를 제공하고 서버에 패킷 손실 정보를 제공하는 데 사용됩니다.

그림 1 은 RTSP ALG 표준 모드를 보여줍니다.

그림 1: RTSP ALG 표준 모드 RTSP ALG Standard Mode

인터리브 모드

RTSP 인터리브 모드에서는 TCP를 통해 RTP 또는 RDT를 사용하여 미디어 데이터를 패킷으로 만들 수 있습니다. 이 시나리오에서는 단일 전이중 TCP 연결이 RTSP 서버에서 클라이언트로의 미디어 데이터 전달과 제어에 사용됩니다. 데이터 스트림은 RTSP 제어 스트림과 인터리브됩니다.

그림 2 는 RTSP ALG 인터리브 모드를 보여줍니다.

그림 2: RTSP ALG 인터리브 모드 RTSP ALG Interleave Mode

RTSP ALG 메시지 이해

RTSP 메시지 형식

RTSP는 텍스트 기반이며 UTF-8 인코딩에서 설정된 ISO 10646 문자를 사용합니다. 선은 CRLF에 의해 종료되고 빈 선은 메시지와 본문의 분리자입니다.

첫 번째 라인을 시작 라인이라고합니다. 클라이언트에서 서버까지의 요청 메시지의 경우, 시작 줄은 RTSP 방법을 나타냅니다. 서버에서 클라이언트로의 응답 메시지의 경우, 시작 줄은 방법의 응답으로 RTSP 상태 코드를 나타냅니다. 상태 코드 요소는 3 자릿수 정수 결과 코드입니다.

RTSP 방법

하나의 트랜잭션 중에는 9가지 유형의 방법이 있습니다.

  • OPTION— 요청-URL로 식별된 요청/응답 체인에서 사용할 수 있는 통신 옵션에 대한 정보 요청을 나타냅니다. 이 방법을 사용하면 클라이언트가 리소스 작업을 의미하거나 리소스 검색을 시작하지 않고 리소스와 연결된 옵션, 요구 사항 또는 서버 기능 모두를 결정할 수 있습니다.

  • DESCRIBE—요청 URL로 식별된 프레젠테이션 또는 미디어 개체에 대한 설명을 서버에서 검색합니다. 이 방법은 허용 헤더를 사용하여 클라이언트가 해석하는 설명 형식을 지정할 수 있습니다.

  • ANNOUNCE—클라이언트에서 서버로 전송된 요청은 이 방법은 요청 URL로 식별된 프레젠테이션 또는 미디어 개체의 설명을 서버에 게시합니다. 서버에서 클라이언트로 요청이 전송되면 이 방법은 세션 설명을 실시간으로 업데이트합니다.

  • SETUP—URI를 요청하고 스트리밍 미디어에 사용할 전송 메커니즘을 지정합니다.

  • PLAY-설정에 지정된 메커니즘을 사용하여 서버에게 데이터 전송을 시작하도록 알려줍니다.

  • PAUSE—스트림 딜리버리를 일시적으로 중단하도록 요청합니다.

  • TEARDOWN—주어진 URI에 대한 스트림 전달을 중지하여 관련 리소스를 확보합니다.

  • GET_PARAMETER—URI에 지정된 프레젠테이션 또는 스트림 매개 변수의 값을 검색합니다.

  • SET_PARAMETER—URI가 지정한 프레젠테이션 또는 스트림에 대한 매개 변수의 값을 설정합니다.

RTSP 상태 코드

상태 코드의 첫 번째 자릿수는 응답 클래스를 정의합니다.

  • 1**: 정보—요청 수신, 지속적인 프로세스.

  • 2**: 성공

  • 3**: 리디렉션 — 요청을 완료하려면 추가 작업이 이뤄져야 합니다.

  • 4**: 클라이언트 오류 - 요청에 잘못된 구문이 포함되어 있거나 이행할 수 없습니다.

  • 5**: 서버 오류 - 서버가 유효한 요청을 이행하지 못했습니다.

RTSP 헤더

RTSP 헤더는 다음 필드로 구성됩니다.

  • CSeq- RTSP 요청 응답 쌍에 대한 시퀀스 번호를 지정합니다. 주어진 시퀀스 번호를 포함하는 모든 RTSP 요청의 경우, 동일한 수를 갖는 해당 응답이 있을 것입니다.

  • Content-Length- 방법의 내용 길이를 포함합니다. 즉, 마지막 헤더를 따르는 더블 CRLF 다음에 해당합니다.

  • TRANSPORT- 사용할 전송 프로토콜을 나타내고 매개 변수를 구성합니다.

  • SESSION—설정 응답에서 미디어 서버에서 시작된 RTSP 세션을 식별하고 프레젠테이션 URL의 삭제로 끝납니다.

RTSP ALG 대화 및 NAT 이해하기

이 주제는 일반적인 RTSP ALG 대화에 대한 세부 정보를 제공합니다.

일반적으로 RTP 및 RTCP 패킷은 양방향이며, 이는 클라이언트 또는 서버가 RTP 또는 RTCP 세션을 시작할 수 있음을 의미합니다.

그림 3 은 표준 RTSP 대화에서 패킷 캡처 샘플의 예를 설명합니다.

그림 3: RTSP ALG 대화 RTSP ALG Conversation

RTSP ALG는 표준 RTSP 대화에서 RTSP 샘플 패킷 캡처에 대해 다음 작업을 수행합니다.

  1. 설정 및 200개의 OK 메시지를 모니터링합니다.

  2. 협상 포트 수신(이 예에서 6543 및 8765)

  3. 서버에서 클라이언트까지 UDP 미디어 데이터에 대한 핀홀을 엽니다.

  4. 페이로드에서 IP 주소를 수신하고 NAT가 필요한 경우 주소를 변환합니다.

    표 1 은 RTSP 페이로드 IP NAT에 대해 설명합니다.

    표 1: RTSP 페이로드 IP NAT
     

    포워드(C->S)

    Reverse(S->C)

    핀 홀

    페이로드 IP 변환

    페이로드 포트 변환

    NAT 없음

    A/4321->B/554

    A/4321<-B/554

    B/9876->A/5678

    A/5678->B/9876

    해당(N/A)

    해당(N/A)

    소스 NAT(IPvx)

    A/4321->B/554

    A'/P'<-B/554

    B/9876->A'/P''

    A/5678->B/9876

    해당/A(*)

    5678<->P''

    대상 NAT(IPvx)

    A/4321->B'/554

    A/4321<-B/554

    B/9876->A/5678

    A/5678->B'/9876

    B' -> B(**)

    해당(N/A)

    NAT64

    A/4321->B'/554

    A'/Q'<-B/554

    B/9876->A'/Q''

    A/5678->B'/9876

    B'(IPv6)->B(IPv4)

    5678<->Q''

    NAT46

    A/4321->B''/554

    A''/R'<-B/554

    B/9876->A''/R''

    A/5678->B''/9876

    B''(IPv4)->B(IPv6)

    5678<->R''

    표 1에서 다음 문자와 기호가 사용됩니다.

    • A—RTSP 클라이언트 IP 주소

    • A'—RTSP 클라이언트의 IPv4 또는 IPv6 주소 변환

    • A'—번역된 IPv4 주소

    • A''—번역된 IPv6 주소

    • B—RTSP 서버 IP 주소

    • B'—목적지 NAT 이전의 RTSP 서버 IP 주소

    • B'—IPv6 영역의 RTSP 서버 IP 주소

    • B''— IPv4 영역의 RTSP 서버 IP 주소

    • P'—RTSP 클라이언트의 번역된 포트(4321에서 번역)

    • P'—RTSP 클라이언트의 번역된 포트(메시지 페이로드의 5678에서 번역)

    • Q'—RTSP 클라이언트의 번역(IPv6에서 IPv4로) 포트(4321에서 변환)

    • Q'—RTSP 클라이언트의 번역(IPv6에서 IPv4로) 포트(메시지 페이로드의 경우 5678에서 변환)

    • R'—RTSP 클라이언트의 번역(IPv4에서 IPv6로) 포트(4321에서 변환)

    • R'—RTSP 클라이언트의 번역(IPv4에서 IPv6로) 포트(메시지 페이로드의 경우 5678에서 변환)

    • (*) - RTSP 서버 IP 주소 B가 페이로드 메시지에 나타납니다. 번역할 필요가 없습니다.

    • (**) - 클라이언트에서 서버까지 페이로드 메시지에 IP 주소 B'가 나타납니다. B로 번역해야 합니다.

예: RTSP ALG 구성

이 예는 주니퍼 네트웍스 디바이스의 소스 NAT 풀을 사용하여 RTSP 트래픽을 통과하도록 RTSP ALG를 구성하는 방법을 보여줍니다.

요구 사항

  • 소스 NAT 풀의 모든 IP 주소에 대한 프록시 ARP를 구성합니다.

  • RTSP ALG를 활성화합니다.

  • RTSP ALG의 기본 개념을 이해합니다. RTSP ALG 이해를 참조하십시오.

개요

이 예에서 RTSP ALG는 RTSP 트래픽이 주니퍼 네트웍스 디바이스의 반대편에 있는 클라이언트와 서버 간에 미디어를 전송하도록 모니터링하고 허용하도록 구성됩니다.

구성

RTSP ALG 활성화

CLI 빠른 구성

예의 이 섹션을 빠르게 구성하려면, 아래 명령을 복사하여 텍스트 파일로 붙여 넣은 다음 모든 라인브러브를 제거하고, 네트워크 구성과 일치하는 데 필요한 세부 사항을 바꾸고 계층 수준에서 명령을 CLI [edit] 로 복사해 붙여 넣은 다음, 구성 모드에서 을(를) 입력 commit 합니다.

소스 NAT 풀의 모든 IP 주소에 대한 프록시 ARP를 구성하고 RTSP ALG를 활성화하려면:

구성 모드에서 을(를) 입력합니다 commit .

NAT 소스 풀 및 규칙 세트 및 정책 구성

CLI 빠른 구성

예의 이 섹션을 빠르게 구성하려면, 아래 명령을 복사하여 텍스트 파일로 붙여 넣은 다음 모든 라인브러브를 제거하고, 네트워크 구성과 일치하는 데 필요한 세부 사항을 바꾸고 계층 수준에서 명령을 CLI [edit] 로 복사해 붙여 넣은 다음, 구성 모드에서 을(를) 입력 commit 합니다.

구성 모드에서 을(를) 입력합니다 commit .

참고:

RTSP 클라이언트 및 서버 IP 주소를 잘 모르면 "da1"과 "sa1"을 "any"로 바꿀 수 있습니다.

단계별 절차

다음 예제에서는 구성 계층에서 다양한 수준의 탐색이 필요합니다. 이를 수행하는 방법에 대한 지침은 CLI 사용자 가이드의 구성 모드에서 CLI 편집기 사용을 참조하십시오.

소스 NAT 풀을 구성하려면 다음을 수행합니다.

  1. NAT 소스 풀을 생성합니다.

  2. 보안 영역 주소록 항목을 구성합니다.

  3. NAT 소스 규칙 집합을 생성합니다.

  4. 정책을 구성합니다.

결과

구성 모드에서 및 show security policies 명령을 입력하여 구성을 show security nat 확인합니다. 출력에 의도한 구성이 표시되지 않으면 이 예의 구성 지침을 반복하여 수정합니다.

디바이스 구성이 완료되면 구성 모드에서 을(를) 입력합니다 commit .

RTSP ALG 추적 옵션 구성

CLI 빠른 구성

이 예를 빠르게 구성하려면, 아래 명령을 복사하여 텍스트 파일로 붙여 넣은 다음 모든 라인브러브를 제거하고, 네트워크 구성을 일치하는 데 필요한 세부 사항을 바꾸고 계층 수준에서 명령을 CLI [edit] 로 복사해 붙여 넣은 다음, 구성 모드에서 을(를) 입력 commit 합니다.

단계별 절차

RTSP ALG 추적 옵션을 구성하려면 다음을 수행합니다.

  1. RTSP ALG 추적 옵션을 활성화합니다.

  2. 추적 작업에서 출력을 수신하도록 파일 이름을 구성합니다.

  3. 최대 추적 파일 크기를 지정합니다.

  4. 추적 출력 수준을 지정합니다.

결과

구성 모드에서 명령을 입력하여 구성을 확인합니다 show security alg . 출력에 의도한 구성이 표시되지 않으면 이 예의 구성 지침을 반복하여 수정합니다.

디바이스 구성이 완료되면 구성 모드에서 을(를) 입력합니다 commit .

확인

구성이 제대로 작동하는지 확인합니다.

RTSP ALG 확인

목적

RTSP ALG가 활성화되어 있는지 확인합니다.

작업

운영 모드에서 명령을 입력합니다 show security alg status .

의미

출력은 다음과 같이 RTSP ALG 상태를 보여줍니다.

  • 활성화 - RTSP ALG가 활성화되어 있는 것을 보여줍니다.

  • 비활성화 - RTSP ALG가 비활성화되어 있는 것을 보여줍니다.

RTSP ALG 제어 세션 확인

목적

제어 세션이 생성되고 모든 RTSP 제어 및 데이터 세션이 생성되었는지 확인합니다.

작업

운영 모드에서 명령을 입력합니다 show security flow session .

의미
  • Session ID—세션을 식별하는 번호입니다. 이 ID를 사용하여 정책 이름 또는 패킷 수와 같은 세션에 대한 자세한 정보를 얻을 수 있습니다.

  • Policy name-트래픽을 허용한 정책 이름.

  • In-수신 플로우(해당 소스 및 대상 포트 번호가 있는 소스 및 대상 IP 주소, 세션은 TCP이며, 이 세션의 소스 인터페이스는 ge-0/0/1.0)입니다.

  • Out-역 플로우(해당 소스 및 대상 포트 번호가 있는 소스 및 대상 IP 주소, 세션은 TCP, 이 세션의 대상 인터페이스는 fe-0/0/2.0)입니다.

RTSP ALG 플로우 게이트 정보 확인

목적

TCP 데이터 채널 연결을 위해 플로우 게이트가 열려 있는지 확인합니다.

작업

운영 모드에서 명령을 입력합니다 show security flow gate .

의미

샘플 출력은 TCP 데이터 채널 연결을 위해 플로우 게이트가 열려 있음을 보여줍니다.

RTSP 리소스 관리자 그룹 확인

목적

RTSP ALG에서 사용하는 총 리소스 관리자 그룹 및 활성 그룹의 수를 확인합니다.

작업

운영 모드에서 명령을 입력합니다 show security resource-manager group active .

의미

샘플 출력은 RTSP ALG에서 사용하는 리소스 관리자 그룹 및 활성 그룹의 총 수를 보여줍니다.

RTSP 리소스 정보 확인

목적

RTSP ALG에서 사용하는 총 리소스 및 활성 리소스 수를 확인합니다.

작업

운영 모드에서 명령을 입력합니다 show security resource-manager resource active .

의미

샘플 출력은 RTSP ALG에서 사용하는 총 리소스 및 활성 리소스 수를 보여줍니다.