Protocolo de control de puertos
Descripción general del protocolo de control de puertos
El protocolo de control de puertos (PCP) proporciona una manera de controlar el reenvío de paquetes entrantes por parte de dispositivos ascendentes, como NAT44 y dispositivos de firewall, y una forma de reducir el tráfico de keepalive de aplicaciones. PCP es compatible con las PIC de multiservicios MS-CPC, MS-100, MS-400 y MS-500. A partir de la versión 17.4R1 de Junos OS, PCP para NAPT44 también es compatible con MS-MPC y MS-MIC. A partir de Junos 20.2R1, PCP para CGNAT Los servicios DS-Lite son compatibles con los servicios de próxima generación. A partir de Junos OS versión 18.2R1, PCP en MS-MPC y MS-MIC admite DS-Lite. En Junos OS versión 18.1 y versiones anteriores, PCP en MS-MPC y MS-MIC no admite DS-Lite.
El PCP está diseñado para ser implementado tanto en el contexto de NAT de grado de operador (CGN) como de NAT pequeños (por ejemplo, NAT residenciales). PCP permite a los hosts operar servidores durante mucho tiempo (como en el caso de una cámara web) o un corto tiempo (por ejemplo, mientras juegan un juego o en una llamada telefónica) cuando están detrás de un dispositivo TDR, incluso cuando están detrás de un CGN operado por su ISP. El PCP permite a las aplicaciones crear asignaciones desde una dirección IP y un puerto externos a una dirección IP y un puerto internos. Estas asignaciones son necesarias para que las comunicaciones entrantes exitosas estén destinadas a máquinas ubicadas detrás de un TDR o un firewall. Después de crear una asignación para las conexiones entrantes, se debe informar a los equipos remotos sobre la dirección IP y el puerto de la conexión entrante. Esto generalmente se hace de una manera específica de la aplicación.
Junos OS es compatible con PCP versión 2 y versión 1.
El PCP consta de los siguientes componentes:
Cliente PCP: un host o puerta de enlace que emite solicitudes PCP a un servidor PCP para obtener y controlar recursos.
Servidor PCP: por lo general, una puerta de enlace CGN o un servidor coubicado que recibe y procesa solicitudes de PCP
Junos OS permite configurar servidores PCP para asignar flujos mediante capacidades NAPT44, como el reenvío de puertos y la asignación de bloques de puertos. Los flujos se pueden procesar desde estas fuentes:
Tráfico que contiene solicitudes de PCP recibidas directamente del equipo del usuario, como se muestra en la Figura 1.
Figura 1: Topología básica de PCP NAPT44
Asignación del tráfico que contiene solicitudes PCP agregadas por un enrutador que funciona como iniciador de softwire DS-Lite (B4). Este modo, conocido como modo simple DS-Lite, se muestra en la Figura 2.
Figura 2: PCP con modo simple DS-Lite
Junos OS no admite la asignación de bloques de puerto determinista para el tráfico originado en PCP.
Beneficios del protocolo de control de puertos
Muchas aplicaciones compatibles con TDR envían mensajes frecuentes a nivel de aplicación para garantizar que un dispositivo TDR no agote el tiempo de espera de sus sesiones. El PCP se utiliza para:
Reduzca la frecuencia de estos mensajes de mantenimiento de TDR
Reduzca el ancho de banda en la red de acceso del suscriptor
Reduzca el tráfico al servidor
Reduzca el consumo de batería en dispositivos móviles
Protocolo de control de puertos versión 2
A partir de Junos OS versión 15.1, se admite la versión 2 del Protocolo de control de puerto (PCP), que cumple con RFC 6887. El PCP proporciona una manera de controlar el reenvío de paquetes entrantes por parte de dispositivos ascendentes, como NAT44, y dispositivos de firewall, y una manera de reducir el tráfico de mantenimiento de aplicaciones vivo. La versión 2 del PCP admite la autenticación nonce. PCP permite a las aplicaciones crear asignaciones desde una dirección IP y un puerto externos a una dirección IP y un puerto internos. Una carga nonce evita un ataque de reproducción y se envía de forma predeterminada a menos que esté explícitamente deshabilitada.
La comprobación de nonce del cliente para solicitudes de asignación de la versión 2 (para actualización o eliminación) requiere que se conserve el nonce recibido en la solicitud de asignación original que hace que se cree la asignación de PCP. También se conserva la versión de la solicitud inicial que permite crear la asignación. Este comportamiento de guardar los parámetros nonce y version indica que se utilizan 13 bytes por asignación PCP. Este ligero aumento en el espacio de almacenamiento no es significativo cuando se compara con el uso actual de memoria de un sistema para una única asignación solicitada (teniendo en cuenta la asignación independiente del punto de conexión (EIM) y el filtrado independiente del punto de conexión (EIF) que se crean junto con él). En la implementación de un cliente, PCP hace que las asignaciones de EIM y EIF representen una fracción de todas esas asignaciones.
Hasta la versión 15.1 de Junos, las PIC de servicios admiten servidores PCP en enrutadores de Juniper Networks de conformidad con la versión 22 del borrador del PCP con codificación de mensajes de la versión 1. Con el PCP refinándose desde la versión preliminar definida en el Protocolo de control de puertos (PCP) draft-ietf-pcp-base-22 (vencimiento de julio de 2012) a una versión estándar finalizada como se define en RFC 6887 -- Protocolo de control de puertos (PCP), la codificación de mensajes cambió a la versión 2 con la adición de una carga útil nonce aleatoria para autenticar las solicitudes de pares y mapas según sea necesario. La versión 1 no descodifica mensajes que cumplan con el formato de la versión 2 y no se admite la autenticación nonce. En un entorno de red del mundo real, con dispositivos de equipo en las instalaciones del cliente (CPE) que admiten cada vez más solo la versión 2, se requiere analizar y enviar mensajes de la versión 2. Se mantiene la compatibilidad con versiones anteriores con dispositivos CPE compatibles con la versión 1 (la negociación de versiones es parte del estándar) y autentica los paquetes de carga de solicitud nonce cuando se usan mensajes v2.
El resultado del show services pcp statistics comando contiene el campo de versión no compatible de PCP, que se incrementa para indicar siempre que la versión no sea 1 o 2. Se introduce un nuevo campo, El nonce de solicitud de PCP no coincide con la asignación existente, para indicar el número de solicitudes de PCP versión 2 que se ignoraron porque la carga útil del nonce no coincidía con la registrada en la asignación (se produjo un error en la autenticación). Si la versión 2 está en uso, el nonce de cliente se utiliza para la autenticación.
Configuración del protocolo de control de puertos
En este tema se describe cómo configurar el protocolo de control de puertos (PCP). PCP es compatible con las PIC de multiservicios MS-CPC, MS-100, MS-400 y MS-500. A partir de la versión 17.4R1 de Junos OS, PCP para NAPT44 también es compatible con MS-MPC y MS-MIC. A partir de la versión 18.2R1 de Junos OS, el PCP en MS-MPC y MS-MIC admite DS-Lite. En Junos OS versión 18.1 y versiones anteriores, PCP en MS-MPC y MS-MIC no admite DS-Lite. A partir de la versión 20.2R1 de Junos OS, el PCP es compatible con la tarjeta de servicios de seguridad MX-SPC3 para servicios CGNAT.
Realice las siguientes tareas de configuración:
- Configuración de las opciones del servidor PCP
- Configuración de una regla de PCP
- Configuración de una regla TDR
- Configuración de un conjunto de servicios para aplicar PCP
- Configuración de mensajes SYSLOG
Configuración de las opciones del servidor PCP
Configuración de una regla de PCP
Una regla de PCP tiene las mismas opciones básicas que todas las reglas de conjunto de servicios:
Una
termopción que permite que una sola regla tenga múltiples aplicaciones.No se requiere un término cuando se ejecuta la tarjeta de servicios de seguridad MX-SPC3 para servicios de próxima generación.
Una
fromopción que identifica el tráfico que está sujeto a la regla.Una
thenopción que identifica qué acción se debe tomar. En el caso de una regla de PCP, esta opción identifica el servidor de PCP que maneja el tráfico seleccionado
Configuración de una regla TDR
Para configurar una regla TDR:
Configuración de un conjunto de servicios para aplicar PCP
Para usar PCP, debe proporcionar el nombre de la regla (o el nombre de una lista de nombres de reglas) en la pcp-rule rule-name opción.
El conjunto de servicios también debe identificar cualquier nat-rule archivo requerido y softwire-rule.
Configuración de mensajes SYSLOG
Se proporcionó una nueva clase syslog, opción de configuración, pcp-logs, para controlar la generación de registros de PCP. Proporciona los siguientes niveles de registro:
protocol: todos los registros relacionados con la creación y eliminación de mapas se incluyen en este nivel de registro.protocol-error: todos los registros relacionados con errores de protocolo (como error en la actualización de la asignación, error en la búsqueda de PCP, error en la creación de la asignación). se incluyen en este nivel de registro.system-error—Los errores de memoria e infraestructura se incluyen en este nivel de registro.
Monitoreo de las operaciones del protocolo de control del puerto
Puede supervisar las operaciones del Protocolo de control de puertos (PCP) con los siguientes comandos operativos:
En el caso de MS-MPC, utilice el
show services nat mappings pcpcomando.Nota:PCP no es compatible con servicios de próxima generación en Junos OS versión 19.3R2
En el caso de MS-MPC, utilice el
show services nat mappings endpoint-independentcomando.Para los servicios de próxima generación, use el
show services nat source mappings endpoint-independentcomando.show services pcp statistics protocol
A continuación, se muestran ejemplos de la salida de estos comandos.
user@host> show services nat mappings pcp Interface: sp-0/0/0, Service set: in NAT pool: p PCP Client : 10.1.1.2 PCP lifetime : 995 Mapping : 10.1.1.2 : 9000 --> 8.8.8.8 : 1025 Session Count : 1 Mapping State : Active DS-LITE output: =============== PCP Client : 2222::1 PCP lifetime : 106 Mapping : 88.1.0.47 : 47 --> 70.70.70.1 :41972 Session Count : 1 Mapping State : Active B4 Address : 2222::1
user@host> show services nat mappings endpoint-independent Interface: sp-0/0/0, Service set: in NAT pool: p Mapping : 10.1.1.2 :57400 --> 8.8.8.8 : 1024 Session Count : 0 Mapping State : Timeout PCP Client : 10.1.1.2 PCP lifetime : 991 Mapping : 10.1.1.2 : 9000 --> 8.8.8.8 : 1025 Session Count : 1 Mapping State : Active DS-LITE output: =============== PCP Client : 2222::1 PCP lifetime : 190 Mapping : 88.1.1.3 : 4001 --> 70.70.70.2 :58989 Session Count : 1 Mapping State : Active B4 Address : 2222::1
user@host> show services pcp statistics protocol Protocol Statistics: Operational Statistics Map request received :0 Peer request received :0 Other operational counters :0 Option Statistics Unprocessed requests received :0 Third party requets received :0 Prefer fail option received :0 Filter option received :0 Other options counters :0 Option optional received :0 Result Statistics PCP success :0 PCP unsupported version :0 Not authorized :0 Bad requests :0 Unsupported opcode :0 Unsupported option :0 Bad option :0 Network failure :0 Out of resources :0 Unsupported protocol :0 User exceeded quota :0 Cannot provide external :0 Address mismatch :0 Excessive number of remote peers :0 Processing error :0 Other result counters :0
Ejemplo: Configuración del protocolo de control de puerto con NAPT44
PCP es compatible con PIC de multiservicios MS-CPC, MS-100, MS-400 y MS-500. A partir de la versión 17.4R1 de Junos OS, PCP para NATP44 también es compatible con MS-MPC y MS-MIC.
Requisitos
Requisitos de hardware
UE con clientes PCP.
Un enrutador MX 3D con una PIC de servicios MS-CPC.
Requisitos de Software
Junos OS 13.2
Paquete de servicios de capa 3
Descripción general
Un ISP desea permitir que las UE con clientes PCP mantengan conexiones con servidores sin tiempo de espera. Los clientes de PCP generan solicitudes de PCP para el tipo y la duración de la conexión que necesitan. Las conexiones pueden ser de larga duración, como aplicaciones que usan una cámara web, o de menor duración, como juegos en línea. Un enrutador MX 3D proporciona un servidor PCP para interpretar las solicitudes de los clientes PCP y NAPT44. En la figura 3 , se muestra la topología básica de este ejemplo.
Configuración del PCP
- Configuración rápida de CLI
- Configuración del chasis
- Configuración de interfaz
- Configuración de TDR
- Configuración del PCP
- Configuración del conjunto de servicios
Configuración rápida de CLI
Para configurar rápidamente este ejemplo, copie los siguientes comandos, péguelos en un archivo de texto, elimine los saltos de línea, cambie los detalles necesarios para que coincidan con su configuración de red y, luego, copie y pegue los comandos en la CLI en el nivel de jerarquía [edit].
set chassis fpc 2 pic 0 adaptive-services service-package layer-3 set interfaces sp-2/0/0 services-options inactivity-timeout 180 cgn-pic set interfaces sp-2/0/0 unit 0 family inet set interfaces xe-3/2/0 unit 0 family inet service input service-set sset_0 set interfaces xe-3/2/0 unit 0 family inet service output service-set sset_0 set interfaces xe-3/2/0 unit 0 family inet address 30.0.0.1/24 set interfaces xe-5/0/0 unit 0 family inet address 25.0.0.1/24 set services nat pool pcp-pool address 44.0.0.0/16 set services nat pool pcp-pool port automatic random-allocation address-allocation round-robin set services nat pool pcp-pool address-allocation round-robin set services nat rule pcp-rule match-direction input set services nat rule pcp-rule term t0 then translated source-pool pcp-pool translation-type napt-44 set services nat rule pcp-rule term t0 then translated mapping-type endpoint-independent filtering-type endpoint-independent set services nat rule pcp-rule term t0 then translated mapping-type endpoint-independent filtering-type endpoint-independent set services pcp server pcp-s1 ipv4-address 124.124.124.122 set services pcp server pcp-s1 mapping-lifetime-minimum 600 mapping-lifetime-maximum 86500 set services pcp server pcp-s1 short-lifetime-error 120 long-lifetime-error 1200 set services pcp server pcp-s1 max-mappings-per-client 128 pcp-options third-party prefer-failure set services service-set sset_0 pcp-rules r1 set services service-set sset_0 nat-rules pcp-rule set services service-set sset_0 interface-service service-interface sp-2/0/0.0
Configuración del chasis
Procedimiento paso a paso
Para configurar la PIC de servicio (ranura FPC 2 0) con el paquete de servicio de capa 3:
Vaya al nivel de jerarquía [editar chasis].
user@host# edit chassis
Configure el paquete de servicio de capa 3.
[edit chassis]user@host# set fpc 2 pic 0 adaptive-services service-package layer-3
Resultados
user@host# show chassis fpc 2 pic 0
pcp-rules pcp-napt44-rule;
nat-rules pcp-rule;
interface-service {
service-interface sp-2/0/0.0;
}
Configuración de interfaz
Procedimiento paso a paso
Configure los servicios MS-CPC.
user@host# set interfaces sp-2/0/0 services-options inactivity-timeout 180 cgn-pic user@host# set interfaces sp-2/0/0 unit 0 family inet
Configure la interfaz orientada al cliente que se usa para los servicios TDR y PCP.
user@host# set interfaces xe-3/2/0 unit 0 family inet service input service-set sset_0 user@host# set interfaces xe-3/2/0 unit 0 family inet service output service-set sset_0 user@host# set interfaces xe-3/2/0 unit 0 family inet address 30.0.0.1/24
Configure la interfaz orientada a Internet.
user@host# set interfaces xe-5/0/0 unit 0 family inet address 25.0.0.1/24
Resultados
user@host#
sp-2/0/0 {
services-options {
inactivity-timeout 180;
cgn-pic;
}
unit 0 {
family inet;
}
}
xe-3/2/0 {
unit 0 {
family inet {
service {
input {
service-set sset_0;
}
output {
service-set sset_0;
}
}
address 30.0.0.1/24;
}
}
}
xe-5/0/0 {
unit 0 {
family inet {
address 25.0.0.1/24;
}
}
}
Configuración de TDR
Procedimiento paso a paso
Ir a la
[edit services nat]jerarquía.user@host# edit services nat
Configure un grupo TDR llamado
pcp-pool.[edit services nat]user@host# set pool pcp-pool address 44.0.0.0/16 user@host# set pool pcp-pool port automatic random-allocation user@host# set pool pcp-pool address-allocation round-robinConfigure una regla TDR llamada
pcp-rule.[edit services nat]user@host# set rule pcp-rule term t0 then translated source-pool pcp-pool translation-type napt-44 user@host# set rule pcp-rule term t0 then translated mapping-type endpoint-independent filtering-type endpoint-independent
Resultados
user@host# show services nat
pool pcp-pool {
address 44.0.0.0/16;
port {
automatic {
random-allocation;
}
}
address-allocation round-robin;
}
rule pcp-rule {
match-direction input;
term t0 {
then {
translated {
source-pool pcp-pool;
translation-type {
napt-44;
}
mapping-type endpoint-independent;
filtering-type {
endpoint-independent;
}
}
}
}
}
Configuración del PCP
Procedimiento paso a paso
Para configurar el servidor PCP y las opciones de regla PCP.
Ir al nivel de jerarquía del
edit services pcpservidorpcp-s1user@host# edit services pcp server pcp-s1
Configure las opciones del servidor PCP.
[edit services pcp server pcp-s1] user@host# set ipv4-address 124.124.124.122 user@host# set mapping-lifetime-minimum 600 user@host# set mapping-lifetime-maximum 86500 user@host# set short-lifetime-error 120 user@host# set long-lifetime-error 1200 user@host# set max-mappings-per-client 128 user@host# set pcp-options third-party prefer-failure
Cree la regla PCP.
[edit services pcp rule pcp-napt44-rule user@host# edit rule pcp-napt44-rule
Configure las opciones de la regla PCP.
[edit services pcp rule pcp-napt44-rule] user@host# set match-direction input user@host# set term t0 then pcp-server pcp-s1
Resultados
user@host# show services pcp
server pcp-s1 {
ipv4-address 124.124.124.122;
mapping-lifetime-minimum 600;
mapping-lifetime-maximum 86500;
short-lifetime-error 120;
long-lifetime-error 1200;
max-mappings-per-client 128;
pcp-options third-party prefer-failure;
}
rule pcp-napt44-rule {
match-direction input;
term t0 {
then {
pcp-server pcp-s1;
}
}
}
Configuración del conjunto de servicios
Procedimiento paso a paso
Cree un conjunto de servicios,
sset_0, en el nivel deedit services service-setjerarquía.user@host# edit services service-set sset_0
service-set sset_0 { pcp-rules pcp-napt44-rule; nat-rules pcp-rule; interface-service { service-interface sp-2/0/0.0; } }Identifique la regla TDR asociada con el conjunto de servicios.
[edit services service-set sset_0] user@host# set nat-rules pcp-rule
Identifique la regla de PCP asociada con el conjunto de servicios.
[edit services service-set sset_0] user@host# set pcp-rules r1
Identifique la interfaz de servicio asociada con el conjunto de servicios.
[edit services service-set sset_0] user@host# set interface-service service-interface sp-2/0/0.0
Resultados
user@host# show
pcp-rules pcp-napt44-rule;
nat-rules pcp-rule;
interface-service {
service-interface sp-2/0/0.0;
}
Tabla de historial de cambios
La compatibilidad de la función depende de la plataforma y la versión que utilice. Utilice el Explorador de características para determinar si una característica es compatible con su plataforma.