이 페이지에서
포트 제어 프로토콜 개요
PCP(Port Control Protocol)는 NAT44 및 방화벽 디바이스와 같은 업스트림 디바이스에서 수신 패킷의 전달을 제어하는 방법과 애플리케이션 keepalive 트래픽을 줄이는 방법을 제공합니다. PCP는 MS-DPC, MS-100, MS-400 및 MS-500 멀티서비스 PIC에서 지원됩니다. 릴리스 17.4R1 Junos OS 시작하여 NAPT44용 PCP도 MS-MPC 및 MS-MIC에서도 지원됩니다. Junos 20.2R1부터 CGNAT DS-Lite 서비스에 대한 PCP가 차세대 서비스를 지원합니다.Junos OS 릴리스 18.2R1부터 MS-MPC 및 MS-MIC의 PCP가 DS-Lite를 지원합니다. Junos OS 릴리스 18.1 및 이전 릴리스에서는 MS-MPC 및 MS-MIC의 PCP가 DS-Lite를 지원하지 않습니다.
PCP는 캐리어급 NAT(CGN) 및 소형 NAT(예: 가정용 NAT)의 맥락에서 구현되도록 설계되었습니다. PCP를 사용하면 호스트가 ISP에서 작동하는 CGN 뒤에 있는 경우를 포함하여 네트워크 네트워크(NAT) 디바이스 뒤에 있을 때(예: 웹캠의 경우와 같이) 장시간 또는 짧은 시간(예: 게임 또는 전화 통화 시) 서버를 운영할 수 있습니다. PCP를 사용하면 애플리케이션이 외부 IP 주소와 포트에서 내부 IP 주소 및 포트에 대한 매핑을 생성할 수 있습니다. 이러한 매핑은 NAT 또는 방화벽 뒤에 있는 기계로 향하는 성공적인 인바운드 통신을 위해 필요합니다. 들어오는 연결에 대한 매핑이 생성된 후, 들어오는 연결의 IP 주소 및 포트에 대해 원격 컴퓨터에 정보를 제공해야 합니다. 이는 일반적으로 애플리케이션별 방식으로 수행됩니다.
Junos OS PCP 버전 2 및 버전 1을 지원합니다.
PCP는 다음과 같은 구성 요소로 구성됩니다.
PCP 클라이언트 - 리소스를 획득하고 제어하기 위해 PCP 서버에 PCP 요청을 발행하는 호스트 또는 게이트웨이입니다.
PCP 서버 - 일반적으로 PCP 요청을 수신하고 처리하는 CGN 게이트웨이 또는 코로치 서버입니다.
Junos OS 포트 포워딩 및 포트 블록 할당과 같은 NAPT44 기능을 사용하여 플로우 매핑을 위한 PCP 서버를 구성할 수 있습니다. 플로우는 다음 소스에서 처리할 수 있습니다.
그림 1과 같이 사용자 장비로부터 직접 수신된 PCP 요청을 포함하는 트래픽입니다.
그림 1: 기본 PCP NAPT44 토폴로지DS-Lite 소프트 와이어 개시자(B4)로 작동하는 라우터에 의해 추가된 PCP 요청을 포함하는 트래픽 매핑. DS-Lite 일반 모드로 알려진 이 모드는 그림 2에 표시됩니다.
그림 2: DS-Lite 플레인 모드의 PCP
Junos OS PCP 원래 트래픽에 대한 결정론적 포트 블록 할당을 지원하지 않습니다.
포트 제어 프로토콜의 이점
NAT 친화적인 많은 애플리케이션은 NAT 디바이스에서 세션의 시간 초과를 방지할 수 있도록 자주 애플리케이션 수준 메시지를 보냅니다. PCP는 다음과 같은 용도로 사용됩니다.
이러한 NAT keepalive 메시지 빈도 감소
가입자의 액세스 네트워크에서 대역폭 감소
서버 트래픽 감소
모바일 디바이스의 배터리 사용 감소
포트 제어 프로토콜 버전 2
Junos OS 릴리스 15.1부터는 RFC 6887을 준수하는 PCP(Port Control Protocol) 버전 2가 지원됩니다. PCP는 NAT44, 방화벽 디바이스와 같은 업스트림 디바이스에서 수신 패킷의 전달을 제어하는 방법과 애플리케이션 유지 트래픽을 줄이는 방법을 제공합니다. PCP 버전 2는 비체 인증을 지원합니다. PCP를 사용하면 애플리케이션이 외부 IP 주소와 포트에서 내부 IP 주소 및 포트에 대한 매핑을 생성할 수 있습니다. 비 페이로드는 재생 공격을 방지하며 명시적으로 비활성화되지 않는 한 기본적으로 전송됩니다.
버전 2 맵 요청에 대한 클라이언트 비검증(새로 고침 또는 삭제)을 수행하려면 PCP 매핑을 생성하는 원본 맵 요청에 수신되지 않은 사람이 보존되어야 합니다. 매핑을 생성할 수 있는 초기 요청 버전도 보존됩니다. nonce 및 버전 매개 변수를 저장하는 이러한 동작은 PCP 매핑당 13바이트가 사용됨을 나타냄 단일 요청된 매핑을 위해 시스템의 현재 메모리 사용량과 일치할 때(이와 함께 생성된 엔드포인트 독립 매핑(EIM) 및 엔드포인트 독립 필터링(EIF)을 고려할 때, 저장 공간의 이러한 약간의 증가는 중요하지 않습니다. 고객 구축에서 PCP는 EIM 및 EIF 매핑을 이러한 모든 매핑의 일부로 나타내게 합니다.
릴리스 15.1 Junos 때까지 서비스 PIC는 버전 1 메시지 인코딩이 있는 PCP 초안 버전 22에 따라 주니퍼 네트웍스 라우터의 PCP 서버를 지원합니다. PCP(Port Control Protocol) draft-ietf-pcp-base-22(2012년 7월 만료) 에 정의된 초안 버전에서 RFC 6887 - PCP(Port Control Protocol)에 정의된 최종 표준 버전으로 PCP가 개선됨에 따라, 메시지 인코딩은 필요에 따라 피어 및 맵 요청을 인증하기 위해 임의의 비 페이로드를 추가하여 버전 2로 변경되었습니다. 버전 1은 버전 2 형식을 준수하는 메시지를 디코딩하지 않으며 nonce 인증은 지원되지 않습니다. 실제 네트워크 환경에서는 CPE(Customer Premises Equipment) 디바이스가 버전 2만 점점 더 지원하고 있는 상황에서 버전 2 메시지를 구문 분석하고 전송해야 합니다. 버전 1 지원 CPE 디바이스와의 하위 호환성은 유지 관리됩니다(버전 협상은 표준의 일부임). v2 메시지가 사용 중인 경우 요청 nonce 페이로드 패킷을 인증합니다.
명령의 show services pcp statistics
출력에는 PCP 지원되지 않는 버전 필드가 포함되어 있으며, 이는 버전이 1 또는 2가 아닐 때마다 나타내기 위해 증가합니다. 새로운 필드, PCP 요청 nonce는 기존 매핑과 일치하지 않으며, nonce 페이로드가 매핑에 기록된 것과 일치하지 않아 무시된 PCP 버전 2 요청의 수를 나타내기 위해 도입되었습니다(인증 실패). 버전 2가 사용 중인 경우 클라이언트 nonce가 인증에 사용됩니다.