이 페이지의
SIP ALG
요약 SIP(Session Initiation Protocol)는 인터넷을 통해 멀티미디어 세션을 시작, 수정 및 종료하기 위한 시그널링 프로토콜입니다. SIP는 단일 미디어 및 멀티 미디어 세션을 지원합니다.
SIP ALG의 이해
SIP(Session Initiation Protocol)는 인터넷상에서 멀티미디어 세션을 시작, 수정 및 종료하기 위한 IETF(Internet Engineering Task Force) 표준 프로토콜입니다. 이러한 세션에는 네트워크 환경에서 인스턴트 메시징 및 애플리케이션 수준의 모빌리티와 같은 기능을 갖춘 컨퍼런싱, 텔레포니 또는 멀티미디어가 포함될 수 있습니다.
Junos OS는 SIP as a Service를 지원하여 사용자가 구성한 정책을 기반으로 SIP를 허용 및 거부합니다. SIP는 Junos OS에서 미리 정의된 서비스이며 포트 5060을 대상 포트로 사용합니다.
SIP의 기능 중 하나는 세션 설명 정보를 배포하고 세션 중에 세션의 매개변수를 협상 및 수정하는 것입니다. 또한 SIP는 멀티미디어 세션을 종료하고, 통화 설정 시그널을 표시하고, 장애 표시를 제공하며, 단말 장치 등록 방법을 제공하는 데 사용됩니다.
세션 설명 정보는 INVITE 및 200-OK 메시지 또는 200-OK 및 ACK 메시지에 포함되며 세션의 멀티미디어 유형을 나타낸다. 예를 들어 음성이든 비디오이든 상관없이 말입니다. SIP는 세션을 설명하는 데 서로 다른 설명 프로토콜을 사용할 수 있지만, 주니퍼 네트웍스 ALG(Application Layer Gateway)는 SDP(Session Description Protocol)만 지원합니다.
SDP는 시스템이 멀티미디어 세션에 참여하는 데 사용할 수 있는 정보를 제공합니다. SDP에는 IP 주소, 포트 번호, 시간 및 날짜와 같은 정보가 포함될 수 있습니다. SDP 헤더의 IP 주소 및 포트 번호(각각 c= 및 m= 필드)는 클라이언트가 미디어 스트림을 수신하려고 하는 주소와 포트이며, SIP 요청이 시작된 IP 주소와 포트 번호는 아닙니다(동일할 수는 있지만).
SIP 메시지는 클라이언트에서 서버로의 요청과 세션(또는 통화)을 설정할 목적으로 서버에서 클라이언트로의 요청에 대한 응답으로 구성됩니다. UA(User Agent)는 통화의 단말 장치에서 실행되는 애플리케이션으로서
사용자를 대신하여 SIP 요청을 보내는 UAC(user agent client)
사용자 에이전트 서버(UAS) - 응답을 수신 수신하고 도착 시 사용자에게 통보
UAC 및 UAS는 특정 에이전트가 협상에서 하는 역할과 관련하여 정의됩니다.
UA의 예로는 SIP 프록시 서버와 폰이 있습니다.
이 항목에는 다음 섹션이 포함되어 있습니다.
SIP ALG 운영
시그널링과 미디어 스트림에는 2가지 유형의 SIP 트래픽이 있습니다. SIP 시그널링 트래픽은 클라이언트와 서버 간의 요청 및 응답 메시지로 구성되며 UDP 또는 TCP와 같은 전송 프로토콜을 사용합니다. 미디어 스트림은 전송 프로토콜을 사용하여 데이터(예: 오디오 데이터)를 전송합니다.
Junos OS 릴리스 12.3X48-D25 및 Junos OS 릴리스 17.3R1부터 SIP ALG는 TCP를 지원합니다. SIP ALG를 통한 TCP 지원은 서버를 자주 재등록하거나 새로 고칠 필요가 없도록 함으로써 서버 트래픽을 줄입니다.
기본적으로 Junos OS는 포트 5060에서 SIP 시그널링 메시지를 지원합니다. SIP 서비스를 허용하는 정책을 생성하여 포트를 구성할 수 있으며 소프트웨어는 여 타 유형의 트래픽과 마찬가지로 SIP 시그널링 트래픽을 필터링하여 트래픽을 허용하거나 거부할 수 있습니다. 그러나 미디어 스트림은 통화 중에 여러 번 변경할 수 있는 동적으로 할당된 포트 번호를 사용합니다. 고정 포트가 없으면 미디어 트래픽을 제어하는 정적 정책을 생성할 수 없습니다. 이 경우 디바이스는 SIP ALG를 호출합니다. 미디어 세션에 사용되는 장치 전송 포트는 사전에 알려지지 않았다. 그러나 SIP 협상에 사용되는 포트는 잘 알려져 있거나 사전 정의되어 있습니다. ALG는 다른 패킷과 쉽게 구별할 수 있는 제어 세션으로부터 패킷에 관심을 등록하고 미디어 세션(IP 주소 및 포트 모두)에 사용되는 전송 정보에 대한 협상을 검사합니다.
SIP ALG는 일치하는 IP, 포트, 전송 주소 및 프로토콜을 결정할 때 핀홀을 생성하며, 핀홀이 열릴 때 알려진 모든 정보로 식별됩니다.
SIP ALG는 SIP 트랜잭션을 모니터링하고 이러한 트랜잭션에서 추출한 정보를 기반으로 핀홀을 동적으로 생성 및 관리합니다. 주니퍼 네트웍스 SIP ALG는 모든 SIP 방법과 응답을 지원합니다. SIP 서비스를 허용하는 정적 정책을 생성하여 SIP 트랜잭션이 주니퍼 네트웍스 방화벽을 통과하도록 허용할 수 있습니다. 정책이 SIP 트래픽을 검사하도록 구성된 경우(또는 정책이 검사를 위해 일부 트래픽을 SIP ALG로 보내는 경우), 허용된 조치는 트래픽을 허용하거나(해당 핀홀이 열리는 경우) 트래픽을 거부합니다.
SIP ALG는 SDP가 포함된 SIP 메시지를 가로채 파서(parser)를 사용하여 핀홀을 생성하는 데 필요한 정보를 추출합니다. SIP ALG는 패킷의 SDP 부분을 검사하고 파서가 IP 주소 및 포트 번호와 같은 정보를 추출하며, 이는 SIP ALG가 핀홀 테이블에서 기록합니다. SIP ALG는 핀홀 테이블에 기록된 IP 주소 및 포트 번호를 사용하여 핀홀을 열고 미디어 스트림이 디바이스를 통과할 수 있도록 합니다.
디바이스가 NAT를 수행할 때 UA가 사용하는 전송 주소는 올바르지 않습니다. SIP ALG는 네트워크 주소를 변환하는 장치에 의해 할당된 변환된 포트 및 주소를 기반으로 전송 주소를 수정합니다. SDP가 암호화되면 디바이스는 메시지 내용을 추출하거나 수정할 수 없으므로 전송 주소를 수정할 수 없습니다. 해결 방법을 제공하기 위해, STUN 프로토콜은 클라이언트가 변환된 주소를 확인하고 SDP 메시지에서 새로 발견된 주소를 사용할 수 있도록 NAT 장비가 일부 콘-NAT(cone-NAT)를 수행하도록 요구)했습니다.
NEC SIP 제품은 조건부 지원됩니다.
SDP 세션 설명
SDP 세션 설명은 멀티미디어 세션을 발견하고 참여할 수 있는 충분한 정보를 전달하는 잘 정의된 형식입니다. 세션은 일련의 속성/값 쌍(라인당 1개)으로 설명됩니다. 속성 이름은 단일 문자이고 그 뒤에 =와 값이 뒤따릅니다. 옵션 값은 =*로 지정됩니다. 값은 ASCII 문자열 또는 공백으로 분리된 특정 유형의 시퀀스입니다. 속성 이름은 세션, 시간 또는 미디어와 같이 관련 구문 구조 내에서만 고유합니다.
SDP 세션 설명에서 미디어 수준 정보는 m= 필드로 시작됩니다.
SDP 설명에 있는 많은 필드 중 2개는 전송 레이어 정보를 포함하기 때문에 SIP ALG에 특히 유용합니다.
c=
연결 정보를 위한이 필드는 세션 또는 미디어 레벨에 표시할 수 있습니다. 이 형식은 다음과 같이 나타납니다.
c=<네트워크 유형><어드레스 유형><연결 주소>
Junos OS는 "IN"(인터넷용)만 네트워크 유형으로, "IPv4"를 주소 유형으로, 유니캐스트 IP 주소 또는 도메인 이름을 대상(연결) IP 주소로 지원합니다. Junos OS 릴리스 15.1X49-D40 및 Junos OS 릴리스 17.3R1부터 "IPv6" 주소 유형도 지원됩니다.
대상 IP 주소가 유니캐스트 IP 주소인 경우, SIP ALG는 미디어 설명 필드 m=에 지정된 IP 주소 및 포트 번호를 사용하여 핀홀을 만듭니다.
m=
미디어 발표용이 필드는 미디어 레벨에 나타나며 미디어에 대한 설명이 포함되어 있습니다. 이 형식은 다음과 같이 나타납니다.
m=<미디어><포트><전송><fmt 목록>
현재 Junos OS는 "RTP"를 애플리케이션 레이어 전송 프로토콜로 지원합니다. 포트 번호는 미디어 스트림의 대상 포트를 나타냅니다(원본은 원격 UA에 의해 할당됨). 형식 목록(fmt list)은 미디어가 사용하는 Application Layer 프로토콜에 대한 정보를 제공합니다.
이 소프트웨어는 RTP 및 RTCP(Real-Time Control Protocol)에 대해서만 포트를 엽니다. 모든 RTP 세션에는 해당 RTCP 세션이 있습니다. 따라서 미디어 스트림이 RTP를 사용할 때마다 SIP ALG는 RTP 및 RTCP 트래픽 모두에 대한 포트(핀홀 생성)를 예약해야 합니다. 기본적으로 RTCP의 포트 번호는 RTP 포트 번호보다 1개 높습니다.
핀홀 생성
각 핀홀(RTP 트래픽을 위한 핀홀과 RTCP 트래픽을 위한 다른 핀홀)은 동일한 대상 IP 주소를 공유합니다. IP 주소는 SDP 세션 설명의 c= 필드에서 나옵니다. c= 필드는 SDP 세션 설명의 세션 수준 또는 미디어 수준 부분에 나타날 수 있기 때문에 파서가 다음 규칙에 따라 IP 주소를 결정합니다(SDP 규칙에 따라):.
먼저 SIP ALG 파서가 미디어 레벨에서 IP 주소를 포함하는 c= 필드를 찾습니다. 필드가 있는 경우 파서가 IP 주소를 추출하고 SIP ALG가 해당 주소를 사용하여 미디어를 위한 핀홀을 만듭니다.
미디어 레벨에 c= 필드가 없는 경우, SIP ALG 파서가 세션 레벨의 c= 필드에서 IP 주소를 추출하고, SIP ALG는 해당 IP 주소를 사용하여 미디어를 위한 핀홀을 만듭니다. 세션 설명에 c= 필드가 포함되어 있지 않으면 프로토콜 스택에 오류가 표시되고 디바이스가 패킷을 드롭하고 이벤트를 기록합니다.
또한 SIP ALG는 신호 트래픽을 위한 핀홀을 엽니다. 이러한 신호 핀홀은 이전 신호 세션 타임아웃 후에 유용하며 이전 신호 세션과 일치하지 않는 타사 주소로 전송되는 신호 트래픽에도 유용합니다. 대상 IP 및 대상 포트만 지정한 RTP 또는 RTCP 핀홀과 달리 SIP ALG 신호 핀홀은 결코 노후화되지 않습니다.
SIP ALG는 필요한 경우 다음 헤더를 위한 신호 핀홀을 엽니다.
통해
연락처
경로
레코드 라우팅
SIP ALG는 핀홀을 생성하려면 다음 정보가 필요합니다. 이 정보는 SDP 세션 설명 또는 SIP 헤더(위에 나열된 대로)에서 제공됩니다.
프로토콜—UDP 또는 TCP.
소스 IP—알 수 없음.
소스 포트—알 수 없음.
대상 IP—파서가 미디어 또는 세션 수준에서 c= 필드에서 대상 IP 주소를 추출합니다.
대상 포트—파서가 미디어 레벨의 m= 필드에서 RTP의 대상 포트 번호를 추출하고 다음 공식을 사용하여 RTCP의 대상 포트 번호를 계산합니다.
RTP 포트 번호 + 1
수명—이 값은 패킷 통과를 허용하도록 핀홀이 열려 있는 시간(초 단위)을 나타냅니다. 패킷은 수명이 만료되기 전에 핀홀을 통과해야 합니다. 수명이 만료되면 SIP ALG가 핀홀을 제거합니다.
패킷이 수명 기간 내에 핀홀을 통과하면 SIP ALG는 패킷이 나온 방향에 대한 핀홀을 제거합니다.
그림 1 은 두 SIP 클라이언트 간의 호출 설정과 SIP ALG가 RTP 및 RTCP 트래픽을 허용하는 핀홀을 생성하는 방법을 설명합니다. 그림에서는 디바이스에 SIP를 허용하는 정책이 있다고 가정하고 SIP 시그널링 메시지를 위해 포트 5060을 여는 것으로 가정합니다.
그림 1: SIP ALG 호출 설정
대상 IP 주소가 0.0.0.0.0인 경우, SIP ALG는 세션이 대기 중임을 나타내는 RTP 및 RTCP 트래픽에 대한 핀홀을 생성하지 않습니다. 예를 들어, 전화 통신 중에 세션을 보류하기 위해 클라이언트 A는 Client B에게 대상 IP 주소가 0.0.0.0인 SIP 메시지를 보냅니다. 이를 통해 클라이언트 B에게 추후 공지가 있을 때까지 미디어를 전송하지 말 것을 나타냄 클라이언트 B가 미디어를 전송하면 디바이스가 패킷을 드롭합니다.
- SIP ALG에 대한 IPv6 지원 이해
- UDP 기반 SIP ALG를 위한 바쁜 램프 필드 지원 확장 이해하기
- SIP ALG 요청 방법 이해
- SIP ALG 구성 개요
- SIP ALG DoS 공격 차단 이해
- SIP ALG 알 수 없는 메시지 유형 이해
- SIP ALG 통화 기간 및 타임아웃 이해
SIP ALG에 대한 IPv6 지원 이해
IPv6는 NAT-PT 모드 및 NAT64 주소 변환과 함께 SIP ALG에서 지원됩니다.
SIP ALG는 NAT가 구성되고 향후 트래픽을 위해 핀홀을 여는 경우 페이로드를 업데이트하기 위해 IPv4 주소를 처리하는 것과 동일한 방식으로 IPv6 주소를 처리합니다.
특수 프로세싱은 다음과 같은 형식으로 이루어집니다.
IPv6 in SIP URIs—SIP URI는 IPv4 주소가 있는 URI와 동일합니다. 모든 URIS와 마찬가지로 IPv6 주소는 제곱 브래킷으로 동봉됩니다. IPv6 주소 블록은 콜론으로 분리됩니다. 많은 표기법에서 콜론은 호스트 이름 또는 IP 주소를 프로토콜 포트와 분리합니다. 전체 IPv6 주소를 구문 분석하고 포트를 분리하려면 주소가 사각형 브래킷 내에서 캡슐화됩니다.
IPv6 in SDP—SDP(Session Description Protocol)의 IPv6 주소에는 IP6 마커가 있습니다.
IPv6를 지원하는 SIP ALG는 다음과 같은 제한 사항을 가지고 있습니다.
영구 NAT를 사용하는 NAT64가 구현되면, SIP ALG는 NAT가 AOR(Address of Record)에서 구성된 경우 영구 NAT 바인딩 테이블에 NAT 변환을 추가합니다. 영구 NAT는 구성된 주소를 복제할 수 없기 때문에 동일한 주소에 구성된 NAT66 및 NAT64의 공존은 지원되지 않습니다.
동일한 소스 IP 주소에 대해 하나의 바인딩만 생성됩니다.
UDP 기반 SIP ALG를 위한 바쁜 램프 필드 지원 확장 이해하기
BLF(Busy Lamp Field)는 IP 폰의 신호등으로, 동일한 프라이빗 브랜치 교환(PBX)에 연결된 다른 확장이 사용 중인지 여부를 나타냅니다. 웹 인터페이스를 사용하여 BLF를 수동으로 구성할 수 있습니다. BLF가 구성되면 전화는 IP PBX에서 사용할 수 있는 리소스 목록을 구독하여 다른 확장에 대한 상태 정보를 통보합니다. BLF는 SIP(Session Initiation Protocol)를 통해 작동하며 구독 및 알림 메시지를 사용합니다. 일반적으로 휴대폰은 가입자이며 IP PBX는 통보자입니다.
전화가 IP PBX에 등록되면 IP PBX는 자원 목록의 상태를 휴대폰에 통보합니다. 예를 들어 리소스 목록이 큰 경우 NOTIFY 메시지의 본문도 커지게 됩니다. SIP ALG는 3,000바이트 SIP 메시지만 지원하므로 거대한 NOTIFY 메시지를 우회합니다. 메시지 본문에 BLF 인스턴스가 너무 많은 경우 페이로드가 변경되지 않고 게이트가 열리지 않습니다.
SIP ALG는 Junos OS 릴리스 12.3X48-D15 및 Junos OS Release 17.3R1부터 UDP 프로토콜에서 65,000바이트 SIP 메시지를 지원합니다. 확장형 BLF 애플리케이션에서 모든 인스턴스가 약 500바이트인 경우, SIP ALG는 하나의 SIP UDP 메시지에서 100개의 인스턴스를 지원합니다.
UDP 기반 SIP ALG에 대한 BLF 지원에는 다음 기능이 포함되어 있습니다.
이 장치는 65,000바이트 SIP 메시지를 보내고 수신할 수 있습니다.
SIP ALG는 65,000바이트 SIP 메시지를 파싱하고 필요한 경우 핀홀을 열 수 있습니다.
SIP ALG는 NAT가 구성되고 페이로드가 변경된 경우 새 점보 SIP 메시지를 재생성합니다.
SIP ALG 요청 방법 이해
SIP(Session Initiation Protocol) 트랜잭션 모델은 메시지의 목적을 나타내는 필드를 포함하는 많은 요청 및 응답 메시지를 포함합니다 method .
Junos OS는 다음과 같은 방법 유형과 응답 코드를 지원합니다.
초대—사용자가 다른 사용자를 세션에 참여하도록 초대하기 위해 초대 요청을 보냅니다. 초대 요청의 본문에는 세션 설명이 포함될 수 있습니다.
ACK—INVITE의 발신지인 사용자가 ACK 요청을 보내 INVITE 요청에 대한 최종 응답 수신을 확인합니다. 원래 초대 요청에 세션 설명이 포함되어 있지 않은 경우 ACK 요청에 세션 설명이 포함되어야 합니다.
옵션—UA(User Agent)는 SIP 프록시의 기능에 대한 정보를 입수합니다. 서버는 어떤 방법, 세션 설명 프로토콜 및 이를 지원하는 메시지 인코딩에 대한 정보로 응답합니다.
BYE—사용자가 세션을 포기하도록 BYE 요청을 보냅니다. 두 사용자의 BYE 요청이 자동으로 세션을 종료합니다.
취소—사용자가 취소 요청을 보내 보류 중인 초대 요청을 취소합니다. CANCEL 요청은 초대를 처리하는 SIP 서버가 CANCEL을 받기 전에 초대에 대한 최종 응답을 보낸 경우에는 영향을 미치지 않습니다.
등록—사용자는 SIP 등록 서버에 등록 요청을 보내 사용자의 현재 위치를 알려줍니다. SIP 등록자 서버는 REGISTER 요청에서 수신하는 모든 정보를 기록하고 사용자를 찾으려고 시도하는 모든 SIP 서버에 이 정보를 제공합니다.
정보—통화 시그널링 경로를 따라 세션 중 신호 정보를 전달하는 데 사용됩니다.
구독—원격 노드에서 현재 상태 및 상태 업데이트를 요청하는 데 사용됩니다.
알림—가입자가 구독한 상태의 변경 사항을 가입자에게 알리기 위해 전송됩니다.
참조—요청에서 제공되는 연락처 정보를 통해 수신자(Request-URI로 식별)를 제3자에게 추천하는 데 사용됩니다.
예를 들어, 사설 네트워크의 사용자 A가 퍼블릭 네트워크에서 사용자 C를 참조하는 경우, SIP ALG(Application Layer Gateway)는 사용자 C에 대해 새로운 IP 주소와 포트 번호를 할당하여 사용자 B가 사용자 C에게 연락할 수 있도록 합니다. 그러나 사용자 C가 등록에 등록되면 포트 매핑이 ALG NAT(Network Address Translation) 테이블에 저장되고 변환을 수행하기 위해 재사용됩니다.
업데이트—새 또는 업데이트된 SDP 정보를 위해 핀홀을 여는 데 사용됩니다. Via:, From:, to:, Call-ID:, Contact:, Route:, Record-Route: 헤더 필드가 수정되었습니다.
1xx, 202, 2xx, 3xx, 4xx, 5xx, 6xx 응답 코드—트랜잭션 상태를 나타내는 데 사용됩니다. 머리글 필드가 수정되었습니다.
SIP ALG 구성 개요
SIP ALG(Session Initiation Protocol Application Layer Gateway)는 SRX 디바이스에서 기본적으로 비활성화됩니다. 필요한 경우 CLI를 사용하여 활성화해야 합니다. 다른 디바이스에서는 기본적으로 활성화됩니다. SIP ALG 운영을 미세 조정하려면 다음 지침을 사용하십시오.
SIP 호출 활동을 제어합니다. 지침은 예: SIP ALG 통화 기간 및 타임아웃 설정을 참조하십시오.
DoS(Denial-of-Service) 플러드 공격으로부터 SIP 프록시 서버를 보호합니다. 지침은 예제: SIP ALG DoS 공격 보호 구성을 참조하십시오.
세션이 NAT(Network Address Translation) 모드 및 Route 모드인 경우 알 수 없는 메시지를 전달합니다. 지침은 예제: 알 수 없는 SIP ALG 메시지 유형 허용을 참조하십시오.
전용 SIP 통화 플로우를 수용합니다. 지침은 SIP ALG Hold Resources(CLI Procedure)를 참조하십시오.
SIP ALG DoS 공격 차단 이해
SIP(Session Initiation Protocol) 프록시 서버가 호출을 처리하는 기능은 SIP INVITE 요청이 반복되면 초기에 거부된 요청에 의해 영향을 받을 수 있습니다. DoS(Denial-of-Service) 보호 기능을 사용하면 디바이스를 구성하여 초대 요청 및 프록시 서버 회신을 모니터링할 수 있습니다. 응답에 실제 장애 응답이 아닌 401, 407xx, 487 및 488 이외의 3xx, 4 또는 5xx 응답 코드가 포함된 경우 요청을 차단해서는 안 됩니다. SIP ALG 및 NAT의 이해를 참조하십시오. ALG는 요청의 소스 IP 주소와 프록시 서버의 IP 주소를 테이블에 저장합니다. 그런 다음, 디바이스는 이 테이블에 대한 모든 초대 요청을 검사하고 구성 가능한 수초(기본값은 3입니다)를 위해 테이블의 항목과 일치하는 패킷을 폐기합니다. 모든 프록시 서버에 대한 반복 초대 요청을 모니터링 및 거부하도록 디바이스를 구성하거나 대상 IP 주소를 지정하여 특정 프록시 서버를 보호할 수 있습니다. SIP 공격 보호는 전 세계적으로 구성됩니다.
SIP ALG 알 수 없는 메시지 유형 이해
이 기능을 사용하면 식별되지 않은 SIP(Session Initiation Protocol) 메시지가 장비에서 처리하는 방법을 지정할 수 있습니다. 기본값은 알려지지 않은(지원되지 않는) 메시지를 삭제하는 것입니다.
보안을 손상시킬 수 있기 때문에 알 수 없는 메시지를 허용하는 것은 권장하지 않습니다. 그러나 보안 테스트 또는 프로덕션 환경에서 이 명령은 서로 다른 벤더 장비와의 상호 운영성 문제를 해결하는 데 유용합니다. 알 수 없는 SIP 메시지를 허용하면 네트워크 운영에 도움이 되므로 나중에 VoIP(Voice-over-IP) 트래픽을 분석하여 일부 메시지가 삭제된 이유를 파악할 수 있습니다. 알 수 없는 SIP 메시지 유형 기능을 사용하면 NAT(Network Address Translation) 모드와 Route 모드 모두에서 알 수 없는 메시지 유형이 포함된 SIP 트래픽을 수용하도록 디바이스를 구성할 수 있습니다.
이 옵션은 지원되는 VoIP 패킷으로 식별된 수신 패킷에만 적용됩니다. 패킷을 식별할 수 없는 경우 항상 삭제됩니다. 패킷이 지원되는 프로토콜로 식별되고 알 수 없는 메시지 유형을 허용하도록 디바이스를 구성한 경우 해당 메시지는 처리하지 않고 전송됩니다.
SIP ALG 통화 기간 및 타임아웃 이해
통화 기간 및 타임아웃 기능은 SIP(Session Initiation Protocol) 통화 활동을 제어하고 네트워크 리소스를 관리하는 데 도움을 줍니다.
일반적으로 클라이언트 중 하나가 BYE 또는 CANCEL 요청을 보낼 때 통화가 종료됩니다. SIP ALG(Application Layer Gateway)는 BYE 또는 CANCEL 요청을 가로채 해당 통화에 대한 모든 미디어 세션을 제거합니다. 예를 들어, 호출 시 클라이언트가 BYE 또는 CANCEL 요청을 전송하지 못하게 하는 이유나 문제가 있을 수 있습니다. 이 경우 통화가 무기한 진행되면 디바이스에서 리소스가 소비될 수 있습니다.
통화에 하나 이상의 음성 채널이 있을 수 있습니다. 각 음성 채널에는 2개의 세션(또는 2개의 미디어 스트림)이 있으며, 하나는 RTP(Real-Time Transport Protocol) 트래픽을 위한 것이고 하나는 RTCP(Real-Time Control Protocol) 시그널링을 위한 것입니다. 세션을 관리할 때 디바이스는 각 음성 채널의 세션을 하나의 그룹으로 간주합니다. 타임아웃 및 통화 기간 설정은 각 세션이 아닌 그룹에 적용됩니다.
다음 매개 변수가 SIP 통화 활동을 관리합니다.
inactive-media-timeout
—이 매개 변수는 그룹 내의 어떤 미디어(RTP 또는 RTCP) 트래픽 없이 통화가 활성 상태를 유지할 수 있는 최대 시간(초 단위)을 나타냅니다. 통화 중 RTP 또는 RTCP 패킷이 발생할 때마다 이 타임아웃은 리셋됩니다. 비활동 기간이 이 설정을 초과하면 미디어를 위해 SIP ALG가 열었던 방화벽의 임시 개방(핀홀)이 닫힙니다. 기본 설정은 120초, 범위는 10~2550초입니다. 타임아웃이 완료되면 미디어 리소스(세션 및 핀홀)가 제거되고 이 통화의 모든 미디어 리소스가 제거되면 장치에 대한 SIP 통화도 종료됩니다.maximum-call-duration
—이 매개 변수는 호출의 절대 최대 길이를 설정합니다. 호출이 이 매개 변수 설정을 초과하면 SIP ALG는 통화를 중단시키고 미디어 세션을 해제합니다. 기본 설정은 720분이며 범위는 3~720분입니다.t1-interval
—이 매개 변수는 단말 장치 간의 트랜잭션에 대한 라운드트립 시간 추정치(초 단위)를 지정합니다. 기본값은 500밀리초입니다. 많은 SIP 타이머가 t1 간격(RFC 3261에서 설명)으로 확장되기 때문에 t1 간격 타이머의 값을 변경할 때 해당 SIP 타이머도 조정됩니다.t4-interval
—이 매개 변수는 메시지가 네트워크에 남아 있는 최대 시간을 지정합니다. 기본값은 5초이고 범위는 5~10초입니다. t4 간격(RFC 3261에서 설명)으로 확장되는 많은 SIP 타이머가 t4 간격 타이머의 값을 변경하면 해당 SIP 타이머도 조정됩니다.c-timeout
—이 매개 변수는 프록시에서의 INVITE 트랜잭션 타임아웃을 몇 분 만에 지정합니다. 기본값은 3입니다. SIP ALG가 중간에 있기 때문에 초대 트랜잭션 타이머 값 B(즉, 64 * T1) = 32초)를 사용하는 대신 프록시에서 타이머 값을 가져옵니다.
SIP ALG Hold 리소스 이해
사용자가 통화를 보류하면 SIP ALG(Session Initiation Protocol Application Layer Gateway)는 핀홀 및 변환 컨텍스트와 같은 SDP(Session Description Protocol) 미디어 리소스를 릴리스합니다. 사용자가 통화를 재개하면 초대 요청 메시지가 새로운 SDP 제안 및 응답을 협상하고 SIP ALG가 미디어 스트림에 대한 리소스를 재할당합니다. 미디어 설명이 이전 설명과 동일하더라도 미디어 설명을 위해 새로운 번역 IP 주소와 포트 번호가 생성될 수 있습니다. 이는 RFC 3264 SDP(Session Description Protocol)를 이용한 제안/응답 모델과 호환됩니다.
일부 전용 SIP 구현에서는 UA(User Agent) 모듈이 새로운 SDP INVITE 제안을 무시하고 이전 협상의 SDP 제안을 계속 사용할 수 있도록 콜 플로우를 설계했습니다. 이 기능을 수용하려면 통화가 재개되면 재사용을 위해 통화가 보류된 경우 SDP 미디어 리소스를 유지하도록 디바이스를 구성해야 합니다.
SIP ALG Hold Resources 유지(CLI 절차)
전용 SIP 호출 플로우를 수용하려면 다음을 수행합니다.
user@host# set security alg sip retain-hold-resource
SIP ALG 및 NAT 이해
NAT(Network Address Translation) 프로토콜은 프라이빗 서브넷의 여러 호스트가 단일 공용 IP 주소를 공유하여 인터넷에 액세스할 수 있도록 지원합니다. 전송 트래픽의 경우 NAT는 프라이빗 서브넷 내 호스트의 프라이빗 IP 주소를 공용 IP 주소로 대체합니다. 수신 트래픽의 경우 공용 IP 주소가 다시 전용 주소로 변환되고 메시지가 프라이빗 서브넷의 적절한 호스트로 라우팅됩니다.
SIP 메시지에는 SIP 헤더와 SIP 본문의 IP 주소가 포함되어 있기 때문에 SIP 서비스에 NAT를 사용하는 것이 더욱 복잡합니다. SIP 서비스와 NAT를 사용할 때 SIP 헤더에는 발신자와 수신기에 대한 정보가 포함되어 있으며 장치는 이 정보를 변환하여 외부 네트워크로부터 숨깁니다. SIP 본문에는 미디어 전송을 위한 IP 주소 및 포트 번호가 포함된 SDP(Session Description Protocol) 정보가 포함되어 있습니다. 이 장치는 SDP 정보를 변환하여 미디어를 송수신하기 위해 리소스를 할당합니다.
SIP 메시지의 IP 주소와 포트 번호를 대체하는 방법은 메시지의 방향에 따라 달라집니다. 보내는 메시지의 경우 클라이언트의 전용 IP 주소와 포트 번호가 주니퍼 네트웍스 방화벽의 공용 IP 주소 및 포트 번호로 대체됩니다. 수신 메시지의 경우 방화벽의 공용 주소가 클라이언트의 전용 주소로 대체됩니다.
초대 메시지가 방화벽을 통해 전송되면 SIP ALG(Application Layer Gateway)는 메시지 헤더에서 콜 테이블로 정보를 수집하며, 이 메시지는 후속 메시지를 올바른 단말 장치로 전달합니다. ACK 또는 200 OK와 같은 새로운 메시지가 도착하면 ALG는 "From:, To:, 및 Call-ID:" 필드를 콜 테이블과 비교하여 메시지의 호출 컨텍스트를 식별합니다. 기존 호출과 일치하는 새로운 초대 메시지가 도착하면 ALG는 이를 REINVITE로 처리합니다.
SDP 정보가 포함된 메시지가 도착하면 ALG는 포트를 할당하고 포트와 SDP의 포트 사이에 NAT 매핑을 만듭니다. SDP는 RTP(Real-Time Transport Protocol) 및 RTCP(Real-Time Control Protocol) 채널에 대한 순차적 포트를 요구하기 때문에 ALG는 연속적으로 짝수 홀수 포트를 제공합니다. 포트 쌍을 찾을 수 없는 경우 SIP 메시지를 폐기합니다.
IPv6는 NAT-PT 모드 및 NAT64 주소 변환과 함께 SIP ALG에서 지원됩니다.
이 항목에는 다음 섹션이 포함되어 있습니다.
- 발신 통화
- 수신 통화
- 전달된 통화
- 통화 종료
- 전화 다시 초대 메시지
- 콜 세션 타이머
- 전화 취소
- 분기
- SIP 메시지
- SIP 헤더
- SIP 본문
- SIP NAT 시나리오
- SIP 응답 클래스
- SIP IPv6 ALG를 위한 NAT66(Pure IPv6 모드) NAT 모드
- NAT-PT
- NAT64
- 기절 및 SIP ALG
발신 통화
SIP 호출이 내부에서 외부 네트워크로의 SIP 요청 메시지로 시작되면 NAT는 SDP의 IP 주소와 포트 번호를 대체하고 IP 주소 및 포트 번호를 주니퍼 네트웍스 방화벽과 연결합니다. Via, Contact, Route 및 Record-Route SIP 헤더 필드(있는 경우)도 방화벽 IP 주소에 연결됩니다. ALG는 재전송 및 SIP 응답 메시지에 사용하기 위해 이러한 매핑을 저장합니다.
그런 다음 SIP ALG는 방화벽에 핀홀을 열어 SDP 및 Via, Contact 및 Record-Route 헤더 필드의 정보를 기반으로 협상된 동적 할당된 포트상의 디바이스를 통해 미디어를 허용할 수 있습니다. 핀홀은 수신 패킷이 Contact, Via 및 Record-Route IP 주소 및 포트에 도달할 수 있도록 합니다. 반환 트래픽을 처리할 때 ALG는 원래 Contact, Via, Route 및 Record-Route SIP 필드를 패킷에 다시 삽입합니다.
수신 통화
수신 통화는 공용 네트워크에서 퍼블릭 정적 NAT 주소 또는 디바이스의 IP 주소 인터페이스로 시작됩니다. 정적 NAT는 내부 호스트를 가리키는 정적으로 구성된 IP 주소입니다. 인터페이스 IP 주소는 내부 호스트가 SIP 레지스트리에 전송하는 등록 메시지를 모니터링할 때 ALG에 의해 동적으로 기록됩니다. 디바이스가 수신 SIP 패킷을 수신하면 세션을 설정하고 패킷 페이로드를 SIP ALG로 전달합니다.
ALG는 SIP 요청 메시지(최초 초대 메시지)를 검사하고 SDP의 정보를 바탕으로 나가는 미디어를 위한 게이트를 엽니다. 200 OK 응답 메시지가 도착하면 SIP ALG는 IP 주소 및 포트에서 NAT를 수행하고 아웃바운드 방향으로 핀홀을 엽니다. (열린 게이트는 짧은 라이브 시간을 가지며, 200 OK 응답 메시지가 빠르게 수신되지 않을 경우 타임 아웃됩니다.)
200 OK 응답이 도착하면 SIP 프록시가 SDP 정보를 검사하고 각 미디어 세션의 IP 주소와 포트 번호를 읽습니다. 디바이스의 SIP ALG는 주소와 포트 번호에서 NAT를 수행하고, 아웃바운드 트래픽을 위한 핀홀을 열고, 인바운드 방향의 게이트에 대한 타임아웃을 새로 고칩니다.
200 OK를 위해 ACK가 도착하면 SIP ALG도 통과합니다. 메시지에 SDP 정보가 포함되어 있으면 SIP ALG는 IP 주소와 포트 번호가 이전 INVITE에서 변경되지 않도록 보장합니다. 있는 경우 ALG는 오래된 핀홀을 삭제하고 미디어가 통과할 수 있도록 새 핀홀을 만듭니다. 또한 ALG는 Via, Contact 및 Record-Route SIP 필드를 모니터링하고 해당 필드가 변경된 것으로 판단되면 새로운 핀홀을 엽니다.
전달된 통화
전달된 통화는 예를 들어 네트워크 외부의 사용자 A가 네트워크 내부에서 사용자 B를 호출하고 사용자 B가 네트워크 외부의 사용자 C에게 전화를 전달할 때입니다. SIP ALG는 사용자 A의 초대를 정상적인 수신 호출로 처리합니다. 그러나 ALG가 네트워크 외부의 B에서 C로 전달된 통화를 검사하고 B와 C가 동일한 인터페이스를 사용하여 도달했다는 것을 알면 미디어가 사용자 A와 사용자 C 사이에 직접 전달되기 때문에 방화벽에서 핀홀이 열리지 않습니다.
통화 종료
BYE 메시지가 전화를 종료합니다. 디바이스가 BYE 메시지를 수신하면 다른 메시지와 마찬가지로 헤더 필드를 변환합니다. 그러나 BYE 메시지는 200 OK를 가진 수신기에 의해 인정되어야하기 때문에 ALG는 200 OK의 전송 시간을 허용하기 위해 5 초 동안 통화 해제를 지연합니다.
전화 다시 초대 메시지
메시지를 다시 초대하면 새로운 미디어 세션이 통화에 추가되고 기존 미디어 세션이 제거됩니다. 새로운 미디어 세션이 호출에 추가되면 방화벽에서 새 핀홀이 열리고 새로운 주소 바인딩이 생성됩니다. 프로세스는 원래 호출 설정과 동일합니다. 모든 미디어 세션 또는 미디어 핀홀이 통화에서 제거되면 BYE 메시지가 수신되면 통화가 제거됩니다.
콜 세션 타이머
예방 조치로 SIP ALG는 하드 타임아웃 값을 사용하여 통화가 존재할 수 있는 최대 시간을 설정합니다. 이렇게 하면 다음 이벤트 중 하나가 발생할 경우 디바이스가 보호됩니다.
통화 중에 엔드 시스템이 중단되고 BYE 메시지가 수신되지 않습니다.
악의적인 사용자는 SIP ALG를 공격하기 위해 BYE를 전송하지 않습니다.
SIP 프록시의 취약한 구현은 Record-Route를 처리하지 못하며 BYE 메시지를 전송하지 않습니다.
네트워크 장애로 인해 BYE 메시지가 수신되지 않습니다.
전화 취소
양쪽 모두 취소 메시지를 보내 전화를 취소할 수 있습니다. 취소 메시지를 수신하면 SIP ALG는 개방된 경우 방화벽을 통해 핀홀을 닫고 주소 바인딩을 해제합니다. 리소스를 해제하기 전에 ALG는 제어 채널의 나이 아웃을 약 5초 지연시켜 최종 200 OK가 통과할 수 있도록 합니다. 487 또는 비200 응답이 도착했는지 여부에 관계없이 5초의 타임아웃이 만료되면 통화가 종료됩니다.
분기
Forking을 사용하면 SIP 프록시가 단일 초대 메시지를 여러 목적지로 동시에 보낼 수 있습니다. 단일 통화를 위해 여러 200개의 OK 응답 메시지가 도착하면 SIP ALG는 수신된 처음 200개의 OK 메시지로 통화 정보를 구문 분석하지만 업데이트합니다.
SIP 메시지
SIP 메시지 형식은 SIP 헤더 섹션과 SIP 본문으로 구성됩니다. 요청 메시지에서 헤더 섹션의 첫 번째 줄은 메소드 유형, 요청-URI 및 프로토콜 버전을 포함하는 요청 줄입니다. 응답 메시지에서 첫 번째 줄은 상태 코드가 포함된 상태 줄입니다. SIP 헤더에는 시그널링에 사용되는 IP 주소와 포트 번호가 포함되어 있습니다. SIP 본문은 헤더 섹션에서 빈 줄로 분리되어 세션 설명 정보(옵션)를 위해 예약되어 있습니다. Junos OS는 현재 SDP만 지원합니다. SIP 본문에는 미디어 전송에 사용되는 IP 주소 및 포트 번호가 포함되어 있습니다.
SIP 헤더
다음 샘플 SIP 요청 메시지에서 NAT는 헤더 필드의 IP 주소를 대체하여 외부 네트워크로부터 숨깁니다.
INVITE bob@10.150.20.5
SIP/2.0 Via: SIP/2.0/UDP10.150.20.3
:5434 From: alice@10.150.20.3
To: bob@10.150.20.5
Call-ID: a12abcde@10.150.20.3
Contact: alice@10.150.20.3
:5434 Route: <sip:netscreen@10.150.20.3
:5060> Record-Route: <sip:netscreen@10.150.20.3
:5060>
IP 주소 변환이 수행되는 방법은 메시지의 유형과 방향에 따라 달라집니다. 메시지는 다음 중 어느 것이든 가능합니다.
인바운드 요청
아웃바운드 응답
아웃바운드 요청
인바운드 응답
표 1 은 각 케이스에서 NAT가 어떻게 수행되는지 보여줍니다. ALG는 여러 헤더 필드의 경우 메시지가 네트워크 내부 또는 외부에서 들어오는지 여부 이상을 결정합니다. 또한 어떤 클라이언트가 통화를 시작했는지, 메시지가 요청인지 또는 응답인지를 결정해야 합니다.
인바운드 요청 (퍼블릭에서 프라이빗으로) |
받는 사람: |
도메인을 로컬 주소로 대체 |
보낸 사람: |
없음 |
|
통화 ID: |
없음 |
|
통해: |
없음 |
|
요청-URI: |
ALG 주소를 로컬 주소로 대체 |
|
연락처: |
없음 |
|
기록 경로: |
없음 |
|
경로: |
없음 |
|
아웃바운드 응답 (프라이빗에서 퍼블릭으로) |
받는 사람: |
ALG 주소를 로컬 주소로 대체 |
보낸 사람: |
없음 |
|
통화 ID: |
없음 |
|
통해: |
없음 |
|
요청-URI: |
N/A |
|
연락처: |
로컬 주소를 ALG 주소로 대체 |
|
기록 경로: |
로컬 주소를 ALG 주소로 대체 |
|
경로: |
없음 |
|
아웃바운드 요청 (프라이빗에서 퍼블릭으로) |
받는 사람: |
없음 |
보낸 사람: |
로컬 주소를 ALG 주소로 대체 |
|
통화 ID: |
없음 |
|
통해: |
로컬 주소를 ALG 주소로 대체 |
|
요청-URI: |
없음 |
|
연락처: |
로컬 주소를 ALG 주소로 대체 |
|
기록 경로: |
로컬 주소를 ALG 주소로 대체 |
|
경로: |
로컬 주소를 ALG 주소로 대체 |
|
아웃바운드 응답 (퍼블릭에서 프라이빗으로) |
받는 사람: |
없음 |
보낸 사람: |
ALG 주소를 로컬 주소로 대체 |
|
통화 ID: |
없음 |
|
통해: |
ALG 주소를 로컬 주소로 대체 |
|
요청-URI: |
N/A |
|
연락처: |
없음 |
|
기록 경로: |
ALG 주소를 로컬 주소로 대체 |
|
경로: |
ALG 주소를 로컬 주소로 대체 |
SIP 본문
SIP 본문의 SDP 정보에는 ALG가 미디어 스트림을 위한 채널을 생성하는 데 사용하는 IP 주소가 포함됩니다. 또한 SDP 섹션의 변환은 리소스, 즉 포트 번호를 할당하여 미디어를 송수신합니다.
샘플 SDP 섹션에서 발췌한 다음 발췌문은 리소스 할당을 위해 변환된 필드를 보여줍니다.
o=user 2344234 55234434 IN IP410.150.20.3
c=IN IP410.150.20.3
m=audio43249
RTP/AVP 0
SIP 메시지에는 두 개 이상의 미디어 스트림이 포함될 수 있습니다. 이 개념은 여러 파일을 전자 메일 메시지에 첨부하는 것과 유사합니다. 예를 들어, SIP 클라이언트에서 SIP 서버로 전송되는 INVITE 메시지에는 다음과 같은 필드가 있을 수 있습니다.
c=IN IP410.123.33.4
m=audio33445
RTP/AVP 0 c=IN IP410.123.33.4
m=audio33447
RTP/AVP 0 c=IN IP410.123.33.4
m=audio33449
RTP/AVP 0
Junos OS는 각 방향에 대해 최대 6개의 SDP 채널을 지원하며 통화당 총 12개 채널을 지원합니다. 자세한 내용은 SIP ALG 이해(Understanding the SIP ALG)를 참조하십시오.
SIP NAT 시나리오
그림 2 와 그림 3 에는 SIP 통화 초대장과 200 OK가 나와 있습니다. 그림 2에서 ph1은 sIP 초대 메시지를 ph2로 보냅니다. 굵은 글꼴로 표시된 헤더 필드의 IP 주소가 디바이스에서 어떻게 변환되는지 알아보십시오.
초대 메시지의 SDP 섹션은 발신자가 미디어를 수신할 의향이 있는 위치를 나타냅니다. Media Pinhole에는 RTCP 및 RTP를 위한 2개의 포트 번호(52002 및 52003)가 포함되어 있습니다. Via/Contact Pinhole은 SIP 시그널링을 위한 포트 번호 5060을 제공합니다.
그림 3의 200 OK 응답 메시지에서 초대 메시지에서 수행된 변환이 반전되는 방법을 관찰합니다. 이 메시지의 IP 주소는 공개적으로 변환되지 않지만 미디어 스트림이 프라이빗 네트워크에 액세스할 수 있도록 게이트가 열립니다.


SIP 응답 클래스
SIP 응답은 SIP 트랜잭션에 대한 상태 정보를 제공하며 응답 코드와 이유 구문을 포함합니다. SIP 응답은 다음 클래스로 분류됩니다.
정보(100~199)—요청 수신, 계속 요청 처리
성공(200~299)—성공적으로 수신, 이해 및 수락된 조치.
리디렉션(300 ~399)—요청을 완료하는 데 필요한 추가 조치.
클라이언트 오류(400 ~ 499)—요청은 잘못된 구문을 포함하거나 이 서버에서 이행할 수 없습니다.
서버 오류(500 ~ 599)—서버가 유효한 요청을 이행하지 못했습니다.
Global Failure (600 ~ 699)—요청은 어느 서버에서나 이행할 수 없습니다.
표 2 는 현재 SIP 응답의 전체 목록을 제공합니다.
정보 |
100 시도 |
180 링 |
181 통화 전달 중 |
182 큐드 |
183 세션 진행 상황 |
|
|
성공 |
200 OK |
202년 승인 |
|
리디렉션 |
300개 복수 선택 |
301 영구 이동 |
302 일시적으로 이동 |
305 프록시 사용 |
380 대체 서비스 |
|
|
클라이언트 오류 |
400 잘못된 요청 |
401 인증되지 않은 경우 |
402개 결제 필요 |
403 금지 |
404 발견되지 않음 |
405 메소드 허용되지 않음 |
|
406 허용되지 않음 |
407 프록시 인증 필요 |
408 타임아웃 요청 |
|
409 충돌 |
410 사라 |
411 길이 필요 |
|
413 너무 큰 엔티티 요청 |
414 URL 너무 큰 요청 |
415 지원되지 않는 미디어 유형 |
|
420 불량 확장 |
480 일시적으로 사용할 수 없음 |
481 통화 레그/트랜잭션이 존재하지 않음 |
|
482 루프 감지 |
483 홉이 너무 많습니다. |
484 주소 미완료 |
|
485 모호함 |
486 바쁜 여기 |
487 요청 취소됨 |
|
488 여기에서는 허용되지 않습니다. |
|
|
|
서버 오류 |
500 서버 내부 오류 |
501 구현되지 않음 |
502 Bad Gateway |
502 서비스 이용 불가 |
504 게이트웨이 타임아웃 |
505 SIP 버전 지원되지 않음 |
|
글로벌 장애 |
전 세계 600곳의 바쁜 일상 |
603 감소 |
604 어디에도 존재하지 않음 |
606 허용되지 않음 |
|
|
SIP IPv6 ALG를 위한 NAT66(Pure IPv6 모드) NAT 모드
SIP IPv6 ALG는 NAT44와 마찬가지로 NAT66을 지원합니다. NAT66(IPv6 NAT)은 NAT44(IPv4 NAT)와 유사한 소스 NAT 및 정적 NAT 기능을 제공합니다.
NAT-PT
네트워크 주소 변환 프로토콜 변환(NAT-PT)(RFC 2766)은 IPv4 및 IPv6 데이터그램의 프로토콜 독립 변환을 통해 IPv6 전용 노드와 IPv4 전용 노드 간의 통신을 허용하는 프로토콜 변환 메커니즘으로, 세션에 대한 상태 정보가 필요하지 않습니다.
NAT-PT는 IPv6 주소에서 IPv4 주소로, 그 반대의 경우 일반 NAT에 의해 구현됩니다. SIP ALG는 주소가 일반 NAT에서 처리되는 것처럼 페이로드에서 이러한 주소 변환을 처리합니다.
NAT-PT는 IPv6 네트워크의 주소를 IPv4 네트워크의 주소와 연결하고 그 반대의 경우 주소 영역 사이를 통과하는 데이터그램에 대한 투명한 라우팅을 제공합니다.
NAT-PT의 주요 이점은 최종 장치와 네트워크가 IPv4 주소 또는 IPv6 주소 중 하나를 실행할 수 있고 트래픽은 어느 쪽에서나 시작될 수 있다는 것입니다.
NAT64
NAT64는 IPv6 호스트가 IPv4 서버와 통신할 수 있도록 하는 메커니즘입니다. IPv6와 IPv4 주소 매핑을 유지하려면 NAT64가 필요합니다. 이러한 주소 매핑은 시스템 관리자에 의해 정적으로 구성되거나(스테이트리스 변환) IPv6 네트워크의 첫 번째 패킷이 NAT64에 도달하면 자동으로 생성됩니다(상태 저장).
NAT64는 영구 NAT를 사용하여 디바이스에 구현됩니다. 첫 번째 SIP 요청 메시지(첫 번째 패킷은 IPv6에서만 전달되어야 함)가 DUT를 가로지르면 주소 바인딩이 생성되고 패킷이 양방향으로 전송될 수 있습니다.
NAT64 메커니즘은 IPv6 패킷을 IPv4 패킷으로 변환하며, IPv6 클라이언트는 유니캐스트 UDP, TCP 또는 ICMP를 사용하여 IPv4 서버에 연락할 수 있습니다. NAT-PT 및 NAT64 동작은 유사해 보이지만 이러한 메커니즘은 다르게 구현됩니다.
영구 NAT를 사용하는 NAT64가 구현되면 IPv6 지원을 사용하는 SIP ALG는 NAT가 레코드 주소에 구성된 경우 영구 NAT 바인딩 테이블에 NAT 변환을 추가합니다. 영구 NAT는 구성된 주소를 복제할 수 없기 때문에 동일한 주소에 구성된 NAT66 및 NAT64의 공존은 지원되지 않습니다.
동일한 소스 IP 주소에 대해 하나의 바인딩만 생성됩니다.
기절 및 SIP ALG
NAT(Session Traversal Utilities for NAT)는 VOIP가 NAT 및 방화벽을 통해 작동하도록 하는 솔루션입니다.
이전에 기절은 SIP ALG 없이 작동했습니다. 즉, 영구 NAT가 구성되었을 때 SIP ALG가 포함되지 않았습니다.
STUN은 영구 NAT가 구성되면 SIP ALG 및 SIP ALG와 공존할 수 있습니다.
SIP 등록 및 NAT를 사용한 수신 SIP ALG 통화 지원 이해
SIP(Session Initiation Protocol) 등록은 SIP 프록시 및 위치 서버가 사용자가 연락하고자 하는 위치 또는 위치를 식별할 수 있는 검색 기능을 제공합니다. 사용자가 등록기관에 등록 메시지를 보내 하나 이상의 연락처 위치를 등록합니다. REGISTER 메시지의 To 및 Contact 필드에는 그림 4와 같이 레코드 주소(URI)와 하나 이상의 Contact URIS가 포함되어 있습니다. 등록은 기록 주소와 연락처 주소 또는 주소를 연결하는 위치 서비스에서 바인딩을 만듭니다.
이 장치는 나가는 REGISTER 메시지를 모니터링하고, 이러한 주소에서 네트워크 주소 변환(NAT)을 수행하며, 수신 NAT 테이블에 정보를 저장합니다. 그런 다음, 초대 메시지가 네트워크 외부에서 수신되면 장치는 수신 NAT 테이블을 사용하여 초대 메시지를 라우팅할 내부 호스트를 식별합니다. SIP 프록시 등록 서비스를 활용하여 디바이스의 송신 인터페이스에서 인터페이스 소스 NAT 또는 NAT 풀을 구성하여 수신 통화를 허용할 수 있습니다. 인터페이스 소스 NAT는 소규모 사무실에서 수신 전화를 처리하는 데 적합한 반면, 대규모 네트워크 또는 엔터프라이즈 환경에 소스 NAT 풀을 설정하는 것이 좋습니다.
인터페이스 소스 NAT 또는 소스 NAT 풀을 사용한 수신 통화 지원은 SIP 및 H.323 서비스에만 지원됩니다. 수신 통화의 경우, Junos OS는 현재 UDP 및 TCP만 지원합니다. 도메인 이름 해석도 현재 지원되지 않습니다. 따라서 URIS는 그림 4와 같이 IP 주소를 포함해야 합니다.

예: SIP ALG 통화 기간 및 타임아웃 설정
이 예에서는 통화 기간과 미디어 비활성 타임아웃을 설정하는 방법을 보여줍니다.
요구 사항
시작하기 전에 SIP 통화 활동을 제어하는 데 사용되는 통화 기간 및 타임아웃 기능을 검토합니다. SIP ALG 통화 기간 및 타임아웃에 대한 이해를 참조하십시오.
개요
통화 기간 및 비활성 미디어 타임아웃 기능은 네트워크 리소스를 보존하고 처리량을 극대화하는 데 도움이 됩니다.
매개 변수는 maximum-call-duration
통화가 활성화될 수 있는 최대 허용 시간 길이를 설정합니다. 지속 시간이 초과되면 SIP ALG가 통화를 중단시키고 미디어 세션을 공개합니다. 기본 설정은 720분이며 범위는 3~720분입니다. 또한 이 설정은 통화가 제대로 종료되지 않는 경우 대역폭을 확보합니다.
매개 변수는 inactive-media-timeout
그룹 내의 어떤 미디어(RTP 또는 RTPC) 트래픽 없이 통화가 활성 상태를 유지할 수 있는 최대 시간(초 단위)을 나타냅니다. 통화 중 RTP 또는 RTCP 패킷이 발생할 때마다 이 타임아웃은 리셋됩니다. 비활성 기간이 이 설정을 초과하는 경우 방화벽의 미디어를 위한 SIP ALG 임시 개방(핀홀)이 닫힙니다. 기본 설정은 120초, 범위는 10~2550초입니다. 타임아웃이 완료되면 미디어 리소스(세션 및 핀홀)가 제거되지만 통화가 종료되지 않습니다.
이 예에서는 통화 지속 시간이 36000초로 설정되고 미디어 비활성 타임아웃이 90초로 설정됩니다.
구성
절차
GUI 빠른 구성
단계별 절차
SIP ALG 통화 기간 및 미디어 비활성 타임아웃을 설정하려면 다음을 수행합니다.
보안 >ALG > 구성을 선택합니다.
SIP 탭을 선택합니다.
최대 통화 기간 필드에 을 입력합니다
600
.비활성화된 미디어 타임아웃 필드에 을 입력합니다
90
.OK를 클릭하여 구성을 확인하고 후보 구성으로 저장합니다.
디바이스 구성을 완료한 경우 커밋 옵션 >Commit을 클릭합니다.
단계별 절차
SIP ALG 통화 기간 및 미디어 비활성 타임아웃을 설정하려면 다음을 수행합니다.
SIP ALG 통화 기간을 구성합니다.
[edit] user@host# set security alg sip maximum-call-duration 600
SIP ALG 비활성 미디어 타임아웃을 구성합니다.
[edit] user@host# set security alg sip inactive-media-timeout 90
디바이스 구성을 완료한 경우 구성을 커밋합니다.
[edit] user@host# commit
확인
구성이 제대로 작동하는지 확인하려면 명령을 입력합니다 show security alg sip
.
예: SIP ALG DoS 공격 방어 구성
이 예에서는 DoS 공격 보호 기능을 구성하는 방법을 보여줍니다.
요구 사항
시작하기 전에 SIP 호출 활동을 제어하는 데 사용되는 DoS 공격 보호 기능을 검토하십시오. SIP ALG DoS 공격 방어에 대한 이해를 참조하십시오.
개요
SIP Proxy 서버가 호출을 처리하는 기능은 SIP INVITE 요청이 반복되어 서버가 처음에 거부된 요청에 의해 영향을 받을 수 있습니다. DoS 보호 기능을 사용하면 장치에 대한 초대 요청 및 프록시 서버 회신을 모니터링하도록 구성할 수 있습니다.
이 예에서 디바이스는 서비스가 거부된 반복 초대 요청으로부터 단일 SIP 프록시 서버(10.1.1.3)를 보호하도록 구성됩니다. 패킷은 5초 동안 드롭되며, 그 후 디바이스는 해당 소스에서 INVITE 요청을 포워딩을 재개합니다.
구성
절차
GUI 빠른 구성
단계별 절차
SIP ALG DoS 공격 차단을 구성하려면 다음을 수행합니다.
-
Configure>Security>ALG를 선택합니다.
-
SIP 탭을 선택합니다.
-
공격 차단 활성화 영역에서 선택된 서버 옵션을 클릭합니다.
-
Destination IP 상자에서 Add를 입력
10.1.1.3
하고 클릭합니다. -
OK를 클릭하여 구성을 확인하고 후보 구성으로 저장합니다.
-
디바이스 구성을 완료한 경우 Commit Options>Commit을 클릭합니다.
단계별 절차
SIP ALG DoS 공격 차단을 구성하려면 다음을 수행합니다.
-
단일 SIP 프록시 서버를 보호하기 위해 디바이스를 구성합니다.
[edit] user@host# set security alg sip application-screen protect deny destination-ip 10.1.1.3
참고:IPv6는 NAT-PT(Network Address Translation Protocol Translation) 모드 및 NAT64 주소 변환과 함께 SIP ALG에서 지원됩니다.
<estination-ip-address> 유형은 IPv4 주소에서 IP prefix로 변경되어 모든 종류의 IP 주소를 지원하며, 이에 따라 여러 IP 주소를 허용하도록 접두사도 지원됩니다.
-
거부 기간 동안 디바이스를 구성합니다.
[edit] user@host# set security alg sip application-screen protect deny timeout 5
-
디바이스 구성을 완료한 경우 구성을 커밋합니다.
[edit] user@host# commit
확인
구성이 제대로 작동하는지 확인하려면 명령을 입력합니다 show security alg sip
.
예: 알 수 없는 SIP ALG 메시지 유형 허용
이 예에서는 알 수 없는 메시지 유형을 허용하는 방법을 보여줍니다.
요구 사항
시작하기 전에 디바이스에서 식별되지 않은 SIP 메시지가 어떻게 처리되는지 검토합니다. SIP ALG 알 수 없는 메시지 유형 이해하기를 참조하십시오.
개요
이 예에서는 NAT 모드와 Route 모드 모두에서 SIP 트래픽에서 알 수 없는 메시지 유형을 허용하도록 디바이스를 구성합니다. 기본값은 알려지지 않은(지원되지 않는) 메시지를 삭제하는 것입니다.
구성
절차
GUI 빠른 구성
단계별 절차
알 수 없는 SIP ALG 메시지 유형을 허용하려면 다음을 수행합니다.
Configure>Security>ALG를 선택합니다.
SIP 탭을 선택합니다.
Enable Permit NAT 적용 확인란을 선택합니다.
Enable Permit 라우팅 확인란을 선택합니다.
OK를 클릭하여 구성을 확인하고 후보 구성으로 저장합니다.
디바이스 구성을 완료한 경우 Commit Options>Commit을 클릭합니다.
단계별 절차
알 수 없는 SIP ALG 메시지 유형을 허용하려면 다음을 수행합니다.
SIP 트래픽에서 알 수 없는 메시지 유형을 허용하도록 디바이스를 구성합니다.
[edit] user@host# set security alg sip application-screen unknown-message permit-nat-applied permit-routed
디바이스 구성을 완료한 경우 구성을 커밋합니다.
[edit] user@host# commit
확인
구성이 제대로 작동하는지 확인하려면 명령을 입력합니다 show security alg sip
.
예: 수신 SIP 통화를 위한 인터페이스 소스 NAT 구성
이 예에서는 수신 SIP 통화에 NAT를 사용할 수 있도록 공용 존 인터페이스에서 소스 NAT 규칙을 구성하는 방법을 보여줍니다.
요구 사항
시작하기 전에 NAT가 SIP ALG와 어떻게 작동하는지 알아보십시오. SIP ALG 및 NAT의 이해를 참조하십시오.
개요
외부 존에 있는 SIP 프록시 서버를 사용하는 2개 존 시나리오에서는 공용 또는 외부 존의 인터페이스에서 Source NAT 규칙을 구성하여 수신 통화에 NAT를 사용할 수 있습니다.
이 예( 그림 5 참조)에서 phone1은 프라이빗 존의 ge-0/0/0 인터페이스에 있고, Phone2와 프록시 서버는 공용 존의 ge-0/0/2 인터페이스에 있습니다. 공용 인터페이스 ge-0/0/2.0에서 소스 NAT 규칙을 구성합니다.
토폴로지
그림 5 는 수신 SIP 호출에 대한 소스 NAT를 보여줍니다.

이 예에서는 프라이빗 및 퍼블릭이라는 존을 생성하고 인터페이스에 할당한 후 소스 NAT 규칙 집합에서 사용할 주소록을 구성합니다. 그런 다음 sip-phone라는 규칙 세트와 소스 주소 10.1.1.2/32의 모든 패킷과 일치하는 Phone1이라는 규칙을 정의하여 소스 NAT를 구성합니다.
마지막으로, 프라이빗 존과 퍼블릭 존 간의 모든 SIP 트래픽을 허용하는 보안 정책을 생성합니다.
구성
절차
CLI 빠른 구성
예제의 이 섹션을 신속하게 구성하려면 다음 명령을 복사하여 텍스트 파일에 붙여넣고, 줄 바꿈을 제거하고, 네트워크 구성에 필요한 세부 정보를 변경하고, 명령을 계층 수준에서 CLI [edit]
에 복사하여 붙여넣은 다음 구성 모드에서 입력 commit
합니다.
set interfaces ge-0/0/0 unit 0 family inet address 10.1.1.1/24 set interfaces ge-0/0/2 unit 0 family inet address 172.16.1.1/24 set security zones security-zone private address-book address phone1 10.1.1.2/32 set security zones security-zone private interfaces ge-0/0/0.0 set security zones security-zone public address-book address proxy 172.16.1.3/32 set security zones security-zone public address-book address phone2 172.16.1.2/32 set security zones security-zone public interfaces ge-0/0/2.0 set security nat source rule-set sip-phones from zone private set security nat source rule-set sip-phones to zone public set security nat source rule-set sip-phones rule phone1 match source-address 10.1.1.2/32 set security nat source rule-set sip-phones rule phone1 then source-nat interface set security policies from-zone private to-zone public policy outgoing match source-address phone1 set security policies from-zone private to-zone public policy outgoing match destination-address phone2 set security policies from-zone private to-zone public policy outgoing match destination-address proxy set security policies from-zone private to-zone public policy outgoing match application junos-sip set security policies from-zone private to-zone public policy outgoing then permit set security policies from-zone public to-zone private policy incoming match source-address phone2 set security policies from-zone public to-zone private policy incoming match destination-address phone1 set security policies from-zone public to-zone private policy incoming match source-address proxy set security policies from-zone public to-zone private policy incoming match application junos-sip set security policies from-zone public to-zone private policy incoming then permit
단계별 절차
다음 예제에서는 구성 계층에서 다양한 레벨을 탐색해야 합니다. 그 방법에 대한 지침은 CLI 사용자 가이드의 Configuration 모드에서 CLI Editor를 사용하는 것을 참조하십시오.
퍼블릭 존 인터페이스에서 소스 NAT 규칙을 구성하려면 다음을 수행합니다.
-
인터페이스를 구성합니다.
[edit] user@host# set interfaces ge-0/0/0 unit 0 family inet address 10.1.1.1/24 user@host# set interfaces ge-0/0/2 unit 0 family inet address 172.16.1.1/24
-
존을 구성하고 인터페이스에 할당합니다.
[edit security zones] user@host# set security-zone private interfaces ge-0/0/0.0 user@host# set security-zone public interfaces ge-0/0/2.0
-
주소록을 구성하고 주소를 만듭니다.
[edit security zones] user@host# set security-zone private address-book address phone1 10.1.1.2/32 user@host# set security-zone public address-book address proxy 172.16.1.3/32 user@host# set security-zone public address-book address phone2 172.16.1.2/32
-
소스 NAT 규칙 집합을 구성합니다.
[edit security nat source] user@host# set rule-set sip-phones from zone private user@host# set rule-set sip-phones to zone public user@host# set rule-set sip-phones rule phone1 match source-address 10.1.1.2/32 user@host# set rule-set sip-phones rule phone1 then source-nat interface
-
영구 소스 NAT 변환을 활성화합니다.
[edit security nat source] user@host# set address-persistent
-
나가는 SIP 트래픽을 허용하도록 보안 정책을 구성합니다.
[edit security policies from-zone private to-zone public policy outgoing] user@host# set match source-address phone1 user@host# set match destination-address phone2 user@host# set match destination-address proxy user@host# set match application junos-sip user@host# set then permit
-
수신 SIP 트래픽을 허용하도록 보안 정책을 구성합니다.
[edit security policies from-zone public to-zone private policy incoming] user@host# set match source-address phone2 user@host# set match destination-address phone1 user@host# set match source-address proxy user@host# set match application junos-sip user@host# set then permit
결과
구성 모드에서 , show security zones
show security policies
및 show security nat
명령을 입력show interfaces
하여 구성을 확인합니다. 출력이 의도한 구성을 표시하지 않는 경우 이 예제의 구성 지침을 반복하여 수정합니다.
[edit] user@host# show interfaces ge-0/0/0 { unit 0 { family inet { address 10.1.1.1/24; } } } ge-0/0/2 { unit 0 { family inet { address 172.16.1.1/24; } } }
[edit] user@host# show security zones security-zone private { address-book { address phone1 10.1.1.2/32; } interfaces { ge-0/0/0.0; } } security-zone public { address-book { address proxy 172.16.1.3/32; address phone2 172.16.1.2/32; } interfaces { ge-0/0/2.0; } } [edit] user@host# show security nat source { rule-set sip-phones { from zone private; to zone public; rule phone1 { match { source-address 10.1.1.2/32; } then { source-nat { interface; } } } } } [edit] user@host# show security policies from-zone private to-zone public { policy outgoing { match { source-address phone1; destination-address [ phone2 proxy ]; application junos-sip; } then { permit; } } } from-zone public to-zone private { policy incoming { match { source-address [ phone2 proxy ]; destination-address phone1 ; application junos-sip; } then { permit; } } }
디바이스 구성을 완료한 경우 구성 모드에서 입력 commit
합니다.
확인
구성이 올바르게 작동하는지 확인하려면 다음 작업을 수행합니다.
소스 NAT 규칙 사용량 검증
목적
소스 NAT 규칙과 일치하는 트래픽이 있는지 확인합니다.
작업
운영 모드에서 명령을 입력합니다 show security nat source rule all
. Translation hits 필드를 보고 규칙과 일치하는 트래픽을 확인합니다.
user@host> show security nat source rule all source NAT rule: phone1 Rule-set: sip-phones Rule-Id : 1 Rule position : 1 From zone : private To zone : public Match Source addresses : 0.0.0.0 - 255.255.255.255 Destination port : 0 - 0 Action : interface Persistent NAT type : N/A Persistent NAT mapping type : address-port-mapping Inactivity timeout : 0 Max session number : 0 Translation hits : 0 Successful sessions : 0 Failed sessions : 0 Number of sessions : 0
의미
소스 Translation hits
NAT 규칙과 일치하는 트래픽이 없다는 필드가 표시됩니다.
SIP ALG 상태 확인
목적
SIP ALG가 시스템에서 활성화되어 있는지 확인합니다.
작업
운영 모드에서 명령을 입력합니다 show security alg status
.
user@host> show security alg status ALG Status : DNS : Enabled FTP : Enabled H323 : Disabled MGCP : Disabled MSRPC : Enabled PPTP : Enabled RSH : Disabled RTSP : Disabled SCCP : Disabled SIP : Enabled SQL : Enabled SUNRPC : Enabled TALK : Enabled TFTP : Enabled IKE-ESP : Disabled
의미
출력은 다음과 같이 SIP ALG 상태를 보여줍니다.
-
활성화—SIP ALG가 활성화됨을 보여줍니다.
-
비활성화—SIP ALG가 비활성화됨을 보여줍니다.
예: 수신 SIP 통화를 위한 소스 NAT 풀 구성을 통한 네트워크 복잡성 감소
이 예에서는 수신 SIP 호출에 대해 NAT를 사용할 수 있도록 외부 인터페이스에서 소스 NAT 풀을 구성하여 네트워크 복잡성을 줄이는 방법을 보여줍니다.
요구 사항
시작하기 전에 NAT가 SIP ALG와 어떻게 작동하는지 알아보십시오. SIP ALG 및 NAT의 이해를 참조하십시오.
개요
외부 또는 공용 존에 있는 SIP 프록시 서버를 사용하는 2개 존 시나리오에서는 공용 존에 대한 인터페이스에서 NAT 풀을 구성하여 수신 통화에 NAT를 사용할 수 있습니다.
이 예( 그림 6 참조)에서 phone1은 프라이빗 존에, Phone2는 프록시 서버가 공용 존에 있습니다. NAT를 수행하도록 소스 NAT 풀을 구성합니다. 또한 프라이빗에서 퍼블릭 존으로 SIP 트래픽을 허용하는 정책을 생성할 수 있습니다. 이를 통해 프라이빗 존의 phone1은 퍼블릭 존의 프록시 서버에 등록할 수 있으며, 공용 존에서 프라이빗 존으로 수신 전화를 수신할 수도 있습니다.
토폴로지
그림 6 은 수신 통화를 위한 소스 NAT 풀을 보여줍니다.

이 예에서는 소스 NAT를 다음과 같이 구성합니다.
-
172.16.1.20/32에서 172.16.1.40/32까지의 IP 주소 범위를 포함하도록 sip-nat-pool이라고 하는 소스 NAT 풀을 정의합니다.
-
소스 IP 주소 10.1.1.3/24와 프라이빗 존에서 퍼블릭 존에 패킷을 일치시키기 위해 규칙 sip-r1과 sip-nat라는 소스 NAT 규칙 집합을 만듭니다. 패킷 매칭을 위해 소스 주소는 sip-nat-pool의 IP 주소 중 하나로 변환됩니다.
-
인터페이스 ge-0/0/2.0에서 주소 172.16.1.20/32 ~ 172.16.1.40/32에 대한 프록시 ARP를 구성합니다. 이를 통해 시스템은 이러한 주소에 대한 인터페이스에서 수신된 ARP 요청에 응답할 수 있습니다.
구성
절차
CLI 빠른 구성
예제의 이 섹션을 신속하게 구성하려면 다음 명령을 복사하여 텍스트 파일에 붙여넣고, 줄 바꿈을 제거하고, 네트워크 구성에 필요한 세부 정보를 변경하고, 명령을 계층 수준에서 CLI [edit]
에 복사하여 붙여넣은 다음 구성 모드에서 입력 commit
합니다.
set interfaces ge-0/0/0 unit 0 family inet address 10.1.1.1/24 set interfaces ge-0/0/2 unit 0 family inet address 172.16.1.1/24 set security zones security-zone private address-book address phone1 10.1.1.3/32 set security zones security-zone private interfaces ge-0/0/0.0 set security zones security-zone public address-book address proxy 172.16.1.3/32 set security zones security-zone public address-book address phone2 172.16.1.4/32 set security zones security-zone public interfaces ge-0/0/2.0 set security nat source pool sip-nat-pool address 172.16.1.20/32 to 172.16.1.40/32 set security nat source address-persistent set security nat source rule-set sip-nat from zone private set security nat source rule-set sip-nat to zone public set security nat source rule-set sip-nat rule sip-r1 match source-address 10.1.1.3/24 set security nat source rule-set sip-nat rule sip-r1 then source-nat pool sip-nat-pool set security nat proxy-arp interface ge-0/0/2.0 address 172.16.1.20/32 to 172.16.1.40/32 set security policies from-zone private to-zone public policy outgoing match source-address phone1 set security policies from-zone private to-zone public policy outgoing match destination-address any set security policies from-zone private to-zone public policy outgoing match application junos-sip set security policies from-zone private to-zone public policy outgoing then permit set security policies from-zone public to-zone private policy incoming match source-address phone2 set security policies from-zone public to-zone private policy incoming match destination-address phone1 set security policies from-zone public to-zone private policy incoming match application junos-sip set security policies from-zone public to-zone private policy incoming then permit
단계별 절차
다음 예제에서는 구성 계층에서 다양한 레벨을 탐색해야 합니다. 그 방법에 대한 지침은 CLI 사용자 가이드의 Configuration 모드에서 CLI Editor를 사용하는 것을 참조하십시오.
수신 통화에 대한 소스 NAT 풀을 구성하려면 다음을 수행합니다.
-
인터페이스를 구성합니다.
[edit] user@host# set interfaces ge-0/0/0 unit 0 family inet address 10.1.1.1/24 user@host# set interfaces ge-0/0/2 unit 0 family inet address 172.16.1.1/24
-
존을 구성하고 인터페이스를 할당합니다.
[edit security zones] user@host# set security-zone private interfaces ge-0/0/0.0 user@host# set security-zone public interfaces ge-0/0/2.0
-
주소록을 구성합니다.
[edit security zones] user@host# set security-zone private address-book address phone1 10.1.1.3/32 user@host# set security-zone public address-book address proxy 172.16.1.3/32 user@host# set security-zone public address-book address phone2 172.16.1.4/32
-
소스 NAT 풀을 구성합니다.
[edit security nat] user@host# set source pool sip-nat-pool address 172.16.1.20/32 to 172.16.1.40/32
-
규칙으로 설정된 소스 NAT 규칙을 구성합니다.
[edit security nat source rule-set sip-nat] user@host# set from zone private user@host# set to zone public user@host# set rule sip-r1 match source-address 10.1.1.3/24 user@host# set rule sip-r1 then source-nat pool sip-nat-pool
-
영구 NAT를 활성화합니다.
[edit security nat] user@host# set source address-persistent
-
프록시 ARP를 구성합니다.
[edit security nat] user@host# set proxy-arp interface ge-0/0/2.0 address 172.16.1.20/32 to 172.16.1.40/32
-
나가는 SIP 트래픽을 허용하도록 보안 정책을 구성합니다.
[edit security policies from-zone private to-zone public policy outgoing] set match source-address phone1 set match destination-address any set match application junos-sip set then permit
-
수신 SIP 트래픽을 허용하도록 보안 정책을 구성합니다.
[edit security policies from-zone public to-zone private policy incoming] set match source-address phone2 set match destination-address phone1 set match application junos-sip set then permit
결과
구성 모드에서 , show security zones
show security nat
및 show security policies
명령을 입력show interfaces
하여 구성을 확인합니다. 출력이 의도한 구성을 표시하지 않는 경우 이 예제의 구성 지침을 반복하여 수정합니다.
[edit] user@host# show interfaces ge-0/0/0 { unit 0 { family inet { address 10.1.1.1/24; } } } ge-0/0/2 { unit 0 { family inet { address 172.16.1.1/24; } } } [edit] user@host# show security zones security-zone private { address-book { address phone1 10.1.1.3/32; } interfaces { ge-0/0/0.0; } } security-zone public { address-book { address proxy 172.16.1.3/32; address phone2 172.16.1.4/32; } interfaces { ge-0/0/2.0; } } user@host# show security nat source { pool sip-nat-pool { address { 172.16.1.20/32 to 172.16.1.40/32; } } address-persistent; rule-set sip-nat { from zone private; to zone public; rule sip-r1 { match { source-address 10.1.1.3/24; } then { source-nat { pool { sip-nat-pool; } } } } } } proxy-arp { interface ge-0/0/2.0 { address { 172.16.1.20/32 to 172.16.1.40/32; } } } [edit] user@host# show security policies from-zone private to-zone public { policy outgoing { match { source-address phone1; destination-address any; application junos-sip; } then { permit; } } } from-zone public to-zone private { policy incoming { match { source-address phone2; destination-address phone1; application junos-sip; } then { permit; } } }
디바이스 구성을 완료한 경우 구성 모드에서 입력 commit
합니다.
확인
구성이 올바르게 작동하는지 확인하려면 다음 작업을 수행합니다.
소스 NAT 풀 사용량 검증
목적
소스 NAT 풀에서 IP 주소를 사용하는 트래픽이 있는지 확인합니다.
작업
운영 모드에서 명령을 입력합니다 show security nat source pool all
.
user@host> show security nat source pool all
Total pools: 1 Pool name : sip-nat-pool Pool id : 4 Routing instance : default Host address base : 0.0.0.0 Port : [1024, 63487] port overloading : 1 Total addresses : 21 Translation hits : 0 Address range Single Ports Twin Ports 172.16.1.20 - 172.16.1.40 0 0
의미
이 Translation hits
필드는 소스 NAT 풀에서 IP 주소가 사용하는 트래픽이 없다는 것을 보여줍니다.
소스 NAT 규칙 사용량 검증
목적
소스 NAT 규칙과 일치하는 트래픽이 있는지 확인합니다.
작업
운영 모드에서 명령을 입력합니다 show security nat source rule all
.
user@host> show security nat source rule all
source NAT rule: sip-r1 Rule-set: sip-nat Rule-Id : 1 Rule position : 1 From zone : private To zone : public Match Source addresses : 0.0.0.0 - 255.255.255.255 Destination port : 0 - 0 Action : interface Persistent NAT type : N/A Persistent NAT mapping type : address-port-mapping Inactivity timeout : 0 Max session number : 0 Translation hits : 0 Successful sessions : 0 Failed sessions : 0 Number of sessions : 0
의미
소스 Translation hits
NAT 규칙과 일치하는 트래픽이 없다는 필드가 표시됩니다.
SIP ALG 상태 확인
목적
SIP ALG가 시스템에서 활성화되어 있는지 확인합니다.
작업
운영 모드에서 명령을 입력합니다 show security alg status
.
user@host> show security alg status
ALG Status : DNS : Enabled FTP : Enabled H323 : Disabled MGCP : Disabled MSRPC : Enabled PPTP : Enabled RSH : Disabled RTSP : Disabled SCCP : Disabled SIP : Enabled SQL : Enabled SUNRPC : Enabled TALK : Enabled TFTP : Enabled IKE-ESP : Disabled
의미
출력은 다음과 같이 SIP ALG 상태를 보여줍니다.
-
•활성화—SIP ALG가 활성화됨을 보여줍니다.
-
•비활성화—SIP ALG가 비활성화된 것을 보여줍니다.
SIP ALG의 보안 정책 검증
목적
퍼블릭 존과 프라이빗 존 간의 소스 NAT가 설정되었는지 확인합니다.
작업
운영 모드에서 명령을 입력합니다 show security policies
.
user@host> show security policies
from-zone private to-zone public { policy outgoing { match { source-address phone1; destination-address any; application junos-sip; } then { permit; } } from-zone public to-zone private { policy incoming { match { source-address phone2; destination-address phone1; application junos-sip; } then { permit; } }
의미
샘플 출력은 퍼블릭 존과 프라이빗 존 간의 소스 NAT가 설정된 것을 보여줍니다.
예: 수신 SIP 호출에 대한 정적 NAT 구성
이 예에서는 프라이빗 존의 발신자가 퍼블릭 존의 프록시 서버에 등록할 수 있도록 정적 NAT 매핑을 구성하는 방법을 보여줍니다.
요구 사항
시작하기 전에 NAT가 SIP ALG와 어떻게 작동하는지 알아보십시오. SIP ALG 및 NAT의 이해를 참조하십시오.
개요
SIP 프록시 서버가 외부 또는 공용 존에 있는 경우 공용 인터페이스에서 정적 NAT를 구성하여 프라이빗 존의 발신자가 프록시 서버에 등록할 수 있도록 할 수 있습니다.
이 예( 그림 7 참조)에서 phone1은 프라이빗 존의 ge-0/0/0 인터페이스에 있고, Phone2와 프록시 서버는 공용 존의 ge-0/0/2 인터페이스에 있습니다. 공용 존의 패킷과 대상 주소 172.16.1.3/32를 일치시키기 위해 Phone1이라는 규칙을 사용하여 수신 시프(incoming-sip)라는 정적 NAT 규칙 집합을 만듭니다. 패킷 매칭을 위해 대상 IP 주소는 전용 주소 10.1.1.3/32로 변환됩니다. 인터페이스 ge-0/0/2.0에서 주소 172.16.1.3/32에 대한 프록시 ARP도 생성할 수 있습니다. 이를 통해 시스템은 이러한 주소에 대한 인터페이스에서 수신된 ARP 요청에 응답할 수 있습니다. 마지막으로, 수신이라는 보안 정책을 생성하여 공용 존에서 프라이빗 존으로 SIP 트래픽을 허용합니다.
수신 SIP 호출을 위한 정적 NAT를 구성할 때는 프라이빗 존의 각 프라이빗 주소에 대해 하나의 퍼블릭 주소를 구성해야 합니다.
구성
절차
CLI 빠른 구성
예제의 이 섹션을 신속하게 구성하려면 다음 명령을 복사하여 텍스트 파일에 붙여넣고, 줄 바꿈을 제거하고, 네트워크 구성에 필요한 세부 정보를 변경하고, 명령을 계층 수준에서 CLI [edit]
에 복사하여 붙여넣은 다음 구성 모드에서 입력 commit
합니다.
set interfaces ge-0/0/0 unit 0 family inet address 10.1.1.1/24 set interfaces ge-0/0/2 unit 0 family inet address 172.16.1.1/24 set security zones security-zone private interfaces ge-0/0/0.0 set security zones security-zone private address-book address phone1 10.1.1.5/32 set security zones security-zone public interfaces ge-0/0/2.0 set security zones security-zone public address-book address proxy 172.16.1.3/32 set security zones security-zone public address-book address phone2 172.16.1.4/32 set security nat static rule-set incoming-sip from zone public set security nat static rule-set incoming-sip rule phone1 match destination-address 172.16.1.3/32 set security nat static rule-set incoming-sip rule phone1 then static-nat prefix 10.1.1.3/32 set security nat proxy-arp interface ge-0/0/2.0 address 172.16.1.3/32 set security policies from-zone public to-zone private policy incoming match source-address phone2 set security policies from-zone public to-zone private policy incoming match source-address proxy set security policies from-zone public to-zone private policy incoming match destination-address phone1 set security policies from-zone public to-zone private policy incoming match application junos-sip set security policies from-zone public to-zone private policy incoming then permit set security policies from-zone private to-zone public policy outgoing match source-address phone1 set security policies from-zone private to-zone public policy outgoing match destination-address phone2 set security policies from-zone private to-zone public policy outgoing match destination-address proxy set security policies from-zone private to-zone public policy outgoing match application junos-sip set security policies from-zone private to-zone public policy outgoing then permit
단계별 절차
다음 예제에서는 구성 계층에서 다양한 레벨을 탐색해야 합니다. 그 방법에 대한 지침은 CLI 사용자 가이드의 Configuration 모드에서 CLI Editor를 사용하는 것을 참조하십시오.
수신 통화에 정적 NAT를 구성하려면 다음을 수행합니다.
-
인터페이스를 구성합니다.
[edit] user@host# set interfaces ge-0/0/0 unit 0 family inet address 10.1.1.1/24 user@host# set interfaces ge-0/0/2 unit 0 family inet address 172.16.1.1/24
-
보안 존을 생성합니다.
[edit security zones] user@host# set security-zone private interfaces ge-0/0/0.0 user@host# set security-zone public interfaces ge-0/0/2.0
-
보안 존에 주소를 할당합니다.
[edit security zones] user@host# set security-zone private address-book address phone1 10.1.1.5/32 user@host# set security-zone public address-book address proxy 172.16.1.3/32 user@host# set security-zone public address-book address phone2 172.16.1.4/32
-
규칙으로 정적 NAT 규칙을 만듭니다.
[edit security nat static rule-set incoming-sip] user@host# set from zone public user@host# set rule phone1 match destination-address 172.16.1.3/32 user@host# set rule phone1 then static-nat prefix 10.1.1.3/32
-
프록시 ARP를 구성합니다.
[edit security nat] user@host# set proxy-arp interface ge-0/0/2.0 address 172.16.1.3/32
-
수신 SIP 트래픽을 허용하는 보안 정책을 정의합니다.
[edit security policies from-zone public to-zone private policy incoming] user@host# set match source-address phone2 user@host# set match source-address proxy user@host# set match destination-address phone1 user@host# set match application junos-sip user@host# set then permit
-
나가는 SIP 트래픽을 허용하는 보안 정책을 정의합니다.
[edit security policies from-zone private to-zone public policy outgoing] user@host# set match source-address phone1 user@host# set match destination-address phone2 user@host# set match destination-address proxy user@host# set match application junos-sip user@host# set then permit
결과
구성 모드에서 , show security zones
show security nat
및 show security policies
명령을 입력show interfaces
하여 구성을 확인합니다. 출력이 의도한 구성을 표시하지 않는 경우 이 예제의 구성 지침을 반복하여 수정합니다.
[edit] user@host# show interfaces ge-0/0/0 { unit 0 { family inet { address 10.1.1.1/24; } } } ge-0/0/2 { unit 0 { family inet { address 172.16.1.1/24; } } }
[edit] user@host# show security zones security-zone private { address-book { address phone1 10.1.1.5/32; } interfaces { ge-0/0/0.0; } } security-zone public { address-book { address proxy 172.16.1.3/32; address phone2 172.16.1.4/32; } interfaces { ge-0/0/2.0; } }
[edit] user@host# show security nat static { rule-set incoming-sip { from zone public; rule phone1 { match { destination-address 172.16.1.3/32; } then { static-nat prefix 10.1.1.3/32; } } } } proxy-arp { interface ge-0/0/2.0 { address { 172.16.1.3/32; } } }
[edit] user@host# show security policies from-zone public to-zone private { policy incoming { match { source-address phone2; destination-address phone1; application junos-sip; } then { permit; } } } from-zone private to-zone public { policy outgoing { match { source-address phone1; destination-address [phone2 proxy]; application junos-sip; } then { permit; } } }
디바이스 구성을 완료한 경우 구성 모드에서 입력 commit
합니다.
확인
구성이 올바르게 작동하는지 확인하려면 다음 작업을 수행합니다.
정적 NAT 구성 검증
목적
정적 NAT 규칙 집합과 일치하는 트래픽이 있는지 확인합니다.
작업
운영 모드에서 명령을 입력합니다 show security nat static rule all
.
user@host> show security nat static rule all
Static NAT rule: phone1 Rule-set: incoming-sip Rule-Id : 1 Rule position : 1 From zone : public Destination addresses : 172.16.1.3 Host addresses : 172.16.1.4 Netmask : 24 Host routing-instance : N/A Translation hits : 4 Successful sessions : 4 Failed sessions : 0 Number of sessions : 4
의미
이 Translation hits
필드는 정적 NAT 규칙 집합과 일치하는 트래픽이 있음을 보여줍니다.
SIP ALG 상태 확인
목적
SIP ALG가 시스템에서 활성화되어 있는지 확인합니다.
작업
운영 모드에서 명령을 입력합니다 show security alg status
.
user@host> show security alg status
ALG Status : DNS : Enabled FTP : Enabled H323 : Disabled MGCP : Disabled MSRPC : Enabled PPTP : Enabled RSH : Disabled RTSP : Disabled SCCP : Disabled SIP : Enabled SQL : Enabled SUNRPC : Enabled TALK : Enabled TFTP : Enabled IKE-ESP : Disabled
의미
출력은 다음과 같이 SIP ALG 상태를 보여줍니다.
-
•활성화—SIP ALG가 활성화됨을 보여줍니다.
-
•비활성화—SIP ALG가 비활성화된 것을 보여줍니다.
SIP ALG의 보안 정책 검증
목적
퍼블릭 존과 프라이빗 존 간의 정적 NAT가 설정되었는지 확인합니다.
작업
운영 모드에서 명령을 입력합니다 show security policies
.
user@host> show security policies
from-zone public to-zone private { policy incoming { match { source-address [ phone2 proxy ]; destination-address phone1; application junos-sip; } then { permit; } } } from-zone private to-zone public { policy outgoing { match { source-address phone1; destination-address [ phone2 proxy ]; application junos-sip; } then { permit; } } }
의미
샘플 출력은 퍼블릭 존과 프라이빗 존 간의 정적 NAT가 설정된 것을 보여줍니다.
예: 프라이빗 존에서 SIP 프록시 구성 및 공용 존의 NAT 구성
이 예에서는 공용 존의 발신자가 프록시 서버에 등록할 수 있도록 프라이빗 존에서 SIP 프록시 서버를 구성하고 공용 존의 정적 NAT를 구성하는 방법을 보여줍니다.
요구 사항
시작하기 전에 NAT가 SIP ALG와 어떻게 작동하는지 알아보십시오. SIP ALG 및 NAT의 이해를 참조하십시오.
개요
프라이빗 존의 SIP 프록시 서버를 사용하면 외부 또는 공용 인터페이스에서 정적 NAT를 구성하여 공용 존의 발신자가 프록시 서버에 등록할 수 있습니다.
이 예( 그림 8 참조)에서 phone1 및 SIP 프록시 서버는 프라이빗 존의 ge-0/0/0 인터페이스에 있고, phone2는 공용 존의 ge-0/0/2 인터페이스에 있습니다. 프록시 서버에 대한 정적 NAT 규칙을 구성하여 Phone2가 프록시 서버에 등록할 수 있도록 한 다음 퍼블릭에서 프라이빗 존으로의 SIP 트래픽을 허용하는 발신이라는 정책을 생성하여 퍼블릭 존의 발신자가 프록시 서버에 등록할 수 있도록 합니다. 또한 프라이빗에서 퍼블릭 존으로 수신하는 정책을 구성하여 Phone1이 전화를 걸 수 있도록 합니다.
토폴로지
그림 8 은 프라이빗 존에서 SIP 프록시를 구성하고 공용 존의 NAT를 구성하는 것을 보여줍니다.

이 예에서는 다음과 같이 NAT를 구성합니다.
-
퍼블릭 존의 패킷과 대상 주소 172.16.1.2/32를 일치시키기 위해 proxy라는 규칙을 사용하여 수신 sip이라는 규칙 세트를 사용하여 ge-0/0/2 인터페이스에서 프록시 서버에 정적 NAT를 구성합니다. 패킷 일치를 위해 대상 IP 주소는 전용 주소 10.1.1.5/32로 변환됩니다.
-
전화1에서 전화2로의 통신을 위한 인터페이스 NAT를 활성화하도록 전화1이라는 규칙으로 sip-phone라는 두 번째 규칙 집합을 구성합니다.
구성
절차
CLI 빠른 구성
예제의 이 섹션을 신속하게 구성하려면 다음 명령을 복사하여 텍스트 파일에 붙여넣고, 줄 바꿈을 제거하고, 네트워크 구성에 필요한 세부 정보를 변경하고, 명령을 계층 수준에서 CLI [edit]
에 복사하여 붙여넣은 다음 구성 모드에서 입력 commit
합니다.
set interfaces ge-0/0/0 unit 0 family inet address 10.1.1.1/24 set interfaces ge-0/0/2 unit 0 family inet address 172.16.1.1/24 set interfaces ge-0/0/2 unit 0 proxy-arp set security zones security-zone private address-book address phone1 10.1.1.3/32 set security zones security-zone private address-book address proxy 10.1.1.5/32 set security zones security-zone private interfaces ge-0/0/0.0 set security zones security-zone public address-book address phone2 172.16.1.4/32 set security zones security-zone public interfaces ge-0/0/2.0 set security nat source rule-set sip-phones from zone private set security nat source rule-set sip-phones to zone public set security nat source rule-set sip-phones rule phone1 match source-address 10.1.1.3/32 set security nat source rule-set sip-phones rule phone1 then source-nat interface set security nat static rule-set incoming-sip from zone public set security nat static rule-set incoming-sip rule proxy match destination-address 172.16.1.2/32 set security nat static rule-set incoming-sip rule proxy then static-nat prefix 10.1.1.5/32 set security nat proxy-arp interface ge-0/0/2.0 address 172.16.1.2/32 set security policies from-zone private to-zone public policy outgoing match source-address any set security policies from-zone private to-zone public policy outgoing match destination-address phone2 set security policies from-zone private to-zone public policy outgoing match application junos-sip set security policies from-zone private to-zone public policy outgoing then permit set security policies from-zone public to-zone private policy incoming match source-address phone2 set security policies from-zone public to-zone private policy incoming match destination-address proxy set security policies from-zone public to-zone private policy incoming match application junos-sip set security policies from-zone public to-zone private policy incoming then permit
단계별 절차
다음 예제에서는 구성 계층에서 다양한 레벨을 탐색해야 합니다. 그 방법에 대한 지침은 CLI 사용자 가이드의 Configuration 모드에서 CLI Editor를 사용하는 것을 참조하십시오.
수신 통화에 정적 NAT를 구성하려면 다음을 수행합니다.
-
인터페이스를 구성합니다.
[edit] user@host# set interfaces ge-0/0/0 unit 0 family inet address 10.1.1.1/24 user@host# set interfaces ge-0/0/2 unit 0 family inet address 172.16.1.1/24 user@host# set interfaces ge-0/0/2 unit 0 proxy-arp
-
보안 존을 구성합니다.
[edit security zones] user@host# set security-zone private interfaces ge-0/0/0.0 user@host# set security-zone public interfaces ge-0/0/2.0
-
보안 존에 주소를 할당합니다.
[edit security zones] user@host# set security-zone private address-book address phone1 10.1.1.3/32 user@host# set security-zone private address-book address proxy 10.1.1.5/32 user@host# set security-zone public address-book address phone2 172.16.1.4/32
-
정적 NAT에 대한 규칙 집합을 생성하고 규칙을 할당합니다.
[edit security nat static rule-set incoming-sip] user@host# set from zone public user@host# set rule proxy match destination-address 172.16.1.2/32 user@host# set rule proxy then static-nat prefix 10.1.1.5/32
-
172.16.1.2/32 주소에 대한 프록시-arp를 구성합니다.
[edit security nat] user@host# proxy-arp interface ge-0/0/2.0 address 172.16.1.2/32
-
두 번째 규칙 집합을 구성하고 해당 규칙에 규칙을 할당합니다.
[edit security nat source rule-set sip-phones] user@host# set from zone private user@host# set to zone public user@host# set rule phone1 match source-address 10.1.1.3/32 user@host# set rule phone1 then source-nat interface
-
나가는 트래픽에 대한 보안 정책을 구성합니다.
[edit security policies from-zone private to-zone public policy outgoing] user@host# set match source-address any user@host# set match destination-address phone2 user@host# set match application junos-sip user@host# set then permit
-
수신 트래픽에 대한 보안 정책을 구성합니다.
[edit security policies from-zone public to-zone private policy incoming] user@host# set match source-address phone2 user@host# set match destination-address proxy user@host# set match application junos-sip user@host# set then permit
결과
구성 모드에서 , show security zones
show security nat
및 show security policies
명령을 입력show interfaces
하여 구성을 확인합니다. 출력이 의도한 구성을 표시하지 않는 경우 이 예제의 구성 지침을 반복하여 수정합니다.
[edit] user@host# show interfaces ge-0/0/0 { unit 0 { family inet { address 10.1.1.1/24; } } } ge-0/0/2 { unit 0 { proxy-arp; family inet { address 172.16.1.1/24; } } } [edit] user@host# show security zones security-zone private { address-book { address phone1 10.1.1.3/32; address proxy 10.1.1.5/32; } interfaces { ge-0/0/0.0; } } security-zone public { address-book { address phone2 172.16.1.4/32; } interfaces { ge-0/0/2.0; } } [edit] user@host# show security nat source { rule-set sip-phones { from zone private; to zone public; rule phone1 { match { source-address 10.1.1.3/32; } then { source-nat { interface; } } } } } static { rule-set incoming-sip { from zone public; rule proxy { match { destination-address 172.16.1.2/32; } then { static-nat prefix 10.1.1.5/32; } } } proxy-arp { interface ge-0/0/2.0 { address { 172.16.1.2/32; } } } } [edit] user@host# show security policies from-zone private to-zone public { policy outgoing { match { source-address any; destination-address phone2; application junos-sip; } then { permit; } } } from-zone public to-zone private { policy incoming { match { source-address phone2; destination-address proxy; application junos-sip; } then { permit; } } }
디바이스 구성을 완료한 경우 구성 모드에서 입력 commit
합니다.
확인
구성이 올바르게 작동하는지 확인하려면 다음 작업을 수행합니다.
정적 NAT 구성 검증
목적
정적 NAT 규칙 집합과 일치하는 트래픽이 있는지 확인합니다.
작업
운영 모드에서 명령을 입력합니다 show security nat static rule all
. Translation hits 필드를 보고 규칙과 일치하는 트래픽을 확인합니다.
user@host> show security nat static rule all Total static-nat rules: 1 Total referenced IPv4/IPv6 ip-prefixes: 2/0 Static NAT rule: proxy Rule-set: incoming-sip Rule-Id : 2 Rule position : 1 From zone : public Destination addresses : 172.16.1.2 Host addresses : 10.1.1.5 Netmask : 32 Host routing-instance : N/A Translation hits : 23 Successful sessions : 23 Failed sessions : 0 Number of sessions : 0
의미
이 필드에는 Translation hits
정적 NAT 규칙과 일치하는 트래픽이 23개 있습니다.
SIP ALG 상태 확인
목적
SIP ALG가 시스템에서 활성화되어 있는지 확인합니다.
작업
운영 모드에서 명령을 입력합니다 show security alg status
.
user@host> show security alg status ALG Status : DNS : Enabled FTP : Enabled H323 : Disabled MGCP : Disabled MSRPC : Enabled PPTP : Enabled RSH : Disabled RTSP : Disabled SCCP : Disabled SIP : Enabled SQL : Enabled SUNRPC : Enabled TALK : Enabled TFTP : Enabled IKE-ESP : Disabled
의미
출력은 다음과 같이 SIP ALG 상태를 보여줍니다.
-
활성화—SIP ALG가 활성화됨을 보여줍니다.
-
비활성화—SIP ALG가 비활성화됨을 보여줍니다.
소스 NAT 규칙 검증
목적
소스 NAT 규칙 구성이 있는지 확인합니다.
작업
운영 모드에서 명령을 입력합니다 show security nat source rule all
.
user@host> show security nat source rule all Total referenced IPv4/IPv6 ip-prefixes: 1/0 source NAT rule: phone1 Rule-set: sip-phones Rule-Id : 1 Rule position : 1 From zone : private To zone : public Match Source addresses : 10.1.1.3 - 10.1.1.3 Action : interface Persistent NAT type : N/A Persistent NAT mapping type : address-port-mapping Inactivity timeout : 0 Max session number : 0 Translation hits : 88 Successful sessions : 88 Failed sessions : 0 Number of sessions : 0
의미
소스 Translation hits
NAT 규칙과 일치하는 트래픽이 88개 있다는 필드가 표시됩니다.
보안 플로우 세션 검증
목적
NAT 변환 전화1에서 전화2로 변환되는지 확인합니다.
작업
운영 모드에서 명령을 입력합니다 run show security flow session
.
user@host> run show security flow session Session ID: 169, Policy name: allow-all/4, Timeout: 2, Valid In: 10.1.1.3/4 --> 172.16.1.4/52517;icmp, Conn Tag: 0x0, If: ge-0/0/0.0, Pkts: 1, Bytes: 84, Out: 172.16.1.4/52517 --> 172.16.1.1/25821;icmp, Conn Tag: 0x0, If: ge-0/0/1.0, Pkts: 1, Bytes: 84,
의미
출력은 NAT 변환 전화1을 Phone2로 표시합니다.
예: 3-존 SIP ALG 및 NAT 시나리오 구성
이 예에서는 공용 존의 발신자가 프록시 서버에 등록할 수 있도록 프라이빗 존에서 SIP 프록시 서버를 구성하고 공용 존의 정적 NAT를 구성하는 방법을 보여줍니다.
요구 사항
시작하기 전에 NAT가 SIP ALG와 어떻게 작동하는지 알아보십시오. SIP ALG 및 NAT의 이해를 참조하십시오.
개요
3-존 SIP 구성에서 SIP 프록시 서버는 일반적으로 호출과는 다른 존에 있으며 시스템이라고 합니다. 이러한 시나리오에서는 모든 시스템이 서로 및 프록시 서버에 액세스할 수 있도록 하기 위한 추가 주소 및 존 구성과 정책이 필요합니다.
이 예에서 Phone1은 프라이빗 존의 ge-0/0/0.0 인터페이스에 있고, phone2는 공용 존의 ge-0/0/2.0 인터페이스에, 프록시 서버는 DMZ의 ge-0/0/1.0 인터페이스에 있습니다. 프라이빗 존에서 Phone1에 대한 정적 NAT 규칙을 구성합니다. 그런 다음 프라이빗 존에서 DMZ로, DMZ에서 프라이빗 존으로, 퍼블릭 존에서 DMZ로, DMZ에서 퍼블릭 존으로, 프라이빗 존에서 퍼블릭 존으로 트래픽에 대한 정책을 생성합니다. 그림 9 의 화살표는 공용 존의 Phone2에서 전화1에 대한 호출을 프라이빗 존에 배치할 때 SIP 시그널링 트래픽의 흐름을 보여줍니다. 세션이 시작된 후에는 데이터가 Phone1과 Phone2 사이에 직접 전송됩니다.

이 예에서는 다음과 같이 NAT를 구성합니다.
수신-sip이라는 정적 NAT 규칙 세트를 규칙 Phone1로 구성하여 퍼블릭 존의 패킷을 대상 주소 10.1.2.3/32와 매칭합니다. 패킷 매칭을 위해 대상 IP 주소는 전용 주소 10.1.1.3/32로 변환됩니다.
인터페이스 ge-0/0/0/1.0에서 주소 10.1.2.3/32에 대한 프록시 ARP를 구성하여 시스템이 이 주소의 인터페이스에서 받은 ARP 요청에 응답할 수 있도록 합니다.
규칙 r1을 사용하여 sip-phone이라는 두 번째 규칙 세트를 구성하여 Phone1에서 프록시 서버로, 전화1에서 전화2로 통신할 수 있도록 인터페이스 NAT를 활성화합니다.
구성
절차
CLI 빠른 구성
예제의 이 섹션을 신속하게 구성하려면 다음 명령을 복사하여 텍스트 파일에 붙여넣고, 줄 바꿈을 제거하고, 네트워크 구성에 필요한 세부 정보를 변경하고, 명령을 계층 수준에서 CLI [edit]
에 복사하여 붙여넣은 다음 구성 모드에서 입력 commit
합니다.
set security nat static rule-set sip-phone from zone private set security nat static rule-set sip-phone from zone public set security nat static rule-set sip-phone rule phone1 match destination-address 10.1.2.3/32 set security nat static rule-set sip-phone rule phone1 then static-nat prefix 10.1.1.3/32 set interfaces ge-0/0/0 unit 0 family inet address 10.1.1.1/24 set interfaces ge-0/0/1 unit 0 family inet address 10.1.2.2/24 set interfaces ge-0/0/2 unit 0 family inet address 172.16.1.1/24 set security zones security-zone private address-book address phone1 10.1.1.3/32 set security zones security-zone private interfaces ge-0/0/0.0 set security zones security-zone public address-book address phone2 172.16.1.4/32 set security zones security-zone public interfaces ge-0/0/2.0 set security zones security-zone dmz address-book address proxy 10.1.2.4/32 set security zones security-zone dmz interfaces ge-0/0/1.0 set security nat source rule-set sip-phones from zone private set security nat source rule-set sip-phones to zone dmz set security nat source rule-set sip-phones rule r1 match source-address 10.1.1.3/32 set security nat source rule-set sip-phones rule r1 then source-nat interface set security policies from-zone private to-zone dmz policy private-to-proxy match source-address phone1 set security policies from-zone private to-zone dmz policy private-to-proxy match destination-address proxy set security policies from-zone private to-zone dmz policy private-to-proxy match application junos-sip set security policies from-zone private to-zone dmz policy private-to-proxy then permit set security policies from-zone public to-zone dmz policy public-to-proxy match source-address phone2 set security policies from-zone public to-zone dmz policy public-to-proxy match destination-address proxy set security policies from-zone public to-zone dmz policy public-to-proxy match application junos-sip set security policies from-zone public to-zone dmz policy public-to-proxy then permit set security policies from-zone public to-zone private policy public-to-private match source-address phone2 set security policies from-zone public to-zone private policy public-to-private match destination-address phone1 set security policies from-zone public to-zone private policy public-to-private match application junos-sip set security policies from-zone public to-zone private policy public-to-private then permit set security policies from-zone private to-zone public policy private-to-public match source-address phone1 set security policies from-zone private to-zone public policy private-to-public match destination-address phone2 set security policies from-zone private to-zone public policy private-to-public match application junos-sip set security policies from-zone private to-zone public policy private-to-public then permit set security policies from-zone dmz to-zone private policy proxy-to-private match source-address proxy set security policies from-zone dmz to-zone private policy proxy-to-private match destination-address phone1 set security policies from-zone dmz to-zone private policy proxy-to-private match application junos-sip set security policies from-zone dmz to-zone private policy proxy-to-private then permit set security policies from-zone dmz to-zone public policy proxy-to-public match source-address proxy set security policies from-zone dmz to-zone public policy proxy-to-public match destination-address phone2 set security policies from-zone dmz to-zone public policy proxy-to-public match application junos-sip set security policies from-zone dmz to-zone public policy proxy-to-public then permit
단계별 절차
다음 예제에서는 구성 계층에서 다양한 레벨을 탐색해야 합니다. 그 방법에 대한 지침은 CLI 사용자 가이드의 Configuration 모드에서 CLI Editor를 사용하는 것을 참조하십시오.
프라이빗 존에서 SIP 프록시 서버를 구성하고 퍼블릭 존의 정적 NAT를 구성하려면 다음을 수행합니다.
정적 NAT에 대한 규칙 집합을 생성하고 규칙을 할당합니다.
[edit security nat static rule-set] user@host# sip-phone from zone private user@host# sip-phone from zone public user@host# sip-phone rule phone1 match destination-address 10.1.2.3/32 user@host# phone1 then static-nat prefix 10.1.1.3/32
인터페이스를 구성합니다.
[edit] user@host# set interfaces ge-0/0/0 unit 0 family inet address 10.1.1.1/24 user@host# set interfaces ge-0/0/1 unit 0 family inet address 10.1.2.2/24 user@host# set interfaces ge-0/0/2 unit 0 family inet address 172.16.1.1/24
보안 존을 구성합니다.
[edit security zones] user@host# set security-zone private interfaces ge-0/0/0.0 user@host# set security-zone public interfaces ge-0/0/2.0 user@host# set security-zone dmz interfaces ge-0/0/1.0
보안 존에 주소를 할당합니다.
[edit security zones] user@host# set security-zone private address-book address phone1 10.1.1.3/32 user@host# set security-zone public address-book address phone2 172.16.1.4/32 user@host# set security-zone dmz address-book address proxy 10.1.2.4/32
전화1에서 프록시로의 통신을 위한 인터페이스 NAT를 구성합니다.
[edit security nat source rule-set sip-phones] user@host# set from zone private user@host# set to zone dmz user@host# set rule r1 match source-address 10.1.1.3/32 user@host# set rule r1 then source-nat interface
존 프라이빗에서 존(zone) DMZ로 트래픽을 허용하도록 보안 정책을 구성합니다.
[edit security policies from-zone private to-zone dmz policy private-to-proxy] user@host# set match source-address phone1 user@host# set match destination-address proxy user@host# set match application junos-sip user@host# set then permit
존 퍼블릭에서 존(zone) DMZ로 트래픽을 허용하도록 보안 정책을 구성합니다.
[edit security policies from-zone public to-zone dmz policy public-to-proxy] user@host# set match source-address phone2 user@host# set match destination-address proxy user@host# set match application junos-sip user@host# set then permit
존 프라이빗에서 존 퍼블릭으로 트래픽을 허용하도록 보안 정책을 구성합니다.
[edit security policies from-zone private to-zone public policy private-to-public] user@host# set match source-address phone1 user@host# set match destination-address phone2 user@host# set match application junos-sip user@host# set then permit
존 퍼블릭에서 존 프라이빗으로 트래픽을 허용하도록 보안 정책을 구성합니다.
[edit security policies from-zone public to-zone private policy public-to-private] user@host# set match source-address phone2 user@host# set match destination-address phone1 user@host# set match application junos-sip user@host# set then permit
존 DMZ에서 존 프라이빗으로 트래픽을 허용하도록 보안 정책을 구성합니다.
[edit security policies from-zone dmz to-zone private policy proxy-to-private] user@host# set match source-address proxy user@host# set match destination-address phone1 user@host# set match application junos-sip user@host# set then permit
존 DMZ에서 존 퍼블릭으로 트래픽을 허용하도록 보안 정책을 구성합니다.
[edit security policies from-zone dmz to-zone public policy proxy-to-public] user@host# set match source-address proxy user@host# set match destination-address phone2 user@host# set match application junos-sip user@host# set then permit
결과
구성 모드에서 , show security zones
show security nat
및 show security policies
명령을 입력show interfaces
하여 구성을 확인합니다. 출력이 의도한 구성을 표시하지 않는 경우 이 예제의 구성 지침을 반복하여 수정합니다.
[edit] user@host# show interfaces ge-0/0/0 { unit 0 { family inet { address 10.1.1.1/24; } } } ge-0/0/1 { unit 0 { family inet { address 10.1.2.2/24; } } } ge-0/0/2 { unit 0 { family inet { address 172.16.1.1/24; } } }
[edit] user@host# show security zones security-zone private { address-book { address phone1 10.1.1.3/32; } interfaces { ge-0/0/0.0; } } security-zone public { address-book { address phone2 172.16.1.4/32; } interfaces { ge-0/0/2.0; } } security-zone dmz { address-book { address proxy 10.1.2.4/32; } interfaces { ge-0/0/1.0; } }
[edit] user@host# show security nat static { rule-set sip-phone { from zone [ private public ]; rule phone1 { match { destination-address 10.1.2.3/32; } then { static-nat { prefix { 10.1.1.3/32; } } } } } } source { rule-set sip-phones { from zone private; to zone dmz; rule r1 { match { source-address 10.1.1.3/32; } then { source-nat { interface; } } } } } proxy-arp { interface ge-0/0/1.0 { address { 10.1.2.3/32; } } }
[edit] user@host# show security policies from-zone private to-zone dmz { policy private-to-proxy { match { source-address phone1; destination-address proxy; application junos-sip; } then { permit; } } } from-zone public to-zone dmz { policy public-to-proxy { match { source-address phone2; destination-address proxy; application junos-sip; } then { permit; } } } from-zone public to-zone private { policy public-to-private { match { source-address phone2; destination-address phone1; } then { permit; } } } from-zone private to-zone public { policy private to-zone public { match { source-address phone1; destination-address phone2; } then { permit; } } } from-zone dmz to-zone private { policy proxy-to-private { match { source-address proxy; destination-address phone2; application junos-sip; } then { permit; } } }
디바이스 구성을 완료한 경우 구성 모드에서 입력 commit
합니다.
확인
구성이 올바르게 작동하는지 확인하려면 다음 작업을 수행합니다.
소스 NAT 규칙 사용량 검증
목적
소스 NAT 규칙과 일치하는 트래픽이 있는지 확인합니다.
작업
운영 모드에서 명령을 입력합니다 show security nat source rule all
. Translation hits 필드를 보고 규칙과 일치하는 트래픽을 확인합니다.
user@host> show security nat source rule all source NAT rule: r1 Rule-set: sip-phones Rule-Id : 1 Rule position : 1 From zone : private To zone : public Match Source addresses : 0.0.0.0 - 255.255.255.255 Destination port : 0 - 0 Action : interface Persistent NAT type : N/A Persistent NAT mapping type : address-port-mapping Inactivity timeout : 0 Max session number : 0 Translation hits : 0 Successful sessions : 0 Failed sessions : 0 Number of sessions : 0
의미
소스 Translation hits field
NAT 규칙과 일치하는 트래픽이 없다는 것을 보여줍니다.
정적 NAT 규칙 사용량 검증
목적
정적 NAT 규칙에 일치하는 트래픽이 있는지 확인합니다.
작업
운영 모드에서 명령을 입력합니다 show security nat static rule all
. Translation hits 필드를 보고 규칙과 일치하는 트래픽을 확인합니다.
user@host> show security nat static rule all Total static-nat rules: 1 Total referenced IPv4/IPv6 ip-prefixes: 2/0 Static NAT rule: phone1 Rule-set: sip-phone Rule-Id : 1 Rule position : 1 From zone : private : public Destination addresses : 10.1.2.3 Host addresses : 10.1.2.4 Netmask : 32 Host routing-instance : N/A Translation hits : 127 Successful sessions : 127 Failed sessions : 0 Number of sessions : 0
의미
이 필드에는 Translation hits
정적 NAT 규칙과 일치하는 트래픽이 표시됩니다.
SIP ALG 상태 확인
목적
SIP ALG가 시스템에서 활성화되어 있는지 확인합니다.
작업
운영 모드에서 명령을 입력합니다 show security alg status
.
user@host> show security alg status ALG Status : DNS : Enabled FTP : Enabled H323 : Disabled MGCP : Disabled MSRPC : Enabled PPTP : Enabled RSH : Disabled RTSP : Disabled SCCP : Disabled SIP : Enabled SQL : Enabled SUNRPC : Enabled TALK : Enabled TFTP : Enabled IKE-ESP : Disabled
의미
출력은 다음과 같이 SIP ALG 상태를 보여줍니다.
활성화—SIP ALG가 활성화됨을 보여줍니다.
비활성화—SIP ALG가 비활성화됨을 보여줍니다.